summaryrefslogtreecommitdiffstats
path: root/llvm/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
commit05ae2d671549d080ec81627299ccd61809355c29 (patch)
tree09793b2c67f6a57cb7d4e16d70cfc3a914e52b90 /llvm/lib/Target/Sparc/SparcISelLowering.h
parent98aa7fab7edf836434c77d79d048fba66f5748b0 (diff)
downloadbcm5719-llvm-05ae2d671549d080ec81627299ccd61809355c29.tar.gz
bcm5719-llvm-05ae2d671549d080ec81627299ccd61809355c29.zip
Implement atomicrmw operations in 32 and 64 bits for SPARCv9.
These all use the compare-and-swap CASA/CASXA instructions. llvm-svn: 199975
Diffstat (limited to 'llvm/lib/Target/Sparc/SparcISelLowering.h')
-rw-r--r--llvm/lib/Target/Sparc/SparcISelLowering.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/Sparc/SparcISelLowering.h b/llvm/lib/Target/Sparc/SparcISelLowering.h
index 36d569e3b69..f7b45d0677f 100644
--- a/llvm/lib/Target/Sparc/SparcISelLowering.h
+++ b/llvm/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
OpenPOWER on IntegriCloud