| 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 |