diff 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
line wrap: on
line diff
--- a/src/cpu/sparc/vm/interp_masm_sparc.cpp	Fri Oct 31 10:34:20 2008 -0700
+++ b/src/cpu/sparc/vm/interp_masm_sparc.cpp	Fri Nov 07 11:03:32 2008 -0500
@@ -906,7 +906,7 @@
 
   // load next super to check
   if (UseCompressedOops) {
-    ld( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3);
+    lduw( Rtmp2, arrayOopDesc::base_offset_in_bytes(T_OBJECT), Rtmp3);
     // Bump array pointer forward one oop
     add( Rtmp2, 4, Rtmp2 );
   } else {