Index: src/compiler/simplified-lowering.cc |
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc |
index 5f9a406b649dec5a6b0336cffcf7bc29dde16212..1461709dabf9ab2c533e2dfe12e7039d4a993f12 100644 |
--- a/src/compiler/simplified-lowering.cc |
+++ b/src/compiler/simplified-lowering.cc |
@@ -307,8 +307,8 @@ class RepresentationSelector { |
if ((use & kRepMask) == kRepTagged) { |
// only tagged uses. |
return kRepTagged; |
- } else if (IsSafeIntAdditiveOperand(node)) { |
- // Integer within [-2^52, 2^52] range. |
+ } else if (upper->Is(Type::Integral32())) { |
+ // Integer within [-2^31, 2^32[ range. |
if ((use & kRepMask) == kRepFloat64) { |
// only float64 uses. |
return kRepFloat64; |
@@ -318,7 +318,7 @@ class RepresentationSelector { |
} else if ((use & kRepMask) == kRepWord32 || |
(use & kTypeMask) == kTypeInt32 || |
(use & kTypeMask) == kTypeUint32) { |
- // The type is a safe integer, but we only use 32 bits. |
+ // We only use 32 bits or we use the result consistently. |
return kRepWord32; |
} else { |
return kRepFloat64; |