Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index e8dd5bb63f02b7f79ff3ff9ca9438260fe9ee079..cf902f32f0e4c5a8ecaf96ccf2e1fde7526181c2 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -1880,7 +1880,9 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
return AssignPointerMap(DefineSameAsFirst(result)); |
} else { |
LOperand* value = UseRegister(val); |
- LNumberTagI* result = new(zone()) LNumberTagI(value); |
+ LOperand* temp1 = SmiValuesAre32Bits() ? NULL : TempRegister(); |
+ LOperand* temp2 = SmiValuesAre32Bits() ? NULL : FixedTemp(xmm1); |
+ LNumberTagI* result = new(zone()) LNumberTagI(value, temp1, temp2); |
return AssignPointerMap(DefineSameAsFirst(result)); |
} |
} else if (to.IsSmi()) { |