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 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 } | 548 } |
549 // Stub accessors. | 549 // Stub accessors. |
550 virtual Handle<Code> generic_stub() const { | 550 virtual Handle<Code> generic_stub() const { |
551 if (strict_mode() == kStrictMode) { | 551 if (strict_mode() == kStrictMode) { |
552 return isolate()->builtins()->StoreIC_Generic_Strict(); | 552 return isolate()->builtins()->StoreIC_Generic_Strict(); |
553 } else { | 553 } else { |
554 return isolate()->builtins()->StoreIC_Generic(); | 554 return isolate()->builtins()->StoreIC_Generic(); |
555 } | 555 } |
556 } | 556 } |
557 | 557 |
| 558 virtual Handle<Code> slow_stub() const { |
| 559 if (strict_mode() == kStrictMode) { |
| 560 return isolate()->builtins()->StoreIC_Slow_Strict(); |
| 561 } else { |
| 562 return isolate()->builtins()->StoreIC_Slow(); |
| 563 } |
| 564 } |
| 565 |
558 virtual Handle<Code> pre_monomorphic_stub() { | 566 virtual Handle<Code> pre_monomorphic_stub() { |
559 return pre_monomorphic_stub(isolate(), strict_mode()); | 567 return pre_monomorphic_stub(isolate(), strict_mode()); |
560 } | 568 } |
561 | 569 |
562 static Handle<Code> pre_monomorphic_stub(Isolate* isolate, | 570 static Handle<Code> pre_monomorphic_stub(Isolate* isolate, |
563 StrictModeFlag strict_mode) { | 571 StrictModeFlag strict_mode) { |
564 if (strict_mode == kStrictMode) { | 572 if (strict_mode == kStrictMode) { |
565 return isolate->builtins()->StoreIC_PreMonomorphic_Strict(); | 573 return isolate->builtins()->StoreIC_PreMonomorphic_Strict(); |
566 } else { | 574 } else { |
567 return isolate->builtins()->StoreIC_PreMonomorphic(); | 575 return isolate->builtins()->StoreIC_PreMonomorphic(); |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
670 return pre_monomorphic_stub(isolate(), strict_mode()); | 678 return pre_monomorphic_stub(isolate(), strict_mode()); |
671 } | 679 } |
672 static Handle<Code> pre_monomorphic_stub(Isolate* isolate, | 680 static Handle<Code> pre_monomorphic_stub(Isolate* isolate, |
673 StrictModeFlag strict_mode) { | 681 StrictModeFlag strict_mode) { |
674 if (strict_mode == kStrictMode) { | 682 if (strict_mode == kStrictMode) { |
675 return isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict(); | 683 return isolate->builtins()->KeyedStoreIC_PreMonomorphic_Strict(); |
676 } else { | 684 } else { |
677 return isolate->builtins()->KeyedStoreIC_PreMonomorphic(); | 685 return isolate->builtins()->KeyedStoreIC_PreMonomorphic(); |
678 } | 686 } |
679 } | 687 } |
| 688 virtual Handle<Code> slow_stub() const { |
| 689 if (strict_mode() == kStrictMode) { |
| 690 return isolate()->builtins()->KeyedStoreIC_Slow_Strict(); |
| 691 } else { |
| 692 return isolate()->builtins()->KeyedStoreIC_Slow(); |
| 693 } |
| 694 } |
680 virtual Handle<Code> megamorphic_stub() { | 695 virtual Handle<Code> megamorphic_stub() { |
681 if (strict_mode() == kStrictMode) { | 696 if (strict_mode() == kStrictMode) { |
682 return isolate()->builtins()->KeyedStoreIC_Generic_Strict(); | 697 return isolate()->builtins()->KeyedStoreIC_Generic_Strict(); |
683 } else { | 698 } else { |
684 return isolate()->builtins()->KeyedStoreIC_Generic(); | 699 return isolate()->builtins()->KeyedStoreIC_Generic(); |
685 } | 700 } |
686 } | 701 } |
687 | 702 |
688 Handle<Code> StoreElementStub(Handle<JSObject> receiver, | 703 Handle<Code> StoreElementStub(Handle<JSObject> receiver, |
689 KeyedAccessStoreMode store_mode); | 704 KeyedAccessStoreMode store_mode); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
858 DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreIC_MissFromStubFailure); | 873 DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreIC_MissFromStubFailure); |
859 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss); | 874 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ElementsTransitionAndStoreIC_Miss); |
860 DECLARE_RUNTIME_FUNCTION(MaybeObject*, BinaryOpIC_Miss); | 875 DECLARE_RUNTIME_FUNCTION(MaybeObject*, BinaryOpIC_Miss); |
861 DECLARE_RUNTIME_FUNCTION(MaybeObject*, CompareNilIC_Miss); | 876 DECLARE_RUNTIME_FUNCTION(MaybeObject*, CompareNilIC_Miss); |
862 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ToBooleanIC_Miss); | 877 DECLARE_RUNTIME_FUNCTION(MaybeObject*, ToBooleanIC_Miss); |
863 | 878 |
864 | 879 |
865 } } // namespace v8::internal | 880 } } // namespace v8::internal |
866 | 881 |
867 #endif // V8_IC_H_ | 882 #endif // V8_IC_H_ |
OLD | NEW |