diff options
author | Eli Friedman <efriedma@quicinc.com> | 2021-07-20 12:35:49 -0700 |
---|---|---|
committer | Eli Friedman <efriedma@quicinc.com> | 2021-07-20 12:38:12 -0700 |
commit | 843c61405881acdac1727c3a1ca4f36156611753 (patch) | |
tree | dd8e22aeeb4d06d3b5b76a460e805ccc428162e3 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | d51f74acdf3950628b90320dae9a169762ad225c (diff) | |
download | llvm-843c61405881acdac1727c3a1ca4f36156611753.zip llvm-843c61405881acdac1727c3a1ca4f36156611753.tar.gz llvm-843c61405881acdac1727c3a1ca4f36156611753.tar.bz2 |
[AArch64] Fix i128 cmpxchg using ldxp/stxp.
Basically two parts to this fix:
1. Stop using AtomicExpand to expand cmpxchg i128
2. Fix AArch64ExpandPseudoInsts to use a correct expansion.
From ARM architecture reference:
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.
Fixes https://bugs.llvm.org/show_bug.cgi?id=51102
Differential Revision: https://reviews.llvm.org/D106039
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions