--- old/src/hotspot/cpu/x86/methodHandles_x86.cpp 2018-05-07 22:23:37.997779357 +0200 +++ new/src/hotspot/cpu/x86/methodHandles_x86.cpp 2018-05-07 22:23:37.702783049 +0200 @@ -175,7 +175,9 @@ __ verify_oop(method_temp); __ load_heap_oop(method_temp, Address(method_temp, NONZERO(java_lang_invoke_MemberName::method_offset_in_bytes())), temp2); __ verify_oop(method_temp); - __ movptr(method_temp, Address(method_temp, NONZERO(java_lang_invoke_ResolvedMethodName::vmtarget_offset_in_bytes()))); + __ access_load_at(T_ADDRESS, IN_HEAP, method_temp, + Address(method_temp, NONZERO(java_lang_invoke_ResolvedMethodName::vmtarget_offset_in_bytes())), + noreg, noreg); if (VerifyMethodHandles && !for_compiler_entry) { // make sure recv is already on stack @@ -390,7 +392,7 @@ verify_ref_kind(_masm, JVM_REF_invokeSpecial, member_reg, temp3); } __ load_heap_oop(rbx_method, member_vmtarget); - __ movptr(rbx_method, vmtarget_method); + __ access_load_at(T_ADDRESS, IN_HEAP, rbx_method, vmtarget_method, noreg, noreg); break; case vmIntrinsics::_linkToStatic: @@ -398,7 +400,7 @@ verify_ref_kind(_masm, JVM_REF_invokeStatic, member_reg, temp3); } __ load_heap_oop(rbx_method, member_vmtarget); - __ movptr(rbx_method, vmtarget_method); + __ access_load_at(T_ADDRESS, IN_HEAP, rbx_method, vmtarget_method, noreg, noreg); break; case vmIntrinsics::_linkToVirtual: @@ -412,7 +414,7 @@ // pick out the vtable index from the MemberName, and then we can discard it: Register temp2_index = temp2; - __ movptr(temp2_index, member_vmindex); + __ access_load_at(T_ADDRESS, IN_HEAP, temp2_index, member_vmindex, noreg, noreg); if (VerifyMethodHandles) { Label L_index_ok; @@ -446,7 +448,7 @@ __ verify_klass_ptr(temp3_intf); Register rbx_index = rbx_method; - __ movptr(rbx_index, member_vmindex); + __ access_load_at(T_ADDRESS, IN_HEAP, rbx_index, member_vmindex, noreg, noreg); if (VerifyMethodHandles) { Label L; __ cmpl(rbx_index, 0);