x86: Deduplicate load from memory for non-reference types.

Deduplicate common code in HandleFieldGet, VisitArrayGet and
GenerateVarHandleGet. Reference types are handled individually in each
case because these functions have subtle differences.

Bug: 65872996

Test: art/test.py --host -r --optimizing --32
Change-Id: Idcbe0bdb98290732816deec0cb1c42c530d5026f
diff --git a/compiler/optimizing/intrinsics_x86.cc b/compiler/optimizing/intrinsics_x86.cc
index b0c4b57..d11bfa2 100644
--- a/compiler/optimizing/intrinsics_x86.cc
+++ b/compiler/optimizing/intrinsics_x86.cc
@@ -3671,7 +3671,8 @@
   } else if (type == DataType::Type::kInt64 &&
              invoke->GetIntrinsic() != Intrinsics::kVarHandleGet) {
     XmmRegister xmm_temp = locations->GetTemp(2).AsFpuRegister<XmmRegister>();
-    codegen->LoadFromMemoryNoBarrier(type, out, field_addr, xmm_temp, /* is_atomic_load= */ true);
+    codegen->LoadFromMemoryNoBarrier(
+        type, out, field_addr, /* instr= */ nullptr, xmm_temp, /* is_atomic_load= */ true);
   } else {
     codegen->LoadFromMemoryNoBarrier(type, out, field_addr);
   }