Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 209f53fa337acf8087f6e874d9dc3a4f324e1166..8625af3f20dddf3959d6461c42065bac49395ace 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -783,6 +783,7 @@ class HValue: public ZoneObject { |
enum Flag { |
kFlexibleRepresentation, |
+ kCannotBeTagged, |
// Participate in Global Value Numbering, i.e. elimination of |
// unnecessary recomputations. If an instruction sets this flag, it must |
// implement DataEquals(), which will be used to determine if other |
@@ -890,7 +891,8 @@ class HValue: public ZoneObject { |
ASSERT(CheckFlag(kFlexibleRepresentation)); |
RepresentationChanged(r); |
representation_ = r; |
- if (r.IsTagged()) { |
+ if (r.IsTagged() || |
+ (r.IsDouble() && CheckFlag(kCannotBeTagged))) { |
// Tagged is the bottom of the lattice, don't go any further. |
ClearFlag(kFlexibleRepresentation); |
} |