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 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "bootstrapper.h" | 9 #include "bootstrapper.h" |
10 #include "codegen.h" | 10 #include "codegen.h" |
(...skipping 2974 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2985 HeapNumber::kValueOffset - kHeapObjectTag, | 2985 HeapNumber::kValueOffset - kHeapObjectTag, |
2986 true, // is_truncating | 2986 true, // is_truncating |
2987 true); // skip_fastpath | 2987 true); // skip_fastpath |
2988 CallStub(&stub); // DoubleToIStub preserves any registers it needs to clobber | 2988 CallStub(&stub); // DoubleToIStub preserves any registers it needs to clobber |
2989 Pop(lr); | 2989 Pop(lr); |
2990 | 2990 |
2991 Bind(&done); | 2991 Bind(&done); |
2992 } | 2992 } |
2993 | 2993 |
2994 | 2994 |
2995 void MacroAssembler::Prologue(CompilationInfo* info) { | 2995 void MacroAssembler::StubPrologue() { |
2996 if (info->IsStub()) { | 2996 ASSERT(StackPointer().Is(jssp)); |
2997 ASSERT(StackPointer().Is(jssp)); | 2997 UseScratchRegisterScope temps(this); |
2998 UseScratchRegisterScope temps(this); | 2998 Register temp = temps.AcquireX(); |
2999 Register temp = temps.AcquireX(); | 2999 __ Mov(temp, Smi::FromInt(StackFrame::STUB)); |
3000 __ Mov(temp, Smi::FromInt(StackFrame::STUB)); | 3000 // Compiled stubs don't age, and so they don't need the predictable code |
3001 // Compiled stubs don't age, and so they don't need the predictable code | 3001 // ageing sequence. |
3002 // ageing sequence. | 3002 __ Push(lr, fp, cp, temp); |
3003 __ Push(lr, fp, cp, temp); | 3003 __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); |
3004 __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); | 3004 } |
| 3005 |
| 3006 |
| 3007 void MacroAssembler::Prologue(bool code_pre_aging) { |
| 3008 if (code_pre_aging) { |
| 3009 Code* stub = Code::GetPreAgedCodeAgeStub(isolate()); |
| 3010 __ EmitCodeAgeSequence(stub); |
3005 } else { | 3011 } else { |
3006 if (info->IsCodePreAgingActive()) { | 3012 __ EmitFrameSetupForCodeAgePatching(); |
3007 Code* stub = Code::GetPreAgedCodeAgeStub(isolate()); | |
3008 __ EmitCodeAgeSequence(stub); | |
3009 } else { | |
3010 __ EmitFrameSetupForCodeAgePatching(); | |
3011 } | |
3012 } | 3013 } |
3013 } | 3014 } |
3014 | 3015 |
3015 | 3016 |
3016 void MacroAssembler::EnterFrame(StackFrame::Type type) { | 3017 void MacroAssembler::EnterFrame(StackFrame::Type type) { |
3017 ASSERT(jssp.Is(StackPointer())); | 3018 ASSERT(jssp.Is(StackPointer())); |
3018 UseScratchRegisterScope temps(this); | 3019 UseScratchRegisterScope temps(this); |
3019 Register type_reg = temps.AcquireX(); | 3020 Register type_reg = temps.AcquireX(); |
3020 Register code_reg = temps.AcquireX(); | 3021 Register code_reg = temps.AcquireX(); |
3021 | 3022 |
(...skipping 2250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5272 } | 5273 } |
5273 } | 5274 } |
5274 | 5275 |
5275 | 5276 |
5276 #undef __ | 5277 #undef __ |
5277 | 5278 |
5278 | 5279 |
5279 } } // namespace v8::internal | 5280 } } // namespace v8::internal |
5280 | 5281 |
5281 #endif // V8_TARGET_ARCH_ARM64 | 5282 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |