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

Side by Side Diff: src/arm64/full-codegen-arm64.cc

Issue 887023003: Always emit bailout id for inlining property access (even for keyed access). (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « src/arm/full-codegen-arm.cc ('k') | src/ia32/full-codegen-ia32.cc » ('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 "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/code-factory.h" 9 #include "src/code-factory.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 2500 matching lines...) Expand 10 before | Expand all | Expand 10 after
2511 if (!expr->IsSuperAccess()) { 2511 if (!expr->IsSuperAccess()) {
2512 VisitForAccumulatorValue(expr->obj()); 2512 VisitForAccumulatorValue(expr->obj());
2513 __ Move(LoadDescriptor::ReceiverRegister(), x0); 2513 __ Move(LoadDescriptor::ReceiverRegister(), x0);
2514 EmitNamedPropertyLoad(expr); 2514 EmitNamedPropertyLoad(expr);
2515 } else { 2515 } else {
2516 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); 2516 VisitForStackValue(expr->obj()->AsSuperReference()->this_var());
2517 EmitLoadHomeObject(expr->obj()->AsSuperReference()); 2517 EmitLoadHomeObject(expr->obj()->AsSuperReference());
2518 __ Push(result_register()); 2518 __ Push(result_register());
2519 EmitNamedSuperPropertyLoad(expr); 2519 EmitNamedSuperPropertyLoad(expr);
2520 } 2520 }
2521 PrepareForBailoutForId(expr->LoadId(), TOS_REG);
2522 context()->Plug(x0);
2523 } else { 2521 } else {
2524 if (!expr->IsSuperAccess()) { 2522 if (!expr->IsSuperAccess()) {
2525 VisitForStackValue(expr->obj()); 2523 VisitForStackValue(expr->obj());
2526 VisitForAccumulatorValue(expr->key()); 2524 VisitForAccumulatorValue(expr->key());
2527 __ Move(LoadDescriptor::NameRegister(), x0); 2525 __ Move(LoadDescriptor::NameRegister(), x0);
2528 __ Pop(LoadDescriptor::ReceiverRegister()); 2526 __ Pop(LoadDescriptor::ReceiverRegister());
2529 EmitKeyedPropertyLoad(expr); 2527 EmitKeyedPropertyLoad(expr);
2530 } else { 2528 } else {
2531 VisitForStackValue(expr->obj()->AsSuperReference()->this_var()); 2529 VisitForStackValue(expr->obj()->AsSuperReference()->this_var());
2532 EmitLoadHomeObject(expr->obj()->AsSuperReference()); 2530 EmitLoadHomeObject(expr->obj()->AsSuperReference());
2533 __ Push(result_register()); 2531 __ Push(result_register());
2534 VisitForStackValue(expr->key()); 2532 VisitForStackValue(expr->key());
2535 EmitKeyedSuperPropertyLoad(expr); 2533 EmitKeyedSuperPropertyLoad(expr);
2536 } 2534 }
2537 context()->Plug(x0);
2538 } 2535 }
2536 PrepareForBailoutForId(expr->LoadId(), TOS_REG);
2537 context()->Plug(x0);
2539 } 2538 }
2540 2539
2541 2540
2542 void FullCodeGenerator::CallIC(Handle<Code> code, 2541 void FullCodeGenerator::CallIC(Handle<Code> code,
2543 TypeFeedbackId ast_id) { 2542 TypeFeedbackId ast_id) {
2544 ic_total_count_++; 2543 ic_total_count_++;
2545 // All calls must have a predictable size in full-codegen code to ensure that 2544 // All calls must have a predictable size in full-codegen code to ensure that
2546 // the debugger can patch them correctly. 2545 // the debugger can patch them correctly.
2547 __ Call(code, RelocInfo::CODE_TARGET, ast_id); 2546 __ Call(code, RelocInfo::CODE_TARGET, ast_id);
2548 } 2547 }
(...skipping 2837 matching lines...) Expand 10 before | Expand all | Expand 10 after
5386 return previous_; 5385 return previous_;
5387 } 5386 }
5388 5387
5389 5388
5390 #undef __ 5389 #undef __
5391 5390
5392 5391
5393 } } // namespace v8::internal 5392 } } // namespace v8::internal
5394 5393
5395 #endif // V8_TARGET_ARCH_ARM64 5394 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm/full-codegen-arm.cc ('k') | src/ia32/full-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698