comparison src/cpu/sparc/vm/interp_masm_sparc.cpp @ 422:05db98ed59ba

6760773: UseCompressedOops is broken with UseParNewGC Summary: sparc code for gen_subtype_check was doing an ld for a compressed oop with the sign bit set so not comparing, leading to a ClassCastException. Reviewed-by: phh, never, acorn, kvn, xlu
author coleenp
date Fri, 07 Nov 2008 11:03:32 -0500
parents d1605aabd0a1
children 98cb887364d3 70998f2e05ef
comparison
equal deleted inserted replaced
414:348be627a148 422:05db98ed59ba
904 br( Assembler::equal, false, Assembler::pn, not_subtype ); 904 br( Assembler::equal, false, Assembler::pn, not_subtype );
905 delayed()->nop(); 905 delayed()->nop();
906 906
907 // load next super to check 907 // load next super to check
908 if (UseCompressedOops) { 908 if (UseCompressedOops) {
909 ld( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3); 909 lduw( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3);
910 // Bump array pointer forward one oop 910 // Bump array pointer forward one oop
911 add( Rtmp2, 4, Rtmp2 ); 911 add( Rtmp2, 4, Rtmp2 );
912 } else { 912 } else {
913 ld_ptr( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3); 913 ld_ptr( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3);
914 // Bump array pointer forward one oop 914 // Bump array pointer forward one oop