Various assembly fixes.
Change-Id: I42655af8dc3d7201d53c3393cdc585d9faa8cb82
diff --git a/src/assembler_arm.cc b/src/assembler_arm.cc
index cd0c5f5..e1976d7 100644
--- a/src/assembler_arm.cc
+++ b/src/assembler_arm.cc
@@ -1046,6 +1046,14 @@
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));