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