| Index: src/mips/lithium-mips.h
|
| diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h
|
| index 50feee0cb7e26477797f7a8e93534ced62bf662f..32db0dd43652096db87b511043463e0854098c6b 100644
|
| --- a/src/mips/lithium-mips.h
|
| +++ b/src/mips/lithium-mips.h
|
| @@ -137,6 +137,7 @@ class LCodeGen;
|
| V(MathCos) \
|
| V(MathExp) \
|
| V(MathFloor) \
|
| + V(MathFloorOfDiv) \
|
| V(MathLog) \
|
| V(MathMinMax) \
|
| V(MathPowHalf) \
|
| @@ -623,6 +624,25 @@ class LDivI: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| +class LMathFloorOfDiv: public LTemplateInstruction<1, 2, 1> {
|
| + public:
|
| + LMathFloorOfDiv(LOperand* left,
|
| + LOperand* right,
|
| + LOperand* temp = NULL) {
|
| + inputs_[0] = left;
|
| + inputs_[1] = right;
|
| + temps_[0] = temp;
|
| + }
|
| +
|
| + LOperand* left() { return inputs_[0]; }
|
| + LOperand* right() { return inputs_[1]; }
|
| + LOperand* temp() { return temps_[0]; }
|
| +
|
| + DECLARE_CONCRETE_INSTRUCTION(MathFloorOfDiv, "math-floor-of-div")
|
| + DECLARE_HYDROGEN_ACCESSOR(MathFloorOfDiv)
|
| +};
|
| +
|
| +
|
| class LMulI: public LTemplateInstruction<1, 2, 1> {
|
| public:
|
| LMulI(LOperand* left, LOperand* right, LOperand* temp) {
|
| @@ -2642,6 +2662,9 @@ class LChunkBuilder BASE_EMBEDDED {
|
|
|
| LInstruction* DoMultiplyAdd(HMul* mul, HValue* addend);
|
|
|
| + static bool HasMagicNumberForDivisor(int32_t divisor);
|
| + static HValue* SimplifiedDivisorForMathFloorOfDiv(HValue* val);
|
| +
|
| LInstruction* DoMathFloor(HUnaryMathOperation* instr);
|
| LInstruction* DoMathRound(HUnaryMathOperation* instr);
|
| LInstruction* DoMathAbs(HUnaryMathOperation* instr);
|
|
|