OSDN Git Service

Set the debug interpreter entry point properly on the self-verification path.
authorBen Cheng <bccheng@google.com>
Mon, 12 Oct 2009 20:46:55 +0000 (13:46 -0700)
committerBen Cheng <bccheng@google.com>
Mon, 12 Oct 2009 21:15:55 +0000 (14:15 -0700)
Also fix the encoding for SFP/DFP register names to make self-verification
happy on FP benchmarks.

vm/compiler/codegen/arm/Assemble.c
vm/mterp/armv5te/footer.S
vm/mterp/out/InterpAsm-armv4t.S
vm/mterp/out/InterpAsm-armv5te-vfp.S
vm/mterp/out/InterpAsm-armv5te.S
vm/mterp/out/InterpAsm-armv7-a.S

index 5426b3c..e386fac 100644 (file)
@@ -934,16 +934,18 @@ static bool assembleInstructions(CompilationUnit *cUnit, intptr_t startAddr)
                             ((1 << (encoder->fieldLoc[i].end + 1)) - 1);
                     bits |= value;
                     break;
-                case SFP:
+                case DFP: {
+                    int regName = (operand & FP_REG_MASK) >> 1;
                     /* Snag the 1-bit slice and position it */
-                    value = ((operand & 0x10) >> 4) <<
+                    value = ((regName & 0x10) >> 4) <<
                             encoder->fieldLoc[i].end;
                     /* Extract and position the 4-bit slice */
-                    value |= (operand & 0x0f) <<
+                    value |= (regName & 0x0f) <<
                             encoder->fieldLoc[i].start;
                     bits |= value;
                     break;
-                case DFP:
+                }
+                case SFP:
                     /* Snag the 1-bit slice and position it */
                     value = (operand & 0x1) <<
                             encoder->fieldLoc[i].end;
index d92c537..461cc66 100644 (file)
@@ -256,6 +256,8 @@ dvmJitSelfVerificationEnd:
     beq    1f
     mov    r2,#kJitSelfVerification      @ ask for self verification
     str    r2,[rGLUE,#offGlue_jitState]
+    mov    r2,#kInterpEntryInstr         @ normal entry reason
+    str    r2,[rGLUE,#offGlue_entryPoint]
     mov    r1,#1                         @ set changeInterp
     b      common_gotoBail
 
index 9c7fcdc..07075bb 100644 (file)
@@ -9728,6 +9728,8 @@ dvmJitSelfVerificationEnd:
     beq    1f
     mov    r2,#kJitSelfVerification      @ ask for self verification
     str    r2,[rGLUE,#offGlue_jitState]
+    mov    r2,#kInterpEntryInstr         @ normal entry reason
+    str    r2,[rGLUE,#offGlue_entryPoint]
     mov    r1,#1                         @ set changeInterp
     b      common_gotoBail
 
index d367124..55ac716 100644 (file)
@@ -9246,6 +9246,8 @@ dvmJitSelfVerificationEnd:
     beq    1f
     mov    r2,#kJitSelfVerification      @ ask for self verification
     str    r2,[rGLUE,#offGlue_jitState]
+    mov    r2,#kInterpEntryInstr         @ normal entry reason
+    str    r2,[rGLUE,#offGlue_entryPoint]
     mov    r1,#1                         @ set changeInterp
     b      common_gotoBail
 
index 1ff0d19..55f6fee 100644 (file)
@@ -9722,6 +9722,8 @@ dvmJitSelfVerificationEnd:
     beq    1f
     mov    r2,#kJitSelfVerification      @ ask for self verification
     str    r2,[rGLUE,#offGlue_jitState]
+    mov    r2,#kInterpEntryInstr         @ normal entry reason
+    str    r2,[rGLUE,#offGlue_entryPoint]
     mov    r1,#1                         @ set changeInterp
     b      common_gotoBail
 
index e3ed962..3c896ae 100644 (file)
@@ -9182,6 +9182,8 @@ dvmJitSelfVerificationEnd:
     beq    1f
     mov    r2,#kJitSelfVerification      @ ask for self verification
     str    r2,[rGLUE,#offGlue_jitState]
+    mov    r2,#kInterpEntryInstr         @ normal entry reason
+    str    r2,[rGLUE,#offGlue_entryPoint]
     mov    r1,#1                         @ set changeInterp
     b      common_gotoBail