diff options
Diffstat (limited to 'src/assembler_arm.cc')
| -rw-r--r-- | src/assembler_arm.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/assembler_arm.cc b/src/assembler_arm.cc index cd0c5f59e2..e1976d7bdb 100644 --- a/src/assembler_arm.cc +++ b/src/assembler_arm.cc @@ -1046,6 +1046,14 @@ void ArmAssembler::blx(Register rm, Condition cond) { Emit(encoding); } +void ArmAssembler::bx(Register rm, Condition cond) { + CHECK_NE(rm, kNoRegister); + CHECK_NE(cond, kNoCondition); + int32_t encoding = (static_cast<int32_t>(cond) << kConditionShift) | + B24 | B21 | (0xfff << 8) | B4 | + (static_cast<int32_t>(rm) << kRmShift); + Emit(encoding); +} void ArmAssembler::MarkExceptionHandler(Label* label) { EmitType01(AL, 1, TST, 1, PC, R0, ShifterOperand(0)); |