summaryrefslogtreecommitdiff
path: root/lib/Target/Sparc/SparcISelLowering.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2014-01-24 06:23:31 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2014-01-24 06:23:31 +0000
commitc30791627e94490515f7141ab8b9b12621268871 (patch)
tree7fdc796869a55af87cc5df6004ab8582befe41cf /lib/Target/Sparc/SparcISelLowering.h
parent8c6a26194bccf825496b4f4231aa93712afe0b11 (diff)
downloadllvm-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.h7
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