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 | 05ae2d671549d080ec81627299ccd61809355c29 (patch) | |
tree | 09793b2c67f6a57cb7d4e16d70cfc3a914e52b90 /llvm/lib/Target/Sparc/SparcISelLowering.h | |
parent | 98aa7fab7edf836434c77d79d048fba66f5748b0 (diff) | |
download | bcm5719-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.h | 7 |
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 |