@@ -8853,19 +8853,19 @@ are not prevented from being speculated to before the barrier.
[...] If the data type size maps to one
-of the integral sizes that may have lock free support, the generic
-version uses the lock free built-in function. Otherwise an
+of the integral sizes that may support lock-freedom, the generic
+version uses the lock-free built-in function. Otherwise an
external call is left to be resolved at run time.
=====
This is a slightly awkward sentence. Maybe it could be replaced with something
on the lines of "The generic function uses the lock-free built-in function when
the data-type size makes that possible, otherwise an external call is left to be
resolved at run-time."
=====
-The memory models integrate both barriers to code motion as well as
-synchronization requirements with other threads. They are listed here
-in approximately ascending order of strength.
+An atomic operation can both constrain code motion by the compiler and
+be mapped to a hardware instruction for synchronization between threads
+(e.g., a fence). [...]
=====
This is a little unclear (and inaccurate, aarch64 can use two instructions