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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 | 77 |
78 // Computes the right stub matching. Inserts the result in the | 78 // Computes the right stub matching. Inserts the result in the |
79 // cache before returning. This might compile a stub if needed. | 79 // cache before returning. This might compile a stub if needed. |
80 Handle<Code> ComputeLoadNonexistent(Handle<String> name, | 80 Handle<Code> ComputeLoadNonexistent(Handle<String> name, |
81 Handle<JSObject> receiver); | 81 Handle<JSObject> receiver); |
82 | 82 |
83 Handle<Code> ComputeLoadField(Handle<String> name, | 83 Handle<Code> ComputeLoadField(Handle<String> name, |
84 Handle<JSObject> receiver, | 84 Handle<JSObject> receiver, |
85 Handle<JSObject> holder, | 85 Handle<JSObject> holder, |
86 int field_index); | 86 PropertyIndex field_index); |
87 | 87 |
88 Handle<Code> ComputeLoadCallback(Handle<String> name, | 88 Handle<Code> ComputeLoadCallback(Handle<String> name, |
89 Handle<JSObject> receiver, | 89 Handle<JSObject> receiver, |
90 Handle<JSObject> holder, | 90 Handle<JSObject> holder, |
91 Handle<AccessorInfo> callback); | 91 Handle<AccessorInfo> callback); |
92 | 92 |
93 Handle<Code> ComputeLoadViaGetter(Handle<String> name, | 93 Handle<Code> ComputeLoadViaGetter(Handle<String> name, |
94 Handle<JSObject> receiver, | 94 Handle<JSObject> receiver, |
95 Handle<JSObject> holder, | 95 Handle<JSObject> holder, |
96 Handle<JSFunction> getter); | 96 Handle<JSFunction> getter); |
(...skipping 13 matching lines...) Expand all Loading... |
110 Handle<JSObject> receiver, | 110 Handle<JSObject> receiver, |
111 Handle<GlobalObject> holder, | 111 Handle<GlobalObject> holder, |
112 Handle<JSGlobalPropertyCell> cell, | 112 Handle<JSGlobalPropertyCell> cell, |
113 bool is_dont_delete); | 113 bool is_dont_delete); |
114 | 114 |
115 // --- | 115 // --- |
116 | 116 |
117 Handle<Code> ComputeKeyedLoadField(Handle<String> name, | 117 Handle<Code> ComputeKeyedLoadField(Handle<String> name, |
118 Handle<JSObject> receiver, | 118 Handle<JSObject> receiver, |
119 Handle<JSObject> holder, | 119 Handle<JSObject> holder, |
120 int field_index); | 120 PropertyIndex field_index); |
121 | 121 |
122 Handle<Code> ComputeKeyedLoadCallback(Handle<String> name, | 122 Handle<Code> ComputeKeyedLoadCallback(Handle<String> name, |
123 Handle<JSObject> receiver, | 123 Handle<JSObject> receiver, |
124 Handle<JSObject> holder, | 124 Handle<JSObject> holder, |
125 Handle<AccessorInfo> callback); | 125 Handle<AccessorInfo> callback); |
126 | 126 |
127 Handle<Code> ComputeKeyedLoadConstant(Handle<String> name, | 127 Handle<Code> ComputeKeyedLoadConstant(Handle<String> name, |
128 Handle<JSObject> receiver, | 128 Handle<JSObject> receiver, |
129 Handle<JSObject> holder, | 129 Handle<JSObject> holder, |
130 Handle<JSFunction> value); | 130 Handle<JSFunction> value); |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 StrictModeFlag strict_mode); | 186 StrictModeFlag strict_mode); |
187 | 187 |
188 // --- | 188 // --- |
189 | 189 |
190 Handle<Code> ComputeCallField(int argc, | 190 Handle<Code> ComputeCallField(int argc, |
191 Code::Kind, | 191 Code::Kind, |
192 Code::ExtraICState extra_state, | 192 Code::ExtraICState extra_state, |
193 Handle<String> name, | 193 Handle<String> name, |
194 Handle<Object> object, | 194 Handle<Object> object, |
195 Handle<JSObject> holder, | 195 Handle<JSObject> holder, |
196 int index); | 196 PropertyIndex index); |
197 | 197 |
198 Handle<Code> ComputeCallConstant(int argc, | 198 Handle<Code> ComputeCallConstant(int argc, |
199 Code::Kind, | 199 Code::Kind, |
200 Code::ExtraICState extra_state, | 200 Code::ExtraICState extra_state, |
201 Handle<String> name, | 201 Handle<String> name, |
202 Handle<Object> object, | 202 Handle<Object> object, |
203 Handle<JSObject> holder, | 203 Handle<JSObject> holder, |
204 Handle<JSFunction> function); | 204 Handle<JSFunction> function); |
205 | 205 |
206 Handle<Code> ComputeCallInterceptor(int argc, | 206 Handle<Code> ComputeCallInterceptor(int argc, |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 // objects from a context. | 446 // objects from a context. |
447 static void GenerateDirectLoadGlobalFunctionPrototype(MacroAssembler* masm, | 447 static void GenerateDirectLoadGlobalFunctionPrototype(MacroAssembler* masm, |
448 int index, | 448 int index, |
449 Register prototype, | 449 Register prototype, |
450 Label* miss); | 450 Label* miss); |
451 | 451 |
452 static void GenerateFastPropertyLoad(MacroAssembler* masm, | 452 static void GenerateFastPropertyLoad(MacroAssembler* masm, |
453 Register dst, | 453 Register dst, |
454 Register src, | 454 Register src, |
455 Handle<JSObject> holder, | 455 Handle<JSObject> holder, |
456 int index); | 456 PropertyIndex index); |
457 | 457 |
458 static void GenerateLoadArrayLength(MacroAssembler* masm, | 458 static void GenerateLoadArrayLength(MacroAssembler* masm, |
459 Register receiver, | 459 Register receiver, |
460 Register scratch, | 460 Register scratch, |
461 Label* miss_label); | 461 Label* miss_label); |
462 | 462 |
463 static void GenerateLoadStringLength(MacroAssembler* masm, | 463 static void GenerateLoadStringLength(MacroAssembler* masm, |
464 Register receiver, | 464 Register receiver, |
465 Register scratch1, | 465 Register scratch1, |
466 Register scratch2, | 466 Register scratch2, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
533 | 533 |
534 MacroAssembler* masm() { return &masm_; } | 534 MacroAssembler* masm() { return &masm_; } |
535 void set_failure(Failure* failure) { failure_ = failure; } | 535 void set_failure(Failure* failure) { failure_ = failure; } |
536 | 536 |
537 void GenerateLoadField(Handle<JSObject> object, | 537 void GenerateLoadField(Handle<JSObject> object, |
538 Handle<JSObject> holder, | 538 Handle<JSObject> holder, |
539 Register receiver, | 539 Register receiver, |
540 Register scratch1, | 540 Register scratch1, |
541 Register scratch2, | 541 Register scratch2, |
542 Register scratch3, | 542 Register scratch3, |
543 int index, | 543 PropertyIndex index, |
544 Handle<String> name, | 544 Handle<String> name, |
545 Label* miss); | 545 Label* miss); |
546 | 546 |
547 void GenerateLoadCallback(Handle<JSObject> object, | 547 void GenerateLoadCallback(Handle<JSObject> object, |
548 Handle<JSObject> holder, | 548 Handle<JSObject> holder, |
549 Register receiver, | 549 Register receiver, |
550 Register name_reg, | 550 Register name_reg, |
551 Register scratch1, | 551 Register scratch1, |
552 Register scratch2, | 552 Register scratch2, |
553 Register scratch3, | 553 Register scratch3, |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
604 class LoadStubCompiler: public StubCompiler { | 604 class LoadStubCompiler: public StubCompiler { |
605 public: | 605 public: |
606 explicit LoadStubCompiler(Isolate* isolate) : StubCompiler(isolate) { } | 606 explicit LoadStubCompiler(Isolate* isolate) : StubCompiler(isolate) { } |
607 | 607 |
608 Handle<Code> CompileLoadNonexistent(Handle<String> name, | 608 Handle<Code> CompileLoadNonexistent(Handle<String> name, |
609 Handle<JSObject> object, | 609 Handle<JSObject> object, |
610 Handle<JSObject> last); | 610 Handle<JSObject> last); |
611 | 611 |
612 Handle<Code> CompileLoadField(Handle<JSObject> object, | 612 Handle<Code> CompileLoadField(Handle<JSObject> object, |
613 Handle<JSObject> holder, | 613 Handle<JSObject> holder, |
614 int index, | 614 PropertyIndex index, |
615 Handle<String> name); | 615 Handle<String> name); |
616 | 616 |
617 Handle<Code> CompileLoadCallback(Handle<String> name, | 617 Handle<Code> CompileLoadCallback(Handle<String> name, |
618 Handle<JSObject> object, | 618 Handle<JSObject> object, |
619 Handle<JSObject> holder, | 619 Handle<JSObject> holder, |
620 Handle<AccessorInfo> callback); | 620 Handle<AccessorInfo> callback); |
621 | 621 |
622 static void GenerateLoadViaGetter(MacroAssembler* masm, | 622 static void GenerateLoadViaGetter(MacroAssembler* masm, |
623 Handle<JSFunction> getter); | 623 Handle<JSFunction> getter); |
624 | 624 |
(...skipping 22 matching lines...) Expand all Loading... |
647 }; | 647 }; |
648 | 648 |
649 | 649 |
650 class KeyedLoadStubCompiler: public StubCompiler { | 650 class KeyedLoadStubCompiler: public StubCompiler { |
651 public: | 651 public: |
652 explicit KeyedLoadStubCompiler(Isolate* isolate) : StubCompiler(isolate) { } | 652 explicit KeyedLoadStubCompiler(Isolate* isolate) : StubCompiler(isolate) { } |
653 | 653 |
654 Handle<Code> CompileLoadField(Handle<String> name, | 654 Handle<Code> CompileLoadField(Handle<String> name, |
655 Handle<JSObject> object, | 655 Handle<JSObject> object, |
656 Handle<JSObject> holder, | 656 Handle<JSObject> holder, |
657 int index); | 657 PropertyIndex index); |
658 | 658 |
659 Handle<Code> CompileLoadCallback(Handle<String> name, | 659 Handle<Code> CompileLoadCallback(Handle<String> name, |
660 Handle<JSObject> object, | 660 Handle<JSObject> object, |
661 Handle<JSObject> holder, | 661 Handle<JSObject> holder, |
662 Handle<AccessorInfo> callback); | 662 Handle<AccessorInfo> callback); |
663 | 663 |
664 Handle<Code> CompileLoadConstant(Handle<String> name, | 664 Handle<Code> CompileLoadConstant(Handle<String> name, |
665 Handle<JSObject> object, | 665 Handle<JSObject> object, |
666 Handle<JSObject> holder, | 666 Handle<JSObject> holder, |
667 Handle<JSFunction> value); | 667 Handle<JSFunction> value); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 class CallStubCompiler: public StubCompiler { | 796 class CallStubCompiler: public StubCompiler { |
797 public: | 797 public: |
798 CallStubCompiler(Isolate* isolate, | 798 CallStubCompiler(Isolate* isolate, |
799 int argc, | 799 int argc, |
800 Code::Kind kind, | 800 Code::Kind kind, |
801 Code::ExtraICState extra_state, | 801 Code::ExtraICState extra_state, |
802 InlineCacheHolderFlag cache_holder); | 802 InlineCacheHolderFlag cache_holder); |
803 | 803 |
804 Handle<Code> CompileCallField(Handle<JSObject> object, | 804 Handle<Code> CompileCallField(Handle<JSObject> object, |
805 Handle<JSObject> holder, | 805 Handle<JSObject> holder, |
806 int index, | 806 PropertyIndex index, |
807 Handle<String> name); | 807 Handle<String> name); |
808 | 808 |
809 Handle<Code> CompileCallConstant(Handle<Object> object, | 809 Handle<Code> CompileCallConstant(Handle<Object> object, |
810 Handle<JSObject> holder, | 810 Handle<JSObject> holder, |
811 Handle<JSFunction> function, | 811 Handle<JSFunction> function, |
812 Handle<String> name, | 812 Handle<String> name, |
813 CheckType check); | 813 CheckType check); |
814 | 814 |
815 Handle<Code> CompileCallInterceptor(Handle<JSObject> object, | 815 Handle<Code> CompileCallInterceptor(Handle<JSObject> object, |
816 Handle<JSObject> holder, | 816 Handle<JSObject> holder, |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 Handle<JSFunction> constant_function_; | 934 Handle<JSFunction> constant_function_; |
935 bool is_simple_api_call_; | 935 bool is_simple_api_call_; |
936 Handle<FunctionTemplateInfo> expected_receiver_type_; | 936 Handle<FunctionTemplateInfo> expected_receiver_type_; |
937 Handle<CallHandlerInfo> api_call_info_; | 937 Handle<CallHandlerInfo> api_call_info_; |
938 }; | 938 }; |
939 | 939 |
940 | 940 |
941 } } // namespace v8::internal | 941 } } // namespace v8::internal |
942 | 942 |
943 #endif // V8_STUB_CACHE_H_ | 943 #endif // V8_STUB_CACHE_H_ |
OLD | NEW |