| Index: src/mips/lithium-mips.h
|
| diff --git a/src/mips/lithium-mips.h b/src/mips/lithium-mips.h
|
| index 7f87b028d06c647bc117f24574c64233102faaef..776223556d6af62ad6ccd9b3d47aa75964d57826 100644
|
| --- a/src/mips/lithium-mips.h
|
| +++ b/src/mips/lithium-mips.h
|
| @@ -132,6 +132,7 @@ class LCodeGen;
|
| V(LoadNamedGeneric) \
|
| V(MapEnumLength) \
|
| V(MathExp) \
|
| + V(MathFloorOfDiv) \
|
| V(MathMinMax) \
|
| V(ModI) \
|
| V(MulI) \
|
| @@ -592,6 +593,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) {
|
| @@ -2454,6 +2474,10 @@ class LChunkBuilder BASE_EMBEDDED {
|
|
|
| LInstruction* DoMultiplyAdd(HMul* mul, HValue* addend);
|
|
|
| + static bool HasMagicNumberForDivisor(int32_t divisor);
|
| + static HValue* SimplifiedDividendForMathFloorOfDiv(HValue* val);
|
| + static HValue* SimplifiedDivisorForMathFloorOfDiv(HValue* val);
|
| +
|
| private:
|
| enum Status {
|
| UNUSED,
|
|
|