Index: src/arm64/builtins-arm64.cc |
diff --git a/src/arm64/builtins-arm64.cc b/src/arm64/builtins-arm64.cc |
index d84d1a6ae3fd680a31dd7f585ab29980a7a57885..3e4d20c30b1583a322eeeb537a148ca45e307a31 100644 |
--- a/src/arm64/builtins-arm64.cc |
+++ b/src/arm64/builtins-arm64.cc |
@@ -1059,10 +1059,9 @@ void Builtins::Generate_InterpreterEntryTrampoline(MacroAssembler* masm) { |
Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp)); |
__ Mov(kInterpreterBytecodeOffsetRegister, |
Operand(BytecodeArray::kHeaderSize - kHeapObjectTag)); |
- __ LoadRoot(kInterpreterDispatchTableRegister, |
- Heap::kInterpreterTableRootIndex); |
- __ Add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, |
- Operand(FixedArray::kHeaderSize - kHeapObjectTag)); |
+ __ Mov(kInterpreterDispatchTableRegister, |
+ Operand(ExternalReference::interpreter_dispatch_table_address( |
+ masm->isolate()))); |
// Dispatch to the first bytecode handler for the function. |
__ Ldrb(x1, MemOperand(kInterpreterBytecodeArrayRegister, |
@@ -1103,10 +1102,9 @@ static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) { |
// Initialize register file register and dispatch table register. |
__ Add(kInterpreterRegisterFileRegister, fp, |
Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp)); |
- __ LoadRoot(kInterpreterDispatchTableRegister, |
- Heap::kInterpreterTableRootIndex); |
- __ Add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, |
- Operand(FixedArray::kHeaderSize - kHeapObjectTag)); |
+ __ Mov(kInterpreterDispatchTableRegister, |
+ Operand(ExternalReference::interpreter_dispatch_table_address( |
+ masm->isolate()))); |
// Get the context from the frame. |
__ Ldr(kContextRegister, |