Chromium Code Reviews| Index: src/ia32/lithium-ia32.cc |
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc |
| index 5d84935aed54e54a3e7591ffa0ab2ca237a28495..821a80493691b93cd0b808cb3f15483b699174ad 100644 |
| --- a/src/ia32/lithium-ia32.cc |
| +++ b/src/ia32/lithium-ia32.cc |
| @@ -1904,10 +1904,14 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
| Representation from = instr->from(); |
| Representation to = instr->to(); |
| if (from.IsSmi()) { |
| - if (to.IsTagged()) { |
| + if (to.IsSmiOrTagged()) { |
|
Toon Verwaest
2013/08/12 14:53:42
Smi -> Smi doesn't happen, so this is superfluous.
weiliang.lin2
2013/08/13 02:36:57
Done.
|
| 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 |