src/cpu/sparc/vm/assembler_sparc.cpp

changeset 559
b130b98db9cf
parent 548
ba764ed4b6f2
child 599
c436414a719e
child 613
6d172e3548cb
child 777
37f87013dfd8
     1.1 --- a/src/cpu/sparc/vm/assembler_sparc.cpp	Thu Apr 17 07:16:03 2008 -0700
     1.2 +++ b/src/cpu/sparc/vm/assembler_sparc.cpp	Wed Apr 23 11:20:36 2008 -0700
     1.3 @@ -3647,6 +3647,12 @@
     1.4    srlx(r, LogMinObjAlignmentInBytes, r);
     1.5  }
     1.6  
     1.7 +void MacroAssembler::encode_heap_oop_not_null(Register src, Register dst) {
     1.8 +  assert (UseCompressedOops, "must be compressed");
     1.9 +  sub(src, G6_heapbase, dst);
    1.10 +  srlx(dst, LogMinObjAlignmentInBytes, dst);
    1.11 +}
    1.12 +
    1.13  // Same algorithm as oops.inline.hpp decode_heap_oop.
    1.14  void  MacroAssembler::decode_heap_oop(Register src, Register dst) {
    1.15    assert (UseCompressedOops, "must be compressed");
    1.16 @@ -3665,6 +3671,14 @@
    1.17    add(r, G6_heapbase, r);
    1.18  }
    1.19  
    1.20 +void  MacroAssembler::decode_heap_oop_not_null(Register src, Register dst) {
    1.21 +  // Do not add assert code to this unless you change vtableStubs_sparc.cpp
    1.22 +  // pd_code_size_limit.
    1.23 +  assert (UseCompressedOops, "must be compressed");
    1.24 +  sllx(src, LogMinObjAlignmentInBytes, dst);
    1.25 +  add(dst, G6_heapbase, dst);
    1.26 +}
    1.27 +
    1.28  void MacroAssembler::reinit_heapbase() {
    1.29    if (UseCompressedOops) {
    1.30      // call indirectly to solve generation ordering problem

mercurial