x86_64: Implement Unsafe.compareAndSetObject intrinsic.

The implementation is the same as Unsafe.compareAndSwapObject, as the
latter operation has compare-and-set semantics.

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

  benchmark                              before   after
  -----------------------------------------------------
  UnsafeCompareAndSetStaticFieldString   1.333    0.009
  UnsafeCompareAndSetFieldString         1.336    0.009

Bug: 71781600
Test: ART_HEAP_POISONING=true m build-art-host-tests \
        && art/test.py --host -r -t 712-varhandle-invocations --64
Change-Id: I19a5dc15304693016c7b93294dafae4a90606cff
2 files changed