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(); |