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