| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 StrictModeFlag strict_mode); | 165 StrictModeFlag strict_mode); |
| 166 | 166 |
| 167 // --- | 167 // --- |
| 168 | 168 |
| 169 Handle<Code> ComputeKeyedStoreField(Handle<String> name, | 169 Handle<Code> ComputeKeyedStoreField(Handle<String> name, |
| 170 Handle<JSObject> receiver, | 170 Handle<JSObject> receiver, |
| 171 int field_index, | 171 int field_index, |
| 172 Handle<Map> transition, | 172 Handle<Map> transition, |
| 173 StrictModeFlag strict_mode); | 173 StrictModeFlag strict_mode); |
| 174 | 174 |
| 175 Handle<Code> ComputeKeyedLoadOrStoreElement(Handle<Map> receiver_map, | 175 Handle<Code> ComputeKeyedLoadElement(Handle<Map> receiver_map); |
| 176 KeyedIC::StubKind stub_kind, | 176 |
| 177 StrictModeFlag strict_mode); | 177 Handle<Code> ComputeKeyedStoreElement(Handle<Map> receiver_map, |
| 178 KeyedStoreIC::StubKind stub_kind, |
| 179 StrictModeFlag strict_mode, |
| 180 KeyedAccessGrowMode grow_mode); |
| 178 | 181 |
| 179 // --- | 182 // --- |
| 180 | 183 |
| 181 Handle<Code> ComputeCallField(int argc, | 184 Handle<Code> ComputeCallField(int argc, |
| 182 Code::Kind, | 185 Code::Kind, |
| 183 Code::ExtraICState extra_state, | 186 Code::ExtraICState extra_state, |
| 184 Handle<String> name, | 187 Handle<String> name, |
| 185 Handle<Object> object, | 188 Handle<Object> object, |
| 186 Handle<JSObject> holder, | 189 Handle<JSObject> holder, |
| 187 PropertyIndex index); | 190 PropertyIndex index); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 Handle<Code> ComputeCallArguments(int argc, Code::Kind kind); | 230 Handle<Code> ComputeCallArguments(int argc, Code::Kind kind); |
| 228 | 231 |
| 229 Handle<Code> ComputeCallMegamorphic(int argc, | 232 Handle<Code> ComputeCallMegamorphic(int argc, |
| 230 Code::Kind kind, | 233 Code::Kind kind, |
| 231 Code::ExtraICState state); | 234 Code::ExtraICState state); |
| 232 | 235 |
| 233 Handle<Code> ComputeCallMiss(int argc, | 236 Handle<Code> ComputeCallMiss(int argc, |
| 234 Code::Kind kind, | 237 Code::Kind kind, |
| 235 Code::ExtraICState state); | 238 Code::ExtraICState state); |
| 236 | 239 |
| 240 // --- |
| 241 |
| 242 Handle<Code> ComputeLoadElementPolymorphic(MapHandleList* receiver_maps); |
| 243 Handle<Code> ComputeStoreElementPolymorphic(MapHandleList* receiver_maps, |
| 244 KeyedAccessGrowMode grow_mode, |
| 245 StrictModeFlag strict_mode); |
| 246 |
| 237 // Finds the Code object stored in the Heap::non_monomorphic_cache(). | 247 // Finds the Code object stored in the Heap::non_monomorphic_cache(). |
| 238 Code* FindCallInitialize(int argc, RelocInfo::Mode mode, Code::Kind kind); | 248 Code* FindCallInitialize(int argc, RelocInfo::Mode mode, Code::Kind kind); |
| 239 | 249 |
| 240 #ifdef ENABLE_DEBUGGER_SUPPORT | 250 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 241 Handle<Code> ComputeCallDebugBreak(int argc, Code::Kind kind); | 251 Handle<Code> ComputeCallDebugBreak(int argc, Code::Kind kind); |
| 242 | 252 |
| 243 Handle<Code> ComputeCallDebugPrepareStepIn(int argc, Code::Kind kind); | 253 Handle<Code> ComputeCallDebugPrepareStepIn(int argc, Code::Kind kind); |
| 244 #endif | 254 #endif |
| 245 | 255 |
| 246 // Update cache for entry hash(name, map). | 256 // Update cache for entry hash(name, map). |
| (...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 659 | 669 |
| 660 Handle<Code> CompileLoadInterceptor(Handle<JSObject> object, | 670 Handle<Code> CompileLoadInterceptor(Handle<JSObject> object, |
| 661 Handle<JSObject> holder, | 671 Handle<JSObject> holder, |
| 662 Handle<String> name); | 672 Handle<String> name); |
| 663 | 673 |
| 664 Handle<Code> CompileLoadElement(Handle<Map> receiver_map); | 674 Handle<Code> CompileLoadElement(Handle<Map> receiver_map); |
| 665 | 675 |
| 666 Handle<Code> CompileLoadPolymorphic(MapHandleList* receiver_maps, | 676 Handle<Code> CompileLoadPolymorphic(MapHandleList* receiver_maps, |
| 667 CodeHandleList* handler_ics); | 677 CodeHandleList* handler_ics); |
| 668 | 678 |
| 679 Handle<Code> CompileLoadElementPolymorphic(MapHandleList* receiver_maps); |
| 680 |
| 669 static void GenerateLoadDictionaryElement(MacroAssembler* masm); | 681 static void GenerateLoadDictionaryElement(MacroAssembler* masm); |
| 670 | 682 |
| 671 private: | 683 private: |
| 672 Handle<Code> GetCode(Code::StubType type, | 684 Handle<Code> GetCode(Code::StubType type, |
| 673 Handle<String> name, | 685 Handle<String> name, |
| 674 InlineCacheState state = MONOMORPHIC); | 686 InlineCacheState state = MONOMORPHIC); |
| 675 }; | 687 }; |
| 676 | 688 |
| 677 | 689 |
| 678 class StoreStubCompiler: public StubCompiler { | 690 class StoreStubCompiler: public StubCompiler { |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 726 int index, | 738 int index, |
| 727 Handle<Map> transition, | 739 Handle<Map> transition, |
| 728 Handle<String> name); | 740 Handle<String> name); |
| 729 | 741 |
| 730 Handle<Code> CompileStoreElement(Handle<Map> receiver_map); | 742 Handle<Code> CompileStoreElement(Handle<Map> receiver_map); |
| 731 | 743 |
| 732 Handle<Code> CompileStorePolymorphic(MapHandleList* receiver_maps, | 744 Handle<Code> CompileStorePolymorphic(MapHandleList* receiver_maps, |
| 733 CodeHandleList* handler_stubs, | 745 CodeHandleList* handler_stubs, |
| 734 MapHandleList* transitioned_maps); | 746 MapHandleList* transitioned_maps); |
| 735 | 747 |
| 748 Handle<Code> CompileStoreElementPolymorphic(MapHandleList* receiver_maps); |
| 749 |
| 736 static void GenerateStoreFastElement(MacroAssembler* masm, | 750 static void GenerateStoreFastElement(MacroAssembler* masm, |
| 737 bool is_js_array, | 751 bool is_js_array, |
| 738 ElementsKind element_kind, | 752 ElementsKind element_kind, |
| 739 KeyedAccessGrowMode grow_mode); | 753 KeyedAccessGrowMode grow_mode); |
| 740 | 754 |
| 741 static void GenerateStoreFastDoubleElement(MacroAssembler* masm, | 755 static void GenerateStoreFastDoubleElement(MacroAssembler* masm, |
| 742 bool is_js_array, | 756 bool is_js_array, |
| 743 KeyedAccessGrowMode grow_mode); | 757 KeyedAccessGrowMode grow_mode); |
| 744 | 758 |
| 745 static void GenerateStoreExternalArray(MacroAssembler* masm, | 759 static void GenerateStoreExternalArray(MacroAssembler* masm, |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 912 Handle<JSFunction> constant_function_; | 926 Handle<JSFunction> constant_function_; |
| 913 bool is_simple_api_call_; | 927 bool is_simple_api_call_; |
| 914 Handle<FunctionTemplateInfo> expected_receiver_type_; | 928 Handle<FunctionTemplateInfo> expected_receiver_type_; |
| 915 Handle<CallHandlerInfo> api_call_info_; | 929 Handle<CallHandlerInfo> api_call_info_; |
| 916 }; | 930 }; |
| 917 | 931 |
| 918 | 932 |
| 919 } } // namespace v8::internal | 933 } } // namespace v8::internal |
| 920 | 934 |
| 921 #endif // V8_STUB_CACHE_H_ | 935 #endif // V8_STUB_CACHE_H_ |
| OLD | NEW |