| 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/code-stubs.h" | 7 #include "src/code-stubs.h" |
| 8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
| 9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 2956 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2967 __ Ldr(x1, MemOperand(fp, parameter_count_offset)); | 2967 __ Ldr(x1, MemOperand(fp, parameter_count_offset)); |
| 2968 if (function_mode() == JS_FUNCTION_STUB_MODE) { | 2968 if (function_mode() == JS_FUNCTION_STUB_MODE) { |
| 2969 __ Add(x1, x1, 1); | 2969 __ Add(x1, x1, 1); |
| 2970 } | 2970 } |
| 2971 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); | 2971 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); |
| 2972 __ Drop(x1); | 2972 __ Drop(x1); |
| 2973 // Return to IC Miss stub, continuation still on stack. | 2973 // Return to IC Miss stub, continuation still on stack. |
| 2974 __ Ret(); | 2974 __ Ret(); |
| 2975 } | 2975 } |
| 2976 | 2976 |
| 2977 void CallICTrampolineStub::Generate(MacroAssembler* masm) { | |
| 2978 __ EmitLoadTypeFeedbackVector(x2); | |
| 2979 CallICStub stub(isolate(), state()); | |
| 2980 __ Jump(stub.GetCode(), RelocInfo::CODE_TARGET); | |
| 2981 } | |
| 2982 | |
| 2983 // The entry hook is a "BumpSystemStackPointer" instruction (sub), followed by | 2977 // The entry hook is a "BumpSystemStackPointer" instruction (sub), followed by |
| 2984 // a "Push lr" instruction, followed by a call. | 2978 // a "Push lr" instruction, followed by a call. |
| 2985 static const unsigned int kProfileEntryHookCallSize = | 2979 static const unsigned int kProfileEntryHookCallSize = |
| 2986 Assembler::kCallSizeWithRelocation + (2 * kInstructionSize); | 2980 Assembler::kCallSizeWithRelocation + (2 * kInstructionSize); |
| 2987 | 2981 |
| 2988 | 2982 |
| 2989 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { | 2983 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { |
| 2990 if (masm->isolate()->function_entry_hook() != NULL) { | 2984 if (masm->isolate()->function_entry_hook() != NULL) { |
| 2991 ProfileEntryHookStub stub(masm->isolate()); | 2985 ProfileEntryHookStub stub(masm->isolate()); |
| 2992 Assembler::BlockConstPoolScope no_const_pools(masm); | 2986 Assembler::BlockConstPoolScope no_const_pools(masm); |
| (...skipping 1485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4478 kStackUnwindSpace, NULL, spill_offset, | 4472 kStackUnwindSpace, NULL, spill_offset, |
| 4479 return_value_operand, NULL); | 4473 return_value_operand, NULL); |
| 4480 } | 4474 } |
| 4481 | 4475 |
| 4482 #undef __ | 4476 #undef __ |
| 4483 | 4477 |
| 4484 } // namespace internal | 4478 } // namespace internal |
| 4485 } // namespace v8 | 4479 } // namespace v8 |
| 4486 | 4480 |
| 4487 #endif // V8_TARGET_ARCH_ARM64 | 4481 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |