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