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

Side by Side Diff: src/compiler/arm64/code-generator-arm64.cc

Issue 1412443003: [turbofan] Introduce lazy bailout, masked as a call. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Enable test Created 5 years, 2 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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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/compiler/code-generator.h" 5 #include "src/compiler/code-generator.h"
6 6
7 #include "src/arm64/frames-arm64.h" 7 #include "src/arm64/frames-arm64.h"
8 #include "src/arm64/macro-assembler-arm64.h" 8 #include "src/arm64/macro-assembler-arm64.h"
9 #include "src/compiler/code-generator-impl.h" 9 #include "src/compiler/code-generator-impl.h"
10 #include "src/compiler/gap-resolver.h" 10 #include "src/compiler/gap-resolver.h"
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 Register temp = scope.AcquireX(); 470 Register temp = scope.AcquireX();
471 __ Ldr(temp, FieldMemOperand(func, JSFunction::kContextOffset)); 471 __ Ldr(temp, FieldMemOperand(func, JSFunction::kContextOffset));
472 __ cmp(cp, temp); 472 __ cmp(cp, temp);
473 __ Assert(eq, kWrongFunctionContext); 473 __ Assert(eq, kWrongFunctionContext);
474 } 474 }
475 AssembleDeconstructActivationRecord(); 475 AssembleDeconstructActivationRecord();
476 __ Ldr(x10, FieldMemOperand(func, JSFunction::kCodeEntryOffset)); 476 __ Ldr(x10, FieldMemOperand(func, JSFunction::kCodeEntryOffset));
477 __ Jump(x10); 477 __ Jump(x10);
478 break; 478 break;
479 } 479 }
480 case kArchLazyBailout: {
481 EnsureSpaceForLazyDeopt();
482 RecordCallPosition(instr);
483 break;
484 }
480 case kArchPrepareCallCFunction: 485 case kArchPrepareCallCFunction:
481 // We don't need kArchPrepareCallCFunction on arm64 as the instruction 486 // We don't need kArchPrepareCallCFunction on arm64 as the instruction
482 // selector already perform a Claim to reserve space on the stack and 487 // selector already perform a Claim to reserve space on the stack and
483 // guarantee correct alignment of stack pointer. 488 // guarantee correct alignment of stack pointer.
484 UNREACHABLE(); 489 UNREACHABLE();
485 break; 490 break;
486 case kArchCallCFunction: { 491 case kArchCallCFunction: {
487 int const num_parameters = MiscField::decode(instr->opcode()); 492 int const num_parameters = MiscField::decode(instr->opcode());
488 if (instr->InputAt(0)->IsImmediate()) { 493 if (instr->InputAt(0)->IsImmediate()) {
489 ExternalReference ref = i.InputExternalReference(0); 494 ExternalReference ref = i.InputExternalReference(0);
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after
1444 padding_size -= kInstructionSize; 1449 padding_size -= kInstructionSize;
1445 } 1450 }
1446 } 1451 }
1447 } 1452 }
1448 1453
1449 #undef __ 1454 #undef __
1450 1455
1451 } // namespace compiler 1456 } // namespace compiler
1452 } // namespace internal 1457 } // namespace internal
1453 } // namespace v8 1458 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/arm/instruction-selector-arm.cc ('k') | src/compiler/arm64/instruction-selector-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698