Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index 2ad6eb46b4b3fc6f34e4df6726ef2bcf1cf96a77..aa4561e2ffdc3cdb1d94914b733299a0c180f9bb 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -2053,11 +2053,13 @@ LInstruction* LChunkBuilder::DoReturn(HReturn* instr) { |
LInstruction* LChunkBuilder::DoConstant(HConstant* instr) { |
Representation r = instr->representation(); |
- if (r.IsInteger32()) { |
+ if (r.IsSmi()) { |
+ return DefineAsRegister(new(zone()) LConstantS); |
+ } else if (r.IsInteger32()) { |
return DefineAsRegister(new(zone()) LConstantI); |
} else if (r.IsDouble()) { |
return DefineAsRegister(new(zone()) LConstantD); |
- } else if (r.IsSmiOrTagged()) { |
+ } else if (r.IsTagged()) { |
return DefineAsRegister(new(zone()) LConstantT); |
} else { |
UNREACHABLE(); |