| Index: runtime/vm/intermediate_language_arm64.cc
|
| diff --git a/runtime/vm/intermediate_language_arm64.cc b/runtime/vm/intermediate_language_arm64.cc
|
| index d8a6a4f2a8842e0d2bc1739a916913f1381069e4..9f59aa49cbbfee97f4b9de98e93108f55b615c29 100644
|
| --- a/runtime/vm/intermediate_language_arm64.cc
|
| +++ b/runtime/vm/intermediate_language_arm64.cc
|
| @@ -5462,9 +5462,11 @@ void IndirectGotoInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
|
|
| // Add the offset.
|
| Register offset_reg = locs()->in(0).reg();
|
| - __ add(target_address_reg,
|
| - target_address_reg,
|
| - Operand(offset_reg, ASR, kSmiTagSize));
|
| + Operand offset_opr =
|
| + offset()->definition()->representation() == kTagged ?
|
| + Operand(offset_reg, ASR, kSmiTagSize) :
|
| + Operand(offset_reg);
|
| + __ add(target_address_reg, target_address_reg, offset_opr);
|
|
|
| // Jump to the absolute address.
|
| __ br(target_address_reg);
|
|
|