| Index: src/x64/lithium-x64.cc
|
| diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc
|
| index 78c7b9c8d60836ea51e2d591efd676fd7da5c202..af4d96a290db9d4fe1de031560c8b632c354533d 100644
|
| --- a/src/x64/lithium-x64.cc
|
| +++ b/src/x64/lithium-x64.cc
|
| @@ -1801,10 +1801,14 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| Representation from = instr->from();
|
| Representation to = instr->to();
|
| if (from.IsSmi()) {
|
| - if (to.IsTagged()) {
|
| + if (to.IsSmiOrTagged()) {
|
| LOperand* value = UseRegister(instr->value());
|
| return DefineSameAsFirst(new(zone()) LDummyUse(value));
|
| }
|
| + if (to.IsInteger32()) {
|
| + LOperand* value = UseRegister(instr->value());
|
| + return DefineSameAsFirst(new(zone()) LSmiUntag(value, false));
|
| + }
|
| from = Representation::Tagged();
|
| }
|
| // Only mark conversions that might need to allocate as calling rather than
|
|
|