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

Side by Side Diff: src/stub-cache.h

Issue 8352003: Handlify upper layers of KeyedLoadIC. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Address comments, rebase. Created 9 years, 2 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/objects.cc ('k') | src/stub-cache.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 Handle<Code> ComputeLoadNormal(); 101 Handle<Code> ComputeLoadNormal();
102 102
103 Handle<Code> ComputeLoadGlobal(Handle<String> name, 103 Handle<Code> ComputeLoadGlobal(Handle<String> name,
104 Handle<JSObject> receiver, 104 Handle<JSObject> receiver,
105 Handle<GlobalObject> holder, 105 Handle<GlobalObject> holder,
106 Handle<JSGlobalPropertyCell> cell, 106 Handle<JSGlobalPropertyCell> cell,
107 bool is_dont_delete); 107 bool is_dont_delete);
108 108
109 // --- 109 // ---
110 110
111 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadField(String* name, 111 Handle<Code> ComputeKeyedLoadField(Handle<String> name,
112 JSObject* receiver, 112 Handle<JSObject> receiver,
113 JSObject* holder, 113 Handle<JSObject> holder,
114 int field_index); 114 int field_index);
115 115
116 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadCallback( 116 Handle<Code> ComputeKeyedLoadCallback(Handle<String> name,
117 String* name, 117 Handle<JSObject> receiver,
118 JSObject* receiver, 118 Handle<JSObject> holder,
119 JSObject* holder, 119 Handle<AccessorInfo> callback);
120 AccessorInfo* callback);
121 120
122 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadConstant( 121 Handle<Code> ComputeKeyedLoadConstant(Handle<String> name,
123 String* name, 122 Handle<JSObject> receiver,
124 JSObject* receiver, 123 Handle<JSObject> holder,
125 JSObject* holder, 124 Handle<Object> value);
126 Object* value);
127 125
128 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadInterceptor( 126 Handle<Code> ComputeKeyedLoadInterceptor(Handle<String> name,
129 String* name, 127 Handle<JSObject> receiver,
130 JSObject* receiver, 128 Handle<JSObject> holder);
131 JSObject* holder);
132 129
133 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadArrayLength( 130 Handle<Code> ComputeKeyedLoadArrayLength(Handle<String> name,
134 String* name, 131 Handle<JSArray> receiver);
135 JSArray* receiver);
136 132
137 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadStringLength( 133 Handle<Code> ComputeKeyedLoadStringLength(Handle<String> name,
138 String* name, 134 Handle<String> receiver);
139 String* receiver);
140 135
141 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadFunctionPrototype( 136 Handle<Code> ComputeKeyedLoadFunctionPrototype(Handle<String> name,
142 String* name, 137 Handle<JSFunction> receiver);
143 JSFunction* receiver);
144 138
145 // --- 139 // ---
146 140
147 Handle<Code> ComputeStoreField(Handle<String> name, 141 Handle<Code> ComputeStoreField(Handle<String> name,
148 Handle<JSObject> receiver, 142 Handle<JSObject> receiver,
149 int field_index, 143 int field_index,
150 Handle<Map> transition, 144 Handle<Map> transition,
151 StrictModeFlag strict_mode); 145 StrictModeFlag strict_mode);
152 146
153 Handle<Code> ComputeStoreNormal(StrictModeFlag strict_mode); 147 Handle<Code> ComputeStoreNormal(StrictModeFlag strict_mode);
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 bool is_dont_delete); 625 bool is_dont_delete);
632 626
633 private: 627 private:
634 MUST_USE_RESULT MaybeObject* GetCode(PropertyType type, String* name); 628 MUST_USE_RESULT MaybeObject* GetCode(PropertyType type, String* name);
635 }; 629 };
636 630
637 631
638 class KeyedLoadStubCompiler: public StubCompiler { 632 class KeyedLoadStubCompiler: public StubCompiler {
639 public: 633 public:
640 explicit KeyedLoadStubCompiler(Isolate* isolate) : StubCompiler(isolate) { } 634 explicit KeyedLoadStubCompiler(Isolate* isolate) : StubCompiler(isolate) { }
635
636 Handle<Code> CompileLoadField(Handle<String> name,
637 Handle<JSObject> object,
638 Handle<JSObject> holder,
639 int index);
640
641 MUST_USE_RESULT MaybeObject* CompileLoadField(String* name, 641 MUST_USE_RESULT MaybeObject* CompileLoadField(String* name,
642 JSObject* object, 642 JSObject* object,
643 JSObject* holder, 643 JSObject* holder,
644 int index); 644 int index);
645 645
646 Handle<Code> CompileLoadCallback(Handle<String> name,
647 Handle<JSObject> object,
648 Handle<JSObject> holder,
649 Handle<AccessorInfo> callback);
650
646 MUST_USE_RESULT MaybeObject* CompileLoadCallback(String* name, 651 MUST_USE_RESULT MaybeObject* CompileLoadCallback(String* name,
647 JSObject* object, 652 JSObject* object,
648 JSObject* holder, 653 JSObject* holder,
649 AccessorInfo* callback); 654 AccessorInfo* callback);
650 655
656 Handle<Code> CompileLoadConstant(Handle<String> name,
657 Handle<JSObject> object,
658 Handle<JSObject> holder,
659 Handle<Object> value);
660
651 MUST_USE_RESULT MaybeObject* CompileLoadConstant(String* name, 661 MUST_USE_RESULT MaybeObject* CompileLoadConstant(String* name,
652 JSObject* object, 662 JSObject* object,
653 JSObject* holder, 663 JSObject* holder,
654 Object* value); 664 Object* value);
655 665
666 Handle<Code> CompileLoadInterceptor(Handle<JSObject> object,
667 Handle<JSObject> holder,
668 Handle<String> name);
669
656 MUST_USE_RESULT MaybeObject* CompileLoadInterceptor(JSObject* object, 670 MUST_USE_RESULT MaybeObject* CompileLoadInterceptor(JSObject* object,
657 JSObject* holder, 671 JSObject* holder,
658 String* name); 672 String* name);
659 673
674 Handle<Code> CompileLoadArrayLength(Handle<String> name);
675
660 MUST_USE_RESULT MaybeObject* CompileLoadArrayLength(String* name); 676 MUST_USE_RESULT MaybeObject* CompileLoadArrayLength(String* name);
677
678 Handle<Code> CompileLoadStringLength(Handle<String> name);
679
661 MUST_USE_RESULT MaybeObject* CompileLoadStringLength(String* name); 680 MUST_USE_RESULT MaybeObject* CompileLoadStringLength(String* name);
681
682 Handle<Code> CompileLoadFunctionPrototype(Handle<String> name);
683
662 MUST_USE_RESULT MaybeObject* CompileLoadFunctionPrototype(String* name); 684 MUST_USE_RESULT MaybeObject* CompileLoadFunctionPrototype(String* name);
663 685
664 MUST_USE_RESULT MaybeObject* CompileLoadElement(Map* receiver_map); 686 MUST_USE_RESULT MaybeObject* CompileLoadElement(Map* receiver_map);
665 687
666 MUST_USE_RESULT MaybeObject* CompileLoadPolymorphic( 688 MUST_USE_RESULT MaybeObject* CompileLoadPolymorphic(
667 MapList* receiver_maps, 689 MapList* receiver_maps,
668 CodeList* handler_ics); 690 CodeList* handler_ics);
669 691
670 static void GenerateLoadExternalArray(MacroAssembler* masm, 692 static void GenerateLoadExternalArray(MacroAssembler* masm,
671 ElementsKind elements_kind); 693 ElementsKind elements_kind);
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
930 JSFunction* constant_function_; 952 JSFunction* constant_function_;
931 bool is_simple_api_call_; 953 bool is_simple_api_call_;
932 FunctionTemplateInfo* expected_receiver_type_; 954 FunctionTemplateInfo* expected_receiver_type_;
933 CallHandlerInfo* api_call_info_; 955 CallHandlerInfo* api_call_info_;
934 }; 956 };
935 957
936 958
937 } } // namespace v8::internal 959 } } // namespace v8::internal
938 960
939 #endif // V8_STUB_CACHE_H_ 961 #endif // V8_STUB_CACHE_H_
OLDNEW
« no previous file with comments | « src/objects.cc ('k') | src/stub-cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698