x86_64: Implement VarHandle.set{Opaque,Release,Volatile} for fields.

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

  benchmark                    before  after
  --------------------------------------------
  SetVolatileStaticFieldInt    2.782   0.00678
  SetVolatileStaticFieldString 3.040   0.00678
  SetVolatileFieldInt          3.082   0.00678
  SetVolatileFieldString       3.317   0.00678
  SetOpaqueStaticFieldInt      2.804   0.00177
  SetOpaqueStaticFieldString   3.040   0.00230
  SetOpaqueFieldInt            3.080   0.00174
  SetOpaqueFieldString         3.317   0.00224
  SetReleaseStaticFieldInt     2.795   0.00177
  SetReleaseStaticFieldString  3.042   0.00281
  SetReleaseFieldInt           3.076   0.00174
  SetReleaseFieldString        3.326   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: Idc5922ba4542608cf2b8d9ba686206b9956baaf6
3 files changed