1.1 --- a/src/cpu/sparc/vm/assembler_sparc.cpp Tue Jun 03 15:38:31 2008 -0700 1.2 +++ b/src/cpu/sparc/vm/assembler_sparc.cpp Fri Jun 06 13:43:36 2008 -0400 1.3 @@ -3643,6 +3643,7 @@ 1.4 1.5 void MacroAssembler::encode_heap_oop(Register src, Register dst) { 1.6 assert (UseCompressedOops, "must be compressed"); 1.7 + verify_oop(src); 1.8 Label done; 1.9 if (src == dst) { 1.10 // optimize for frequent case src == dst 1.11 @@ -3664,12 +3665,14 @@ 1.12 1.13 void MacroAssembler::encode_heap_oop_not_null(Register r) { 1.14 assert (UseCompressedOops, "must be compressed"); 1.15 + verify_oop(r); 1.16 sub(r, G6_heapbase, r); 1.17 srlx(r, LogMinObjAlignmentInBytes, r); 1.18 } 1.19 1.20 void MacroAssembler::encode_heap_oop_not_null(Register src, Register dst) { 1.21 assert (UseCompressedOops, "must be compressed"); 1.22 + verify_oop(src); 1.23 sub(src, G6_heapbase, dst); 1.24 srlx(dst, LogMinObjAlignmentInBytes, dst); 1.25 } 1.26 @@ -3682,11 +3685,13 @@ 1.27 bpr(rc_nz, true, Assembler::pt, dst, done); 1.28 delayed() -> add(dst, G6_heapbase, dst); // annuled if not taken 1.29 bind(done); 1.30 + verify_oop(dst); 1.31 } 1.32 1.33 void MacroAssembler::decode_heap_oop_not_null(Register r) { 1.34 // Do not add assert code to this unless you change vtableStubs_sparc.cpp 1.35 // pd_code_size_limit. 1.36 + // Also do not verify_oop as this is called by verify_oop. 1.37 assert (UseCompressedOops, "must be compressed"); 1.38 sllx(r, LogMinObjAlignmentInBytes, r); 1.39 add(r, G6_heapbase, r); 1.40 @@ -3695,6 +3700,7 @@ 1.41 void MacroAssembler::decode_heap_oop_not_null(Register src, Register dst) { 1.42 // Do not add assert code to this unless you change vtableStubs_sparc.cpp 1.43 // pd_code_size_limit. 1.44 + // Also do not verify_oop as this is called by verify_oop. 1.45 assert (UseCompressedOops, "must be compressed"); 1.46 sllx(src, LogMinObjAlignmentInBytes, dst); 1.47 add(dst, G6_heapbase, dst);