Set the debug interpreter entry point properly on the self-verification path.
Also fix the encoding for SFP/DFP register names to make self-verification
happy on FP benchmarks.
diff --git a/vm/compiler/codegen/arm/Assemble.c b/vm/compiler/codegen/arm/Assemble.c
index 5426b3c..e386fac 100644
--- a/vm/compiler/codegen/arm/Assemble.c
+++ b/vm/compiler/codegen/arm/Assemble.c
@@ -934,16 +934,18 @@
((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;