Index: src/mips/lithium-mips.cc |
diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc |
index fb4e6153471d65f198123567babf5c90889d16c6..0a220989c8cbe00d7fda05fead0403ea10d6f573 100644 |
--- a/src/mips/lithium-mips.cc |
+++ b/src/mips/lithium-mips.cc |
@@ -1628,11 +1628,11 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
return AssignEnvironment(DefineAsRegister(res)); |
} else { |
ASSERT(to.IsInteger32()); |
- LOperand* value = UseRegister(instr->value()); |
+ LOperand* value = UseRegisterAtStart(instr->value()); |
bool needs_check = !instr->value()->type().IsSmi(); |
LInstruction* res = NULL; |
if (!needs_check) { |
- res = DefineSameAsFirst(new LSmiUntag(value, needs_check)); |
+ res = DefineAsRegister(new LSmiUntag(value, needs_check)); |
} else { |
LOperand* temp1 = TempRegister(); |
LOperand* temp2 = instr->CanTruncateToInt32() ? TempRegister() |
@@ -1668,12 +1668,12 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) { |
} else if (from.IsInteger32()) { |
if (to.IsTagged()) { |
HValue* val = instr->value(); |
- LOperand* value = UseRegister(val); |
+ LOperand* value = UseRegisterAtStart(val); |
if (val->HasRange() && val->range()->IsInSmiRange()) { |
- return DefineSameAsFirst(new LSmiTag(value)); |
+ return DefineAsRegister(new LSmiTag(value)); |
} else { |
LNumberTagI* result = new LNumberTagI(value); |
- return AssignEnvironment(AssignPointerMap(DefineSameAsFirst(result))); |
+ return AssignEnvironment(AssignPointerMap(DefineAsRegister(result))); |
} |
} else { |
ASSERT(to.IsDouble()); |