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/code-stubs.h" | 7 #include "src/code-stubs.h" |
8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/bootstrapper.h" | 10 #include "src/bootstrapper.h" |
(...skipping 2914 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2925 __ ldr(r1, MemOperand(fp, parameter_count_offset)); | 2925 __ ldr(r1, MemOperand(fp, parameter_count_offset)); |
2926 if (function_mode() == JS_FUNCTION_STUB_MODE) { | 2926 if (function_mode() == JS_FUNCTION_STUB_MODE) { |
2927 __ add(r1, r1, Operand(1)); | 2927 __ add(r1, r1, Operand(1)); |
2928 } | 2928 } |
2929 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); | 2929 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); |
2930 __ mov(r1, Operand(r1, LSL, kPointerSizeLog2)); | 2930 __ mov(r1, Operand(r1, LSL, kPointerSizeLog2)); |
2931 __ add(sp, sp, r1); | 2931 __ add(sp, sp, r1); |
2932 __ Ret(); | 2932 __ Ret(); |
2933 } | 2933 } |
2934 | 2934 |
2935 void CallICTrampolineStub::Generate(MacroAssembler* masm) { | |
2936 __ EmitLoadTypeFeedbackVector(r2); | |
2937 CallICStub stub(isolate(), state()); | |
2938 __ Jump(stub.GetCode(), RelocInfo::CODE_TARGET); | |
2939 } | |
2940 | |
2941 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { | 2935 void ProfileEntryHookStub::MaybeCallEntryHook(MacroAssembler* masm) { |
2942 if (masm->isolate()->function_entry_hook() != NULL) { | 2936 if (masm->isolate()->function_entry_hook() != NULL) { |
2943 ProfileEntryHookStub stub(masm->isolate()); | 2937 ProfileEntryHookStub stub(masm->isolate()); |
2944 PredictableCodeSizeScope predictable(masm); | 2938 PredictableCodeSizeScope predictable(masm); |
2945 predictable.ExpectSize(masm->CallStubSize(&stub) + | 2939 predictable.ExpectSize(masm->CallStubSize(&stub) + |
2946 2 * Assembler::kInstrSize); | 2940 2 * Assembler::kInstrSize); |
2947 __ push(lr); | 2941 __ push(lr); |
2948 __ CallStub(&stub); | 2942 __ CallStub(&stub); |
2949 __ pop(lr); | 2943 __ pop(lr); |
2950 } | 2944 } |
(...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4093 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, | 4087 CallApiFunctionAndReturn(masm, api_function_address, thunk_ref, |
4094 kStackUnwindSpace, NULL, return_value_operand, NULL); | 4088 kStackUnwindSpace, NULL, return_value_operand, NULL); |
4095 } | 4089 } |
4096 | 4090 |
4097 #undef __ | 4091 #undef __ |
4098 | 4092 |
4099 } // namespace internal | 4093 } // namespace internal |
4100 } // namespace v8 | 4094 } // namespace v8 |
4101 | 4095 |
4102 #endif // V8_TARGET_ARCH_ARM | 4096 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |