| Index: src/arm/lithium-arm.h
|
| ===================================================================
|
| --- src/arm/lithium-arm.h (revision 11426)
|
| +++ src/arm/lithium-arm.h (working copy)
|
| @@ -132,6 +132,7 @@
|
| V(LoadNamedField) \
|
| V(LoadNamedFieldPolymorphic) \
|
| V(LoadNamedGeneric) \
|
| + V(MathFloorOfDiv) \
|
| V(ModI) \
|
| V(MulI) \
|
| V(NumberTagD) \
|
| @@ -579,6 +580,21 @@
|
| };
|
|
|
|
|
| +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;
|
| + }
|
| +
|
| + 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) {
|
| @@ -2287,6 +2303,10 @@
|
| HYDROGEN_CONCRETE_INSTRUCTION_LIST(DECLARE_DO)
|
| #undef DECLARE_DO
|
|
|
| + static bool HasMagicNumberForDivisor(int32_t divisor);
|
| + static HValue* SimplifiedDividendForMathFloorOfDiv(HValue* val);
|
| + static HValue* SimplifiedDivisorForMathFloorOfDiv(HValue* val);
|
| +
|
| private:
|
| enum Status {
|
| UNUSED,
|
|
|