1.1 --- a/src/cpu/sparc/vm/assembler_sparc.cpp Thu May 29 14:06:30 2008 -0400 1.2 +++ b/src/cpu/sparc/vm/assembler_sparc.cpp Thu Jun 05 17:02:54 2008 -0400 1.3 @@ -3622,6 +3622,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 @@ -3643,12 +3644,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 @@ -3661,11 +3664,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 @@ -3674,6 +3679,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);