< prev index next >

src/cpu/x86/vm/jniFastGetField_x86_64.cpp

Print this page
rev 12906 : [mq]: gc_interface

@@ -79,11 +79,12 @@
     __ xorptr(robj, rcounter);                   // obj, since
                                                 // robj ^ rcounter ^ rcounter == robj
                                                 // robj is data dependent on rcounter.
   }
 
-  __ clear_jweak_tag(robj);
+  __ testb(robj, JNIHandles::weak_tag_mask);
+  __ jcc (Assembler::notZero, slow);
 
   __ movptr(robj, Address(robj, 0));             // *obj
   __ mov   (roffset, c_rarg2);
   __ shrptr(roffset, 2);                         // offset
 

@@ -180,11 +181,12 @@
     __ xorptr(robj, rcounter);                   // obj, since
                                                 // robj ^ rcounter ^ rcounter == robj
                                                 // robj is data dependent on rcounter.
   }
 
-  __ clear_jweak_tag(robj);
+  __ testb(robj, JNIHandles::weak_tag_mask);
+  __ jcc (Assembler::notZero, slow);
 
   __ movptr(robj, Address(robj, 0));             // *obj
   __ mov   (roffset, c_rarg2);
   __ shrptr(roffset, 2);                         // offset
 
< prev index next >