Fix and improve arm64 atomic operations in Base.
commit9bfc380d97bd87df1d5b8d84695013b5621a4025
authorrmcilroy@chromium.org <rmcilroy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Thu, 10 Apr 2014 14:38:21 +0000 (10 14:38 +0000)
committerrmcilroy@chromium.org <rmcilroy@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Thu, 10 Apr 2014 14:38:21 +0000 (10 14:38 +0000)
treec886091d9c2f7451d0624e8b4004e0b7e44f456a
parentc9440b2c20b191fef1c62c7b54266ad80a72cbf9
Fix and improve arm64 atomic operations in Base.

 - The 'compare and swap' operations should enforce memory ordering even when
   the exchange does not occur.
 - The exclusive monitor does not need to be cleared by CLREX if a LDRX was
   not followed by a matching STREX.
 - Use LDAR and STLR where possible.
 - Use the 'I' and 'J' constraints to hint for constants valid for immediate
   values

Based on V8 changes at https://codereview.chromium.org/220793002

BUG=354405

Review URL: https://codereview.chromium.org/230963002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262986 0039d316-1c4b-4281-b951-d872f2087c98
base/atomicops_internals_arm64_gcc.h