OSDN Git Service

Move VFP register save/restore routines from template to codegen.
authorBen Cheng <bccheng@google.com>
Wed, 16 Dec 2009 21:15:53 +0000 (13:15 -0800)
committerBen Cheng <bccheng@google.com>
Wed, 16 Dec 2009 21:15:53 +0000 (13:15 -0800)
Code in the template directory will occupy space in the code cache and is
invoked from JIT'ed code. Since these routines are only invoked from statically
compiled functions we can move them to the codegen directory which also has
arch-variant configurations.

vm/Dvm.mk
vm/compiler/codegen/arm/armv5te-vfp/CallingConvention.S [new file with mode: 0644]
vm/compiler/codegen/arm/armv5te/CallingConvention.S [new file with mode: 0644]
vm/compiler/codegen/arm/armv7-a/CallingConvention.S [new file with mode: 0644]
vm/compiler/template/armv5te-vfp/platform.S
vm/compiler/template/armv5te/platform.S
vm/compiler/template/out/CompilerTemplateAsm-armv5te-vfp.S
vm/compiler/template/out/CompilerTemplateAsm-armv5te.S
vm/compiler/template/out/CompilerTemplateAsm-armv7-a.S

index b5d326b..3f5c6d5 100644 (file)
--- a/vm/Dvm.mk
+++ b/vm/Dvm.mk
@@ -278,6 +278,7 @@ ifeq ($(dvm_arch),arm)
     LOCAL_SRC_FILES += \
                compiler/codegen/arm/RallocUtil.c \
                compiler/codegen/arm/$(dvm_arch_variant)/Codegen.c \
+               compiler/codegen/arm/$(dvm_arch_variant)/CallingConvention.S \
                compiler/codegen/arm/Assemble.c \
                compiler/codegen/arm/ArchUtility.c \
                compiler/codegen/arm/LocalOptimizations.c \
diff --git a/vm/compiler/codegen/arm/armv5te-vfp/CallingConvention.S b/vm/compiler/codegen/arm/armv5te-vfp/CallingConvention.S
new file mode 100644 (file)
index 0000000..4f12395
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Save & restore for callee-save FP registers.
+ * On entry:
+ *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
+ */
+    .text
+    .align 2
+    .global dvmJitCalleeSave
+    .type dvmJitCalleeSave, %function
+dvmJitCalleeSave:
+    vstmia r0, {d8-d15}
+    bx     lr
+
+    .global dvmJitCalleeRestore
+    .type dvmJitCalleeRestore, %function
+dvmJitCalleeRestore:
+    vldmia r0, {d8-d15}
+    bx     lr
diff --git a/vm/compiler/codegen/arm/armv5te/CallingConvention.S b/vm/compiler/codegen/arm/armv5te/CallingConvention.S
new file mode 100644 (file)
index 0000000..0cbc64f
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Save & restore for callee-save FP registers.
+ * On entry:
+ *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
+ */
+    .text
+    .align 2
+    .global dvmJitCalleeSave
+    .type dvmJitCalleeSave, %function
+dvmJitCalleeSave:
+    bx     lr
+
+    .global dvmJitCalleeRestore
+    .type dvmJitCalleeRestore, %function
+dvmJitCalleeRestore:
+    bx     lr
diff --git a/vm/compiler/codegen/arm/armv7-a/CallingConvention.S b/vm/compiler/codegen/arm/armv7-a/CallingConvention.S
new file mode 100644 (file)
index 0000000..4f12395
--- /dev/null
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * Save & restore for callee-save FP registers.
+ * On entry:
+ *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
+ */
+    .text
+    .align 2
+    .global dvmJitCalleeSave
+    .type dvmJitCalleeSave, %function
+dvmJitCalleeSave:
+    vstmia r0, {d8-d15}
+    bx     lr
+
+    .global dvmJitCalleeRestore
+    .type dvmJitCalleeRestore, %function
+dvmJitCalleeRestore:
+    vldmia r0, {d8-d15}
+    bx     lr
index 4c8c2a2..880e875 100644 (file)
     mov     lr, pc
     ldr     pc, \source
 .endm
-
-/*
- * Save & restore for callee-save FP registers.
- * On entry:
- *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
- */
-    .text
-    .align 2
-    .global dvmJitCalleeSave
-    .type dvmJitCalleeSave, %function
-dvmJitCalleeSave:
-    vstmia r0, {d8-d15}
-    bx     lr
-
-    .global dvmJitCalleeRestore
-    .type dvmJitCalleeRestore, %function
-dvmJitCalleeRestore:
-    vldmia r0, {d8-d15}
-    bx     lr
-
index 3cefa6d..880e875 100644 (file)
     mov     lr, pc
     ldr     pc, \source
 .endm
-
-/*
- * Save & restore for callee-save FP registers.
- * On entry:
- *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
- */
-    .text
-    .align 2
-    .global dvmJitCalleeSave
-    .type dvmJitCalleeSave, %function
-dvmJitCalleeSave:
-    bx     lr
-
-    .global dvmJitCalleeRestore
-    .type dvmJitCalleeRestore, %function
-dvmJitCalleeRestore:
-    bx     lr
-
index 0dfb986..104e6ba 100644 (file)
@@ -120,26 +120,6 @@ unspecified registers or condition codes.
     ldr     pc, \source
 .endm
 
-/*
- * Save & restore for callee-save FP registers.
- * On entry:
- *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
- */
-    .text
-    .align 2
-    .global dvmJitCalleeSave
-    .type dvmJitCalleeSave, %function
-dvmJitCalleeSave:
-    vstmia r0, {d8-d15}
-    bx     lr
-
-    .global dvmJitCalleeRestore
-    .type dvmJitCalleeRestore, %function
-dvmJitCalleeRestore:
-    vldmia r0, {d8-d15}
-    bx     lr
-
-
 
     .global dvmCompilerTemplateStart
     .type   dvmCompilerTemplateStart, %function
index 0e79497..3040b19 100644 (file)
@@ -120,24 +120,6 @@ unspecified registers or condition codes.
     ldr     pc, \source
 .endm
 
-/*
- * Save & restore for callee-save FP registers.
- * On entry:
- *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
- */
-    .text
-    .align 2
-    .global dvmJitCalleeSave
-    .type dvmJitCalleeSave, %function
-dvmJitCalleeSave:
-    bx     lr
-
-    .global dvmJitCalleeRestore
-    .type dvmJitCalleeRestore, %function
-dvmJitCalleeRestore:
-    bx     lr
-
-
 
     .global dvmCompilerTemplateStart
     .type   dvmCompilerTemplateStart, %function
index ff69653..926e1d7 100644 (file)
@@ -120,26 +120,6 @@ unspecified registers or condition codes.
     ldr     pc, \source
 .endm
 
-/*
- * Save & restore for callee-save FP registers.
- * On entry:
- *    r0 : pointer to save area of JIT_CALLEE_SAVE_WORD_SIZE
- */
-    .text
-    .align 2
-    .global dvmJitCalleeSave
-    .type dvmJitCalleeSave, %function
-dvmJitCalleeSave:
-    vstmia r0, {d8-d15}
-    bx     lr
-
-    .global dvmJitCalleeRestore
-    .type dvmJitCalleeRestore, %function
-dvmJitCalleeRestore:
-    vldmia r0, {d8-d15}
-    bx     lr
-
-
 
     .global dvmCompilerTemplateStart
     .type   dvmCompilerTemplateStart, %function