diff options
| author | Ben Cheng <bccheng@android.com> | 2011-03-10 11:17:04 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-03-10 11:17:04 -0800 |
| commit | 6d59d5584b793e597e94300bf95dea8ee8335ccf (patch) | |
| tree | c78bf70af11ad28b43d715671dbf1cc23997ac42 /vm/compiler/codegen/arm/CodegenDriver.c | |
| parent | 9ea32b0a0fa0eb4c4bfcd73f0c7fe15ddb0f9ce2 (diff) | |
| parent | 385828e36ea70effe9aa18a954d008b1f7dc1d63 (diff) | |
Merge "Handle relocatable class objects in JIT'ed code." into dalvik-dev
Diffstat (limited to 'vm/compiler/codegen/arm/CodegenDriver.c')
| -rw-r--r-- | vm/compiler/codegen/arm/CodegenDriver.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/vm/compiler/codegen/arm/CodegenDriver.c b/vm/compiler/codegen/arm/CodegenDriver.c index cc81d1da8..55c06476f 100644 --- a/vm/compiler/codegen/arm/CodegenDriver.c +++ b/vm/compiler/codegen/arm/CodegenDriver.c @@ -1285,7 +1285,7 @@ static void genInvokeVirtualWholeMethod(CompilationUnit *cUnit, CallsiteInfo *callsiteInfo = mir->meta.callsiteInfo; dvmCompilerLockAllTemps(cUnit); - loadConstant(cUnit, r1, (int) callsiteInfo->clazz); + loadClassPointer(cUnit, r1, (int) callsiteInfo); loadWordDisp(cUnit, r0, offsetof(Object, clazz), r2); /* Branch to the slow path if classes are not equal */ @@ -3741,7 +3741,7 @@ static void handleNormalChainingCell(CompilationUnit *cUnit, offsetof(Thread, jitToInterpEntries.dvmJitToInterpNormal) >> 2); newLIR1(cUnit, kThumbBlxR, r0); - addWordData(cUnit, (int) (cUnit->method->insns + offset), true); + addWordData(cUnit, NULL, (int) (cUnit->method->insns + offset)); } /* @@ -3760,7 +3760,7 @@ static void handleHotChainingCell(CompilationUnit *cUnit, offsetof(Thread, jitToInterpEntries.dvmJitToInterpTraceSelect) >> 2); newLIR1(cUnit, kThumbBlxR, r0); - addWordData(cUnit, (int) (cUnit->method->insns + offset), true); + addWordData(cUnit, NULL, (int) (cUnit->method->insns + offset)); } /* Chaining cell for branches that branch back into the same basic block */ @@ -3781,7 +3781,7 @@ static void handleBackwardBranchChainingCell(CompilationUnit *cUnit, offsetof(Thread, jitToInterpEntries.dvmJitToInterpNormal) >> 2); #endif newLIR1(cUnit, kThumbBlxR, r0); - addWordData(cUnit, (int) (cUnit->method->insns + offset), true); + addWordData(cUnit, NULL, (int) (cUnit->method->insns + offset)); } /* Chaining cell for monomorphic method invocations. */ @@ -3797,7 +3797,7 @@ static void handleInvokeSingletonChainingCell(CompilationUnit *cUnit, offsetof(Thread, jitToInterpEntries.dvmJitToInterpTraceSelect) >> 2); newLIR1(cUnit, kThumbBlxR, r0); - addWordData(cUnit, (int) (callee->insns), true); + addWordData(cUnit, NULL, (int) (callee->insns)); } /* Chaining cell for monomorphic method invocations. */ @@ -3805,16 +3805,16 @@ static void handleInvokePredictedChainingCell(CompilationUnit *cUnit) { /* Should not be executed in the initial state */ - addWordData(cUnit, PREDICTED_CHAIN_BX_PAIR_INIT, true); + addWordData(cUnit, NULL, PREDICTED_CHAIN_BX_PAIR_INIT); /* To be filled: class */ - addWordData(cUnit, PREDICTED_CHAIN_CLAZZ_INIT, true); + addWordData(cUnit, NULL, PREDICTED_CHAIN_CLAZZ_INIT); /* To be filled: method */ - addWordData(cUnit, PREDICTED_CHAIN_METHOD_INIT, true); + addWordData(cUnit, NULL, PREDICTED_CHAIN_METHOD_INIT); /* * Rechain count. The initial value of 0 here will trigger chaining upon * the first invocation of this callsite. */ - addWordData(cUnit, PREDICTED_CHAIN_COUNTER_INIT, true); + addWordData(cUnit, NULL, PREDICTED_CHAIN_COUNTER_INIT); } /* Load the Dalvik PC into r0 and jump to the specified target */ @@ -4042,7 +4042,7 @@ static void genValidationForPredictedInline(CompilationUnit *cUnit, MIR *mir) rlThis = loadValue(cUnit, rlThis, kCoreReg); int regPredictedClass = dvmCompilerAllocTemp(cUnit); - loadConstant(cUnit, regPredictedClass, (int) callsiteInfo->clazz); + loadClassPointer(cUnit, regPredictedClass, (int) callsiteInfo); genNullCheck(cUnit, rlThis.sRegLow, rlThis.lowReg, mir->offset, NULL);/* null object? */ int regActualClass = dvmCompilerAllocTemp(cUnit); |
