| Index: src/arm/lithium-arm.cc
|
| ===================================================================
|
| --- src/arm/lithium-arm.cc (revision 10428)
|
| +++ src/arm/lithium-arm.cc (working copy)
|
| @@ -1625,11 +1625,11 @@
|
| 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()
|
| @@ -1665,12 +1665,12 @@
|
| } 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());
|
|
|