Lines Matching full:ppc
16 #include "PPC.h"
26 #define DEBUG_TYPE "ppc-atomic-expand"
55 const MCInstrDesc &OR = TII->get(PPC::OR8); in PairedCopy()
56 const MCInstrDesc &XOR = TII->get(PPC::XOR8); in PairedCopy()
94 case PPC::ATOMIC_SWAP_I128: in expandMI()
95 case PPC::ATOMIC_LOAD_ADD_I128: in expandMI()
96 case PPC::ATOMIC_LOAD_SUB_I128: in expandMI()
97 case PPC::ATOMIC_LOAD_XOR_I128: in expandMI()
98 case PPC::ATOMIC_LOAD_NAND_I128: in expandMI()
99 case PPC::ATOMIC_LOAD_AND_I128: in expandMI()
100 case PPC::ATOMIC_LOAD_OR_I128: in expandMI()
102 case PPC::ATOMIC_CMP_SWAP_I128: in expandMI()
104 case PPC::BUILD_QUADWORD: { in expandMI()
106 Register DstHi = TRI->getSubReg(Dst, PPC::sub_gp8_x0); in expandMI()
107 Register DstLo = TRI->getSubReg(Dst, PPC::sub_gp8_x1); in expandMI()
122 const MCInstrDesc &LL = TII->get(PPC::LQARX); in expandAtomicRMW128()
123 const MCInstrDesc &SC = TII->get(PPC::STQCX); in expandAtomicRMW128()
150 Register OldHi = TRI->getSubReg(Old, PPC::sub_gp8_x0); in expandAtomicRMW128()
151 Register OldLo = TRI->getSubReg(Old, PPC::sub_gp8_x1); in expandAtomicRMW128()
153 Register ScratchHi = TRI->getSubReg(Scratch, PPC::sub_gp8_x0); in expandAtomicRMW128()
154 Register ScratchLo = TRI->getSubReg(Scratch, PPC::sub_gp8_x1); in expandAtomicRMW128()
165 case PPC::ATOMIC_SWAP_I128: in expandAtomicRMW128()
169 case PPC::ATOMIC_LOAD_ADD_I128: in expandAtomicRMW128()
170 BuildMI(CurrentMBB, DL, TII->get(PPC::ADDC8), ScratchLo) in expandAtomicRMW128()
173 BuildMI(CurrentMBB, DL, TII->get(PPC::ADDE8), ScratchHi) in expandAtomicRMW128()
177 case PPC::ATOMIC_LOAD_SUB_I128: in expandAtomicRMW128()
178 BuildMI(CurrentMBB, DL, TII->get(PPC::SUBFC8), ScratchLo) in expandAtomicRMW128()
181 BuildMI(CurrentMBB, DL, TII->get(PPC::SUBFE8), ScratchHi) in expandAtomicRMW128()
196 TRIVIAL_ATOMICRMW(PPC::ATOMIC_LOAD_OR_I128, PPC::OR8); in expandAtomicRMW128()
197 TRIVIAL_ATOMICRMW(PPC::ATOMIC_LOAD_XOR_I128, PPC::XOR8); in expandAtomicRMW128()
198 TRIVIAL_ATOMICRMW(PPC::ATOMIC_LOAD_AND_I128, PPC::AND8); in expandAtomicRMW128()
199 TRIVIAL_ATOMICRMW(PPC::ATOMIC_LOAD_NAND_I128, PPC::NAND8); in expandAtomicRMW128()
205 BuildMI(CurrentMBB, DL, TII->get(PPC::BCC)) in expandAtomicRMW128()
206 .addImm(PPC::PRED_NE) in expandAtomicRMW128()
207 .addReg(PPC::CR0) in expandAtomicRMW128()
220 const MCInstrDesc &LL = TII->get(PPC::LQARX); in expandAtomicCmpSwap128()
221 const MCInstrDesc &SC = TII->get(PPC::STQCX); in expandAtomicCmpSwap128()
226 Register OldHi = TRI->getSubReg(Old, PPC::sub_gp8_x0); in expandAtomicCmpSwap128()
227 Register OldLo = TRI->getSubReg(Old, PPC::sub_gp8_x1); in expandAtomicCmpSwap128()
229 Register ScratchHi = TRI->getSubReg(Scratch, PPC::sub_gp8_x0); in expandAtomicCmpSwap128()
230 Register ScratchLo = TRI->getSubReg(Scratch, PPC::sub_gp8_x1); in expandAtomicCmpSwap128()
261 BuildMI(CurrentMBB, DL, TII->get(PPC::XOR8), ScratchLo) in expandAtomicCmpSwap128()
264 BuildMI(CurrentMBB, DL, TII->get(PPC::XOR8), ScratchHi) in expandAtomicCmpSwap128()
267 BuildMI(CurrentMBB, DL, TII->get(PPC::OR8_rec), ScratchLo) in expandAtomicCmpSwap128()
270 BuildMI(CurrentMBB, DL, TII->get(PPC::BCC)) in expandAtomicCmpSwap128()
271 .addImm(PPC::PRED_NE) in expandAtomicCmpSwap128()
272 .addReg(PPC::CR0) in expandAtomicCmpSwap128()
281 BuildMI(CurrentMBB, DL, TII->get(PPC::BCC)) in expandAtomicCmpSwap128()
282 .addImm(PPC::PRED_NE) in expandAtomicCmpSwap128()
283 .addReg(PPC::CR0) in expandAtomicCmpSwap128()