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

Side by Side Diff: src/arm64/deoptimizer-arm64.cc

Issue 1696043002: [runtime] Unify and simplify how frames are marked (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix merge problems Created 4 years, 9 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
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 "src/arm64/frames-arm64.h" 5 #include "src/arm64/frames-arm64.h"
6 #include "src/codegen.h" 6 #include "src/codegen.h"
7 #include "src/deoptimizer.h" 7 #include "src/deoptimizer.h"
8 #include "src/full-codegen/full-codegen.h" 8 #include "src/full-codegen/full-codegen.h"
9 #include "src/register-configuration.h" 9 #include "src/register-configuration.h"
10 #include "src/safepoint-table.h" 10 #include "src/safepoint-table.h"
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 Register fp_to_sp = x4; 124 Register fp_to_sp = x4;
125 // Get the address of the location in the code object. This is the return 125 // Get the address of the location in the code object. This is the return
126 // address for lazy deoptimization. 126 // address for lazy deoptimization.
127 __ Mov(code_object, lr); 127 __ Mov(code_object, lr);
128 // Compute the fp-to-sp delta, and correct one word for bailout id. 128 // Compute the fp-to-sp delta, and correct one word for bailout id.
129 __ Add(fp_to_sp, masm()->StackPointer(), 129 __ Add(fp_to_sp, masm()->StackPointer(),
130 kSavedRegistersAreaSize + (1 * kPointerSize)); 130 kSavedRegistersAreaSize + (1 * kPointerSize));
131 __ Sub(fp_to_sp, fp, fp_to_sp); 131 __ Sub(fp_to_sp, fp, fp_to_sp);
132 132
133 // Allocate a new deoptimizer object. 133 // Allocate a new deoptimizer object.
134 __ Mov(x0, 0);
135 Label context_check;
136 __ Ldr(x1, MemOperand(fp, CommonFrameConstants::kContextOrFrameTypeOffset));
137 __ JumpIfSmi(x1, &context_check);
134 __ Ldr(x0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset)); 138 __ Ldr(x0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
139 __ bind(&context_check);
135 __ Mov(x1, type()); 140 __ Mov(x1, type());
136 // Following arguments are already loaded: 141 // Following arguments are already loaded:
137 // - x2: bailout id 142 // - x2: bailout id
138 // - x3: code object address 143 // - x3: code object address
139 // - x4: fp-to-sp delta 144 // - x4: fp-to-sp delta
140 __ Mov(x5, ExternalReference::isolate_address(isolate())); 145 __ Mov(x5, ExternalReference::isolate_address(isolate()));
141 146
142 { 147 {
143 // Call Deoptimizer::New(). 148 // Call Deoptimizer::New().
144 AllowExternalCallThatCantCauseGC scope(masm()); 149 AllowExternalCallThatCantCauseGC scope(masm());
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) { 335 void FrameDescription::SetCallerConstantPool(unsigned offset, intptr_t value) {
331 // No embedded constant pool support. 336 // No embedded constant pool support.
332 UNREACHABLE(); 337 UNREACHABLE();
333 } 338 }
334 339
335 340
336 #undef __ 341 #undef __
337 342
338 } // namespace internal 343 } // namespace internal
339 } // namespace v8 344 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698