Improve the implementation of UnsafeCASObject with Baker read barriers.

On ARM and ARM64, avoid loading the reference altogether when the
GC is not marking.

Also, extract the code logic for updating a reference field from
GenerateReferenceLoadWithBakerReadBarrier routines and move it to
new routines (UpdateReferenceFieldWithBakerReadBarrier), to make
the implementation more legible.

Test: Run ART target tests in Baker read barrier configuration.
Bug: 29516974
Change-Id: I11c53f0607e997cd02ec7911725e98ef3dc97d90
9 files changed