Lines Matching refs:SystemZ
62 : SystemZGenInstrInfo(SystemZ::ADJCALLSTACKDOWN, SystemZ::ADJCALLSTACKUP), in SystemZInstrInfo()
85 HighRegOp.setReg(RI.getSubReg(HighRegOp.getReg(), SystemZ::subreg_h64)); in splitMove()
86 LowRegOp.setReg(RI.getSubReg(LowRegOp.getReg(), SystemZ::subreg_l64)); in splitMove()
143 unsigned NewOpcode = getOpcodeForOffset(SystemZ::LA, Offset); in splitAdjDynAlloc()
159 bool IsHigh = SystemZ::isHighReg(Reg); in expandRIPseudo()
174 bool DestIsHigh = SystemZ::isHighReg(DestReg); in expandRIEPseudo()
175 bool SrcIsHigh = SystemZ::isHighReg(SrcReg); in expandRIEPseudo()
181 SystemZ::LR, 32, MI.getOperand(1).isKill(), in expandRIEPseudo()
197 SystemZ::isHighReg(Reg) ? HighOpcode : LowOpcode, in expandRXYPseudo()
208 unsigned Opcode = SystemZ::isHighReg(Reg) ? HighOpcode : LowOpcode; in expandLOCPseudo()
233 const Register Reg32 = RI.getSubReg(Reg64, SystemZ::subreg_l32); in expandLoadStackGuard()
239 BuildMI(*MBB, MI, MI->getDebugLoc(), get(SystemZ::EAR), Reg32) in expandLoadStackGuard()
240 .addReg(SystemZ::A0) in expandLoadStackGuard()
244 BuildMI(*MBB, MI, MI->getDebugLoc(), get(SystemZ::SLLG), Reg64) in expandLoadStackGuard()
250 BuildMI(*MBB, MI, MI->getDebugLoc(), get(SystemZ::EAR), Reg32) in expandLoadStackGuard()
251 .addReg(SystemZ::A1); in expandLoadStackGuard()
254 MI->setDesc(get(SystemZ::LG)); in expandLoadStackGuard()
271 bool DestIsHigh = SystemZ::isHighReg(DestReg); in emitGRX32Move()
272 bool SrcIsHigh = SystemZ::isHighReg(SrcReg); in emitGRX32Move()
274 Opcode = SystemZ::RISBHH; in emitGRX32Move()
276 Opcode = SystemZ::RISBHL; in emitGRX32Move()
278 Opcode = SystemZ::RISBLH; in emitGRX32Move()
301 case SystemZ::SELRMux: in commuteInstructionImpl()
302 case SystemZ::SELFHR: in commuteInstructionImpl()
303 case SystemZ::SELR: in commuteInstructionImpl()
304 case SystemZ::SELGR: in commuteInstructionImpl()
305 case SystemZ::LOCRMux: in commuteInstructionImpl()
306 case SystemZ::LOCFHR: in commuteInstructionImpl()
307 case SystemZ::LOCR: in commuteInstructionImpl()
308 case SystemZ::LOCGR: { in commuteInstructionImpl()
353 if (MI.getOpcode() != SystemZ::MVC || !MI.getOperand(0).isFI() || in isStackSlotCopy()
405 if (Branch.CCMask == SystemZ::CCMASK_ANY) { in analyzeBranch()
513 BuildMI(&MBB, DL, get(SystemZ::J)).addMBB(TBB); in insertBranch()
521 BuildMI(&MBB, DL, get(SystemZ::BRC)) in insertBranch()
527 BuildMI(&MBB, DL, get(SystemZ::J)).addMBB(FBB); in insertBranch()
571 SystemZ::GRX32BitRegClass.hasSubClassEq(RC)) || in canInsertSelect()
572 SystemZ::GR32BitRegClass.hasSubClassEq(RC) || in canInsertSelect()
573 SystemZ::GR64BitRegClass.hasSubClassEq(RC)) { in canInsertSelect()
598 if (SystemZ::GRX32BitRegClass.hasSubClassEq(RC)) { in insertSelect()
600 Opc = SystemZ::SELRMux; in insertSelect()
602 Opc = SystemZ::LOCRMux; in insertSelect()
604 Opc = SystemZ::LOCR; in insertSelect()
605 MRI.constrainRegClass(DstReg, &SystemZ::GR32BitRegClass); in insertSelect()
606 Register TReg = MRI.createVirtualRegister(&SystemZ::GR32BitRegClass); in insertSelect()
607 Register FReg = MRI.createVirtualRegister(&SystemZ::GR32BitRegClass); in insertSelect()
613 } else if (SystemZ::GR64BitRegClass.hasSubClassEq(RC)) { in insertSelect()
615 Opc = SystemZ::SELGR; in insertSelect()
617 Opc = SystemZ::LOCGR; in insertSelect()
630 if (DefOpc != SystemZ::LHIMux && DefOpc != SystemZ::LHI && in FoldImmediate()
631 DefOpc != SystemZ::LGHI) in FoldImmediate()
643 case SystemZ::SELRMux: in FoldImmediate()
646 case SystemZ::LOCRMux: in FoldImmediate()
649 NewUseOpc = SystemZ::LOCHIMux; in FoldImmediate()
657 case SystemZ::SELGR: in FoldImmediate()
660 case SystemZ::LOCGR: in FoldImmediate()
663 NewUseOpc = SystemZ::LOCGHI; in FoldImmediate()
692 if (Opcode == SystemZ::Return || in isPredicable()
693 Opcode == SystemZ::Return_XPLINK || in isPredicable()
694 Opcode == SystemZ::Trap || in isPredicable()
695 Opcode == SystemZ::CallJG || in isPredicable()
696 Opcode == SystemZ::CallBR) in isPredicable()
713 if (MBB.getLastNonDebugInstr()->getOpcode() != SystemZ::Trap && in isProfitableToIfCvt()
744 if (Opcode == SystemZ::Trap) { in PredicateInstruction()
745 MI.setDesc(get(SystemZ::CondTrap)); in PredicateInstruction()
748 .addReg(SystemZ::CC, RegState::Implicit); in PredicateInstruction()
751 if (Opcode == SystemZ::Return || Opcode == SystemZ::Return_XPLINK) { in PredicateInstruction()
752 MI.setDesc(get(Opcode == SystemZ::Return ? SystemZ::CondReturn in PredicateInstruction()
753 : SystemZ::CondReturn_XPLINK)); in PredicateInstruction()
757 .addReg(SystemZ::CC, RegState::Implicit); in PredicateInstruction()
760 if (Opcode == SystemZ::CallJG) { in PredicateInstruction()
765 MI.setDesc(get(SystemZ::CallBRCL)); in PredicateInstruction()
771 .addReg(SystemZ::CC, RegState::Implicit); in PredicateInstruction()
774 if (Opcode == SystemZ::CallBR) { in PredicateInstruction()
779 MI.setDesc(get(SystemZ::CallBCR)); in PredicateInstruction()
784 .addReg(SystemZ::CC, RegState::Implicit); in PredicateInstruction()
797 if (SystemZ::GR128BitRegClass.contains(DestReg, SrcReg)) { in copyPhysReg()
798 copyPhysReg(MBB, MBBI, DL, RI.getSubReg(DestReg, SystemZ::subreg_h64), in copyPhysReg()
799 RI.getSubReg(SrcReg, SystemZ::subreg_h64), KillSrc); in copyPhysReg()
802 copyPhysReg(MBB, MBBI, DL, RI.getSubReg(DestReg, SystemZ::subreg_l64), in copyPhysReg()
803 RI.getSubReg(SrcReg, SystemZ::subreg_l64), KillSrc); in copyPhysReg()
809 if (SystemZ::GRX32BitRegClass.contains(DestReg, SrcReg)) { in copyPhysReg()
810 emitGRX32Move(MBB, MBBI, DL, DestReg, SrcReg, SystemZ::LR, 32, KillSrc, in copyPhysReg()
816 if (SystemZ::VR128BitRegClass.contains(DestReg) && in copyPhysReg()
817 SystemZ::FP128BitRegClass.contains(SrcReg)) { in copyPhysReg()
819 RI.getMatchingSuperReg(RI.getSubReg(SrcReg, SystemZ::subreg_h64), in copyPhysReg()
820 SystemZ::subreg_h64, &SystemZ::VR128BitRegClass); in copyPhysReg()
822 RI.getMatchingSuperReg(RI.getSubReg(SrcReg, SystemZ::subreg_l64), in copyPhysReg()
823 SystemZ::subreg_h64, &SystemZ::VR128BitRegClass); in copyPhysReg()
825 BuildMI(MBB, MBBI, DL, get(SystemZ::VMRHG), DestReg) in copyPhysReg()
830 if (SystemZ::FP128BitRegClass.contains(DestReg) && in copyPhysReg()
831 SystemZ::VR128BitRegClass.contains(SrcReg)) { in copyPhysReg()
833 RI.getMatchingSuperReg(RI.getSubReg(DestReg, SystemZ::subreg_h64), in copyPhysReg()
834 SystemZ::subreg_h64, &SystemZ::VR128BitRegClass); in copyPhysReg()
836 RI.getMatchingSuperReg(RI.getSubReg(DestReg, SystemZ::subreg_l64), in copyPhysReg()
837 SystemZ::subreg_h64, &SystemZ::VR128BitRegClass); in copyPhysReg()
841 BuildMI(MBB, MBBI, DL, get(SystemZ::VREPG), DestRegLo) in copyPhysReg()
847 if (DestReg == SystemZ::CC) { in copyPhysReg()
849 SystemZ::GR32BitRegClass.contains(SrcReg) ? SystemZ::TMLH : SystemZ::TMHH; in copyPhysReg()
852 .addImm(3 << (SystemZ::IPM_CC - 16)); in copyPhysReg()
858 if (SystemZ::GR64BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
859 Opcode = SystemZ::LGR; in copyPhysReg()
860 else if (SystemZ::FP32BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
862 Opcode = STI.hasVector() ? SystemZ::LDR32 : SystemZ::LER; in copyPhysReg()
863 else if (SystemZ::FP64BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
864 Opcode = SystemZ::LDR; in copyPhysReg()
865 else if (SystemZ::FP128BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
866 Opcode = SystemZ::LXR; in copyPhysReg()
867 else if (SystemZ::VR32BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
868 Opcode = SystemZ::VLR32; in copyPhysReg()
869 else if (SystemZ::VR64BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
870 Opcode = SystemZ::VLR64; in copyPhysReg()
871 else if (SystemZ::VR128BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
872 Opcode = SystemZ::VLR; in copyPhysReg()
873 else if (SystemZ::AR32BitRegClass.contains(DestReg, SrcReg)) in copyPhysReg()
874 Opcode = SystemZ::CPYA; in copyPhysReg()
940 case SystemZ::NILMux: return LogicOp(32, 0, 16); in interpretAndImmediate()
941 case SystemZ::NIHMux: return LogicOp(32, 16, 16); in interpretAndImmediate()
942 case SystemZ::NILL64: return LogicOp(64, 0, 16); in interpretAndImmediate()
943 case SystemZ::NILH64: return LogicOp(64, 16, 16); in interpretAndImmediate()
944 case SystemZ::NIHL64: return LogicOp(64, 32, 16); in interpretAndImmediate()
945 case SystemZ::NIHH64: return LogicOp(64, 48, 16); in interpretAndImmediate()
946 case SystemZ::NIFMux: return LogicOp(32, 0, 32); in interpretAndImmediate()
947 case SystemZ::NILF64: return LogicOp(64, 0, 32); in interpretAndImmediate()
948 case SystemZ::NIHF64: return LogicOp(64, 32, 32); in interpretAndImmediate()
954 if (OldMI->registerDefIsDead(SystemZ::CC)) { in transferDeadCC()
955 MachineOperand *CCDef = NewMI->findRegisterDefOperand(SystemZ::CC); in transferDeadCC()
982 NewOpcode = SystemZ::RISBG; in convertToThreeAddress()
985 NewOpcode = SystemZ::RISBGN; in convertToThreeAddress()
987 NewOpcode = SystemZ::RISBMux; in convertToThreeAddress()
1035 auto CCUnits = TRI->regunits(MCRegister::from(SystemZ::CC)); in foldMemoryOperandImpl()
1042 if (!CCLiveAtMI && (Opcode == SystemZ::LA || Opcode == SystemZ::LAY) && in foldMemoryOperandImpl()
1046 MI.getDebugLoc(), get(SystemZ::AGSI)) in foldMemoryOperandImpl()
1050 BuiltMI->findRegisterDefOperand(SystemZ::CC)->setIsDead(true); in foldMemoryOperandImpl()
1067 if ((Opcode == SystemZ::AHI || Opcode == SystemZ::AGHI) && OpNum == 0 && in foldMemoryOperandImpl()
1070 Opcode = (Opcode == SystemZ::AHI ? SystemZ::ASI : SystemZ::AGSI); in foldMemoryOperandImpl()
1081 if ((Opcode == SystemZ::ALFI && OpNum == 0 && in foldMemoryOperandImpl()
1083 (Opcode == SystemZ::ALGFI && OpNum == 0 && in foldMemoryOperandImpl()
1086 Opcode = (Opcode == SystemZ::ALFI ? SystemZ::ALSI : SystemZ::ALGSI); in foldMemoryOperandImpl()
1096 if ((Opcode == SystemZ::SLFI && OpNum == 0 && in foldMemoryOperandImpl()
1098 (Opcode == SystemZ::SLGFI && OpNum == 0 && in foldMemoryOperandImpl()
1101 Opcode = (Opcode == SystemZ::SLFI ? SystemZ::ALSI : SystemZ::ALGSI); in foldMemoryOperandImpl()
1113 case SystemZ::LHIMux: in foldMemoryOperandImpl()
1114 case SystemZ::LHI: MemImmOpc = SystemZ::MVHI; break; in foldMemoryOperandImpl()
1115 case SystemZ::LGHI: MemImmOpc = SystemZ::MVGHI; break; in foldMemoryOperandImpl()
1116 case SystemZ::CHIMux: in foldMemoryOperandImpl()
1117 case SystemZ::CHI: MemImmOpc = SystemZ::CHSI; break; in foldMemoryOperandImpl()
1118 case SystemZ::CGHI: MemImmOpc = SystemZ::CGHSI; break; in foldMemoryOperandImpl()
1119 case SystemZ::CLFIMux: in foldMemoryOperandImpl()
1120 case SystemZ::CLFI: in foldMemoryOperandImpl()
1122 MemImmOpc = SystemZ::CLFHSI; in foldMemoryOperandImpl()
1124 case SystemZ::CLGFI: in foldMemoryOperandImpl()
1126 MemImmOpc = SystemZ::CLGHSI; in foldMemoryOperandImpl()
1137 if (Opcode == SystemZ::LGDR || Opcode == SystemZ::LDGR) { in foldMemoryOperandImpl()
1138 bool Op0IsGPR = (Opcode == SystemZ::LGDR); in foldMemoryOperandImpl()
1139 bool Op1IsGPR = (Opcode == SystemZ::LDGR); in foldMemoryOperandImpl()
1143 unsigned StoreOpcode = Op1IsGPR ? SystemZ::STG : SystemZ::STD; in foldMemoryOperandImpl()
1154 unsigned LoadOpcode = Op0IsGPR ? SystemZ::LG : SystemZ::LD; in foldMemoryOperandImpl()
1183 get(SystemZ::MVC)) in foldMemoryOperandImpl()
1194 get(SystemZ::MVC)) in foldMemoryOperandImpl()
1209 int MemOpcode = SystemZ::getMemOpcode(Opcode); in foldMemoryOperandImpl()
1211 (CCLiveAtMI && !MI.definesRegister(SystemZ::CC) && in foldMemoryOperandImpl()
1212 get(MemOpcode).hasImplicitDefOfPhysReg(SystemZ::CC))) in foldMemoryOperandImpl()
1223 if (RC == &SystemZ::VR32BitRegClass || RC == &SystemZ::VR64BitRegClass) { in foldMemoryOperandImpl()
1229 !(SystemZ::FP32BitRegClass.contains(PhysReg) || in foldMemoryOperandImpl()
1230 SystemZ::FP64BitRegClass.contains(PhysReg) || in foldMemoryOperandImpl()
1231 SystemZ::VF128BitRegClass.contains(PhysReg))) in foldMemoryOperandImpl()
1236 bool FusedFPOp = (Opcode == SystemZ::WFMADB || Opcode == SystemZ::WFMASB || in foldMemoryOperandImpl()
1237 Opcode == SystemZ::WFMSDB || Opcode == SystemZ::WFMSSB); in foldMemoryOperandImpl()
1247 if ((MI.getOpcode() == SystemZ::CR || MI.getOpcode() == SystemZ::CGR || in foldMemoryOperandImpl()
1248 MI.getOpcode() == SystemZ::CLR || MI.getOpcode() == SystemZ::CLGR || in foldMemoryOperandImpl()
1249 MI.getOpcode() == SystemZ::WFCDB || MI.getOpcode() == SystemZ::WFCSB || in foldMemoryOperandImpl()
1250 MI.getOpcode() == SystemZ::WFKDB || MI.getOpcode() == SystemZ::WFKSB) && in foldMemoryOperandImpl()
1255 if (MI.getOpcode() == SystemZ::LOCRMux || MI.getOpcode() == SystemZ::LOCGR || in foldMemoryOperandImpl()
1256 MI.getOpcode() == SystemZ::SELRMux || MI.getOpcode() == SystemZ::SELGR) { in foldMemoryOperandImpl()
1266 if (NumOps == 3 && SystemZ::getTargetMemOpcode(MemOpcode) != -1) { in foldMemoryOperandImpl()
1277 if (DstPhys && !SystemZ::GRH32BitRegClass.contains(DstPhys) && SrcReg && in foldMemoryOperandImpl()
1319 if (MIB->definesRegister(SystemZ::CC) && in foldMemoryOperandImpl()
1320 (!MI.definesRegister(SystemZ::CC) || in foldMemoryOperandImpl()
1321 MI.registerDefIsDead(SystemZ::CC))) { in foldMemoryOperandImpl()
1322 MIB->addRegisterDead(SystemZ::CC, TRI); in foldMemoryOperandImpl()
1331 if (MRI.getRegClass(Reg) == &SystemZ::VR32BitRegClass) in foldMemoryOperandImpl()
1332 MRI.setRegClass(Reg, &SystemZ::FP32BitRegClass); in foldMemoryOperandImpl()
1333 else if (MRI.getRegClass(Reg) == &SystemZ::VR64BitRegClass) in foldMemoryOperandImpl()
1334 MRI.setRegClass(Reg, &SystemZ::FP64BitRegClass); in foldMemoryOperandImpl()
1335 else if (MRI.getRegClass(Reg) == &SystemZ::VR128BitRegClass) in foldMemoryOperandImpl()
1336 MRI.setRegClass(Reg, &SystemZ::VF128BitRegClass); in foldMemoryOperandImpl()
1357 case SystemZ::L128: in expandPostRAPseudo()
1358 splitMove(MI, SystemZ::LG); in expandPostRAPseudo()
1361 case SystemZ::ST128: in expandPostRAPseudo()
1362 splitMove(MI, SystemZ::STG); in expandPostRAPseudo()
1365 case SystemZ::LX: in expandPostRAPseudo()
1366 splitMove(MI, SystemZ::LD); in expandPostRAPseudo()
1369 case SystemZ::STX: in expandPostRAPseudo()
1370 splitMove(MI, SystemZ::STD); in expandPostRAPseudo()
1373 case SystemZ::LBMux: in expandPostRAPseudo()
1374 expandRXYPseudo(MI, SystemZ::LB, SystemZ::LBH); in expandPostRAPseudo()
1377 case SystemZ::LHMux: in expandPostRAPseudo()
1378 expandRXYPseudo(MI, SystemZ::LH, SystemZ::LHH); in expandPostRAPseudo()
1381 case SystemZ::LLCRMux: in expandPostRAPseudo()
1382 expandZExtPseudo(MI, SystemZ::LLCR, 8); in expandPostRAPseudo()
1385 case SystemZ::LLHRMux: in expandPostRAPseudo()
1386 expandZExtPseudo(MI, SystemZ::LLHR, 16); in expandPostRAPseudo()
1389 case SystemZ::LLCMux: in expandPostRAPseudo()
1390 expandRXYPseudo(MI, SystemZ::LLC, SystemZ::LLCH); in expandPostRAPseudo()
1393 case SystemZ::LLHMux: in expandPostRAPseudo()
1394 expandRXYPseudo(MI, SystemZ::LLH, SystemZ::LLHH); in expandPostRAPseudo()
1397 case SystemZ::LMux: in expandPostRAPseudo()
1398 expandRXYPseudo(MI, SystemZ::L, SystemZ::LFH); in expandPostRAPseudo()
1401 case SystemZ::LOCMux: in expandPostRAPseudo()
1402 expandLOCPseudo(MI, SystemZ::LOC, SystemZ::LOCFH); in expandPostRAPseudo()
1405 case SystemZ::LOCHIMux: in expandPostRAPseudo()
1406 expandLOCPseudo(MI, SystemZ::LOCHI, SystemZ::LOCHHI); in expandPostRAPseudo()
1409 case SystemZ::STCMux: in expandPostRAPseudo()
1410 expandRXYPseudo(MI, SystemZ::STC, SystemZ::STCH); in expandPostRAPseudo()
1413 case SystemZ::STHMux: in expandPostRAPseudo()
1414 expandRXYPseudo(MI, SystemZ::STH, SystemZ::STHH); in expandPostRAPseudo()
1417 case SystemZ::STMux: in expandPostRAPseudo()
1418 expandRXYPseudo(MI, SystemZ::ST, SystemZ::STFH); in expandPostRAPseudo()
1421 case SystemZ::STOCMux: in expandPostRAPseudo()
1422 expandLOCPseudo(MI, SystemZ::STOC, SystemZ::STOCFH); in expandPostRAPseudo()
1425 case SystemZ::LHIMux: in expandPostRAPseudo()
1426 expandRIPseudo(MI, SystemZ::LHI, SystemZ::IIHF, true); in expandPostRAPseudo()
1429 case SystemZ::IIFMux: in expandPostRAPseudo()
1430 expandRIPseudo(MI, SystemZ::IILF, SystemZ::IIHF, false); in expandPostRAPseudo()
1433 case SystemZ::IILMux: in expandPostRAPseudo()
1434 expandRIPseudo(MI, SystemZ::IILL, SystemZ::IIHL, false); in expandPostRAPseudo()
1437 case SystemZ::IIHMux: in expandPostRAPseudo()
1438 expandRIPseudo(MI, SystemZ::IILH, SystemZ::IIHH, false); in expandPostRAPseudo()
1441 case SystemZ::NIFMux: in expandPostRAPseudo()
1442 expandRIPseudo(MI, SystemZ::NILF, SystemZ::NIHF, false); in expandPostRAPseudo()
1445 case SystemZ::NILMux: in expandPostRAPseudo()
1446 expandRIPseudo(MI, SystemZ::NILL, SystemZ::NIHL, false); in expandPostRAPseudo()
1449 case SystemZ::NIHMux: in expandPostRAPseudo()
1450 expandRIPseudo(MI, SystemZ::NILH, SystemZ::NIHH, false); in expandPostRAPseudo()
1453 case SystemZ::OIFMux: in expandPostRAPseudo()
1454 expandRIPseudo(MI, SystemZ::OILF, SystemZ::OIHF, false); in expandPostRAPseudo()
1457 case SystemZ::OILMux: in expandPostRAPseudo()
1458 expandRIPseudo(MI, SystemZ::OILL, SystemZ::OIHL, false); in expandPostRAPseudo()
1461 case SystemZ::OIHMux: in expandPostRAPseudo()
1462 expandRIPseudo(MI, SystemZ::OILH, SystemZ::OIHH, false); in expandPostRAPseudo()
1465 case SystemZ::XIFMux: in expandPostRAPseudo()
1466 expandRIPseudo(MI, SystemZ::XILF, SystemZ::XIHF, false); in expandPostRAPseudo()
1469 case SystemZ::TMLMux: in expandPostRAPseudo()
1470 expandRIPseudo(MI, SystemZ::TMLL, SystemZ::TMHL, false); in expandPostRAPseudo()
1473 case SystemZ::TMHMux: in expandPostRAPseudo()
1474 expandRIPseudo(MI, SystemZ::TMLH, SystemZ::TMHH, false); in expandPostRAPseudo()
1477 case SystemZ::AHIMux: in expandPostRAPseudo()
1478 expandRIPseudo(MI, SystemZ::AHI, SystemZ::AIH, false); in expandPostRAPseudo()
1481 case SystemZ::AHIMuxK: in expandPostRAPseudo()
1482 expandRIEPseudo(MI, SystemZ::AHI, SystemZ::AHIK, SystemZ::AIH); in expandPostRAPseudo()
1485 case SystemZ::AFIMux: in expandPostRAPseudo()
1486 expandRIPseudo(MI, SystemZ::AFI, SystemZ::AIH, false); in expandPostRAPseudo()
1489 case SystemZ::CHIMux: in expandPostRAPseudo()
1490 expandRIPseudo(MI, SystemZ::CHI, SystemZ::CIH, false); in expandPostRAPseudo()
1493 case SystemZ::CFIMux: in expandPostRAPseudo()
1494 expandRIPseudo(MI, SystemZ::CFI, SystemZ::CIH, false); in expandPostRAPseudo()
1497 case SystemZ::CLFIMux: in expandPostRAPseudo()
1498 expandRIPseudo(MI, SystemZ::CLFI, SystemZ::CLIH, false); in expandPostRAPseudo()
1501 case SystemZ::CMux: in expandPostRAPseudo()
1502 expandRXYPseudo(MI, SystemZ::C, SystemZ::CHF); in expandPostRAPseudo()
1505 case SystemZ::CLMux: in expandPostRAPseudo()
1506 expandRXYPseudo(MI, SystemZ::CL, SystemZ::CLHF); in expandPostRAPseudo()
1509 case SystemZ::RISBMux: { in expandPostRAPseudo()
1510 bool DestIsHigh = SystemZ::isHighReg(MI.getOperand(0).getReg()); in expandPostRAPseudo()
1511 bool SrcIsHigh = SystemZ::isHighReg(MI.getOperand(2).getReg()); in expandPostRAPseudo()
1513 MI.setDesc(get(DestIsHigh ? SystemZ::RISBHH : SystemZ::RISBLL)); in expandPostRAPseudo()
1515 MI.setDesc(get(DestIsHigh ? SystemZ::RISBHL : SystemZ::RISBLH)); in expandPostRAPseudo()
1521 case SystemZ::ADJDYNALLOC: in expandPostRAPseudo()
1540 else if (MI.getOpcode() == SystemZ::PATCHPOINT) in getInstSizeInBytes()
1542 else if (MI.getOpcode() == SystemZ::STACKMAP) in getInstSizeInBytes()
1544 else if (MI.getOpcode() == SystemZ::FENTRY_CALL) in getInstSizeInBytes()
1553 case SystemZ::BR: in getBranchInfo()
1554 case SystemZ::BI: in getBranchInfo()
1555 case SystemZ::J: in getBranchInfo()
1556 case SystemZ::JG: in getBranchInfo()
1557 return SystemZII::Branch(SystemZII::BranchNormal, SystemZ::CCMASK_ANY, in getBranchInfo()
1558 SystemZ::CCMASK_ANY, &MI.getOperand(0)); in getBranchInfo()
1560 case SystemZ::BRC: in getBranchInfo()
1561 case SystemZ::BRCL: in getBranchInfo()
1565 case SystemZ::BRCT: in getBranchInfo()
1566 case SystemZ::BRCTH: in getBranchInfo()
1567 return SystemZII::Branch(SystemZII::BranchCT, SystemZ::CCMASK_ICMP, in getBranchInfo()
1568 SystemZ::CCMASK_CMP_NE, &MI.getOperand(2)); in getBranchInfo()
1570 case SystemZ::BRCTG: in getBranchInfo()
1571 return SystemZII::Branch(SystemZII::BranchCTG, SystemZ::CCMASK_ICMP, in getBranchInfo()
1572 SystemZ::CCMASK_CMP_NE, &MI.getOperand(2)); in getBranchInfo()
1574 case SystemZ::CIJ: in getBranchInfo()
1575 case SystemZ::CRJ: in getBranchInfo()
1576 return SystemZII::Branch(SystemZII::BranchC, SystemZ::CCMASK_ICMP, in getBranchInfo()
1579 case SystemZ::CLIJ: in getBranchInfo()
1580 case SystemZ::CLRJ: in getBranchInfo()
1581 return SystemZII::Branch(SystemZII::BranchCL, SystemZ::CCMASK_ICMP, in getBranchInfo()
1584 case SystemZ::CGIJ: in getBranchInfo()
1585 case SystemZ::CGRJ: in getBranchInfo()
1586 return SystemZII::Branch(SystemZII::BranchCG, SystemZ::CCMASK_ICMP, in getBranchInfo()
1589 case SystemZ::CLGIJ: in getBranchInfo()
1590 case SystemZ::CLGRJ: in getBranchInfo()
1591 return SystemZII::Branch(SystemZII::BranchCLG, SystemZ::CCMASK_ICMP, in getBranchInfo()
1594 case SystemZ::INLINEASM_BR: in getBranchInfo()
1606 if (RC == &SystemZ::GR32BitRegClass || RC == &SystemZ::ADDR32BitRegClass) { in getLoadStoreOpcodes()
1607 LoadOpcode = SystemZ::L; in getLoadStoreOpcodes()
1608 StoreOpcode = SystemZ::ST; in getLoadStoreOpcodes()
1609 } else if (RC == &SystemZ::GRH32BitRegClass) { in getLoadStoreOpcodes()
1610 LoadOpcode = SystemZ::LFH; in getLoadStoreOpcodes()
1611 StoreOpcode = SystemZ::STFH; in getLoadStoreOpcodes()
1612 } else if (RC == &SystemZ::GRX32BitRegClass) { in getLoadStoreOpcodes()
1613 LoadOpcode = SystemZ::LMux; in getLoadStoreOpcodes()
1614 StoreOpcode = SystemZ::STMux; in getLoadStoreOpcodes()
1615 } else if (RC == &SystemZ::GR64BitRegClass || in getLoadStoreOpcodes()
1616 RC == &SystemZ::ADDR64BitRegClass) { in getLoadStoreOpcodes()
1617 LoadOpcode = SystemZ::LG; in getLoadStoreOpcodes()
1618 StoreOpcode = SystemZ::STG; in getLoadStoreOpcodes()
1619 } else if (RC == &SystemZ::GR128BitRegClass || in getLoadStoreOpcodes()
1620 RC == &SystemZ::ADDR128BitRegClass) { in getLoadStoreOpcodes()
1621 LoadOpcode = SystemZ::L128; in getLoadStoreOpcodes()
1622 StoreOpcode = SystemZ::ST128; in getLoadStoreOpcodes()
1623 } else if (RC == &SystemZ::FP32BitRegClass) { in getLoadStoreOpcodes()
1624 LoadOpcode = SystemZ::LE; in getLoadStoreOpcodes()
1625 StoreOpcode = SystemZ::STE; in getLoadStoreOpcodes()
1626 } else if (RC == &SystemZ::FP64BitRegClass) { in getLoadStoreOpcodes()
1627 LoadOpcode = SystemZ::LD; in getLoadStoreOpcodes()
1628 StoreOpcode = SystemZ::STD; in getLoadStoreOpcodes()
1629 } else if (RC == &SystemZ::FP128BitRegClass) { in getLoadStoreOpcodes()
1630 LoadOpcode = SystemZ::LX; in getLoadStoreOpcodes()
1631 StoreOpcode = SystemZ::STX; in getLoadStoreOpcodes()
1632 } else if (RC == &SystemZ::VR32BitRegClass) { in getLoadStoreOpcodes()
1633 LoadOpcode = SystemZ::VL32; in getLoadStoreOpcodes()
1634 StoreOpcode = SystemZ::VST32; in getLoadStoreOpcodes()
1635 } else if (RC == &SystemZ::VR64BitRegClass) { in getLoadStoreOpcodes()
1636 LoadOpcode = SystemZ::VL64; in getLoadStoreOpcodes()
1637 StoreOpcode = SystemZ::VST64; in getLoadStoreOpcodes()
1638 } else if (RC == &SystemZ::VF128BitRegClass || in getLoadStoreOpcodes()
1639 RC == &SystemZ::VR128BitRegClass) { in getLoadStoreOpcodes()
1640 LoadOpcode = SystemZ::VL; in getLoadStoreOpcodes()
1641 StoreOpcode = SystemZ::VST; in getLoadStoreOpcodes()
1653 int Disp12Opcode = SystemZ::getDisp12Opcode(Opcode); in getOpcodeForOffset()
1663 int Disp20Opcode = SystemZ::getDisp20Opcode(Opcode); in getOpcodeForOffset()
1676 case SystemZ::VL32: in getOpcodeForOffset()
1677 return SystemZ::LEY; in getOpcodeForOffset()
1678 case SystemZ::VST32: in getOpcodeForOffset()
1679 return SystemZ::STEY; in getOpcodeForOffset()
1680 case SystemZ::VL64: in getOpcodeForOffset()
1681 return SystemZ::LDY; in getOpcodeForOffset()
1682 case SystemZ::VST64: in getOpcodeForOffset()
1683 return SystemZ::STDY; in getOpcodeForOffset()
1695 return SystemZ::getDisp12Opcode(Opcode) >= 0; in hasDisplacementPairInsn()
1696 return SystemZ::getDisp20Opcode(Opcode) >= 0; in hasDisplacementPairInsn()
1701 case SystemZ::L: return SystemZ::LT; in getLoadAndTest()
1702 case SystemZ::LY: return SystemZ::LT; in getLoadAndTest()
1703 case SystemZ::LG: return SystemZ::LTG; in getLoadAndTest()
1704 case SystemZ::LGF: return SystemZ::LTGF; in getLoadAndTest()
1705 case SystemZ::LR: return SystemZ::LTR; in getLoadAndTest()
1706 case SystemZ::LGFR: return SystemZ::LTGFR; in getLoadAndTest()
1707 case SystemZ::LGR: return SystemZ::LTGR; in getLoadAndTest()
1708 case SystemZ::LCDFR: return SystemZ::LCDBR; in getLoadAndTest()
1709 case SystemZ::LPDFR: return SystemZ::LPDBR; in getLoadAndTest()
1710 case SystemZ::LNDFR: return SystemZ::LNDBR; in getLoadAndTest()
1711 case SystemZ::LCDFR_32: return SystemZ::LCEBR; in getLoadAndTest()
1712 case SystemZ::LPDFR_32: return SystemZ::LPEBR; in getLoadAndTest()
1713 case SystemZ::LNDFR_32: return SystemZ::LNEBR; in getLoadAndTest()
1718 case SystemZ::RISBGN: return SystemZ::RISBG; in getLoadAndTest()
1756 case SystemZ::CHI: in getFusedCompare()
1757 case SystemZ::CGHI: in getFusedCompare()
1761 case SystemZ::CLFI: in getFusedCompare()
1762 case SystemZ::CLGFI: in getFusedCompare()
1766 case SystemZ::CL: in getFusedCompare()
1767 case SystemZ::CLG: in getFusedCompare()
1777 case SystemZ::CR: in getFusedCompare()
1778 return SystemZ::CRJ; in getFusedCompare()
1779 case SystemZ::CGR: in getFusedCompare()
1780 return SystemZ::CGRJ; in getFusedCompare()
1781 case SystemZ::CHI: in getFusedCompare()
1782 return SystemZ::CIJ; in getFusedCompare()
1783 case SystemZ::CGHI: in getFusedCompare()
1784 return SystemZ::CGIJ; in getFusedCompare()
1785 case SystemZ::CLR: in getFusedCompare()
1786 return SystemZ::CLRJ; in getFusedCompare()
1787 case SystemZ::CLGR: in getFusedCompare()
1788 return SystemZ::CLGRJ; in getFusedCompare()
1789 case SystemZ::CLFI: in getFusedCompare()
1790 return SystemZ::CLIJ; in getFusedCompare()
1791 case SystemZ::CLGFI: in getFusedCompare()
1792 return SystemZ::CLGIJ; in getFusedCompare()
1798 case SystemZ::CR: in getFusedCompare()
1799 return SystemZ::CRBReturn; in getFusedCompare()
1800 case SystemZ::CGR: in getFusedCompare()
1801 return SystemZ::CGRBReturn; in getFusedCompare()
1802 case SystemZ::CHI: in getFusedCompare()
1803 return SystemZ::CIBReturn; in getFusedCompare()
1804 case SystemZ::CGHI: in getFusedCompare()
1805 return SystemZ::CGIBReturn; in getFusedCompare()
1806 case SystemZ::CLR: in getFusedCompare()
1807 return SystemZ::CLRBReturn; in getFusedCompare()
1808 case SystemZ::CLGR: in getFusedCompare()
1809 return SystemZ::CLGRBReturn; in getFusedCompare()
1810 case SystemZ::CLFI: in getFusedCompare()
1811 return SystemZ::CLIBReturn; in getFusedCompare()
1812 case SystemZ::CLGFI: in getFusedCompare()
1813 return SystemZ::CLGIBReturn; in getFusedCompare()
1819 case SystemZ::CR: in getFusedCompare()
1820 return SystemZ::CRBCall; in getFusedCompare()
1821 case SystemZ::CGR: in getFusedCompare()
1822 return SystemZ::CGRBCall; in getFusedCompare()
1823 case SystemZ::CHI: in getFusedCompare()
1824 return SystemZ::CIBCall; in getFusedCompare()
1825 case SystemZ::CGHI: in getFusedCompare()
1826 return SystemZ::CGIBCall; in getFusedCompare()
1827 case SystemZ::CLR: in getFusedCompare()
1828 return SystemZ::CLRBCall; in getFusedCompare()
1829 case SystemZ::CLGR: in getFusedCompare()
1830 return SystemZ::CLGRBCall; in getFusedCompare()
1831 case SystemZ::CLFI: in getFusedCompare()
1832 return SystemZ::CLIBCall; in getFusedCompare()
1833 case SystemZ::CLGFI: in getFusedCompare()
1834 return SystemZ::CLGIBCall; in getFusedCompare()
1840 case SystemZ::CR: in getFusedCompare()
1841 return SystemZ::CRT; in getFusedCompare()
1842 case SystemZ::CGR: in getFusedCompare()
1843 return SystemZ::CGRT; in getFusedCompare()
1844 case SystemZ::CHI: in getFusedCompare()
1845 return SystemZ::CIT; in getFusedCompare()
1846 case SystemZ::CGHI: in getFusedCompare()
1847 return SystemZ::CGIT; in getFusedCompare()
1848 case SystemZ::CLR: in getFusedCompare()
1849 return SystemZ::CLRT; in getFusedCompare()
1850 case SystemZ::CLGR: in getFusedCompare()
1851 return SystemZ::CLGRT; in getFusedCompare()
1852 case SystemZ::CLFI: in getFusedCompare()
1853 return SystemZ::CLFIT; in getFusedCompare()
1854 case SystemZ::CLGFI: in getFusedCompare()
1855 return SystemZ::CLGIT; in getFusedCompare()
1856 case SystemZ::CL: in getFusedCompare()
1857 return SystemZ::CLT; in getFusedCompare()
1858 case SystemZ::CLG: in getFusedCompare()
1859 return SystemZ::CLGT; in getFusedCompare()
1877 if (MI.readsRegister(SystemZ::CC)) { in prepareCompareSwapOperands()
1884 if (MI.definesRegister(SystemZ::CC)) { in prepareCompareSwapOperands()
1892 if (LiveRegs.contains(SystemZ::CC)) in prepareCompareSwapOperands()
1902 unsigned NewCCMask = SystemZ::reverseCCMask(CCMaskMO.getImm()); in prepareCompareSwapOperands()
1909 unsigned SystemZ::reverseCCMask(unsigned CCMask) { in reverseCCMask()
1910 return ((CCMask & SystemZ::CCMASK_CMP_EQ) | in reverseCCMask()
1911 (CCMask & SystemZ::CCMASK_CMP_GT ? SystemZ::CCMASK_CMP_LT : 0) | in reverseCCMask()
1912 (CCMask & SystemZ::CCMASK_CMP_LT ? SystemZ::CCMASK_CMP_GT : 0) | in reverseCCMask()
1913 (CCMask & SystemZ::CCMASK_CMP_UO)); in reverseCCMask()
1916 MachineBasicBlock *SystemZ::emitBlockAfter(MachineBasicBlock *MBB) { in emitBlockAfter()
1923 MachineBasicBlock *SystemZ::splitBlockAfter(MachineBasicBlock::iterator MI, in splitBlockAfter()
1932 MachineBasicBlock *SystemZ::splitBlockBefore(MachineBasicBlock::iterator MI, in splitBlockBefore()
1944 case SystemZ::L: in getLoadAndTrap()
1945 case SystemZ::LY: in getLoadAndTrap()
1946 return SystemZ::LAT; in getLoadAndTrap()
1947 case SystemZ::LG: in getLoadAndTrap()
1948 return SystemZ::LGAT; in getLoadAndTrap()
1949 case SystemZ::LFH: in getLoadAndTrap()
1950 return SystemZ::LFHAT; in getLoadAndTrap()
1951 case SystemZ::LLGF: in getLoadAndTrap()
1952 return SystemZ::LLGFAT; in getLoadAndTrap()
1953 case SystemZ::LLGT: in getLoadAndTrap()
1954 return SystemZ::LLGTAT; in getLoadAndTrap()
1965 Opcode = SystemZ::LGHI; in loadImmediate()
1966 else if (SystemZ::isImmLL(Value)) in loadImmediate()
1967 Opcode = SystemZ::LLILL; in loadImmediate()
1968 else if (SystemZ::isImmLH(Value)) { in loadImmediate()
1969 Opcode = SystemZ::LLILH; in loadImmediate()
1973 Opcode = SystemZ::LGFI; in loadImmediate()
1981 Register Reg0 = MRI.createVirtualRegister(&SystemZ::GR64BitRegClass); in loadImmediate()
1982 Register Reg1 = MRI.createVirtualRegister(&SystemZ::GR64BitRegClass); in loadImmediate()
1983 BuildMI(MBB, MBBI, DL, get(SystemZ::IMPLICIT_DEF), Reg0); in loadImmediate()
1984 BuildMI(MBB, MBBI, DL, get(SystemZ::IIHF64), Reg1) in loadImmediate()
1986 BuildMI(MBB, MBBI, DL, get(SystemZ::IILF64), Reg) in loadImmediate()