diff options
author | Elliott Hughes <enh@google.com> | 2013-06-13 21:43:55 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-06-13 21:43:55 +0000 |
commit | 6529809bd4448a76622a08cf63829cab73d91b9a (patch) | |
tree | 40fa72e19093fbc80f335807b2cf5e55c2f18501 /vm/compiler | |
parent | a163f4a944cc040aaf25f92ae9c28c1e9cf981f8 (diff) | |
parent | 0e9ec8a9e0c5552073c652b04805b31de4f358a9 (diff) | |
download | android_dalvik-6529809bd4448a76622a08cf63829cab73d91b9a.tar.gz android_dalvik-6529809bd4448a76622a08cf63829cab73d91b9a.tar.bz2 android_dalvik-6529809bd4448a76622a08cf63829cab73d91b9a.zip |
Merge "JIT: Allow use of cbz/cbnz for conditional branch gen."
Diffstat (limited to 'vm/compiler')
-rw-r--r-- | vm/compiler/codegen/arm/CodegenDriver.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/vm/compiler/codegen/arm/CodegenDriver.cpp b/vm/compiler/codegen/arm/CodegenDriver.cpp index 7346c835e..f8570c435 100644 --- a/vm/compiler/codegen/arm/CodegenDriver.cpp +++ b/vm/compiler/codegen/arm/CodegenDriver.cpp @@ -2113,9 +2113,6 @@ static bool handleFmt21t(CompilationUnit *cUnit, MIR *mir, BasicBlock *bb, RegLocation rlSrc = dvmCompilerGetSrc(cUnit, mir, 0); rlSrc = loadValue(cUnit, rlSrc, kCoreReg); - opRegImm(cUnit, kOpCmp, rlSrc.lowReg, 0); - -//TUNING: break this out to allow use of Thumb2 CB[N]Z switch (dalvikOpcode) { case OP_IF_EQZ: cond = kArmCondEq; @@ -2140,7 +2137,8 @@ static bool handleFmt21t(CompilationUnit *cUnit, MIR *mir, BasicBlock *bb, ALOGE("Unexpected opcode (%d) for Fmt21t", dalvikOpcode); dvmCompilerAbort(cUnit); } - genConditionalBranch(cUnit, cond, &labelList[bb->taken->id]); + ArmLIR* branch = genCmpImmBranch(cUnit, cond, rlSrc.lowReg, 0); + branch->generic.target = (LIR*)&labelList[bb->taken->id]; /* This mostly likely will be optimized away in a later phase */ genUnconditionalBranch(cUnit, &labelList[bb->fallThrough->id]); return false; |