OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 JSFunction* receiver); | 131 JSFunction* receiver); |
132 | 132 |
133 MUST_USE_RESULT static MaybeObject* ComputeKeyedLoadSpecialized( | 133 MUST_USE_RESULT static MaybeObject* ComputeKeyedLoadSpecialized( |
134 JSObject* receiver); | 134 JSObject* receiver); |
135 | 135 |
136 MUST_USE_RESULT static MaybeObject* ComputeKeyedLoadPixelArray( | 136 MUST_USE_RESULT static MaybeObject* ComputeKeyedLoadPixelArray( |
137 JSObject* receiver); | 137 JSObject* receiver); |
138 | 138 |
139 // --- | 139 // --- |
140 | 140 |
141 MUST_USE_RESULT static MaybeObject* ComputeStoreField(String* name, | 141 MUST_USE_RESULT static MaybeObject* ComputeStoreField( |
142 JSObject* receiver, | 142 String* name, |
143 int field_index, | 143 JSObject* receiver, |
144 Map* transition = NULL); | 144 int field_index, |
| 145 Map* transition, |
| 146 Code::ExtraICState extra_ic_state); |
145 | 147 |
146 MUST_USE_RESULT static MaybeObject* ComputeStoreNormal(); | 148 MUST_USE_RESULT static MaybeObject* ComputeStoreNormal( |
| 149 Code::ExtraICState extra_ic_state); |
147 | 150 |
148 MUST_USE_RESULT static MaybeObject* ComputeStoreGlobal( | 151 MUST_USE_RESULT static MaybeObject* ComputeStoreGlobal( |
149 String* name, | 152 String* name, |
150 GlobalObject* receiver, | 153 GlobalObject* receiver, |
151 JSGlobalPropertyCell* cell); | 154 JSGlobalPropertyCell* cell, |
| 155 Code::ExtraICState extra_ic_state); |
152 | 156 |
153 MUST_USE_RESULT static MaybeObject* ComputeStoreCallback( | 157 MUST_USE_RESULT static MaybeObject* ComputeStoreCallback( |
154 String* name, | 158 String* name, |
155 JSObject* receiver, | 159 JSObject* receiver, |
156 AccessorInfo* callback); | 160 AccessorInfo* callback, |
| 161 Code::ExtraICState extra_ic_state); |
157 | 162 |
158 MUST_USE_RESULT static MaybeObject* ComputeStoreInterceptor( | 163 MUST_USE_RESULT static MaybeObject* ComputeStoreInterceptor( |
159 String* name, | 164 String* name, |
160 JSObject* receiver); | 165 JSObject* receiver, |
| 166 Code::ExtraICState extra_ic_state); |
161 | 167 |
162 // --- | 168 // --- |
163 | 169 |
164 MUST_USE_RESULT static MaybeObject* ComputeKeyedStoreField( | 170 MUST_USE_RESULT static MaybeObject* ComputeKeyedStoreField( |
165 String* name, | 171 String* name, |
166 JSObject* receiver, | 172 JSObject* receiver, |
167 int field_index, | 173 int field_index, |
168 Map* transition = NULL); | 174 Map* transition = NULL); |
169 | 175 |
170 MUST_USE_RESULT static MaybeObject* ComputeKeyedStoreSpecialized( | 176 MUST_USE_RESULT static MaybeObject* ComputeKeyedStoreSpecialized( |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
612 MUST_USE_RESULT MaybeObject* CompileLoadSpecialized(JSObject* receiver); | 618 MUST_USE_RESULT MaybeObject* CompileLoadSpecialized(JSObject* receiver); |
613 MUST_USE_RESULT MaybeObject* CompileLoadPixelArray(JSObject* receiver); | 619 MUST_USE_RESULT MaybeObject* CompileLoadPixelArray(JSObject* receiver); |
614 | 620 |
615 private: | 621 private: |
616 MaybeObject* GetCode(PropertyType type, String* name); | 622 MaybeObject* GetCode(PropertyType type, String* name); |
617 }; | 623 }; |
618 | 624 |
619 | 625 |
620 class StoreStubCompiler: public StubCompiler { | 626 class StoreStubCompiler: public StubCompiler { |
621 public: | 627 public: |
| 628 StoreStubCompiler(Code::ExtraICState extra_ic_state) |
| 629 : extra_ic_state_(extra_ic_state) { } |
| 630 |
622 MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object, | 631 MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object, |
623 int index, | 632 int index, |
624 Map* transition, | 633 Map* transition, |
625 String* name); | 634 String* name); |
626 | 635 |
627 MUST_USE_RESULT MaybeObject* CompileStoreCallback(JSObject* object, | 636 MUST_USE_RESULT MaybeObject* CompileStoreCallback(JSObject* object, |
628 AccessorInfo* callbacks, | 637 AccessorInfo* callbacks, |
629 String* name); | 638 String* name); |
630 MUST_USE_RESULT MaybeObject* CompileStoreInterceptor(JSObject* object, | 639 MUST_USE_RESULT MaybeObject* CompileStoreInterceptor(JSObject* object, |
631 String* name); | 640 String* name); |
632 MUST_USE_RESULT MaybeObject* CompileStoreGlobal(GlobalObject* object, | 641 MUST_USE_RESULT MaybeObject* CompileStoreGlobal(GlobalObject* object, |
633 JSGlobalPropertyCell* holder, | 642 JSGlobalPropertyCell* holder, |
634 String* name); | 643 String* name); |
635 | 644 |
636 | 645 |
637 private: | 646 private: |
638 MaybeObject* GetCode(PropertyType type, String* name); | 647 MaybeObject* GetCode(PropertyType type, String* name); |
| 648 |
| 649 Code::ExtraICState extra_ic_state_; |
639 }; | 650 }; |
640 | 651 |
641 | 652 |
642 class KeyedStoreStubCompiler: public StubCompiler { | 653 class KeyedStoreStubCompiler: public StubCompiler { |
643 public: | 654 public: |
644 MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object, | 655 MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object, |
645 int index, | 656 int index, |
646 Map* transition, | 657 Map* transition, |
647 String* name); | 658 String* name); |
648 | 659 |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
815 MUST_USE_RESULT MaybeObject* CompileKeyedStoreStub( | 826 MUST_USE_RESULT MaybeObject* CompileKeyedStoreStub( |
816 ExternalArrayType array_type, Code::Flags flags); | 827 ExternalArrayType array_type, Code::Flags flags); |
817 | 828 |
818 private: | 829 private: |
819 MaybeObject* GetCode(Code::Flags flags); | 830 MaybeObject* GetCode(Code::Flags flags); |
820 }; | 831 }; |
821 | 832 |
822 } } // namespace v8::internal | 833 } } // namespace v8::internal |
823 | 834 |
824 #endif // V8_STUB_CACHE_H_ | 835 #endif // V8_STUB_CACHE_H_ |
OLD | NEW |