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

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

Issue 575373004: Convert KeyedLoad indexed interceptor case to a Handler. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE and ports. Created 6 years, 3 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
« no previous file with comments | « src/builtins.cc ('k') | src/ia32/code-stubs-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 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 #ifndef V8_CODE_STUBS_H_ 5 #ifndef V8_CODE_STUBS_H_
6 #define V8_CODE_STUBS_H_ 6 #define V8_CODE_STUBS_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/assembler.h" 9 #include "src/assembler.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 20 matching lines...) Expand all
31 V(CallIC_Array) \ 31 V(CallIC_Array) \
32 V(CEntry) \ 32 V(CEntry) \
33 V(CompareIC) \ 33 V(CompareIC) \
34 V(DoubleToI) \ 34 V(DoubleToI) \
35 V(FunctionPrototype) \ 35 V(FunctionPrototype) \
36 V(Instanceof) \ 36 V(Instanceof) \
37 V(InternalArrayConstructor) \ 37 V(InternalArrayConstructor) \
38 V(JSEntry) \ 38 V(JSEntry) \
39 V(KeyedLoadICTrampoline) \ 39 V(KeyedLoadICTrampoline) \
40 V(LoadICTrampoline) \ 40 V(LoadICTrampoline) \
41 V(LoadIndexedInterceptor) \
41 V(MathPow) \ 42 V(MathPow) \
42 V(ProfileEntryHook) \ 43 V(ProfileEntryHook) \
43 V(RecordWrite) \ 44 V(RecordWrite) \
44 V(RegExpExec) \ 45 V(RegExpExec) \
45 V(StoreArrayLiteralElement) \ 46 V(StoreArrayLiteralElement) \
46 V(StoreBufferOverflow) \ 47 V(StoreBufferOverflow) \
47 V(StoreElement) \ 48 V(StoreElement) \
48 V(StringCompare) \ 49 V(StringCompare) \
49 V(StubFailureTrampoline) \ 50 V(StubFailureTrampoline) \
50 V(SubString) \ 51 V(SubString) \
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 virtual Code::Kind GetCodeKind() const { return Code::HANDLER; } 851 virtual Code::Kind GetCodeKind() const { return Code::HANDLER; }
851 852
852 // TODO(mvstanton): only the receiver register is accessed. When this is 853 // TODO(mvstanton): only the receiver register is accessed. When this is
853 // translated to a hydrogen code stub, a new CallInterfaceDescriptor 854 // translated to a hydrogen code stub, a new CallInterfaceDescriptor
854 // should be created that just uses that register for more efficient code. 855 // should be created that just uses that register for more efficient code.
855 DEFINE_CALL_INTERFACE_DESCRIPTOR(Load); 856 DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
856 DEFINE_PLATFORM_CODE_STUB(FunctionPrototype, PlatformCodeStub); 857 DEFINE_PLATFORM_CODE_STUB(FunctionPrototype, PlatformCodeStub);
857 }; 858 };
858 859
859 860
861 // TODO(mvstanton): Translate to hydrogen code stub.
862 class LoadIndexedInterceptorStub : public PlatformCodeStub {
863 public:
864 explicit LoadIndexedInterceptorStub(Isolate* isolate)
865 : PlatformCodeStub(isolate) {}
866
867 virtual Code::Kind GetCodeKind() const { return Code::HANDLER; }
868 virtual Code::StubType GetStubType() { return Code::FAST; }
869
870 DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
871 DEFINE_PLATFORM_CODE_STUB(LoadIndexedInterceptor, PlatformCodeStub);
872 };
873
874
860 class HandlerStub : public HydrogenCodeStub { 875 class HandlerStub : public HydrogenCodeStub {
861 public: 876 public:
862 virtual Code::Kind GetCodeKind() const { return Code::HANDLER; } 877 virtual Code::Kind GetCodeKind() const { return Code::HANDLER; }
863 virtual ExtraICState GetExtraICState() const { return kind(); } 878 virtual ExtraICState GetExtraICState() const { return kind(); }
864 virtual InlineCacheState GetICState() const { return MONOMORPHIC; } 879 virtual InlineCacheState GetICState() const { return MONOMORPHIC; }
865 880
866 virtual void InitializeDescriptor(CodeStubDescriptor* descriptor) OVERRIDE; 881 virtual void InitializeDescriptor(CodeStubDescriptor* descriptor) OVERRIDE;
867 882
868 virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE; 883 virtual CallInterfaceDescriptor GetCallInterfaceDescriptor() OVERRIDE;
869 884
(...skipping 1528 matching lines...) Expand 10 before | Expand all | Expand 10 after
2398 2413
2399 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR 2414 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR
2400 #undef DEFINE_PLATFORM_CODE_STUB 2415 #undef DEFINE_PLATFORM_CODE_STUB
2401 #undef DEFINE_HANDLER_CODE_STUB 2416 #undef DEFINE_HANDLER_CODE_STUB
2402 #undef DEFINE_HYDROGEN_CODE_STUB 2417 #undef DEFINE_HYDROGEN_CODE_STUB
2403 #undef DEFINE_CODE_STUB 2418 #undef DEFINE_CODE_STUB
2404 #undef DEFINE_CODE_STUB_BASE 2419 #undef DEFINE_CODE_STUB_BASE
2405 } } // namespace v8::internal 2420 } } // namespace v8::internal
2406 2421
2407 #endif // V8_CODE_STUBS_H_ 2422 #endif // V8_CODE_STUBS_H_
OLDNEW
« no previous file with comments | « src/builtins.cc ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698