src/cpu/sparc/vm/assembler_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/cpu/sparc/vm/assembler_sparc.cpp	Tue Apr 22 13:56:12 2008
--- new/src/cpu/sparc/vm/assembler_sparc.cpp	Tue Apr 22 13:56:12 2008

*** 3645,3654 **** --- 3645,3660 ---- assert (UseCompressedOops, "must be compressed"); sub(r, G6_heapbase, r); srlx(r, LogMinObjAlignmentInBytes, r); } + void MacroAssembler::encode_heap_oop_not_null(Register src, Register dst) { + assert (UseCompressedOops, "must be compressed"); + sub(src, G6_heapbase, dst); + srlx(dst, LogMinObjAlignmentInBytes, dst); + } + // Same algorithm as oops.inline.hpp decode_heap_oop. void MacroAssembler::decode_heap_oop(Register src, Register dst) { assert (UseCompressedOops, "must be compressed"); Label done; sllx(src, LogMinObjAlignmentInBytes, dst);
*** 3663,3672 **** --- 3669,3686 ---- assert (UseCompressedOops, "must be compressed"); sllx(r, LogMinObjAlignmentInBytes, r); add(r, G6_heapbase, r); } + void MacroAssembler::decode_heap_oop_not_null(Register src, Register dst) { + // Do not add assert code to this unless you change vtableStubs_sparc.cpp + // pd_code_size_limit. + assert (UseCompressedOops, "must be compressed"); + sllx(src, LogMinObjAlignmentInBytes, dst); + add(dst, G6_heapbase, dst); + } + void MacroAssembler::reinit_heapbase() { if (UseCompressedOops) { // call indirectly to solve generation ordering problem Address base(G6_heapbase, (address)Universe::heap_base_addr()); load_ptr_contents(base, G6_heapbase);

src/cpu/sparc/vm/assembler_sparc.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File