src/cpu/x86/vm/c1_LinearScan_x86.hpp

changeset 2344
ac637b7220d1
parent 2314
f95d63e2154a
child 6876
710a3c8b516e
     1.1 --- a/src/cpu/x86/vm/c1_LinearScan_x86.hpp	Tue Nov 23 13:22:55 2010 -0800
     1.2 +++ b/src/cpu/x86/vm/c1_LinearScan_x86.hpp	Tue Nov 30 23:23:40 2010 -0800
     1.3 @@ -31,18 +31,17 @@
     1.4    assert(FrameMap::rsp_opr->cpu_regnr() == 6, "wrong assumption below");
     1.5    assert(FrameMap::rbp_opr->cpu_regnr() == 7, "wrong assumption below");
     1.6    assert(reg_num >= 0, "invalid reg_num");
     1.7 -
     1.8 -  return reg_num < 6 || reg_num > 7;
     1.9  #else
    1.10 -  // rsp and rbp, r10, r15 (numbers 6 ancd 7) are ignored
    1.11 +  // rsp and rbp, r10, r15 (numbers [12,15]) are ignored
    1.12 +  // r12 (number 11) is conditional on compressed oops.
    1.13 +  assert(FrameMap::r12_opr->cpu_regnr() == 11, "wrong assumption below");
    1.14    assert(FrameMap::r10_opr->cpu_regnr() == 12, "wrong assumption below");
    1.15    assert(FrameMap::r15_opr->cpu_regnr() == 13, "wrong assumption below");
    1.16    assert(FrameMap::rsp_opr->cpu_regnrLo() == 14, "wrong assumption below");
    1.17    assert(FrameMap::rbp_opr->cpu_regnrLo() == 15, "wrong assumption below");
    1.18    assert(reg_num >= 0, "invalid reg_num");
    1.19 -
    1.20 -  return reg_num < 12 || reg_num > 15;
    1.21  #endif // _LP64
    1.22 +  return reg_num <= FrameMap::last_cpu_reg() || reg_num >= pd_nof_cpu_regs_frame_map;
    1.23  }
    1.24  
    1.25  inline int LinearScan::num_physical_regs(BasicType type) {
    1.26 @@ -104,7 +103,7 @@
    1.27    if (allocator()->gen()->is_vreg_flag_set(cur->reg_num(), LIRGenerator::byte_reg)) {
    1.28      assert(cur->type() != T_FLOAT && cur->type() != T_DOUBLE, "cpu regs only");
    1.29      _first_reg = pd_first_byte_reg;
    1.30 -    _last_reg = pd_last_byte_reg;
    1.31 +    _last_reg = FrameMap::last_byte_reg();
    1.32      return true;
    1.33    } else if ((UseSSE >= 1 && cur->type() == T_FLOAT) || (UseSSE >= 2 && cur->type() == T_DOUBLE)) {
    1.34      _first_reg = pd_first_xmm_reg;

mercurial