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 |