| Index: src/x64/lithium-x64.cc
|
| diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc
|
| index a39810950dc1331571694b3a7beb7f799d893825..1b4332af87acaffd2f9d54b5cc6ec80abf031d88 100644
|
| --- a/src/x64/lithium-x64.cc
|
| +++ b/src/x64/lithium-x64.cc
|
| @@ -1789,13 +1789,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(), rax);
|
| return MarkAsCall(new(zone()) LThrow(value), instr);
|
| @@ -1843,8 +1836,9 @@ LInstruction* LChunkBuilder::DoChange(HChange* instr) {
|
| return AssignEnvironment(DefineSameAsFirst(new(zone()) LCheckSmi(value)));
|
| } else {
|
| ASSERT(to.IsInteger32());
|
| - LOperand* value = UseRegister(instr->value());
|
| - if (instr->value()->type().IsSmi()) {
|
| + HValue* val = instr->value();
|
| + LOperand* value = UseRegister(val);
|
| + if (val->type().IsSmi() || val->representation().IsSmi()) {
|
| return DefineSameAsFirst(new(zone()) LSmiUntag(value, false));
|
| } else {
|
| bool truncating = instr->CanTruncateToInt32();
|
| @@ -1939,9 +1933,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));
|
| }
|
|
|
|
|
|
|