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 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 V(LoadFieldByIndex) \ | 124 V(LoadFieldByIndex) \ |
125 V(LoadFunctionPrototype) \ | 125 V(LoadFunctionPrototype) \ |
126 V(LoadGlobalCell) \ | 126 V(LoadGlobalCell) \ |
127 V(LoadGlobalGeneric) \ | 127 V(LoadGlobalGeneric) \ |
128 V(LoadKeyed) \ | 128 V(LoadKeyed) \ |
129 V(LoadKeyedGeneric) \ | 129 V(LoadKeyedGeneric) \ |
130 V(LoadNamedField) \ | 130 V(LoadNamedField) \ |
131 V(LoadNamedGeneric) \ | 131 V(LoadNamedGeneric) \ |
132 V(MapEnumLength) \ | 132 V(MapEnumLength) \ |
133 V(MathAbs) \ | 133 V(MathAbs) \ |
134 V(MathCos) \ | |
135 V(MathExp) \ | 134 V(MathExp) \ |
136 V(MathFloor) \ | 135 V(MathFloor) \ |
137 V(MathFloorOfDiv) \ | 136 V(MathFloorOfDiv) \ |
138 V(MathLog) \ | 137 V(MathLog) \ |
139 V(MathMinMax) \ | 138 V(MathMinMax) \ |
140 V(MathPowHalf) \ | 139 V(MathPowHalf) \ |
141 V(MathRound) \ | 140 V(MathRound) \ |
142 V(MathSin) \ | |
143 V(MathSqrt) \ | 141 V(MathSqrt) \ |
144 V(MathTan) \ | |
145 V(ModI) \ | 142 V(ModI) \ |
146 V(MulI) \ | 143 V(MulI) \ |
147 V(MultiplyAddD) \ | 144 V(MultiplyAddD) \ |
148 V(MultiplySubD) \ | 145 V(MultiplySubD) \ |
149 V(NumberTagD) \ | 146 V(NumberTagD) \ |
150 V(NumberTagI) \ | 147 V(NumberTagI) \ |
151 V(NumberTagU) \ | 148 V(NumberTagU) \ |
152 V(NumberUntagD) \ | 149 V(NumberUntagD) \ |
153 V(OsrEntry) \ | 150 V(OsrEntry) \ |
154 V(OuterContext) \ | 151 V(OuterContext) \ |
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
809 explicit LMathLog(LOperand* value) { | 806 explicit LMathLog(LOperand* value) { |
810 inputs_[0] = value; | 807 inputs_[0] = value; |
811 } | 808 } |
812 | 809 |
813 LOperand* value() { return inputs_[0]; } | 810 LOperand* value() { return inputs_[0]; } |
814 | 811 |
815 DECLARE_CONCRETE_INSTRUCTION(MathLog, "math-log") | 812 DECLARE_CONCRETE_INSTRUCTION(MathLog, "math-log") |
816 }; | 813 }; |
817 | 814 |
818 | 815 |
819 class LMathSin V8_FINAL : public LTemplateInstruction<1, 1, 0> { | |
820 public: | |
821 explicit LMathSin(LOperand* value) { | |
822 inputs_[0] = value; | |
823 } | |
824 | |
825 LOperand* value() { return inputs_[0]; } | |
826 | |
827 DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin") | |
828 }; | |
829 | |
830 | |
831 class LMathCos V8_FINAL : public LTemplateInstruction<1, 1, 0> { | |
832 public: | |
833 explicit LMathCos(LOperand* value) { | |
834 inputs_[0] = value; | |
835 } | |
836 | |
837 LOperand* value() { return inputs_[0]; } | |
838 | |
839 DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos") | |
840 }; | |
841 | |
842 | |
843 class LMathTan V8_FINAL : public LTemplateInstruction<1, 1, 0> { | |
844 public: | |
845 explicit LMathTan(LOperand* value) { | |
846 inputs_[0] = value; | |
847 } | |
848 | |
849 LOperand* value() { return inputs_[0]; } | |
850 | |
851 DECLARE_CONCRETE_INSTRUCTION(MathTan, "math-tan") | |
852 }; | |
853 | |
854 | |
855 class LMathExp V8_FINAL : public LTemplateInstruction<1, 1, 3> { | 816 class LMathExp V8_FINAL : public LTemplateInstruction<1, 1, 3> { |
856 public: | 817 public: |
857 LMathExp(LOperand* value, | 818 LMathExp(LOperand* value, |
858 LOperand* double_temp, | 819 LOperand* double_temp, |
859 LOperand* temp1, | 820 LOperand* temp1, |
860 LOperand* temp2) { | 821 LOperand* temp2) { |
861 inputs_[0] = value; | 822 inputs_[0] = value; |
862 temps_[0] = temp1; | 823 temps_[0] = temp1; |
863 temps_[1] = temp2; | 824 temps_[1] = temp2; |
864 temps_[2] = double_temp; | 825 temps_[2] = double_temp; |
(...skipping 1906 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2771 LInstruction* DoMultiplySub(HValue* minuend, HMul* mul); | 2732 LInstruction* DoMultiplySub(HValue* minuend, HMul* mul); |
2772 LInstruction* DoRSub(HSub* instr); | 2733 LInstruction* DoRSub(HSub* instr); |
2773 | 2734 |
2774 static bool HasMagicNumberForDivisor(int32_t divisor); | 2735 static bool HasMagicNumberForDivisor(int32_t divisor); |
2775 static HValue* SimplifiedDivisorForMathFloorOfDiv(HValue* val); | 2736 static HValue* SimplifiedDivisorForMathFloorOfDiv(HValue* val); |
2776 | 2737 |
2777 LInstruction* DoMathFloor(HUnaryMathOperation* instr); | 2738 LInstruction* DoMathFloor(HUnaryMathOperation* instr); |
2778 LInstruction* DoMathRound(HUnaryMathOperation* instr); | 2739 LInstruction* DoMathRound(HUnaryMathOperation* instr); |
2779 LInstruction* DoMathAbs(HUnaryMathOperation* instr); | 2740 LInstruction* DoMathAbs(HUnaryMathOperation* instr); |
2780 LInstruction* DoMathLog(HUnaryMathOperation* instr); | 2741 LInstruction* DoMathLog(HUnaryMathOperation* instr); |
2781 LInstruction* DoMathSin(HUnaryMathOperation* instr); | |
2782 LInstruction* DoMathCos(HUnaryMathOperation* instr); | |
2783 LInstruction* DoMathTan(HUnaryMathOperation* instr); | |
2784 LInstruction* DoMathExp(HUnaryMathOperation* instr); | 2742 LInstruction* DoMathExp(HUnaryMathOperation* instr); |
2785 LInstruction* DoMathSqrt(HUnaryMathOperation* instr); | 2743 LInstruction* DoMathSqrt(HUnaryMathOperation* instr); |
2786 LInstruction* DoMathPowHalf(HUnaryMathOperation* instr); | 2744 LInstruction* DoMathPowHalf(HUnaryMathOperation* instr); |
2787 | 2745 |
2788 private: | 2746 private: |
2789 enum Status { | 2747 enum Status { |
2790 UNUSED, | 2748 UNUSED, |
2791 BUILDING, | 2749 BUILDING, |
2792 DONE, | 2750 DONE, |
2793 ABORTED | 2751 ABORTED |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2913 | 2871 |
2914 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 2872 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
2915 }; | 2873 }; |
2916 | 2874 |
2917 #undef DECLARE_HYDROGEN_ACCESSOR | 2875 #undef DECLARE_HYDROGEN_ACCESSOR |
2918 #undef DECLARE_CONCRETE_INSTRUCTION | 2876 #undef DECLARE_CONCRETE_INSTRUCTION |
2919 | 2877 |
2920 } } // namespace v8::internal | 2878 } } // namespace v8::internal |
2921 | 2879 |
2922 #endif // V8_ARM_LITHIUM_ARM_H_ | 2880 #endif // V8_ARM_LITHIUM_ARM_H_ |
OLD | NEW |