Lines Matching refs:MBB
52 bool expandMBB(Block &MBB);
53 bool expandMI(Block &MBB, BlockIt MBBI);
54 template <unsigned OP> bool expand(Block &MBB, BlockIt MBBI);
56 MachineInstrBuilder buildMI(Block &MBB, BlockIt MBBI, unsigned Opcode) { in buildMI() argument
57 return BuildMI(MBB, MBBI, MBBI->getDebugLoc(), TII->get(Opcode)); in buildMI()
60 MachineInstrBuilder buildMI(Block &MBB, BlockIt MBBI, unsigned Opcode, in buildMI() argument
62 return BuildMI(MBB, MBBI, MBBI->getDebugLoc(), TII->get(Opcode), DstReg); in buildMI()
65 MachineRegisterInfo &getRegInfo(Block &MBB) { in getRegInfo() argument
66 return MBB.getParent()->getRegInfo(); in getRegInfo()
69 bool expandArith(unsigned OpLo, unsigned OpHi, Block &MBB, BlockIt MBBI);
70 bool expandLogic(unsigned Op, Block &MBB, BlockIt MBBI);
71 bool expandLogicImm(unsigned Op, Block &MBB, BlockIt MBBI);
75 template <typename Func> bool expandAtomic(Block &MBB, BlockIt MBBI, Func f);
78 bool expandAtomicBinaryOp(unsigned Opcode, Block &MBB, BlockIt MBBI, Func f);
80 bool expandAtomicBinaryOp(unsigned Opcode, Block &MBB, BlockIt MBBI);
83 bool expandLSLB7Rd(Block &MBB, BlockIt MBBI);
84 bool expandLSRB7Rd(Block &MBB, BlockIt MBBI);
85 bool expandASRB6Rd(Block &MBB, BlockIt MBBI);
86 bool expandASRB7Rd(Block &MBB, BlockIt MBBI);
89 bool expandLSLW4Rd(Block &MBB, BlockIt MBBI);
90 bool expandLSRW4Rd(Block &MBB, BlockIt MBBI);
91 bool expandASRW7Rd(Block &MBB, BlockIt MBBI);
92 bool expandLSLW8Rd(Block &MBB, BlockIt MBBI);
93 bool expandLSRW8Rd(Block &MBB, BlockIt MBBI);
94 bool expandASRW8Rd(Block &MBB, BlockIt MBBI);
95 bool expandLSLW12Rd(Block &MBB, BlockIt MBBI);
96 bool expandLSRW12Rd(Block &MBB, BlockIt MBBI);
97 bool expandASRW14Rd(Block &MBB, BlockIt MBBI);
98 bool expandASRW15Rd(Block &MBB, BlockIt MBBI);
101 bool expandLPMWELPMW(Block &MBB, BlockIt MBBI, bool IsELPM);
103 bool expandLPMBELPMB(Block &MBB, BlockIt MBBI, bool IsELPM);
105 bool expandROLBRd(Block &MBB, BlockIt MBBI);
110 bool AVRExpandPseudo::expandMBB(MachineBasicBlock &MBB) { in expandMBB() argument
113 BlockIt MBBI = MBB.begin(), E = MBB.end(); in expandMBB()
116 Modified |= expandMI(MBB, MBBI); in expandMBB()
130 for (Block &MBB : MF) { in runOnMachineFunction()
139 bool BlockModified = expandMBB(MBB); in runOnMachineFunction()
150 bool AVRExpandPseudo::expandArith(unsigned OpLo, unsigned OpHi, Block &MBB, in expandArith() argument
163 buildMI(MBB, MBBI, OpLo) in expandArith()
169 buildMI(MBB, MBBI, OpHi) in expandArith()
184 bool AVRExpandPseudo::expandLogic(unsigned Op, Block &MBB, BlockIt MBBI) { in expandLogic() argument
197 buildMI(MBB, MBBI, Op) in expandLogic()
206 buildMI(MBB, MBBI, Op) in expandLogic()
244 bool AVRExpandPseudo::expandLogicImm(unsigned Op, Block &MBB, BlockIt MBBI) { in expandLogicImm() argument
258 buildMI(MBB, MBBI, Op) in expandLogicImm()
272 buildMI(MBB, MBBI, Op) in expandLogicImm()
289 bool AVRExpandPseudo::expand<AVR::ADDWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
290 return expandArith(AVR::ADDRdRr, AVR::ADCRdRr, MBB, MBBI); in expand()
294 bool AVRExpandPseudo::expand<AVR::ADCWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
295 return expandArith(AVR::ADCRdRr, AVR::ADCRdRr, MBB, MBBI); in expand()
299 bool AVRExpandPseudo::expand<AVR::SUBWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
300 return expandArith(AVR::SUBRdRr, AVR::SBCRdRr, MBB, MBBI); in expand()
304 bool AVRExpandPseudo::expand<AVR::SUBIWRdK>(Block &MBB, BlockIt MBBI) { in expand() argument
314 buildMI(MBB, MBBI, AVR::SUBIRdK) in expand()
319 buildMI(MBB, MBBI, AVR::SBCIRdK) in expand()
353 bool AVRExpandPseudo::expand<AVR::SBCWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
354 return expandArith(AVR::SBCRdRr, AVR::SBCRdRr, MBB, MBBI); in expand()
358 bool AVRExpandPseudo::expand<AVR::SBCIWRdK>(Block &MBB, BlockIt MBBI) { in expand() argument
373 buildMI(MBB, MBBI, OpLo) in expand()
382 buildMI(MBB, MBBI, OpHi) in expand()
398 bool AVRExpandPseudo::expand<AVR::ANDWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
399 return expandLogic(AVR::ANDRdRr, MBB, MBBI); in expand()
403 bool AVRExpandPseudo::expand<AVR::ANDIWRdK>(Block &MBB, BlockIt MBBI) { in expand() argument
404 return expandLogicImm(AVR::ANDIRdK, MBB, MBBI); in expand()
408 bool AVRExpandPseudo::expand<AVR::ORWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
409 return expandLogic(AVR::ORRdRr, MBB, MBBI); in expand()
413 bool AVRExpandPseudo::expand<AVR::ORIWRdK>(Block &MBB, BlockIt MBBI) { in expand() argument
414 return expandLogicImm(AVR::ORIRdK, MBB, MBBI); in expand()
418 bool AVRExpandPseudo::expand<AVR::EORWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
419 return expandLogic(AVR::EORRdRr, MBB, MBBI); in expand()
423 bool AVRExpandPseudo::expand<AVR::COMWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
435 buildMI(MBB, MBBI, OpLo) in expand()
443 buildMI(MBB, MBBI, OpHi) in expand()
455 bool AVRExpandPseudo::expand<AVR::NEGWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
467 buildMI(MBB, MBBI, AVR::NEGRd) in expand()
474 buildMI(MBB, MBBI, AVR::NEGRd) in expand()
480 buildMI(MBB, MBBI, AVR::SBCRdRr) in expand()
494 bool AVRExpandPseudo::expand<AVR::CPWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
508 buildMI(MBB, MBBI, OpLo) in expand()
512 auto MIBHI = buildMI(MBB, MBBI, OpHi) in expand()
527 bool AVRExpandPseudo::expand<AVR::CPCWRdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
540 auto MIBLO = buildMI(MBB, MBBI, OpLo) in expand()
547 auto MIBHI = buildMI(MBB, MBBI, OpHi) in expand()
562 bool AVRExpandPseudo::expand<AVR::LDIWRdK>(Block &MBB, BlockIt MBBI) { in expand() argument
572 buildMI(MBB, MBBI, OpLo) in expand()
576 buildMI(MBB, MBBI, OpHi) in expand()
613 bool AVRExpandPseudo::expand<AVR::LDSWRdK>(Block &MBB, BlockIt MBBI) { in expand() argument
623 buildMI(MBB, MBBI, OpLo) in expand()
627 buildMI(MBB, MBBI, OpHi) in expand()
659 bool AVRExpandPseudo::expand<AVR::LDWRdPtr>(Block &MBB, BlockIt MBBI) { in expand() argument
665 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expand()
674 buildMI(MBB, MBBI, AVR::LDDWRdPtrQ) in expand()
685 buildMI(MBB, MBBI, AVR::LDRdPtr) in expand()
691 buildMI(MBB, MBBI, AVR::LDDRdPtrQ) in expand()
703 bool AVRExpandPseudo::expand<AVR::LDWRdPtrPi>(Block &MBB, BlockIt MBBI) { in expand() argument
717 buildMI(MBB, MBBI, OpLo) in expand()
723 buildMI(MBB, MBBI, OpHi) in expand()
736 bool AVRExpandPseudo::expand<AVR::LDWRdPtrPd>(Block &MBB, BlockIt MBBI) { in expand() argument
750 buildMI(MBB, MBBI, OpHi) in expand()
756 buildMI(MBB, MBBI, OpLo) in expand()
769 bool AVRExpandPseudo::expand<AVR::LDDWRdPtrQ>(Block &MBB, BlockIt MBBI) { in expand() argument
776 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expand()
794 buildMI(MBB, MBBI, AVR::SUBIWRdK, SrcReg) in expand()
801 buildMI(MBB, MBBI, AVR::LDWRdPtrPi) in expand()
811 buildMI(MBB, MBBI, AVR::SUBIWRdK, SrcReg).addReg(SrcReg).addImm(Imm + 2); in expand()
818 buildMI(MBB, MBBI, AVR::LDDRdPtrQ) in expand()
825 buildMI(MBB, MBBI, AVR::LDDRdPtrQ) in expand()
836 bool AVRExpandPseudo::expandLPMWELPMW(Block &MBB, BlockIt MBBI, bool IsELPM) { in expandLPMWELPMW() argument
843 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expandLPMWELPMW()
853 buildMI(MBB, MBBI, AVR::OUTARr).addImm(STI.getIORegRAMPZ()).addReg(Bank); in expandLPMWELPMW()
863 auto MIBLO = buildMI(MBB, MBBI, OpLo) in expandLPMWELPMW()
867 auto MIBHI = buildMI(MBB, MBBI, OpHi) in expandLPMWELPMW()
875 auto MIBLO = buildMI(MBB, MBBI, Opc); in expandLPMWELPMW()
876 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandLPMWELPMW()
883 auto MIINC = buildMI(MBB, MBBI, AVR::ADIWRdK) in expandLPMWELPMW()
891 buildMI(MBB, MBBI, AVR::SUBIRdK) in expandLPMWELPMW()
895 auto MIZHI = buildMI(MBB, MBBI, AVR::SBCIRdK) in expandLPMWELPMW()
903 auto MIBHI = buildMI(MBB, MBBI, Opc); in expandLPMWELPMW()
904 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandLPMWELPMW()
914 auto MIDEC = buildMI(MBB, MBBI, AVR::SBIWRdK) in expandLPMWELPMW()
922 buildMI(MBB, MBBI, AVR::SUBIRdK) in expandLPMWELPMW()
926 auto MIZHI = buildMI(MBB, MBBI, AVR::SBCIRdK) in expandLPMWELPMW()
940 bool AVRExpandPseudo::expand<AVR::LPMWRdZ>(Block &MBB, BlockIt MBBI) { in expand() argument
941 return expandLPMWELPMW(MBB, MBBI, false); in expand()
945 bool AVRExpandPseudo::expand<AVR::ELPMWRdZ>(Block &MBB, BlockIt MBBI) { in expand() argument
946 return expandLPMWELPMW(MBB, MBBI, true); in expand()
949 bool AVRExpandPseudo::expandLPMBELPMB(Block &MBB, BlockIt MBBI, bool IsELPM) { in expandLPMBELPMB() argument
954 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expandLPMBELPMB()
960 buildMI(MBB, MBBI, AVR::OUTARr).addImm(STI.getIORegRAMPZ()).addReg(BankReg); in expandLPMBELPMB()
966 auto MILB = buildMI(MBB, MBBI, Opc) in expandLPMBELPMB()
974 auto MILB = buildMI(MBB, MBBI, Opc); in expandLPMBELPMB()
975 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandLPMBELPMB()
986 bool AVRExpandPseudo::expand<AVR::ELPMBRdZ>(Block &MBB, BlockIt MBBI) { in expand() argument
987 return expandLPMBELPMB(MBB, MBBI, true); in expand()
991 bool AVRExpandPseudo::expand<AVR::LPMBRdZ>(Block &MBB, BlockIt MBBI) { in expand() argument
992 return expandLPMBELPMB(MBB, MBBI, false); in expand()
996 bool AVRExpandPseudo::expand<AVR::LPMWRdZPi>(Block &MBB, BlockIt MBBI) { in expand() argument
1001 bool AVRExpandPseudo::expand<AVR::ELPMBRdZPi>(Block &MBB, BlockIt MBBI) { in expand() argument
1006 bool AVRExpandPseudo::expand<AVR::ELPMWRdZPi>(Block &MBB, BlockIt MBBI) { in expand() argument
1011 bool AVRExpandPseudo::expandAtomic(Block &MBB, BlockIt MBBI, Func f) { in expandAtomic() argument
1013 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expandAtomic()
1016 buildMI(MBB, MBBI, AVR::INRdA) in expandAtomic()
1021 buildMI(MBB, MBBI, AVR::BCLRs).addImm(7); // CLI in expandAtomic()
1026 buildMI(MBB, MBBI, AVR::OUTARr) in expandAtomic()
1035 bool AVRExpandPseudo::expandAtomicBinaryOp(unsigned Opcode, Block &MBB, in expandAtomicBinaryOp() argument
1037 return expandAtomic(MBB, MBBI, [&](MachineInstr &MI) { in expandAtomicBinaryOp()
1042 *buildMI(MBB, MBBI, Opcode).add(Op1).add(Op2).getInstr(); in expandAtomicBinaryOp()
1047 bool AVRExpandPseudo::expandAtomicBinaryOp(unsigned Opcode, Block &MBB, in expandAtomicBinaryOp() argument
1049 return expandAtomicBinaryOp(Opcode, MBB, MBBI, [](MachineInstr &MI) {}); in expandAtomicBinaryOp()
1053 bool AVRExpandPseudo::expand<AVR::AtomicLoad8>(Block &MBB, BlockIt MBBI) { in expand() argument
1054 return expandAtomicBinaryOp(AVR::LDRdPtr, MBB, MBBI); in expand()
1058 bool AVRExpandPseudo::expand<AVR::AtomicLoad16>(Block &MBB, BlockIt MBBI) { in expand() argument
1059 return expandAtomicBinaryOp(AVR::LDWRdPtr, MBB, MBBI); in expand()
1063 bool AVRExpandPseudo::expand<AVR::AtomicStore8>(Block &MBB, BlockIt MBBI) { in expand() argument
1064 return expandAtomicBinaryOp(AVR::STPtrRr, MBB, MBBI); in expand()
1068 bool AVRExpandPseudo::expand<AVR::AtomicStore16>(Block &MBB, BlockIt MBBI) { in expand() argument
1069 return expandAtomicBinaryOp(AVR::STWPtrRr, MBB, MBBI); in expand()
1073 bool AVRExpandPseudo::expand<AVR::AtomicFence>(Block &MBB, BlockIt MBBI) { in expand() argument
1080 bool AVRExpandPseudo::expand<AVR::STSWKRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1081 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expand()
1088 auto MIB0 = buildMI(MBB, MBBI, AVR::STSKRr); in expand()
1089 auto MIB1 = buildMI(MBB, MBBI, AVR::STSKRr); in expand()
1147 bool AVRExpandPseudo::expand<AVR::STWPtrRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1154 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expand()
1161 buildMI(MBB, MBBI, AVR::STDWPtrQRr) in expand()
1172 buildMI(MBB, MBBI, AVR::STPtrRr) in expand()
1176 buildMI(MBB, MBBI, AVR::STDPtrQRr) in expand()
1182 buildMI(MBB, MBBI, AVR::STDPtrQRr) in expand()
1187 buildMI(MBB, MBBI, AVR::STPtrRr) in expand()
1199 bool AVRExpandPseudo::expand<AVR::STWPtrPiRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1213 auto MIBLO = buildMI(MBB, MBBI, OpLo) in expand()
1220 buildMI(MBB, MBBI, OpHi) in expand()
1234 bool AVRExpandPseudo::expand<AVR::STWPtrPdRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1248 auto MIBHI = buildMI(MBB, MBBI, OpHi) in expand()
1255 buildMI(MBB, MBBI, OpLo) in expand()
1269 bool AVRExpandPseudo::expand<AVR::STDWPtrQRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1271 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expand()
1287 buildMI(MBB, MBBI, AVR::SUBIWRdK, DstReg) in expand()
1293 buildMI(MBB, MBBI, AVR::STWPtrPiRr, DstReg) in expand()
1303 buildMI(MBB, MBBI, AVR::SUBIWRdK, DstReg) in expand()
1312 buildMI(MBB, MBBI, AVR::STDPtrQRr) in expand()
1317 buildMI(MBB, MBBI, AVR::STDPtrQRr) in expand()
1323 buildMI(MBB, MBBI, AVR::STDPtrQRr) in expand()
1328 buildMI(MBB, MBBI, AVR::STDPtrQRr) in expand()
1341 bool AVRExpandPseudo::expand<AVR::STDSPQRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1343 const MachineFunction &MF = *MBB.getParent(); in expand()
1360 bool AVRExpandPseudo::expand<AVR::STDWSPQRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1362 const MachineFunction &MF = *MBB.getParent(); in expand()
1379 bool AVRExpandPseudo::expand<AVR::INWRdA>(Block &MBB, BlockIt MBBI) { in expand() argument
1394 buildMI(MBB, MBBI, OpLo) in expand()
1399 buildMI(MBB, MBBI, OpHi) in expand()
1411 bool AVRExpandPseudo::expand<AVR::OUTWARr>(Block &MBB, BlockIt MBBI) { in expand() argument
1412 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expand()
1426 auto MIBHI = buildMI(MBB, MBBI, AVR::OUTARr) in expand()
1430 auto MIBLO = buildMI(MBB, MBBI, AVR::OUTARr) in expand()
1443 bool AVRExpandPseudo::expand<AVR::PUSHWRr>(Block &MBB, BlockIt MBBI) { in expand() argument
1454 buildMI(MBB, MBBI, OpLo) in expand()
1459 buildMI(MBB, MBBI, OpHi) in expand()
1468 bool AVRExpandPseudo::expand<AVR::POPWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1477 buildMI(MBB, MBBI, OpHi, DstHiReg).setMIFlags(Flags); // High in expand()
1478 buildMI(MBB, MBBI, OpLo, DstLoReg).setMIFlags(Flags); // Low in expand()
1484 bool AVRExpandPseudo::expandROLBRd(Block &MBB, BlockIt MBBI) { in expandROLBRd() argument
1504 buildMI(MBB, MBBI, OpShift) in expandROLBRd()
1510 auto MIB = buildMI(MBB, MBBI, OpCarry) in expandROLBRd()
1523 bool AVRExpandPseudo::expand<AVR::ROLBRdR1>(Block &MBB, BlockIt MBBI) { in expand() argument
1524 return expandROLBRd(MBB, MBBI); in expand()
1528 bool AVRExpandPseudo::expand<AVR::ROLBRdR17>(Block &MBB, BlockIt MBBI) { in expand() argument
1529 return expandROLBRd(MBB, MBBI); in expand()
1533 bool AVRExpandPseudo::expand<AVR::RORBRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1548 buildMI(MBB, MBBI, AVR::BST).addReg(DstReg).addImm(0); in expand()
1551 buildMI(MBB, MBBI, AVR::RORRd, DstReg).addReg(DstReg); in expand()
1554 buildMI(MBB, MBBI, AVR::BLD, DstReg).addReg(DstReg).addImm(7); in expand()
1561 bool AVRExpandPseudo::expand<AVR::LSLWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1573 buildMI(MBB, MBBI, OpLo) in expand()
1579 buildMI(MBB, MBBI, OpHi) in expand()
1595 bool AVRExpandPseudo::expand<AVR::LSLWHiRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1606 buildMI(MBB, MBBI, AVR::ADDRdRr) in expand()
1618 bool AVRExpandPseudo::expandLSLW4Rd(Block &MBB, BlockIt MBBI) { in expandLSLW4Rd() argument
1629 buildMI(MBB, MBBI, AVR::SWAPRd) in expandLSLW4Rd()
1632 buildMI(MBB, MBBI, AVR::SWAPRd) in expandLSLW4Rd()
1638 buildMI(MBB, MBBI, AVR::ANDIRdK) in expandLSLW4Rd()
1647 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSLW4Rd()
1656 buildMI(MBB, MBBI, AVR::ANDIRdK) in expandLSLW4Rd()
1665 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSLW4Rd()
1676 bool AVRExpandPseudo::expandLSLW8Rd(Block &MBB, BlockIt MBBI) { in expandLSLW8Rd() argument
1686 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandLSLW8Rd()
1692 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSLW8Rd()
1703 bool AVRExpandPseudo::expandLSLW12Rd(Block &MBB, BlockIt MBBI) { in expandLSLW12Rd() argument
1713 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandLSLW12Rd()
1718 buildMI(MBB, MBBI, AVR::SWAPRd) in expandLSLW12Rd()
1724 buildMI(MBB, MBBI, AVR::ANDIRdK) in expandLSLW12Rd()
1733 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSLW12Rd()
1745 bool AVRExpandPseudo::expand<AVR::LSLWNRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1750 return expandLSLW4Rd(MBB, MBBI); in expand()
1752 return expandLSLW8Rd(MBB, MBBI); in expand()
1754 return expandLSLW12Rd(MBB, MBBI); in expand()
1762 bool AVRExpandPseudo::expand<AVR::LSRWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1774 buildMI(MBB, MBBI, OpHi) in expand()
1779 buildMI(MBB, MBBI, OpLo) in expand()
1794 bool AVRExpandPseudo::expand<AVR::LSRWLoRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1805 buildMI(MBB, MBBI, AVR::LSRRd) in expand()
1816 bool AVRExpandPseudo::expandLSRW4Rd(Block &MBB, BlockIt MBBI) { in expandLSRW4Rd() argument
1827 buildMI(MBB, MBBI, AVR::SWAPRd) in expandLSRW4Rd()
1830 buildMI(MBB, MBBI, AVR::SWAPRd) in expandLSRW4Rd()
1836 buildMI(MBB, MBBI, AVR::ANDIRdK) in expandLSRW4Rd()
1845 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSRW4Rd()
1854 buildMI(MBB, MBBI, AVR::ANDIRdK) in expandLSRW4Rd()
1863 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSRW4Rd()
1874 bool AVRExpandPseudo::expandLSRW8Rd(Block &MBB, BlockIt MBBI) { in expandLSRW8Rd() argument
1884 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandLSRW8Rd()
1890 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSRW8Rd()
1901 bool AVRExpandPseudo::expandLSRW12Rd(Block &MBB, BlockIt MBBI) { in expandLSRW12Rd() argument
1911 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandLSRW12Rd()
1916 buildMI(MBB, MBBI, AVR::SWAPRd) in expandLSRW12Rd()
1922 buildMI(MBB, MBBI, AVR::ANDIRdK) in expandLSRW12Rd()
1931 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSRW12Rd()
1943 bool AVRExpandPseudo::expand<AVR::LSRWNRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1948 return expandLSRW4Rd(MBB, MBBI); in expand()
1950 return expandLSRW8Rd(MBB, MBBI); in expand()
1952 return expandLSRW12Rd(MBB, MBBI); in expand()
1960 bool AVRExpandPseudo::expand<AVR::RORWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1966 bool AVRExpandPseudo::expand<AVR::ROLWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1972 bool AVRExpandPseudo::expand<AVR::ASRWRd>(Block &MBB, BlockIt MBBI) { in expand() argument
1984 buildMI(MBB, MBBI, OpHi) in expand()
1989 buildMI(MBB, MBBI, OpLo) in expand()
2004 bool AVRExpandPseudo::expand<AVR::ASRWLoRd>(Block &MBB, BlockIt MBBI) { in expand() argument
2015 buildMI(MBB, MBBI, AVR::ASRRd) in expand()
2026 bool AVRExpandPseudo::expandASRW7Rd(Block &MBB, BlockIt MBBI) { in expandASRW7Rd() argument
2041 buildMI(MBB, MBBI, AVR::ADDRdRr) in expandASRW7Rd()
2047 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandASRW7Rd()
2052 buildMI(MBB, MBBI, AVR::ADCRdRr) in expandASRW7Rd()
2059 buildMI(MBB, MBBI, AVR::SBCRdRr) in expandASRW7Rd()
2073 bool AVRExpandPseudo::expandASRW8Rd(Block &MBB, BlockIt MBBI) { in expandASRW8Rd() argument
2083 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandASRW8Rd()
2088 buildMI(MBB, MBBI, AVR::ADDRdRr) in expandASRW8Rd()
2095 buildMI(MBB, MBBI, AVR::SBCRdRr) in expandASRW8Rd()
2108 bool AVRExpandPseudo::expandASRW14Rd(Block &MBB, BlockIt MBBI) { in expandASRW14Rd() argument
2124 buildMI(MBB, MBBI, AVR::ADDRdRr) in expandASRW14Rd()
2130 buildMI(MBB, MBBI, AVR::SBCRdRr) in expandASRW14Rd()
2136 buildMI(MBB, MBBI, AVR::ADDRdRr) in expandASRW14Rd()
2142 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandASRW14Rd()
2148 buildMI(MBB, MBBI, AVR::ADCRdRr) in expandASRW14Rd()
2162 bool AVRExpandPseudo::expandASRW15Rd(Block &MBB, BlockIt MBBI) { in expandASRW15Rd() argument
2175 buildMI(MBB, MBBI, AVR::ADDRdRr) in expandASRW15Rd()
2182 buildMI(MBB, MBBI, AVR::SBCRdRr) in expandASRW15Rd()
2192 buildMI(MBB, MBBI, AVR::MOVRdRr) in expandASRW15Rd()
2201 bool AVRExpandPseudo::expand<AVR::ASRWNRd>(Block &MBB, BlockIt MBBI) { in expand() argument
2206 return expandASRW7Rd(MBB, MBBI); in expand()
2208 return expandASRW8Rd(MBB, MBBI); in expand()
2210 return expandASRW14Rd(MBB, MBBI); in expand()
2212 return expandASRW15Rd(MBB, MBBI); in expand()
2219 bool AVRExpandPseudo::expandLSLB7Rd(Block &MBB, BlockIt MBBI) { in expandLSLB7Rd() argument
2230 buildMI(MBB, MBBI, AVR::RORRd) in expandLSLB7Rd()
2236 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSLB7Rd()
2242 buildMI(MBB, MBBI, AVR::RORRd) in expandLSLB7Rd()
2257 bool AVRExpandPseudo::expand<AVR::LSLBNRd>(Block &MBB, BlockIt MBBI) { in expand() argument
2262 return expandLSLB7Rd(MBB, MBBI); in expand()
2269 bool AVRExpandPseudo::expandLSRB7Rd(Block &MBB, BlockIt MBBI) { in expandLSRB7Rd() argument
2280 buildMI(MBB, MBBI, AVR::ADCRdRr) in expandLSRB7Rd()
2287 buildMI(MBB, MBBI, AVR::EORRdRr) in expandLSRB7Rd()
2293 buildMI(MBB, MBBI, AVR::ADCRdRr) in expandLSRB7Rd()
2309 bool AVRExpandPseudo::expand<AVR::LSRBNRd>(Block &MBB, BlockIt MBBI) { in expand() argument
2314 return expandLSRB7Rd(MBB, MBBI); in expand()
2321 bool AVRExpandPseudo::expandASRB6Rd(Block &MBB, BlockIt MBBI) { in expandASRB6Rd() argument
2332 buildMI(MBB, MBBI, AVR::BST) in expandASRB6Rd()
2338 buildMI(MBB, MBBI, AVR::ADDRdRr) // LSL Rd <==> ADD Rd, Rd in expandASRB6Rd()
2343 buildMI(MBB, MBBI, AVR::SBCRdRr) in expandASRB6Rd()
2348 buildMI(MBB, MBBI, AVR::BLD) in expandASRB6Rd()
2359 bool AVRExpandPseudo::expandASRB7Rd(Block &MBB, BlockIt MBBI) { in expandASRB7Rd() argument
2369 buildMI(MBB, MBBI, AVR::ADDRdRr) in expandASRB7Rd()
2375 buildMI(MBB, MBBI, AVR::SBCRdRr) in expandASRB7Rd()
2391 bool AVRExpandPseudo::expand<AVR::ASRBNRd>(Block &MBB, BlockIt MBBI) { in expand() argument
2396 return expandASRB6Rd(MBB, MBBI); in expand()
2398 return expandASRB7Rd(MBB, MBBI); in expand()
2405 template <> bool AVRExpandPseudo::expand<AVR::SEXT>(Block &MBB, BlockIt MBBI) { in expand() argument
2429 buildMI(MBB, MBBI, AVR::MOVRdRr) in expand()
2434 auto MOV = buildMI(MBB, MBBI, AVR::MOVRdRr) in expand()
2441 buildMI(MBB, MBBI, AVR::ADDRdRr) // LSL Rd <==> ADD Rd, Rr in expand()
2447 buildMI(MBB, MBBI, AVR::SBCRdRr) in expand()
2462 template <> bool AVRExpandPseudo::expand<AVR::ZEXT>(Block &MBB, BlockIt MBBI) { in expand() argument
2481 buildMI(MBB, MBBI, AVR::MOVRdRr) in expand()
2487 buildMI(MBB, MBBI, AVR::EORRdRr) in expand()
2500 bool AVRExpandPseudo::expand<AVR::SPREAD>(Block &MBB, BlockIt MBBI) { in expand() argument
2511 buildMI(MBB, MBBI, OpLo) in expand()
2517 buildMI(MBB, MBBI, OpHi) in expand()
2527 bool AVRExpandPseudo::expand<AVR::SPWRITE>(Block &MBB, BlockIt MBBI) { in expand() argument
2528 const AVRSubtarget &STI = MBB.getParent()->getSubtarget<AVRSubtarget>(); in expand()
2536 buildMI(MBB, MBBI, AVR::INRdA) in expand()
2541 buildMI(MBB, MBBI, AVR::BCLRs).addImm(0x07).setMIFlags(Flags); in expand()
2543 buildMI(MBB, MBBI, AVR::OUTARr) in expand()
2548 buildMI(MBB, MBBI, AVR::OUTARr) in expand()
2553 buildMI(MBB, MBBI, AVR::OUTARr) in expand()
2562 bool AVRExpandPseudo::expandMI(Block &MBB, BlockIt MBBI) { in expandMI() argument
2568 return expand<Op>(MBB, MI) in expandMI()