summaryrefslogtreecommitdiff
path: root/src/assembler_arm.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/assembler_arm.cc')
-rw-r--r--src/assembler_arm.cc8
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));