Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 36ef717c5dfd0d019450d4748d4e2654fa267b63..2b999840b8e6d3e9f022713dc34a95c7162b5377 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -4045,7 +4045,6 @@ class HBitwiseBinaryOperation : public HBinaryOperation { |
} |
virtual void RepresentationChanged(Representation to) V8_OVERRIDE { |
- if (to.IsTagged()) SetChangesFlag(kNewSpacePromotion); |
if (to.IsTagged() && |
(left()->ToNumberCanBeObserved() || right()->ToNumberCanBeObserved())) { |
SetAllSideEffects(); |
@@ -4054,6 +4053,7 @@ class HBitwiseBinaryOperation : public HBinaryOperation { |
ClearAllSideEffects(); |
SetFlag(kUseGVN); |
} |
+ if (to.IsTagged()) SetChangesFlag(kNewSpacePromotion); |
} |
virtual void UpdateRepresentation(Representation new_rep, |
@@ -4119,7 +4119,6 @@ class HArithmeticBinaryOperation : public HBinaryOperation { |
} |
virtual void RepresentationChanged(Representation to) V8_OVERRIDE { |
- if (to.IsTagged()) SetChangesFlag(kNewSpacePromotion); |
if (to.IsTagged() && |
(left()->ToNumberCanBeObserved() || right()->ToNumberCanBeObserved())) { |
SetAllSideEffects(); |
@@ -4128,6 +4127,7 @@ class HArithmeticBinaryOperation : public HBinaryOperation { |
ClearAllSideEffects(); |
SetFlag(kUseGVN); |
} |
+ if (to.IsTagged()) SetChangesFlag(kNewSpacePromotion); |
} |
DECLARE_ABSTRACT_INSTRUCTION(ArithmeticBinaryOperation) |
@@ -4703,10 +4703,6 @@ class HAdd V8_FINAL : public HArithmeticBinaryOperation { |
} |
virtual void RepresentationChanged(Representation to) V8_OVERRIDE { |
- if (to.IsTagged()) { |
- SetChangesFlag(kNewSpacePromotion); |
- ClearFlag(kAllowUndefinedAsNaN); |
- } |
if (to.IsTagged() && |
(left()->ToNumberCanBeObserved() || right()->ToNumberCanBeObserved() || |
left()->ToStringCanBeObserved() || right()->ToStringCanBeObserved())) { |
@@ -4716,6 +4712,10 @@ class HAdd V8_FINAL : public HArithmeticBinaryOperation { |
ClearAllSideEffects(); |
SetFlag(kUseGVN); |
} |
+ if (to.IsTagged()) { |
+ SetChangesFlag(kNewSpacePromotion); |
+ ClearFlag(kAllowUndefinedAsNaN); |
+ } |
} |
virtual Representation RepresentationFromInputs() V8_OVERRIDE; |