Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: src/arm64/macro-assembler-arm64.cc

Issue 288213002: Refactor MacroAssembler::Prologue. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: addressed comment Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm64/macro-assembler-arm64.h ('k') | src/full-codegen.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « src/arm64/macro-assembler-arm64.h ('k') | src/full-codegen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698