Index: src/mips/lithium-mips.h |
diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h |
index 1baf07dd12064d478ccabf5bdc00e4da6b4cb299..17ef24cb1a5d3c0d23f7900dd024118550185563 100644 |
--- a/src/mips/lithium-mips.h |
+++ b/src/mips/lithium-mips.h |
@@ -131,6 +131,7 @@ class LCodeGen; |
V(LoadNamedFieldPolymorphic) \ |
V(LoadNamedGeneric) \ |
V(MapEnumLength) \ |
+ V(MathExp) \ |
V(MathMinMax) \ |
V(ModI) \ |
V(MulI) \ |
@@ -641,6 +642,30 @@ class LUnaryMathOperation: public LTemplateInstruction<1, 1, 1> { |
}; |
+class LMathExp: public LTemplateInstruction<1, 1, 3> { |
+ public: |
+ LMathExp(LOperand* value, |
+ LOperand* double_temp, |
+ LOperand* temp1, |
+ LOperand* temp2) { |
+ inputs_[0] = value; |
+ temps_[0] = temp1; |
+ temps_[1] = temp2; |
+ temps_[2] = double_temp; |
+ ExternalReference::InitializeMathExpData(); |
+ } |
+ |
+ LOperand* value() { return inputs_[0]; } |
+ LOperand* temp1() { return temps_[0]; } |
+ LOperand* temp2() { return temps_[1]; } |
+ LOperand* double_temp() { return temps_[2]; } |
+ |
+ DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp") |
+ |
+ virtual void PrintDataTo(StringStream* stream); |
+}; |
+ |
+ |
class LCmpObjectEqAndBranch: public LControlInstruction<2, 0> { |
public: |
LCmpObjectEqAndBranch(LOperand* left, LOperand* right) { |