Index: src/arm/lithium-arm.cc |
=================================================================== |
--- src/arm/lithium-arm.cc (revision 10400) |
+++ src/arm/lithium-arm.cc (working copy) |
@@ -1625,12 +1625,14 @@ |
return AssignEnvironment(DefineAsRegister(res)); |
} else { |
ASSERT(to.IsInteger32()); |
- LOperand* value = UseRegister(instr->value()); |
+ LOperand* value; |
fschneider
2012/01/16 12:59:20
You can write:
LOperand* value = UseRegisterAtSta
Alexandre
2012/01/16 13:07:18
Done.
|
bool needs_check = !instr->value()->type().IsSmi(); |
LInstruction* res = NULL; |
if (!needs_check) { |
- res = DefineSameAsFirst(new LSmiUntag(value, needs_check)); |
+ value = UseRegisterAtStart(instr->value()); |
+ res = DefineAsRegister(new LSmiUntag(value, needs_check)); |
} else { |
+ value = UseRegister(instr->value()); |
fschneider
2012/01/16 12:59:20
In this case you can also use UseRegisterAtStart.
Alexandre
2012/01/16 13:07:18
Done.
|
LOperand* temp1 = TempRegister(); |
LOperand* temp2 = instr->CanTruncateToInt32() ? TempRegister() |
: NULL; |
@@ -1665,12 +1667,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()); |