Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 31a06df0820cdf375c8fc6f0a1a6186e5c189355..7585e3f6fe30d3df314d99a2de04d1e3073be8fa 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -1827,8 +1827,9 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
return AssignEnvironment(DefineSameAsFirst(new(zone()) LCheckSmi(value))); |
} else { |
ASSERT(to.IsInteger32()); |
- LOperand* value = UseRegister(instr->value()); |
- if (instr->value()->type().IsSmi()) { |
+ HValue* val = instr->value(); |
+ LOperand* value = UseRegister(val); |
+ if (val->type().IsSmi() || val->representation().IsSmi()) { |
return DefineSameAsFirst(new(zone()) LSmiUntag(value, false)); |
} else { |
bool truncating = instr->CanTruncateToInt32(); |