diff options
Diffstat (limited to 'compiler/dex/quick/gen_common.cc')
-rw-r--r-- | compiler/dex/quick/gen_common.cc | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/compiler/dex/quick/gen_common.cc b/compiler/dex/quick/gen_common.cc index 774176e..50014b0 100644 --- a/compiler/dex/quick/gen_common.cc +++ b/compiler/dex/quick/gen_common.cc @@ -2163,18 +2163,15 @@ class SuspendCheckSlowPath : public Mir2Lir::LIRSlowPath { /* Check if we need to check for pending suspend request */ void Mir2Lir::GenSuspendTest(int opt_flags) { + if (NO_SUSPEND || (opt_flags & MIR_IGNORE_SUSPEND_CHECK) != 0) { + return; + } if (!cu_->compiler_driver->GetCompilerOptions().GetImplicitSuspendChecks()) { - if (NO_SUSPEND || (opt_flags & MIR_IGNORE_SUSPEND_CHECK)) { - return; - } FlushAllRegs(); LIR* branch = OpTestSuspend(NULL); LIR* cont = NewLIR0(kPseudoTargetLabel); AddSlowPath(new (arena_) SuspendCheckSlowPath(this, branch, cont)); } else { - if (NO_SUSPEND || (opt_flags & MIR_IGNORE_SUSPEND_CHECK)) { - return; - } FlushAllRegs(); // TODO: needed? LIR* inst = CheckSuspendUsingLoad(); MarkSafepointPC(inst); @@ -2183,11 +2180,11 @@ void Mir2Lir::GenSuspendTest(int opt_flags) { /* Check if we need to check for pending suspend request */ void Mir2Lir::GenSuspendTestAndBranch(int opt_flags, LIR* target) { + if (NO_SUSPEND || (opt_flags & MIR_IGNORE_SUSPEND_CHECK) != 0) { + OpUnconditionalBranch(target); + return; + } if (!cu_->compiler_driver->GetCompilerOptions().GetImplicitSuspendChecks()) { - if (NO_SUSPEND || (opt_flags & MIR_IGNORE_SUSPEND_CHECK)) { - OpUnconditionalBranch(target); - return; - } OpTestSuspend(target); FlushAllRegs(); LIR* branch = OpUnconditionalBranch(nullptr); @@ -2195,10 +2192,6 @@ void Mir2Lir::GenSuspendTestAndBranch(int opt_flags, LIR* target) { } else { // For the implicit suspend check, just perform the trigger // load and branch to the target. - if (NO_SUSPEND || (opt_flags & MIR_IGNORE_SUSPEND_CHECK)) { - OpUnconditionalBranch(target); - return; - } FlushAllRegs(); LIR* inst = CheckSuspendUsingLoad(); MarkSafepointPC(inst); |