Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: src/x87/lithium-x87.h

Issue 429143003: X87: Inline Math.fround in optimized code. (Closed) Base URL: https://chromium.googlesource.com/external/v8.git@bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/x87/lithium-codegen-x87.cc ('k') | src/x87/lithium-x87.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_X87_LITHIUM_X87_H_ 5 #ifndef V8_X87_LITHIUM_X87_H_
6 #define V8_X87_LITHIUM_X87_H_ 6 #define V8_X87_LITHIUM_X87_H_
7 7
8 #include "src/hydrogen.h" 8 #include "src/hydrogen.h"
9 #include "src/lithium.h" 9 #include "src/lithium.h"
10 #include "src/lithium-allocator.h" 10 #include "src/lithium-allocator.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 V(LoadKeyed) \ 105 V(LoadKeyed) \
106 V(LoadKeyedGeneric) \ 106 V(LoadKeyedGeneric) \
107 V(LoadNamedField) \ 107 V(LoadNamedField) \
108 V(LoadNamedGeneric) \ 108 V(LoadNamedGeneric) \
109 V(LoadRoot) \ 109 V(LoadRoot) \
110 V(MapEnumLength) \ 110 V(MapEnumLength) \
111 V(MathAbs) \ 111 V(MathAbs) \
112 V(MathClz32) \ 112 V(MathClz32) \
113 V(MathExp) \ 113 V(MathExp) \
114 V(MathFloor) \ 114 V(MathFloor) \
115 V(MathFround) \
115 V(MathLog) \ 116 V(MathLog) \
116 V(MathMinMax) \ 117 V(MathMinMax) \
117 V(MathPowHalf) \ 118 V(MathPowHalf) \
118 V(MathRound) \ 119 V(MathRound) \
119 V(MathSqrt) \ 120 V(MathSqrt) \
120 V(ModByConstI) \ 121 V(ModByConstI) \
121 V(ModByPowerOf2I) \ 122 V(ModByPowerOf2I) \
122 V(ModI) \ 123 V(ModI) \
123 V(MulI) \ 124 V(MulI) \
124 V(NumberTagD) \ 125 V(NumberTagD) \
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
866 inputs_[0] = value; 867 inputs_[0] = value;
867 } 868 }
868 869
869 LOperand* value() { return inputs_[0]; } 870 LOperand* value() { return inputs_[0]; }
870 871
871 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round") 872 DECLARE_CONCRETE_INSTRUCTION(MathRound, "math-round")
872 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation) 873 DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
873 }; 874 };
874 875
875 876
877 class LMathFround V8_FINAL : public LTemplateInstruction<1, 1, 0> {
878 public:
879 explicit LMathFround(LOperand* value) { inputs_[0] = value; }
880
881 LOperand* value() { return inputs_[0]; }
882
883 DECLARE_CONCRETE_INSTRUCTION(MathFround, "math-fround")
884 };
885
886
876 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> { 887 class LMathAbs V8_FINAL : public LTemplateInstruction<1, 2, 0> {
877 public: 888 public:
878 LMathAbs(LOperand* context, LOperand* value) { 889 LMathAbs(LOperand* context, LOperand* value) {
879 inputs_[1] = context; 890 inputs_[1] = context;
880 inputs_[0] = value; 891 inputs_[0] = value;
881 } 892 }
882 893
883 LOperand* context() { return inputs_[1]; } 894 LOperand* context() { return inputs_[1]; }
884 LOperand* value() { return inputs_[0]; } 895 LOperand* value() { return inputs_[0]; }
885 896
(...skipping 1858 matching lines...) Expand 10 before | Expand all | Expand 10 after
2744 // Build the sequence for the graph. 2755 // Build the sequence for the graph.
2745 LPlatformChunk* Build(); 2756 LPlatformChunk* Build();
2746 2757
2747 // Declare methods that deal with the individual node types. 2758 // Declare methods that deal with the individual node types.
2748 #define DECLARE_DO(type) LInstruction* Do##type(H##type* node); 2759 #define DECLARE_DO(type) LInstruction* Do##type(H##type* node);
2749 HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO) 2760 HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO)
2750 #undef DECLARE_DO 2761 #undef DECLARE_DO
2751 2762
2752 LInstruction* DoMathFloor(HUnaryMathOperation* instr); 2763 LInstruction* DoMathFloor(HUnaryMathOperation* instr);
2753 LInstruction* DoMathRound(HUnaryMathOperation* instr); 2764 LInstruction* DoMathRound(HUnaryMathOperation* instr);
2765 LInstruction* DoMathFround(HUnaryMathOperation* instr);
2754 LInstruction* DoMathAbs(HUnaryMathOperation* instr); 2766 LInstruction* DoMathAbs(HUnaryMathOperation* instr);
2755 LInstruction* DoMathLog(HUnaryMathOperation* instr); 2767 LInstruction* DoMathLog(HUnaryMathOperation* instr);
2756 LInstruction* DoMathExp(HUnaryMathOperation* instr); 2768 LInstruction* DoMathExp(HUnaryMathOperation* instr);
2757 LInstruction* DoMathSqrt(HUnaryMathOperation* instr); 2769 LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
2758 LInstruction* DoMathPowHalf(HUnaryMathOperation* instr); 2770 LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
2759 LInstruction* DoMathClz32(HUnaryMathOperation* instr); 2771 LInstruction* DoMathClz32(HUnaryMathOperation* instr);
2760 LInstruction* DoDivByPowerOf2I(HDiv* instr); 2772 LInstruction* DoDivByPowerOf2I(HDiv* instr);
2761 LInstruction* DoDivByConstI(HDiv* instr); 2773 LInstruction* DoDivByConstI(HDiv* instr);
2762 LInstruction* DoDivI(HDiv* instr); 2774 LInstruction* DoDivI(HDiv* instr);
2763 LInstruction* DoModByPowerOf2I(HMod* instr); 2775 LInstruction* DoModByPowerOf2I(HMod* instr);
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
2888 2900
2889 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2901 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2890 }; 2902 };
2891 2903
2892 #undef DECLARE_HYDROGEN_ACCESSOR 2904 #undef DECLARE_HYDROGEN_ACCESSOR
2893 #undef DECLARE_CONCRETE_INSTRUCTION 2905 #undef DECLARE_CONCRETE_INSTRUCTION
2894 2906
2895 } } // namespace v8::internal 2907 } } // namespace v8::internal
2896 2908
2897 #endif // V8_X87_LITHIUM_X87_H_ 2909 #endif // V8_X87_LITHIUM_X87_H_
OLDNEW
« no previous file with comments | « src/x87/lithium-codegen-x87.cc ('k') | src/x87/lithium-x87.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698