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

Side by Side Diff: src/ic/x64/handler-compiler-x64.cc

Issue 2033423002: [builtins] Turn LoadIC_Miss and LoadIC_Slow builtins to TurboFan code stubs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@load-ic-stub-tf
Patch Set: Created 4 years, 6 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 #if V8_TARGET_ARCH_X64 5 #if V8_TARGET_ARCH_X64
6 6
7 #include "src/ic/handler-compiler.h" 7 #include "src/ic/handler-compiler.h"
8 8
9 #include "src/api-arguments.h" 9 #include "src/api-arguments.h"
10 #include "src/field-type.h" 10 #include "src/field-type.h"
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 541
542 void NamedLoadHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) { 542 void NamedLoadHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) {
543 if (!miss->is_unused()) { 543 if (!miss->is_unused()) {
544 Label success; 544 Label success;
545 __ jmp(&success); 545 __ jmp(&success);
546 __ bind(miss); 546 __ bind(miss);
547 if (IC::ICUseVector(kind())) { 547 if (IC::ICUseVector(kind())) {
548 DCHECK(kind() == Code::LOAD_IC); 548 DCHECK(kind() == Code::LOAD_IC);
549 PopVectorAndSlot(); 549 PopVectorAndSlot();
550 } 550 }
551 TailCallBuiltin(masm(), MissBuiltin(kind())); 551 TailCallMissHandler(masm(), kind());
552 __ bind(&success); 552 __ bind(&success);
553 } 553 }
554 } 554 }
555 555
556 556
557 void NamedStoreHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) { 557 void NamedStoreHandlerCompiler::FrontendFooter(Handle<Name> name, Label* miss) {
558 if (!miss->is_unused()) { 558 if (!miss->is_unused()) {
559 Label success; 559 Label success;
560 __ jmp(&success); 560 __ jmp(&success);
561 GenerateRestoreName(miss, name); 561 GenerateRestoreName(miss, name);
562 if (IC::ICUseVector(kind())) PopVectorAndSlot(); 562 if (IC::ICUseVector(kind())) PopVectorAndSlot();
563 TailCallBuiltin(masm(), MissBuiltin(kind())); 563 TailCallMissHandler(masm(), kind());
564 __ bind(&success); 564 __ bind(&success);
565 } 565 }
566 } 566 }
567 567
568 void NamedLoadHandlerCompiler::GenerateLoadConstant(Handle<Object> value) { 568 void NamedLoadHandlerCompiler::GenerateLoadConstant(Handle<Object> value) {
569 // Return the constant value. 569 // Return the constant value.
570 __ Move(rax, value); 570 __ Move(rax, value);
571 __ ret(0); 571 __ ret(0);
572 } 572 }
573 573
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 // Return the generated code. 716 // Return the generated code.
717 return GetCode(kind(), name); 717 return GetCode(kind(), name);
718 } 718 }
719 719
720 720
721 #undef __ 721 #undef __
722 } // namespace internal 722 } // namespace internal
723 } // namespace v8 723 } // namespace v8
724 724
725 #endif // V8_TARGET_ARCH_X64 725 #endif // V8_TARGET_ARCH_X64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698