Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 9a88c5b570774c4aee3fc10ab63270083c1e087b..fe23709a8d8aa9e456acf63904731855fa23876b 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -1969,12 +1969,14 @@ 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()) { |
LOperand* temp = TempRegister(); |
return DefineAsRegister(new(zone()) LConstantD(temp)); |
- } else if (r.IsSmiOrTagged()) { |
+ } else if (r.IsTagged()) { |
return DefineAsRegister(new(zone()) LConstantT); |
} else { |
UNREACHABLE(); |