| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_ARM | 5 #if V8_TARGET_ARCH_ARM |
| 6 | 6 |
| 7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
| 8 #include "src/debug/debug.h" | 8 #include "src/debug/debug.h" |
| 9 #include "src/deoptimizer.h" | 9 #include "src/deoptimizer.h" |
| 10 #include "src/full-codegen/full-codegen.h" | 10 #include "src/full-codegen/full-codegen.h" |
| (...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1062 static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) { | 1062 static void Generate_EnterBytecodeDispatch(MacroAssembler* masm) { |
| 1063 // Initialize register file register and dispatch table register. | 1063 // Initialize register file register and dispatch table register. |
| 1064 __ add(kInterpreterRegisterFileRegister, fp, | 1064 __ add(kInterpreterRegisterFileRegister, fp, |
| 1065 Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp)); | 1065 Operand(InterpreterFrameConstants::kRegisterFilePointerFromFp)); |
| 1066 __ LoadRoot(kInterpreterDispatchTableRegister, | 1066 __ LoadRoot(kInterpreterDispatchTableRegister, |
| 1067 Heap::kInterpreterTableRootIndex); | 1067 Heap::kInterpreterTableRootIndex); |
| 1068 __ add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, | 1068 __ add(kInterpreterDispatchTableRegister, kInterpreterDispatchTableRegister, |
| 1069 Operand(FixedArray::kHeaderSize - kHeapObjectTag)); | 1069 Operand(FixedArray::kHeaderSize - kHeapObjectTag)); |
| 1070 | 1070 |
| 1071 // Get the context from the frame. | 1071 // Get the context from the frame. |
| 1072 // TODO(rmcilroy): Update interpreter frame to expect current context at the | |
| 1073 // context slot instead of the function context. | |
| 1074 __ ldr(kContextRegister, | 1072 __ ldr(kContextRegister, |
| 1075 MemOperand(kInterpreterRegisterFileRegister, | 1073 MemOperand(kInterpreterRegisterFileRegister, |
| 1076 InterpreterFrameConstants::kContextFromRegisterPointer)); | 1074 InterpreterFrameConstants::kContextFromRegisterPointer)); |
| 1077 | 1075 |
| 1078 // Get the bytecode array pointer from the frame. | 1076 // Get the bytecode array pointer from the frame. |
| 1079 __ ldr(r1, | 1077 __ ldr(r1, |
| 1080 MemOperand(kInterpreterRegisterFileRegister, | 1078 MemOperand(kInterpreterRegisterFileRegister, |
| 1081 InterpreterFrameConstants::kFunctionFromRegisterPointer)); | 1079 InterpreterFrameConstants::kFunctionFromRegisterPointer)); |
| 1082 __ ldr(r1, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); | 1080 __ ldr(r1, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); |
| 1083 __ ldr(kInterpreterBytecodeArrayRegister, | 1081 __ ldr(kInterpreterBytecodeArrayRegister, |
| (...skipping 1385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2469 } | 2467 } |
| 2470 } | 2468 } |
| 2471 | 2469 |
| 2472 | 2470 |
| 2473 #undef __ | 2471 #undef __ |
| 2474 | 2472 |
| 2475 } // namespace internal | 2473 } // namespace internal |
| 2476 } // namespace v8 | 2474 } // namespace v8 |
| 2477 | 2475 |
| 2478 #endif // V8_TARGET_ARCH_ARM | 2476 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |