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 2964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2975 HeapNumber::kValueOffset - kHeapObjectTag, | 2975 HeapNumber::kValueOffset - kHeapObjectTag, |
2976 true, // is_truncating | 2976 true, // is_truncating |
2977 true); // skip_fastpath | 2977 true); // skip_fastpath |
2978 CallStub(&stub); // DoubleToIStub preserves any registers it needs to clobber | 2978 CallStub(&stub); // DoubleToIStub preserves any registers it needs to clobber |
2979 Pop(lr); | 2979 Pop(lr); |
2980 | 2980 |
2981 Bind(&done); | 2981 Bind(&done); |
2982 } | 2982 } |
2983 | 2983 |
2984 | 2984 |
2985 void MacroAssembler::Prologue(PrologueFrameMode frame_mode) { | 2985 void MacroAssembler::Prologue(CompilationInfo* info) { |
2986 if (frame_mode == BUILD_STUB_FRAME) { | 2986 if (info->IsStub()) { |
2987 ASSERT(StackPointer().Is(jssp)); | 2987 ASSERT(StackPointer().Is(jssp)); |
2988 UseScratchRegisterScope temps(this); | 2988 UseScratchRegisterScope temps(this); |
2989 Register temp = temps.AcquireX(); | 2989 Register temp = temps.AcquireX(); |
2990 __ Mov(temp, Smi::FromInt(StackFrame::STUB)); | 2990 __ Mov(temp, Smi::FromInt(StackFrame::STUB)); |
2991 // Compiled stubs don't age, and so they don't need the predictable code | 2991 // Compiled stubs don't age, and so they don't need the predictable code |
2992 // ageing sequence. | 2992 // ageing sequence. |
2993 __ Push(lr, fp, cp, temp); | 2993 __ Push(lr, fp, cp, temp); |
2994 __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); | 2994 __ Add(fp, jssp, StandardFrameConstants::kFixedFrameSizeFromFp); |
2995 } else { | 2995 } else { |
2996 if (isolate()->IsCodePreAgingActive()) { | 2996 if (info->IsCodePreAgingActive()) { |
2997 Code* stub = Code::GetPreAgedCodeAgeStub(isolate()); | 2997 Code* stub = Code::GetPreAgedCodeAgeStub(isolate()); |
2998 __ EmitCodeAgeSequence(stub); | 2998 __ EmitCodeAgeSequence(stub); |
2999 } else { | 2999 } else { |
3000 __ EmitFrameSetupForCodeAgePatching(); | 3000 __ EmitFrameSetupForCodeAgePatching(); |
3001 } | 3001 } |
3002 } | 3002 } |
3003 } | 3003 } |
3004 | 3004 |
3005 | 3005 |
3006 void MacroAssembler::EnterFrame(StackFrame::Type type) { | 3006 void MacroAssembler::EnterFrame(StackFrame::Type type) { |
(...skipping 2223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5230 } | 5230 } |
5231 } | 5231 } |
5232 | 5232 |
5233 | 5233 |
5234 #undef __ | 5234 #undef __ |
5235 | 5235 |
5236 | 5236 |
5237 } } // namespace v8::internal | 5237 } } // namespace v8::internal |
5238 | 5238 |
5239 #endif // V8_TARGET_ARCH_ARM64 | 5239 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |