| 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 989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1000 __ Push(lr, fp, cp, x1); | 1000 __ Push(lr, fp, cp, x1); |
| 1001 __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); | 1001 __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); |
| 1002 | 1002 |
| 1003 // Get the bytecode array from the function object (or from the DebugInfo if | 1003 // Get the bytecode array from the function object (or from the DebugInfo if |
| 1004 // it is present) and load it into kInterpreterBytecodeArrayRegister. | 1004 // it is present) and load it into kInterpreterBytecodeArrayRegister. |
| 1005 __ Ldr(x0, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); | 1005 __ Ldr(x0, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset)); |
| 1006 Register debug_info = kInterpreterBytecodeArrayRegister; | 1006 Register debug_info = kInterpreterBytecodeArrayRegister; |
| 1007 Label load_debug_bytecode_array, bytecode_array_loaded; | 1007 Label load_debug_bytecode_array, bytecode_array_loaded; |
| 1008 DCHECK(!debug_info.is(x0)); | 1008 DCHECK(!debug_info.is(x0)); |
| 1009 __ Ldr(debug_info, FieldMemOperand(x0, SharedFunctionInfo::kDebugInfoOffset)); | 1009 __ Ldr(debug_info, FieldMemOperand(x0, SharedFunctionInfo::kDebugInfoOffset)); |
| 1010 __ Cmp(debug_info, Operand(DebugInfo::uninitialized())); | 1010 __ JumpIfNotSmi(debug_info, &load_debug_bytecode_array); |
| 1011 __ B(ne, &load_debug_bytecode_array); | |
| 1012 __ Ldr(kInterpreterBytecodeArrayRegister, | 1011 __ Ldr(kInterpreterBytecodeArrayRegister, |
| 1013 FieldMemOperand(x0, SharedFunctionInfo::kFunctionDataOffset)); | 1012 FieldMemOperand(x0, SharedFunctionInfo::kFunctionDataOffset)); |
| 1014 __ Bind(&bytecode_array_loaded); | 1013 __ Bind(&bytecode_array_loaded); |
| 1015 | 1014 |
| 1016 // Check whether we should continue to use the interpreter. | 1015 // Check whether we should continue to use the interpreter. |
| 1017 Label switch_to_different_code_kind; | 1016 Label switch_to_different_code_kind; |
| 1018 __ Ldr(x0, FieldMemOperand(x0, SharedFunctionInfo::kCodeOffset)); | 1017 __ Ldr(x0, FieldMemOperand(x0, SharedFunctionInfo::kCodeOffset)); |
| 1019 __ Cmp(x0, Operand(masm->CodeObject())); // Self-reference to this code. | 1018 __ Cmp(x0, Operand(masm->CodeObject())); // Self-reference to this code. |
| 1020 __ B(ne, &switch_to_different_code_kind); | 1019 __ B(ne, &switch_to_different_code_kind); |
| 1021 | 1020 |
| (...skipping 2115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3137 __ Unreachable(); | 3136 __ Unreachable(); |
| 3138 } | 3137 } |
| 3139 } | 3138 } |
| 3140 | 3139 |
| 3141 #undef __ | 3140 #undef __ |
| 3142 | 3141 |
| 3143 } // namespace internal | 3142 } // namespace internal |
| 3144 } // namespace v8 | 3143 } // namespace v8 |
| 3145 | 3144 |
| 3146 #endif // V8_TARGET_ARCH_ARM | 3145 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |