| Index: src/arm/lithium-arm.cc
|
| diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc
|
| index 5bca4f50ac6044db764a7ef6b92d3af919929fc4..f9e21f73cb6591a4555144129b93ded8d652cd2e 100644
|
| --- a/src/arm/lithium-arm.cc
|
| +++ b/src/arm/lithium-arm.cc
|
| @@ -1872,13 +1872,6 @@ LInstruction* LChunkBuilder::DoBoundsCheckBaseIndexInformation(
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoAbnormalExit(HAbnormalExit* instr) {
|
| - // The control instruction marking the end of a block that completed
|
| - // abruptly (e.g., threw an exception). There is nothing specific to do.
|
| - return NULL;
|
| -}
|
| -
|
| -
|
| LInstruction* LChunkBuilder::DoThrow(HThrow* instr) {
|
| LOperand* value = UseFixed(instr->value(), r0);
|
| return MarkAsCall(new(zone()) LThrow(value), instr);
|
| @@ -1925,11 +1918,12 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| ASSERT(to.IsInteger32());
|
| LOperand* value = NULL;
|
| LInstruction* res = NULL;
|
| - if (instr->value()->type().IsSmi()) {
|
| - value = UseRegisterAtStart(instr->value());
|
| + HValue* val = instr->value();
|
| + if (val->type().IsSmi() || val->representation().IsSmi()) {
|
| + value = UseRegisterAtStart(val);
|
| res = DefineAsRegister(new(zone()) LSmiUntag(value, false));
|
| } else {
|
| - value = UseRegister(instr->value());
|
| + value = UseRegister(val);
|
| LOperand* temp1 = TempRegister();
|
| LOperand* temp2 = FixedTemp(d11);
|
| res = DefineSameAsFirst(new(zone()) LTaggedToI(value,
|
| @@ -2026,9 +2020,9 @@ LInstruction* LChunkBuilder::DoCheckInstanceType(HCheckInstanceType* instr) {
|
| }
|
|
|
|
|
| -LInstruction* LChunkBuilder::DoCheckFunction(HCheckFunction* instr) {
|
| +LInstruction* LChunkBuilder::DoCheckValue(HCheckValue* instr) {
|
| LOperand* value = UseRegisterAtStart(instr->value());
|
| - return AssignEnvironment(new(zone()) LCheckFunction(value));
|
| + return AssignEnvironment(new(zone()) LCheckValue(value));
|
| }
|
|
|
|
|
|
|