diff options
author | Ben Cheng <bccheng@android.com> | 2011-01-14 11:36:46 -0800 |
---|---|---|
committer | Ben Cheng <bccheng@android.com> | 2011-01-26 12:51:49 -0800 |
commit | cfdeca37fcaa27c37bad5077223e4d1e87f1182e (patch) | |
tree | aa556c91c315994df440244de024ebb15f0e9757 /vm/compiler/codegen/arm/ArchUtility.c | |
parent | 73bfc612a47588c2e657acac44c23bd5668dadf4 (diff) | |
download | android_dalvik-cfdeca37fcaa27c37bad5077223e4d1e87f1182e.tar.gz android_dalvik-cfdeca37fcaa27c37bad5077223e4d1e87f1182e.tar.bz2 android_dalvik-cfdeca37fcaa27c37bad5077223e4d1e87f1182e.zip |
Add runtime support for method based compilation.
Enhanced code cache management to accommodate both trace and method
compilations. Also implemented a hacky dispatch routine for virtual
leaf methods.
Microbenchmark showed 3x speedup in leaf method invocation.
Change-Id: I79d95b7300ba993667b3aa221c1df9c7b0583521
Diffstat (limited to 'vm/compiler/codegen/arm/ArchUtility.c')
-rw-r--r-- | vm/compiler/codegen/arm/ArchUtility.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/vm/compiler/codegen/arm/ArchUtility.c b/vm/compiler/codegen/arm/ArchUtility.c index 7a4d307b5..5af4f3b5c 100644 --- a/vm/compiler/codegen/arm/ArchUtility.c +++ b/vm/compiler/codegen/arm/ArchUtility.c @@ -195,9 +195,10 @@ static void buildInsnString(char *fmt, ArmLIR *lir, char* buf, } break; case 't': - sprintf(tbuf,"0x%08x", + sprintf(tbuf,"0x%08x (L%p)", (int) baseAddr + lir->generic.offset + 4 + - (operand << 1)); + (operand << 1), + lir->generic.target); break; case 'u': { int offset_1 = lir->operands[0]; @@ -302,8 +303,6 @@ void dvmDumpLIRInsn(LIR *arg, unsigned char *baseAddr) case kArmPseudoSSARep: DUMP_SSA_REP(LOGD("-------- %s\n", (char *) dest)); break; - case kArmPseudoTargetLabel: - break; case kArmPseudoChainingCellBackwardBranch: LOGD("-------- chaining cell (backward branch): 0x%04x\n", dest); break; @@ -344,8 +343,9 @@ void dvmDumpLIRInsn(LIR *arg, unsigned char *baseAddr) case kArmPseudoEHBlockLabel: LOGD("Exception_Handling:\n"); break; + case kArmPseudoTargetLabel: case kArmPseudoNormalBlockLabel: - LOGD("L%#06x:\n", dest); + LOGD("L%p:\n", lir); break; default: if (lir->isNop && !dumpNop) { |