src/share/vm/c1/c1_LinearScan.cpp
Print this page
rev 3153 : 6910461: Register allocator may insert spill code at wrong insertion index
Summary: When resolving exception edges after register allocation, the C1 register allocator may insert spill code at the wrong insertion position.
Reviewed-by:
*** 1882,1892 ****
resolve_exception_entry(block, phi->operand()->vreg_number(), move_resolver)
);
if (move_resolver.has_mappings()) {
// insert moves after first instruction
! move_resolver.set_insert_position(block->lir(), 1);
move_resolver.resolve_and_append_moves();
}
}
--- 1882,1892 ----
resolve_exception_entry(block, phi->operand()->vreg_number(), move_resolver)
);
if (move_resolver.has_mappings()) {
// insert moves after first instruction
! move_resolver.set_insert_position(block->lir(), 0);
move_resolver.resolve_and_append_moves();
}
}