diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2014-01-24 06:23:31 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2014-01-24 06:23:31 +0000 |
commit | c30791627e94490515f7141ab8b9b12621268871 (patch) | |
tree | 7fdc796869a55af87cc5df6004ab8582befe41cf /lib/Target/Sparc/SparcISelLowering.h | |
parent | 8c6a26194bccf825496b4f4231aa93712afe0b11 (diff) | |
download | llvm-c30791627e94490515f7141ab8b9b12621268871.tar.gz llvm-c30791627e94490515f7141ab8b9b12621268871.tar.bz2 llvm-c30791627e94490515f7141ab8b9b12621268871.tar.xz |
Implement atomicrmw operations in 32 and 64 bits for SPARCv9.
These all use the compare-and-swap CASA/CASXA instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199975 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc/SparcISelLowering.h')
-rw-r--r-- | lib/Target/Sparc/SparcISelLowering.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/Sparc/SparcISelLowering.h b/lib/Target/Sparc/SparcISelLowering.h index 36d569e3b6..f7b45d0677 100644 --- a/lib/Target/Sparc/SparcISelLowering.h +++ b/lib/Target/Sparc/SparcISelLowering.h @@ -165,6 +165,13 @@ namespace llvm { virtual void ReplaceNodeResults(SDNode *N, SmallVectorImpl<SDValue>& Results, SelectionDAG &DAG) const; + + MachineBasicBlock *expandSelectCC(MachineInstr *MI, MachineBasicBlock *BB, + unsigned BROpcode) const; + MachineBasicBlock *expandAtomicRMW(MachineInstr *MI, + MachineBasicBlock *BB, + unsigned Opcode, + unsigned CondCode = 0) const; }; } // end namespace llvm |