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, |