--- old/src/cpu/x86/vm/jniFastGetField_x86_64.cpp 2017-04-25 16:43:54.119176617 +0200 +++ new/src/cpu/x86/vm/jniFastGetField_x86_64.cpp 2017-04-25 16:43:53.983176622 +0200 @@ -81,7 +81,8 @@ // 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); @@ -182,7 +183,8 @@ // 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);