| 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 |