diff options
Diffstat (limited to 'src/compiler/codegen/arm')
| -rw-r--r-- | src/compiler/codegen/arm/Assemble.cc | 2 | ||||
| -rw-r--r-- | src/compiler/codegen/arm/Thumb2/Factory.cc | 13 | ||||
| -rw-r--r-- | src/compiler/codegen/arm/Thumb2/Gen.cc | 2 |
3 files changed, 5 insertions, 12 deletions
diff --git a/src/compiler/codegen/arm/Assemble.cc b/src/compiler/codegen/arm/Assemble.cc index 2c13107ce7..2a89b6aca7 100644 --- a/src/compiler/codegen/arm/Assemble.cc +++ b/src/compiler/codegen/arm/Assemble.cc @@ -147,7 +147,7 @@ const ArmEncodingMap EncodingMap[kArmLast] = { NEEDS_FIXUP, "b!1c", "!0t", 2), ENCODING_MAP(kThumbBUncond, 0xe000, kFmtBitBlt, 10, 0, kFmtUnused, -1, -1, kFmtUnused, -1, -1, - kFmtUnused, -1, -1, NO_OPERAND | IS_BRANCH | NEEDS_FIXUP, + kFmtUnused, -1, -1, IS_UNARY_OP | IS_BRANCH | NEEDS_FIXUP, "b", "!0t", 2), ENCODING_MAP(kThumbBicRR, 0x4380, kFmtBitBlt, 2, 0, kFmtBitBlt, 5, 3, kFmtUnused, -1, -1, diff --git a/src/compiler/codegen/arm/Thumb2/Factory.cc b/src/compiler/codegen/arm/Thumb2/Factory.cc index 1810573daa..ad6e40d608 100644 --- a/src/compiler/codegen/arm/Thumb2/Factory.cc +++ b/src/compiler/codegen/arm/Thumb2/Factory.cc @@ -188,17 +188,10 @@ LIR* loadConstantNoClobber(CompilationUnit* cUnit, int rDest, int value) return res; } -LIR* opNone(CompilationUnit* cUnit, OpKind op) +LIR* opBranchUnconditional(CompilationUnit* cUnit, OpKind op) { - ArmOpcode opcode = kThumbBkpt; - switch (op) { - case kOpUncondBr: - opcode = kThumbBUncond; - break; - default: - LOG(FATAL) << "Bad opcode " << (int)op; - } - return newLIR0(cUnit, opcode); + DCHECK_EQ(op, kOpUncondBr); + return newLIR1(cUnit, kThumbBUncond, 0 /* offset to be patched */); } LIR* opCondBranch(CompilationUnit* cUnit, ConditionCode cc, LIR* target) diff --git a/src/compiler/codegen/arm/Thumb2/Gen.cc b/src/compiler/codegen/arm/Thumb2/Gen.cc index 557e87b470..20124f9d05 100644 --- a/src/compiler/codegen/arm/Thumb2/Gen.cc +++ b/src/compiler/codegen/arm/Thumb2/Gen.cc @@ -326,7 +326,7 @@ void genMonitorExit(CompilationUnit* cUnit, MIR* mir, RegLocation rlSrc) hopBranch = opCondBranch(cUnit, kCondNe, NULL); oatGenMemBarrier(cUnit, kSY); storeWordDisp(cUnit, r0, Object::MonitorOffset().Int32Value(), r3); - branch = opNone(cUnit, kOpUncondBr); + branch = opBranchUnconditional(cUnit, kOpUncondBr); hopTarget = newLIR0(cUnit, kPseudoTargetLabel); hopBranch->target = (LIR*)hopTarget; |