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