OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_CODE_STUBS_H_ | 5 #ifndef V8_CODE_STUBS_H_ |
6 #define V8_CODE_STUBS_H_ | 6 #define V8_CODE_STUBS_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/assembler.h" | 9 #include "src/assembler.h" |
10 #include "src/code-stub-assembler.h" | 10 #include "src/code-stub-assembler.h" |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 V(AllocateInt8x16) \ | 114 V(AllocateInt8x16) \ |
115 V(AllocateUint8x16) \ | 115 V(AllocateUint8x16) \ |
116 V(AllocateBool8x16) \ | 116 V(AllocateBool8x16) \ |
117 V(ArrayNoArgumentConstructor) \ | 117 V(ArrayNoArgumentConstructor) \ |
118 V(ArraySingleArgumentConstructor) \ | 118 V(ArraySingleArgumentConstructor) \ |
119 V(ArrayNArgumentsConstructor) \ | 119 V(ArrayNArgumentsConstructor) \ |
120 V(CreateAllocationSite) \ | 120 V(CreateAllocationSite) \ |
121 V(CreateWeakCell) \ | 121 V(CreateWeakCell) \ |
122 V(StringLength) \ | 122 V(StringLength) \ |
123 V(Add) \ | 123 V(Add) \ |
| 124 V(AddWithFeedback) \ |
124 V(Subtract) \ | 125 V(Subtract) \ |
125 V(SubtractWithFeedback) \ | 126 V(SubtractWithFeedback) \ |
126 V(Multiply) \ | 127 V(Multiply) \ |
| 128 V(MultiplyWithFeedback) \ |
127 V(Divide) \ | 129 V(Divide) \ |
| 130 V(DivideWithFeedback) \ |
128 V(Modulus) \ | 131 V(Modulus) \ |
| 132 V(ModulusWithFeedback) \ |
129 V(ShiftRight) \ | 133 V(ShiftRight) \ |
130 V(ShiftRightLogical) \ | 134 V(ShiftRightLogical) \ |
131 V(ShiftLeft) \ | 135 V(ShiftLeft) \ |
132 V(BitwiseAnd) \ | 136 V(BitwiseAnd) \ |
133 V(BitwiseOr) \ | 137 V(BitwiseOr) \ |
134 V(BitwiseXor) \ | 138 V(BitwiseXor) \ |
135 V(Inc) \ | 139 V(Inc) \ |
136 V(InternalArrayNoArgumentConstructor) \ | 140 V(InternalArrayNoArgumentConstructor) \ |
137 V(InternalArraySingleArgumentConstructor) \ | 141 V(InternalArraySingleArgumentConstructor) \ |
138 V(Dec) \ | 142 V(Dec) \ |
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
749 }; | 753 }; |
750 | 754 |
751 class AddStub final : public TurboFanCodeStub { | 755 class AddStub final : public TurboFanCodeStub { |
752 public: | 756 public: |
753 explicit AddStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 757 explicit AddStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
754 | 758 |
755 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); | 759 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
756 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Add, TurboFanCodeStub); | 760 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Add, TurboFanCodeStub); |
757 }; | 761 }; |
758 | 762 |
| 763 class AddWithFeedbackStub final : public TurboFanCodeStub { |
| 764 public: |
| 765 explicit AddWithFeedbackStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
| 766 |
| 767 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
| 768 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(AddWithFeedback, |
| 769 TurboFanCodeStub); |
| 770 }; |
| 771 |
759 class SubtractStub final : public TurboFanCodeStub { | 772 class SubtractStub final : public TurboFanCodeStub { |
760 public: | 773 public: |
761 explicit SubtractStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 774 explicit SubtractStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
762 | 775 |
763 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); | 776 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
764 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Subtract, TurboFanCodeStub); | 777 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Subtract, TurboFanCodeStub); |
765 }; | 778 }; |
766 | 779 |
767 class SubtractWithFeedbackStub final : public TurboFanCodeStub { | 780 class SubtractWithFeedbackStub final : public TurboFanCodeStub { |
768 public: | 781 public: |
769 explicit SubtractWithFeedbackStub(Isolate* isolate) | 782 explicit SubtractWithFeedbackStub(Isolate* isolate) |
770 : TurboFanCodeStub(isolate) {} | 783 : TurboFanCodeStub(isolate) {} |
771 | 784 |
772 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); | 785 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
773 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(SubtractWithFeedback, | 786 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(SubtractWithFeedback, |
774 TurboFanCodeStub); | 787 TurboFanCodeStub); |
775 }; | 788 }; |
776 | 789 |
777 class MultiplyStub final : public TurboFanCodeStub { | 790 class MultiplyStub final : public TurboFanCodeStub { |
778 public: | 791 public: |
779 explicit MultiplyStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 792 explicit MultiplyStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
780 | 793 |
781 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); | 794 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
782 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Multiply, TurboFanCodeStub); | 795 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Multiply, TurboFanCodeStub); |
783 }; | 796 }; |
784 | 797 |
| 798 class MultiplyWithFeedbackStub final : public TurboFanCodeStub { |
| 799 public: |
| 800 explicit MultiplyWithFeedbackStub(Isolate* isolate) |
| 801 : TurboFanCodeStub(isolate) {} |
| 802 |
| 803 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
| 804 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(MultiplyWithFeedback, |
| 805 TurboFanCodeStub); |
| 806 }; |
| 807 |
785 class DivideStub final : public TurboFanCodeStub { | 808 class DivideStub final : public TurboFanCodeStub { |
786 public: | 809 public: |
787 explicit DivideStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 810 explicit DivideStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
788 | 811 |
789 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); | 812 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
790 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Divide, TurboFanCodeStub); | 813 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Divide, TurboFanCodeStub); |
791 }; | 814 }; |
792 | 815 |
| 816 class DivideWithFeedbackStub final : public TurboFanCodeStub { |
| 817 public: |
| 818 explicit DivideWithFeedbackStub(Isolate* isolate) |
| 819 : TurboFanCodeStub(isolate) {} |
| 820 |
| 821 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
| 822 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(DivideWithFeedback, |
| 823 TurboFanCodeStub); |
| 824 }; |
| 825 |
793 class ModulusStub final : public TurboFanCodeStub { | 826 class ModulusStub final : public TurboFanCodeStub { |
794 public: | 827 public: |
795 explicit ModulusStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 828 explicit ModulusStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
796 | 829 |
797 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); | 830 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
798 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Modulus, TurboFanCodeStub); | 831 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Modulus, TurboFanCodeStub); |
799 }; | 832 }; |
800 | 833 |
| 834 class ModulusWithFeedbackStub final : public TurboFanCodeStub { |
| 835 public: |
| 836 explicit ModulusWithFeedbackStub(Isolate* isolate) |
| 837 : TurboFanCodeStub(isolate) {} |
| 838 |
| 839 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
| 840 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(ModulusWithFeedback, |
| 841 TurboFanCodeStub); |
| 842 }; |
| 843 |
801 class ShiftRightStub final : public TurboFanCodeStub { | 844 class ShiftRightStub final : public TurboFanCodeStub { |
802 public: | 845 public: |
803 explicit ShiftRightStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 846 explicit ShiftRightStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
804 | 847 |
805 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); | 848 DEFINE_CALL_INTERFACE_DESCRIPTOR(BinaryOp); |
806 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(ShiftRight, TurboFanCodeStub); | 849 DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(ShiftRight, TurboFanCodeStub); |
807 }; | 850 }; |
808 | 851 |
809 class ShiftRightLogicalStub final : public TurboFanCodeStub { | 852 class ShiftRightLogicalStub final : public TurboFanCodeStub { |
810 public: | 853 public: |
(...skipping 2356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3167 #undef DEFINE_HYDROGEN_CODE_STUB | 3210 #undef DEFINE_HYDROGEN_CODE_STUB |
3168 #undef DEFINE_CODE_STUB | 3211 #undef DEFINE_CODE_STUB |
3169 #undef DEFINE_CODE_STUB_BASE | 3212 #undef DEFINE_CODE_STUB_BASE |
3170 | 3213 |
3171 extern Representation RepresentationFromType(Type* type); | 3214 extern Representation RepresentationFromType(Type* type); |
3172 | 3215 |
3173 } // namespace internal | 3216 } // namespace internal |
3174 } // namespace v8 | 3217 } // namespace v8 |
3175 | 3218 |
3176 #endif // V8_CODE_STUBS_H_ | 3219 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |