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 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_X64 | 7 #if V8_TARGET_ARCH_X64 |
8 | 8 |
9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
10 #include "codegen.h" | 10 #include "codegen.h" |
(...skipping 3871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3882 jmp(done, near_jump); | 3882 jmp(done, near_jump); |
3883 } | 3883 } |
3884 } else { | 3884 } else { |
3885 Jump(adaptor, RelocInfo::CODE_TARGET); | 3885 Jump(adaptor, RelocInfo::CODE_TARGET); |
3886 } | 3886 } |
3887 bind(&invoke); | 3887 bind(&invoke); |
3888 } | 3888 } |
3889 } | 3889 } |
3890 | 3890 |
3891 | 3891 |
3892 void MacroAssembler::Prologue(PrologueFrameMode frame_mode) { | 3892 void MacroAssembler::Prologue(CompilationInfo* info) { |
3893 if (frame_mode == BUILD_STUB_FRAME) { | 3893 if (info->IsStub()) { |
3894 pushq(rbp); // Caller's frame pointer. | 3894 pushq(rbp); // Caller's frame pointer. |
3895 movp(rbp, rsp); | 3895 movp(rbp, rsp); |
3896 Push(rsi); // Callee's context. | 3896 Push(rsi); // Callee's context. |
3897 Push(Smi::FromInt(StackFrame::STUB)); | 3897 Push(Smi::FromInt(StackFrame::STUB)); |
3898 } else { | 3898 } else { |
3899 PredictableCodeSizeScope predictible_code_size_scope(this, | 3899 PredictableCodeSizeScope predictible_code_size_scope(this, |
3900 kNoCodeAgeSequenceLength); | 3900 kNoCodeAgeSequenceLength); |
3901 if (isolate()->IsCodePreAgingActive()) { | 3901 if (info->IsCodePreAgingActive()) { |
3902 // Pre-age the code. | 3902 // Pre-age the code. |
3903 Call(isolate()->builtins()->MarkCodeAsExecutedOnce(), | 3903 Call(isolate()->builtins()->MarkCodeAsExecutedOnce(), |
3904 RelocInfo::CODE_AGE_SEQUENCE); | 3904 RelocInfo::CODE_AGE_SEQUENCE); |
3905 Nop(kNoCodeAgeSequenceLength - Assembler::kShortCallInstructionLength); | 3905 Nop(kNoCodeAgeSequenceLength - Assembler::kShortCallInstructionLength); |
3906 } else { | 3906 } else { |
3907 pushq(rbp); // Caller's frame pointer. | 3907 pushq(rbp); // Caller's frame pointer. |
3908 movp(rbp, rsp); | 3908 movp(rbp, rsp); |
3909 Push(rsi); // Callee's context. | 3909 Push(rsi); // Callee's context. |
3910 Push(rdi); // Callee's JS function. | 3910 Push(rdi); // Callee's JS function. |
3911 } | 3911 } |
(...skipping 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5234 if (ms.shift() > 0) sarl(rdx, Immediate(ms.shift())); | 5234 if (ms.shift() > 0) sarl(rdx, Immediate(ms.shift())); |
5235 movl(rax, dividend); | 5235 movl(rax, dividend); |
5236 shrl(rax, Immediate(31)); | 5236 shrl(rax, Immediate(31)); |
5237 addl(rdx, rax); | 5237 addl(rdx, rax); |
5238 } | 5238 } |
5239 | 5239 |
5240 | 5240 |
5241 } } // namespace v8::internal | 5241 } } // namespace v8::internal |
5242 | 5242 |
5243 #endif // V8_TARGET_ARCH_X64 | 5243 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |