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

Side by Side Diff: src/ic/x64/ic-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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/codegen.h" 7 #include "src/codegen.h"
8 #include "src/ic/ic.h" 8 #include "src/ic/ic.h"
9 #include "src/ic/ic-compiler.h" 9 #include "src/ic/ic-compiler.h"
10 #include "src/ic/stub-cache.h" 10 #include "src/ic/stub-cache.h"
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 Label slow; 626 Label slow;
627 627
628 __ movp(dictionary, FieldOperand(LoadDescriptor::ReceiverRegister(), 628 __ movp(dictionary, FieldOperand(LoadDescriptor::ReceiverRegister(),
629 JSObject::kPropertiesOffset)); 629 JSObject::kPropertiesOffset));
630 GenerateDictionaryLoad(masm, &slow, dictionary, 630 GenerateDictionaryLoad(masm, &slow, dictionary,
631 LoadDescriptor::NameRegister(), rbx, rdi, rax); 631 LoadDescriptor::NameRegister(), rbx, rdi, rax);
632 __ ret(0); 632 __ ret(0);
633 633
634 // Dictionary load failed, go slow (but don't miss). 634 // Dictionary load failed, go slow (but don't miss).
635 __ bind(&slow); 635 __ bind(&slow);
636 LoadIC::GenerateRuntimeGetProperty(masm); 636 GenerateRuntimeGetProperty(masm);
637 } 637 }
638 638
639 639
640 static void LoadIC_PushArgs(MacroAssembler* masm) { 640 static void LoadIC_PushArgs(MacroAssembler* masm) {
641 Register receiver = LoadDescriptor::ReceiverRegister(); 641 Register receiver = LoadDescriptor::ReceiverRegister();
642 Register name = LoadDescriptor::NameRegister(); 642 Register name = LoadDescriptor::NameRegister();
643 Register slot = LoadDescriptor::SlotRegister(); 643 Register slot = LoadDescriptor::SlotRegister();
644 Register vector = LoadWithVectorDescriptor::VectorRegister(); 644 Register vector = LoadWithVectorDescriptor::VectorRegister();
645 DCHECK(!rdi.is(receiver) && !rdi.is(name) && !rdi.is(slot) && 645 DCHECK(!rdi.is(receiver) && !rdi.is(name) && !rdi.is(slot) &&
646 !rdi.is(vector)); 646 !rdi.is(vector));
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 Condition cc = 846 Condition cc =
847 (check == ENABLE_INLINED_SMI_CHECK) 847 (check == ENABLE_INLINED_SMI_CHECK)
848 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero) 848 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero)
849 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry); 849 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry);
850 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); 850 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc);
851 } 851 }
852 } // namespace internal 852 } // namespace internal
853 } // namespace v8 853 } // namespace v8
854 854
855 #endif // V8_TARGET_ARCH_X64 855 #endif // V8_TARGET_ARCH_X64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698