| 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());
|
|
|