Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 6ec698179a9b7d7ed797e447297d60d8019084f4..7cba2a339927247ae991dc68ba7be889a5801a30 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -2609,18 +2609,21 @@ class HUnaryMathOperation: public HTemplateInstruction<2> { |
case kMathAbs: |
// Not setting representation here: it is None intentionally. |
SetFlag(kFlexibleRepresentation); |
+ // TODO(svenpanne) This flag is actually only needed if representation() |
+ // is tagged, and not when it is an unboxed double or unboxed integer. |
SetGVNFlag(kChangesNewSpacePromotion); |
break; |
- case kMathSqrt: |
- case kMathPowHalf: |
case kMathLog: |
case kMathSin: |
case kMathCos: |
case kMathTan: |
set_representation(Representation::Double()); |
+ // These operations use the TranscendentalCache, so they may allocate. |
SetGVNFlag(kChangesNewSpacePromotion); |
break; |
case kMathExp: |
+ case kMathSqrt: |
+ case kMathPowHalf: |
set_representation(Representation::Double()); |
break; |
default: |