src/cpu/sparc/vm/sparc.ad

changeset 6029
209aa13ab8c0
parent 5791
c9ccd7b85f20
child 6030
b4aa8fc5d0d5
     1.1 --- a/src/cpu/sparc/vm/sparc.ad	Fri Oct 25 11:13:11 2013 -0400
     1.2 +++ b/src/cpu/sparc/vm/sparc.ad	Fri Oct 25 15:19:29 2013 -0400
     1.3 @@ -1660,12 +1660,16 @@
     1.4    if (UseCompressedClassPointers) {
     1.5      assert(Universe::heap() != NULL, "java heap should be initialized");
     1.6      st->print_cr("\tLDUW   [R_O0 + oopDesc::klass_offset_in_bytes],R_G5\t! Inline cache check - compressed klass");
     1.7 -    st->print_cr("\tSET    Universe::narrow_klass_base,R_G6_heap_base");
     1.8 -    if (Universe::narrow_klass_shift() != 0) {
     1.9 -      st->print_cr("\tSLL    R_G5,3,R_G5");
    1.10 +    if (Universe::narrow_klass_base() != 0) {
    1.11 +      st->print_cr("\tSET    Universe::narrow_klass_base,R_G6_heap_base");
    1.12 +      if (Universe::narrow_klass_shift() != 0) {
    1.13 +        st->print_cr("\tSLL    R_G5,Universe::narrow_klass_shift,R_G5");
    1.14 +      }
    1.15 +      st->print_cr("\tADD    R_G5,R_G6_heap_base,R_G5");
    1.16 +      st->print_cr("\tSET    Universe::narrow_ptrs_base,R_G6_heap_base");
    1.17 +    } else {
    1.18 +      st->print_cr("\tSLL    R_G5,Universe::narrow_klass_shift,R_G5");
    1.19      }
    1.20 -    st->print_cr("\tADD    R_G5,R_G6_heap_base,R_G5");
    1.21 -    st->print_cr("\tSET    Universe::narrow_ptrs_base,R_G6_heap_base");
    1.22    } else {
    1.23      st->print_cr("\tLDX    [R_O0 + oopDesc::klass_offset_in_bytes],R_G5\t! Inline cache check");
    1.24    }

mercurial