Index: src/types.cc |
diff --git a/src/types.cc b/src/types.cc |
index 3840e6fd223f72c0210b49a386e3ca4462ef4a0b..dedfeadb46ac0003f032e9cc0276e8fd1a2171d3 100644 |
--- a/src/types.cc |
+++ b/src/types.cc |
@@ -568,7 +568,8 @@ typename TypeImpl<Config>::TypeHandle TypeImpl<Config>::Convert( |
// TODO(rossberg): this does not belong here. |
Representation Representation::FromType(Type* type) { |
if (type->Is(Type::None())) return Representation::None(); |
- if (type->Is(Type::Smi())) return Representation::Smi(); |
+ if (type->Is(Type::Smi())) return SmiValuesAre31Bits() |
+ ? Representation::Smi() : Representation::Integer32(); |
if (type->Is(Type::Signed32())) return Representation::Integer32(); |
if (type->Is(Type::Number())) return Representation::Double(); |
return Representation::Tagged(); |