Index: src/arm/lithium-arm.h |
diff --git a/src/arm/lithium-arm.h b/src/arm/lithium-arm.h |
index e0e5815f5acddd91915b669a3ef119cb8906200e..6486cad2bbcf68842e3be872d75c9a5398d6e76d 100644 |
--- a/src/arm/lithium-arm.h |
+++ b/src/arm/lithium-arm.h |
@@ -2176,7 +2176,13 @@ class LStoreKeyed: public LTemplateInstruction<0, 3, 0> { |
DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) |
virtual void PrintDataTo(StringStream* stream); |
- bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
+ bool NeedsCanonicalization() { |
+ if (hydrogen()->value()->IsAdd() || hydrogen()->value()->IsSub() || |
+ hydrogen()->value()->IsMul() || hydrogen()->value()->IsDiv()) { |
+ return false; |
+ } |
+ return hydrogen()->NeedsCanonicalization(); |
+ } |
uint32_t additional_index() const { return hydrogen()->index_offset(); } |
}; |