| Index: runtime/vm/flow_graph_allocator.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_allocator.cc (revision 9788)
|
| +++ runtime/vm/flow_graph_allocator.cc (working copy)
|
| @@ -425,16 +425,16 @@
|
| if (phi == NULL) continue;
|
|
|
| Value* val = phi->InputAt(pred_idx);
|
| - MoveOperands move = parallel_move->moves()[move_idx];
|
| + MoveOperands* move = parallel_move->MoveOperandsAt(move_idx);
|
| if (val->IsUse()) {
|
| const intptr_t virtual_register =
|
| val->AsUse()->definition()->ssa_temp_index();
|
| - Location* slot = move.src_slot();
|
| - *slot = Location::RequiresRegister();
|
| - GetLiveRange(virtual_register)->head()->AddUse(NULL, pos, slot);
|
| + move->set_src(Location::RequiresRegister());
|
| + GetLiveRange(
|
| + virtual_register)->head()->AddUse(NULL, pos, move->src_slot());
|
| } else {
|
| ASSERT(val->IsConstant());
|
| - move.set_src(Location::Constant(val->AsConstant()->value()));
|
| + move->set_src(Location::Constant(val->AsConstant()->value()));
|
| }
|
| move_idx++;
|
| }
|
| @@ -555,12 +555,12 @@
|
| BlockEntryInstr* pred = block->PredecessorAt(k);
|
| ASSERT(pred->last_instruction()->IsGoto());
|
| Instruction* move_instr = pred->last_instruction()->previous();
|
| - ASSERT(move_instr->IsParallelMove());
|
| + ParallelMoveInstr* pmove = move_instr->AsParallelMove();
|
| + ASSERT(pmove != NULL);
|
|
|
| - Location* slot =
|
| - move_instr->AsParallelMove()->moves()[move_idx].dest_slot();
|
| - *slot = Location::RequiresRegister();
|
| - interval->AddUse(NULL, pos, slot);
|
| + MoveOperands* move_operands = pmove->MoveOperandsAt(move_idx);
|
| + move_operands->set_dest(Location::RequiresRegister());
|
| + interval->AddUse(NULL, pos, move_operands->dest_slot());
|
| }
|
|
|
| // All phi resolution moves are connected. Phi's live range is
|
|
|