OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #if V8_TARGET_ARCH_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 |
6 | 6 |
7 #include "src/arm64/frames-arm64.h" | 7 #include "src/arm64/frames-arm64.h" |
8 #include "src/codegen.h" | 8 #include "src/codegen.h" |
9 #include "src/debug/debug.h" | 9 #include "src/debug/debug.h" |
10 #include "src/deoptimizer.h" | 10 #include "src/deoptimizer.h" |
(...skipping 1070 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1081 | 1081 |
1082 | 1082 |
1083 static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) { | 1083 static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) { |
1084 // Initialize register file register and dispatch table register. | 1084 // Initialize register file register and dispatch table register. |
1085 __ Add(kInterpreterRegisterFileRegister, fp, | 1085 __ Add(kInterpreterRegisterFileRegister, fp, |
1086 Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp)); | 1086 Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp)); |
1087 __ Mov(kInterpreterDispatchTableRegister, | 1087 __ Mov(kInterpreterDispatchTableRegister, |
1088 Operand(ExternalReference::interpreter_dispatch_table_address( | 1088 Operand(ExternalReference::interpreter_dispatch_table_address( |
1089 masm->isolate()))); | 1089 masm->isolate()))); |
1090 | 1090 |
1091 // Get the context from the frame. | |
1092 __ Ldr(kContextRegister, | |
1093 MemOperand(kInterpreterRegisterFileRegister, | |
1094 InterpreterFrameConstants::kContextFromRegisterPointer)); | |
1095 | |
1096 // Get the bytecode array pointer from the frame. | 1091 // Get the bytecode array pointer from the frame. |
1097 __ Ldr( | 1092 __ Ldr( |
1098 kInterpreterBytecodeArrayRegister, | 1093 kInterpreterBytecodeArrayRegister, |
1099 MemOperand(kInterpreterRegisterFileRegister, | 1094 MemOperand(kInterpreterRegisterFileRegister, |
1100 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer)); | 1095 InterpreterFrameConstants::kBytecodeArrayFromRegisterPointer)); |
1101 | 1096 |
1102 if (FLAG_debug_code) { | 1097 if (FLAG_debug_code) { |
1103 // Check function data field is actually a BytecodeArray object. | 1098 // Check function data field is actually a BytecodeArray object. |
1104 __ AssertNotSmi(kInterpreterBytecodeArrayRegister, | 1099 __ AssertNotSmi(kInterpreterBytecodeArrayRegister, |
1105 kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); | 1100 kFunctionDataShouldBeBytecodeArrayOnInterpreterEntry); |
(...skipping 1648 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2754 } | 2749 } |
2755 } | 2750 } |
2756 | 2751 |
2757 | 2752 |
2758 #undef __ | 2753 #undef __ |
2759 | 2754 |
2760 } // namespace internal | 2755 } // namespace internal |
2761 } // namespace v8 | 2756 } // namespace v8 |
2762 | 2757 |
2763 #endif // V8_TARGET_ARCH_ARM | 2758 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |