| Index: src/ia32/lithium-ia32.cc
|
| diff --git a/src/ia32/lithium-ia32.cc b/src/ia32/lithium-ia32.cc
|
| index e2eee19c841bf223e2b1f45898cfcbd6e2a2ddce..07dbf13d19a3d4b20ccfb8d99cdc1ab0ddb1885b 100644
|
| --- a/src/ia32/lithium-ia32.cc
|
| +++ b/src/ia32/lithium-ia32.cc
|
| @@ -954,16 +954,6 @@ void LChunkBuilder::VisitInstruction(HInstruction* current) {
|
| if (FLAG_stress_environments && !instr->HasEnvironment()) {
|
| instr = AssignEnvironment(instr);
|
| }
|
| - if (!CpuFeatures::IsSafeForSnapshot(SSE2) && instr->IsGoto() &&
|
| - LGoto::cast(instr)->jumps_to_join()) {
|
| - // TODO(olivf) Since phis of spilled values are joined as registers
|
| - // (not in the stack slot), we need to allow the goto gaps to keep one
|
| - // x87 register alive. To ensure all other values are still spilled, we
|
| - // insert a fpu register barrier right before.
|
| - LClobberDoubles* clobber = new(zone()) LClobberDoubles();
|
| - clobber->set_hydrogen_value(current);
|
| - chunk_->AddInstruction(clobber, current_block_);
|
| - }
|
| instr->set_hydrogen_value(current);
|
| chunk_->AddInstruction(instr, current_block_);
|
| }
|
| @@ -1056,7 +1046,7 @@ LEnvironment* LChunkBuilder::CreateEnvironment(
|
|
|
|
|
| LInstruction* LChunkBuilder::DoGoto(HGoto* instr) {
|
| - return new(zone()) LGoto(instr->FirstSuccessor());
|
| + return new(zone()) LGoto(instr->FirstSuccessor()->block_id());
|
| }
|
|
|
|
|
| @@ -1068,7 +1058,7 @@ LInstruction* LChunkBuilder::DoBranch(HBranch* instr) {
|
| HBasicBlock* successor = HConstant::cast(value)->BooleanValue()
|
| ? instr->FirstSuccessor()
|
| : instr->SecondSuccessor();
|
| - return new(zone()) LGoto(successor);
|
| + return new(zone()) LGoto(successor->block_id());
|
| }
|
|
|
| ToBooleanStub::Types expected = instr->expected_input_types();
|
|
|