Merge

Thu, 07 Aug 2014 09:18:28 -0400

author
hseigel
date
Thu, 07 Aug 2014 09:18:28 -0400
changeset 6961
edfa5ba8609e
parent 6960
b2daaf70fab2
parent 6959
5a061b65b00b
child 6964
cb95655ef06f

Merge

     1.1 --- a/src/share/vm/c1/c1_LinearScan.cpp	Tue Aug 05 09:11:35 2014 -0400
     1.2 +++ b/src/share/vm/c1/c1_LinearScan.cpp	Thu Aug 07 09:18:28 2014 -0400
     1.3 @@ -1628,25 +1628,22 @@
     1.4    Interval* precolored_cpu_intervals, *not_precolored_cpu_intervals;
     1.5    Interval* precolored_fpu_intervals, *not_precolored_fpu_intervals;
     1.6  
     1.7 -  create_unhandled_lists(&precolored_cpu_intervals, &not_precolored_cpu_intervals, is_precolored_cpu_interval, is_virtual_cpu_interval);
     1.8 -  if (has_fpu_registers()) {
     1.9 -    create_unhandled_lists(&precolored_fpu_intervals, &not_precolored_fpu_intervals, is_precolored_fpu_interval, is_virtual_fpu_interval);
    1.10 -#ifdef ASSERT
    1.11 -  } else {
    1.12 -    // fpu register allocation is omitted because no virtual fpu registers are present
    1.13 -    // just check this again...
    1.14 -    create_unhandled_lists(&precolored_fpu_intervals, &not_precolored_fpu_intervals, is_precolored_fpu_interval, is_virtual_fpu_interval);
    1.15 -    assert(not_precolored_fpu_intervals == Interval::end(), "missed an uncolored fpu interval");
    1.16 -#endif
    1.17 -  }
    1.18 -
    1.19    // allocate cpu registers
    1.20 +  create_unhandled_lists(&precolored_cpu_intervals, &not_precolored_cpu_intervals,
    1.21 +                         is_precolored_cpu_interval, is_virtual_cpu_interval);
    1.22 +
    1.23 +  // allocate fpu registers
    1.24 +  create_unhandled_lists(&precolored_fpu_intervals, &not_precolored_fpu_intervals,
    1.25 +                         is_precolored_fpu_interval, is_virtual_fpu_interval);
    1.26 +
    1.27 +  // the fpu interval allocation cannot be moved down below with the fpu section as
    1.28 +  // the cpu_lsw.walk() changes interval positions.
    1.29 +
    1.30    LinearScanWalker cpu_lsw(this, precolored_cpu_intervals, not_precolored_cpu_intervals);
    1.31    cpu_lsw.walk();
    1.32    cpu_lsw.finish_allocation();
    1.33  
    1.34    if (has_fpu_registers()) {
    1.35 -    // allocate fpu registers
    1.36      LinearScanWalker fpu_lsw(this, precolored_fpu_intervals, not_precolored_fpu_intervals);
    1.37      fpu_lsw.walk();
    1.38      fpu_lsw.finish_allocation();

mercurial