diff options
Diffstat (limited to 'src/compiler/codegen')
| -rw-r--r-- | src/compiler/codegen/arm/MethodCodegenDriver.cc | 6 | ||||
| -rw-r--r-- | src/compiler/codegen/arm/Thumb2/Gen.cc | 22 |
2 files changed, 3 insertions, 25 deletions
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc index fb665e68fa..633125443b 100644 --- a/src/compiler/codegen/arm/MethodCodegenDriver.cc +++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc @@ -1169,17 +1169,17 @@ STATIC bool compileDalvikInstruction(CompilationUnit* cUnit, MIR* mir, break; case OP_RETURN_VOID: - genSuspendPoll(cUnit, mir); + genSuspendTest(cUnit, mir); break; case OP_RETURN: case OP_RETURN_OBJECT: - genSuspendPoll(cUnit, mir); + genSuspendTest(cUnit, mir); storeValue(cUnit, getRetLoc(cUnit), rlSrc[0]); break; case OP_RETURN_WIDE: - genSuspendPoll(cUnit, mir); + genSuspendTest(cUnit, mir); storeValueWide(cUnit, getRetLocWide(cUnit), rlSrc[0]); break; diff --git a/src/compiler/codegen/arm/Thumb2/Gen.cc b/src/compiler/codegen/arm/Thumb2/Gen.cc index c1366607b2..094d10c498 100644 --- a/src/compiler/codegen/arm/Thumb2/Gen.cc +++ b/src/compiler/codegen/arm/Thumb2/Gen.cc @@ -1789,28 +1789,6 @@ STATIC void genSuspendTest(CompilationUnit* cUnit, MIR* mir) oatInsertGrowableList(&cUnit->suspendLaunchpads, (intptr_t)target); } -/* Check for pending suspend request. */ -STATIC void genSuspendPoll(CompilationUnit* cUnit, MIR* mir) -{ - if (NO_SUSPEND || mir->optimizationFlags & MIR_IGNORE_SUSPEND_CHECK) { - return; - } - oatFlushAllRegs(cUnit); - oatLockCallTemps(cUnit); // Explicit register usage - int rSuspendCount = r1; - ArmLIR* ld; - ld = loadWordDisp(cUnit, rSELF, - art::Thread::SuspendCountOffset().Int32Value(), rSuspendCount); - setMemRefType(ld, true /* isLoad */, kMustNotAlias); - loadWordDisp(cUnit, rSELF, - OFFSETOF_MEMBER(Thread, pCheckSuspendFromCode), rLR); - genRegCopy(cUnit, r0, rSELF); - opRegImm(cUnit, kOpCmp, rSuspendCount, 0); - genIT(cUnit, kArmCondNe, ""); - opReg(cUnit, kOpBlx, rLR); - oatFreeCallTemps(cUnit); -} - /* * The following are the first-level codegen routines that analyze the format * of each bytecode then either dispatch special purpose codegen routines |