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/code_generator_x86.h b/compiler/optimizing/code_generator_x86.h
index b024eeb..94f010e 100644
--- a/compiler/optimizing/code_generator_x86.h
+++ b/compiler/optimizing/code_generator_x86.h
@@ -446,6 +446,7 @@
   void LoadFromMemoryNoBarrier(DataType::Type dst_type,
                                Location dst,
                                Address src,
+                               HInstruction* instr = nullptr,
                                XmmRegister temp = kNoXmmRegister,
                                bool is_atomic_load = false);
   // Helper method to move a primitive value from a location to an address.