x86_64: Implement VarHandle.set() for static and instance fields.

Benchmarks improvements (using benchmarks provided by
https://android-review.googlesource.com/1420959):

  benchmark                    before  after
  --------------------------------------------
  SetStaticFieldInt            2.421   0.00176
  SetStaticFieldString         2.628   0.00230
  SetFieldInt                  2.665   0.00175
  SetFieldString               2.914   0.00225

Bug: 65872996

Test: lunch aosp_cf_x86_64_phone-userdebug \
  && art/test.py --host -r -t 712-varhandle-invocations --64
Test: Repeat with ART_USE_READ_BARRIER=false.
Test: Repeat with ART_HEAP_POISONING=true.
Change-Id: I13acda88ab881c1274fcd8e154de61150409d974
diff --git a/compiler/optimizing/code_generator_x86_64.h b/compiler/optimizing/code_generator_x86_64.h
index f5d8da5..8a08e85 100644
--- a/compiler/optimizing/code_generator_x86_64.h
+++ b/compiler/optimizing/code_generator_x86_64.h
@@ -241,6 +241,14 @@
                                const Address& address,
                                Label* fixup_label,
                                ReadBarrierOption read_barrier_option);
+  void HandleFieldSet(HInstruction* instruction,
+                      uint32_t value_index,
+                      uint32_t extra_temp_index,
+                      DataType::Type field_type,
+                      Address field_addr,
+                      CpuRegister base,
+                      bool is_volatile,
+                      bool value_can_be_null);
 
  private:
   // Generate code for the given suspend check. If not null, `successor`