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