6910461: Register allocator may insert spill code at wrong insertion index

Tue, 28 Feb 2012 09:13:58 +0100

author
roland
date
Tue, 28 Feb 2012 09:13:58 +0100
changeset 3609
b279f99d7143
parent 3608
2ee7dcc77c63
child 3610
031df0387c09

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: kvn, never

src/share/vm/c1/c1_LinearScan.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/c1/c1_LinearScan.cpp	Tue Feb 28 10:04:01 2012 -0800
     1.2 +++ b/src/share/vm/c1/c1_LinearScan.cpp	Tue Feb 28 09:13:58 2012 +0100
     1.3 @@ -1884,7 +1884,7 @@
     1.4  
     1.5    if (move_resolver.has_mappings()) {
     1.6      // insert moves after first instruction
     1.7 -    move_resolver.set_insert_position(block->lir(), 1);
     1.8 +    move_resolver.set_insert_position(block->lir(), 0);
     1.9      move_resolver.resolve_and_append_moves();
    1.10    }
    1.11  }

mercurial