[PATCH] D106039: [AArch64] Fix i128 cmpxchg using ldxp/stxp.
Sam Parker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 20 03:19:29 PDT 2021
samparker accepted this revision.
samparker added a comment.
This revision is now accepted and ready to land.
This made my brain melt a little... anyway, from Section B 2.2.1 of Arm ARM:
//When the Store-Exclusive of a Load-Exclusive/Store-Exclusive pair instruction
using two 64-bit quantities succeeds, it causes a single-copy atomic update
of the entire memory location being updated.//
//To atomically load two 64-bit quantities, perform a Load-Exclusive
pair/Store-Exclusive pair sequence of reading and writing the same value for
which the Store-Exclusive pair succeeds, and use the read values from the
Load-Exclusive pair.//
And it looks like this is what we are doing.
Ordering changes also LGTM.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106039/new/
https://reviews.llvm.org/D106039
More information about the llvm-commits
mailing list