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

Side by Side Diff: src/code-stubs.cc

Issue 414443002: Always use the LoadStubCompiler for Load handlers, also for keyedload handlers. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Ensure that LoadIC can be used to compile keyed load ICs with shared load handlers Created 6 years, 5 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 | Annotate | Revision Log
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 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/bootstrapper.h" 7 #include "src/bootstrapper.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/cpu-profiler.h" 9 #include "src/cpu-profiler.h"
10 #include "src/factory.h" 10 #include "src/factory.h"
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after
615 615
616 616
617 void LoadFieldStub::InitializeInterfaceDescriptor( 617 void LoadFieldStub::InitializeInterfaceDescriptor(
618 CodeStubInterfaceDescriptor* descriptor) { 618 CodeStubInterfaceDescriptor* descriptor) {
619 Register registers[] = { InterfaceDescriptor::ContextRegister(), 619 Register registers[] = { InterfaceDescriptor::ContextRegister(),
620 LoadIC::ReceiverRegister() }; 620 LoadIC::ReceiverRegister() };
621 descriptor->Initialize(ARRAY_SIZE(registers), registers); 621 descriptor->Initialize(ARRAY_SIZE(registers), registers);
622 } 622 }
623 623
624 624
625 void KeyedLoadFieldStub::InitializeInterfaceDescriptor(
626 CodeStubInterfaceDescriptor* descriptor) {
627 Register registers[] = { InterfaceDescriptor::ContextRegister(),
628 LoadIC::ReceiverRegister() };
629 descriptor->Initialize(ARRAY_SIZE(registers), registers);
630 }
631
632
633 void StringLengthStub::InitializeInterfaceDescriptor( 625 void StringLengthStub::InitializeInterfaceDescriptor(
634 CodeStubInterfaceDescriptor* descriptor) { 626 CodeStubInterfaceDescriptor* descriptor) {
635 Register registers[] = { InterfaceDescriptor::ContextRegister(), 627 Register registers[] = { InterfaceDescriptor::ContextRegister(),
636 LoadIC::ReceiverRegister(), 628 LoadIC::ReceiverRegister(),
637 LoadIC::NameRegister() }; 629 LoadIC::NameRegister() };
638 descriptor->Initialize(ARRAY_SIZE(registers), registers); 630 descriptor->Initialize(ARRAY_SIZE(registers), registers);
639 } 631 }
640 632
641 633
642 void KeyedStringLengthStub::InitializeInterfaceDescriptor(
643 CodeStubInterfaceDescriptor* descriptor) {
644 Register registers[] = { InterfaceDescriptor::ContextRegister(),
645 LoadIC::ReceiverRegister(),
646 LoadIC::NameRegister() };
647 descriptor->Initialize(ARRAY_SIZE(registers), registers);
648 }
649
650
651 void KeyedStoreFastElementStub::InitializeInterfaceDescriptor( 634 void KeyedStoreFastElementStub::InitializeInterfaceDescriptor(
652 CodeStubInterfaceDescriptor* descriptor) { 635 CodeStubInterfaceDescriptor* descriptor) {
653 Register registers[] = { InterfaceDescriptor::ContextRegister(), 636 Register registers[] = { InterfaceDescriptor::ContextRegister(),
654 KeyedStoreIC::ReceiverRegister(), 637 KeyedStoreIC::ReceiverRegister(),
655 KeyedStoreIC::NameRegister(), 638 KeyedStoreIC::NameRegister(),
656 KeyedStoreIC::ValueRegister() }; 639 KeyedStoreIC::ValueRegister() };
657 descriptor->Initialize( 640 descriptor->Initialize(
658 ARRAY_SIZE(registers), registers, 641 ARRAY_SIZE(registers), registers,
659 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure)); 642 FUNCTION_ADDR(KeyedStoreIC_MissFromStubFailure));
660 } 643 }
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
990 InstallDescriptor(isolate, &stub3); 973 InstallDescriptor(isolate, &stub3);
991 } 974 }
992 975
993 InternalArrayConstructorStub::InternalArrayConstructorStub( 976 InternalArrayConstructorStub::InternalArrayConstructorStub(
994 Isolate* isolate) : PlatformCodeStub(isolate) { 977 Isolate* isolate) : PlatformCodeStub(isolate) {
995 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate); 978 InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
996 } 979 }
997 980
998 981
999 } } // namespace v8::internal 982 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/code-stubs.h ('k') | src/ia32/stub-cache-ia32.cc » ('j') | src/stub-cache.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698