Index: runtime/vm/assembler_arm64.h |
diff --git a/runtime/vm/assembler_arm64.h b/runtime/vm/assembler_arm64.h |
index ff7f93f835c865a83e004952b714d1bba1d6a9e7..ffb6b768f42c28217fbb8d3351d800d2b678abe0 100644 |
--- a/runtime/vm/assembler_arm64.h |
+++ b/runtime/vm/assembler_arm64.h |
@@ -838,6 +838,11 @@ class Assembler : public ValueObject { |
EmitExceptionGenOp(BRK, imm); |
} |
+ static uword GetBreakInstructionFiller() { |
+ const intptr_t encoding = ExceptionGenOpEncoding(BRK, 0); |
+ return encoding << 32 | encoding; |
+ } |
+ |
// Double floating point. |
bool fmovdi(VRegister vd, double immd) { |
int64_t imm64 = bit_cast<int64_t, double>(immd); |
@@ -1688,10 +1693,12 @@ class Assembler : public ValueObject { |
Emit(encoding); |
} |
+ static int32_t ExceptionGenOpEncoding(ExceptionGenOp op, uint16_t imm) { |
+ return op | (static_cast<int32_t>(imm) << kImm16Shift); |
+ } |
+ |
void EmitExceptionGenOp(ExceptionGenOp op, uint16_t imm) { |
- const int32_t encoding = |
- op | (static_cast<int32_t>(imm) << kImm16Shift); |
- Emit(encoding); |
+ Emit(ExceptionGenOpEncoding(op, imm)); |
} |
void EmitMoveWideOp(MoveWideOp op, Register rd, const Immediate& imm, |