Implement SPARCv9 atomic_swap_64 with a pseudo.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 30 Jan 2014 04:48:46 +0000 (04:48 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 30 Jan 2014 04:48:46 +0000 (04:48 +0000)
commit17ca0f8f80b034131d05233076c85e958572ad4d
treef982ef8a73649e51f822f7263c2909473d2e3b0d
parent09f38a0ef13bf542f7b3f1862d718e33e7de587b
Implement SPARCv9 atomic_swap_64 with a pseudo.

The SWAP instruction only exists in a 32-bit variant, but the 64-bit
atomic swap can be implemented in terms of CASX, like the other atomic
rmw primitives.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200453 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Sparc/SparcISelLowering.cpp
lib/Target/Sparc/SparcInstr64Bit.td
test/CodeGen/SPARC/atomics.ll