| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index 1fd0f49d3083bd90a5f05a5ef6005985037f9bf2..28c4d2cb3bc3fcdf88cf9daebc9a3f31be5459b5 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -2108,7 +2108,9 @@ 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()) {
|
| double value = instr->DoubleValue();
|
| @@ -2119,7 +2121,7 @@ LInstruction* LChunkBuilder::DoConstant(HConstant* instr) {
|
| } else {
|
| return DefineX87TOS(new(zone()) LConstantD(NULL));
|
| }
|
| - } else if (r.IsSmiOrTagged()) {
|
| + } else if (r.IsTagged()) {
|
| return DefineAsRegister(new(zone()) LConstantT);
|
| } else {
|
| UNREACHABLE();
|
|
|