Lines Matching refs:PPC
138 addRegisterClass(MVT::i32, &PPC::GPRCRegClass); in PPCTargetLowering()
141 addRegisterClass(MVT::f32, &PPC::SPE4RCRegClass); in PPCTargetLowering()
142 addRegisterClass(MVT::f64, &PPC::SPERCRegClass); in PPCTargetLowering()
144 addRegisterClass(MVT::f32, &PPC::F4RCRegClass); in PPCTargetLowering()
145 addRegisterClass(MVT::f64, &PPC::F8RCRegClass); in PPCTargetLowering()
220 addRegisterClass(MVT::i1, &PPC::CRBITRCRegClass); in PPCTargetLowering()
532 addRegisterClass(MVT::i64, &PPC::G8RCRegClass); in PPCTargetLowering()
664 addRegisterClass(MVT::v4f32, &PPC::VRRCRegClass); in PPCTargetLowering()
665 addRegisterClass(MVT::v4i32, &PPC::VRRCRegClass); in PPCTargetLowering()
666 addRegisterClass(MVT::v8i16, &PPC::VRRCRegClass); in PPCTargetLowering()
667 addRegisterClass(MVT::v16i8, &PPC::VRRCRegClass); in PPCTargetLowering()
744 addRegisterClass(MVT::f32, &PPC::VSSRCRegClass); in PPCTargetLowering()
746 addRegisterClass(MVT::f64, &PPC::VSFRCRegClass); in PPCTargetLowering()
748 addRegisterClass(MVT::v4i32, &PPC::VSRCRegClass); in PPCTargetLowering()
749 addRegisterClass(MVT::v4f32, &PPC::VSRCRegClass); in PPCTargetLowering()
750 addRegisterClass(MVT::v2f64, &PPC::VSRCRegClass); in PPCTargetLowering()
812 addRegisterClass(MVT::v2i64, &PPC::VSRCRegClass); in PPCTargetLowering()
816 addRegisterClass(MVT::v2i64, &PPC::VRRCRegClass); in PPCTargetLowering()
817 addRegisterClass(MVT::v1i128, &PPC::VRRCRegClass); in PPCTargetLowering()
832 addRegisterClass(MVT::f128, &PPC::VRRCRegClass); in PPCTargetLowering()
929 addRegisterClass(MVT::v4f64, &PPC::QFRCRegClass); in PPCTargetLowering()
974 addRegisterClass(MVT::v4f32, &PPC::QSRCRegClass); in PPCTargetLowering()
998 addRegisterClass(MVT::v4i1, &PPC::QBRCRegClass); in PPCTargetLowering()
1056 setStackPointerRegisterToSaveRestore(isPPC64 ? PPC::X1 : PPC::R1); in PPCTargetLowering()
1142 case PPC::DIR_970: in PPCTargetLowering()
1143 case PPC::DIR_A2: in PPCTargetLowering()
1144 case PPC::DIR_E500: in PPCTargetLowering()
1145 case PPC::DIR_E500mc: in PPCTargetLowering()
1146 case PPC::DIR_E5500: in PPCTargetLowering()
1147 case PPC::DIR_PWR4: in PPCTargetLowering()
1148 case PPC::DIR_PWR5: in PPCTargetLowering()
1149 case PPC::DIR_PWR5X: in PPCTargetLowering()
1150 case PPC::DIR_PWR6: in PPCTargetLowering()
1151 case PPC::DIR_PWR6X: in PPCTargetLowering()
1152 case PPC::DIR_PWR7: in PPCTargetLowering()
1153 case PPC::DIR_PWR8: in PPCTargetLowering()
1154 case PPC::DIR_PWR9: in PPCTargetLowering()
1169 if (Subtarget.getDarwinDirective() == PPC::DIR_E500mc || in PPCTargetLowering()
1170 Subtarget.getDarwinDirective() == PPC::DIR_E5500) { in PPCTargetLowering()
1177 } else if (Subtarget.getDarwinDirective() == PPC::DIR_A2) { in PPCTargetLowering()
1418 bool PPC::isVPKUHUMShuffleMask(ShuffleVectorSDNode *N, unsigned ShuffleKind, in isVPKUHUMShuffleMask()
1449 bool PPC::isVPKUWUMShuffleMask(ShuffleVectorSDNode *N, unsigned ShuffleKind, in isVPKUWUMShuffleMask()
1486 bool PPC::isVPKUDUMShuffleMask(ShuffleVectorSDNode *N, unsigned ShuffleKind, in isVPKUDUMShuffleMask()
1554 bool PPC::isVMRGLShuffleMask(ShuffleVectorSDNode *N, unsigned UnitSize, in isVMRGLShuffleMask()
1579 bool PPC::isVMRGHShuffleMask(ShuffleVectorSDNode *N, unsigned UnitSize, in isVMRGHShuffleMask()
1669 bool PPC::isVMRGEOShuffleMask(ShuffleVectorSDNode *N, bool CheckEven, in isVMRGEOShuffleMask()
1698 int PPC::isVSLDOIShuffleMask(SDNode *N, unsigned ShuffleKind, in isVSLDOIShuffleMask()
1742 bool PPC::isSplatShuffleMask(ShuffleVectorSDNode *N, unsigned EltSize) { in isSplatShuffleMask()
1810 bool PPC::isXXINSERTWMask(ShuffleVectorSDNode *N, unsigned &ShiftElts, in isXXINSERTWMask()
1885 bool PPC::isXXSLDWIShuffleMask(ShuffleVectorSDNode *N, unsigned &ShiftElts, in isXXSLDWIShuffleMask()
1960 bool PPC::isXXBRHShuffleMask(ShuffleVectorSDNode *N) { in isXXBRHShuffleMask()
1964 bool PPC::isXXBRWShuffleMask(ShuffleVectorSDNode *N) { in isXXBRWShuffleMask()
1968 bool PPC::isXXBRDShuffleMask(ShuffleVectorSDNode *N) { in isXXBRDShuffleMask()
1972 bool PPC::isXXBRQShuffleMask(ShuffleVectorSDNode *N) { in isXXBRQShuffleMask()
1984 bool PPC::isXXPERMDIShuffleMask(ShuffleVectorSDNode *N, unsigned &DM, in isXXPERMDIShuffleMask()
2039 unsigned PPC::getVSPLTImmediate(SDNode *N, unsigned EltSize, in getVSPLTImmediate()
2053 SDValue PPC::get_VSPLTI_elt(SDNode *N, unsigned ByteSize, SelectionDAG &DAG) { in get_VSPLTI_elt()
2155 int PPC::isQVALIGNIShuffleMask(SDNode *N) { in isQVALIGNIShuffleMask()
2354 Base = DAG.getRegister(Subtarget.isPPC64() ? PPC::ZERO8 : PPC::ZERO, in SelectAddressRegImm()
2370 unsigned Opc = CN->getValueType(0) == MVT::i32 ? PPC::LIS : PPC::LIS8; in SelectAddressRegImm()
2411 Base = DAG.getRegister(Subtarget.isPPC64() ? PPC::ZERO8 : PPC::ZERO, in SelectAddressRegRegOnly()
2592 SDValue Reg = Is64Bit ? DAG.getRegister(PPC::X2, VT) : in getTOCEntry()
2755 SDValue TLSReg = is64bit ? DAG.getRegister(PPC::X13, MVT::i64) in LowerGlobalTLSAddress()
2756 : DAG.getRegister(PPC::R2, MVT::i32); in LowerGlobalTLSAddress()
2769 SDValue GOTReg = DAG.getRegister(PPC::X2, MVT::i64); in LowerGlobalTLSAddress()
2784 SDValue GOTReg = DAG.getRegister(PPC::X2, MVT::i64); in LowerGlobalTLSAddress()
2802 SDValue GOTReg = DAG.getRegister(PPC::X2, MVT::i64); in LowerGlobalTLSAddress()
3171 PPC::R3, PPC::R4, PPC::R5, PPC::R6, in CC_PPC32_SVR4_Custom_AlignArgRegs()
3172 PPC::R7, PPC::R8, PPC::R9, PPC::R10, in CC_PPC32_SVR4_Custom_AlignArgRegs()
3199 PPC::R3, PPC::R4, PPC::R5, PPC::R6, in CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128()
3200 PPC::R7, PPC::R8, PPC::R9, PPC::R10, in CC_PPC32_SVR4_Custom_SkipLastArgRegsPPCF128()
3224 PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, in CC_PPC32_SVR4_Custom_AlignFPArgRegs()
3225 PPC::F8 in CC_PPC32_SVR4_Custom_AlignFPArgRegs()
3234 if (RegNum != NumArgRegs && ArgRegs[RegNum] == PPC::F8) { in CC_PPC32_SVR4_Custom_AlignFPArgRegs()
3247 static const MCPhysReg FPR[] = {PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5,
3248 PPC::F6, PPC::F7, PPC::F8, PPC::F9, PPC::F10,
3249 PPC::F11, PPC::F12, PPC::F13};
3253 PPC::QF1, PPC::QF2, PPC::QF3, PPC::QF4, PPC::QF5, PPC::QF6, PPC::QF7,
3254 PPC::QF8, PPC::QF9, PPC::QF10, PPC::QF11, PPC::QF12, PPC::QF13};
3471 RC = &PPC::GPRCRegClass; in LowerFormalArguments_32SVR4()
3475 RC = &PPC::VSSRCRegClass; in LowerFormalArguments_32SVR4()
3477 RC = &PPC::SPE4RCRegClass; in LowerFormalArguments_32SVR4()
3479 RC = &PPC::F4RCRegClass; in LowerFormalArguments_32SVR4()
3483 RC = &PPC::VSFRCRegClass; in LowerFormalArguments_32SVR4()
3485 RC = &PPC::SPERCRegClass; in LowerFormalArguments_32SVR4()
3487 RC = &PPC::F8RCRegClass; in LowerFormalArguments_32SVR4()
3492 RC = &PPC::VRRCRegClass; in LowerFormalArguments_32SVR4()
3495 RC = Subtarget.hasQPX() ? &PPC::QSRCRegClass : &PPC::VRRCRegClass; in LowerFormalArguments_32SVR4()
3499 RC = &PPC::VRRCRegClass; in LowerFormalArguments_32SVR4()
3502 RC = &PPC::QFRCRegClass; in LowerFormalArguments_32SVR4()
3505 RC = &PPC::QBRCRegClass; in LowerFormalArguments_32SVR4()
3568 PPC::R3, PPC::R4, PPC::R5, PPC::R6, in LowerFormalArguments_32SVR4()
3569 PPC::R7, PPC::R8, PPC::R9, PPC::R10, in LowerFormalArguments_32SVR4()
3574 PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7, in LowerFormalArguments_32SVR4()
3575 PPC::F8 in LowerFormalArguments_32SVR4()
3603 VReg = MF.addLiveIn(GPArgRegs[GPRIndex], &PPC::GPRCRegClass); in LowerFormalArguments_32SVR4()
3622 VReg = MF.addLiveIn(FPArgRegs[FPRIndex], &PPC::F8RCRegClass); in LowerFormalArguments_32SVR4()
3680 PPC::X3, PPC::X4, PPC::X5, PPC::X6, in LowerFormalArguments_64SVR4()
3681 PPC::X7, PPC::X8, PPC::X9, PPC::X10, in LowerFormalArguments_64SVR4()
3684 PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, in LowerFormalArguments_64SVR4()
3685 PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 in LowerFormalArguments_64SVR4()
3807 unsigned VReg = MF.addLiveIn(GPR[GPR_idx++], &PPC::G8RCRegClass); in LowerFormalArguments_64SVR4()
3842 unsigned VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::G8RCRegClass); in LowerFormalArguments_64SVR4()
3866 unsigned VReg = MF.addLiveIn(PPC::X11, &PPC::G8RCRegClass); in LowerFormalArguments_64SVR4()
3879 unsigned VReg = MF.addLiveIn(GPR[GPR_idx++], &PPC::G8RCRegClass); in LowerFormalArguments_64SVR4()
3909 ? &PPC::VSSRCRegClass in LowerFormalArguments_64SVR4()
3910 : &PPC::F4RCRegClass); in LowerFormalArguments_64SVR4()
3913 ? &PPC::VSFRCRegClass in LowerFormalArguments_64SVR4()
3914 : &PPC::F8RCRegClass); in LowerFormalArguments_64SVR4()
3925 unsigned VReg = MF.addLiveIn(GPR[GPR_idx++], &PPC::G8RCRegClass); in LowerFormalArguments_64SVR4()
3967 unsigned VReg = MF.addLiveIn(VR[VR_idx], &PPC::VRRCRegClass); in LowerFormalArguments_64SVR4()
3992 case MVT::v4f64: RC = &PPC::QFRCRegClass; break; in LowerFormalArguments_64SVR4()
3993 case MVT::v4f32: RC = &PPC::QSRCRegClass; break; in LowerFormalArguments_64SVR4()
3994 default: RC = &PPC::QBRCRegClass; break; in LowerFormalArguments_64SVR4()
4052 unsigned VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::G8RCRegClass); in LowerFormalArguments_64SVR4()
4091 PPC::R3, PPC::R4, PPC::R5, PPC::R6, in LowerFormalArguments_Darwin()
4092 PPC::R7, PPC::R8, PPC::R9, PPC::R10, in LowerFormalArguments_Darwin()
4095 PPC::X3, PPC::X4, PPC::X5, PPC::X6, in LowerFormalArguments_Darwin()
4096 PPC::X7, PPC::X8, PPC::X9, PPC::X10, in LowerFormalArguments_Darwin()
4099 PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, in LowerFormalArguments_Darwin()
4100 PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 in LowerFormalArguments_Darwin()
4218 VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::G8RCRegClass); in LowerFormalArguments_Darwin()
4220 VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::GPRCRegClass); in LowerFormalArguments_Darwin()
4241 VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::G8RCRegClass); in LowerFormalArguments_Darwin()
4243 VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::GPRCRegClass); in LowerFormalArguments_Darwin()
4266 unsigned VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::GPRCRegClass); in LowerFormalArguments_Darwin()
4284 unsigned VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::G8RCRegClass); in LowerFormalArguments_Darwin()
4314 VReg = MF.addLiveIn(FPR[FPR_idx], &PPC::F4RCRegClass); in LowerFormalArguments_Darwin()
4316 VReg = MF.addLiveIn(FPR[FPR_idx], &PPC::F8RCRegClass); in LowerFormalArguments_Darwin()
4334 unsigned VReg = MF.addLiveIn(VR[VR_idx], &PPC::VRRCRegClass); in LowerFormalArguments_Darwin()
4409 VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::G8RCRegClass); in LowerFormalArguments_Darwin()
4411 VReg = MF.addLiveIn(GPR[GPR_idx], &PPC::GPRCRegClass); in LowerFormalArguments_Darwin()
4515 PPC::X3, PPC::X4, PPC::X5, PPC::X6, in needStackSlotPassParameters()
4516 PPC::X7, PPC::X8, PPC::X9, PPC::X10, in needStackSlotPassParameters()
4519 PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, in needStackSlotPassParameters()
4520 PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 in needStackSlotPassParameters()
4859 StackPtr = DAG.getRegister(PPC::X1, MVT::i64); in LowerMemOpCallTo()
4861 StackPtr = DAG.getRegister(PPC::R1, MVT::i32); in LowerMemOpCallTo()
5045 SDValue TOCVal = DAG.getCopyToReg(Chain, dl, PPC::X2, TOCPtr, in PrepareCall()
5053 SDValue EnvVal = DAG.getCopyToReg(Chain, dl, PPC::X11, LoadEnvPtr, in PrepareCall()
5077 Ops.push_back(DAG.getRegister(PPC::X11, PtrVT)); in PrepareCall()
5080 Ops.push_back(DAG.getRegister(isPPC64 ? PPC::CTR8 : PPC::CTR, PtrVT)); in PrepareCall()
5108 Ops.push_back(DAG.getRegister(PPC::X2, PtrVT)); in PrepareCall()
5176 Ops.push_back(DAG.getRegister(PPC::CR1EQ, MVT::i32)); in FinishCall()
5198 cast<RegisterSDNode>(Callee)->getReg() == PPC::CTR) || in FinishCall()
5233 SDValue StackPtr = DAG.getRegister(PPC::X1, PtrVT); in FinishCall()
5439 SDValue StackPtr = DAG.getRegister(PPC::R1, MVT::i32); in LowerCall_32SVR4()
5617 PPC::X3, PPC::X4, PPC::X5, PPC::X6, in LowerCall_64SVR4()
5618 PPC::X7, PPC::X8, PPC::X9, PPC::X10, in LowerCall_64SVR4()
5621 PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, in LowerCall_64SVR4()
5622 PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 in LowerCall_64SVR4()
5771 SDValue StackPtr = DAG.getRegister(PPC::X1, MVT::i64); in LowerCall_64SVR4()
5942 RegsToPass.push_back(std::make_pair(PPC::X11, Arg)); in LowerCall_64SVR4()
6201 SDValue Val = DAG.getCopyFromReg(Chain, dl, PPC::X2, MVT::i64); in LowerCall_64SVR4()
6213 RegsToPass.push_back(std::make_pair((unsigned)PPC::X12, Callee)); in LowerCall_64SVR4()
6333 StackPtr = DAG.getRegister(PPC::X1, MVT::i64); in LowerCall_Darwin()
6335 StackPtr = DAG.getRegister(PPC::R1, MVT::i32); in LowerCall_Darwin()
6345 PPC::R3, PPC::R4, PPC::R5, PPC::R6, in LowerCall_Darwin()
6346 PPC::R7, PPC::R8, PPC::R9, PPC::R10, in LowerCall_Darwin()
6349 PPC::X3, PPC::X4, PPC::X5, PPC::X6, in LowerCall_Darwin()
6350 PPC::X7, PPC::X8, PPC::X9, PPC::X10, in LowerCall_Darwin()
6353 PPC::V2, PPC::V3, PPC::V4, PPC::V5, PPC::V6, PPC::V7, PPC::V8, in LowerCall_Darwin()
6354 PPC::V9, PPC::V10, PPC::V11, PPC::V12, PPC::V13 in LowerCall_Darwin()
6594 RegsToPass.push_back(std::make_pair((unsigned)(isPPC64 ? PPC::X12 : in LowerCall_Darwin()
6595 PPC::R12), Callee)); in LowerCall_Darwin()
6678 if (PPC::G8RCRegClass.contains(*I)) in LowerReturn()
6680 else if (PPC::F8RCRegClass.contains(*I)) in LowerReturn()
6682 else if (PPC::CRRCRegClass.contains(*I)) in LowerReturn()
6684 else if (PPC::VRRCRegClass.contains(*I)) in LowerReturn()
6727 unsigned SP = isPPC64 ? PPC::X1 : PPC::R1; in LowerSTACKRESTORE()
8508 PPC::isXXINSERTWMask(SVOp, ShiftElts, InsertAtByte, Swap, in LowerVECTOR_SHUFFLE()
8536 PPC::isXXSLDWIShuffleMask(SVOp, ShiftElts, Swap, isLittleEndian)) { in LowerVECTOR_SHUFFLE()
8549 PPC::isXXPERMDIShuffleMask(SVOp, ShiftElts, Swap, isLittleEndian)) { in LowerVECTOR_SHUFFLE()
8562 if (PPC::isXXBRHShuffleMask(SVOp)) { in LowerVECTOR_SHUFFLE()
8566 } else if (PPC::isXXBRWShuffleMask(SVOp)) { in LowerVECTOR_SHUFFLE()
8570 } else if (PPC::isXXBRDShuffleMask(SVOp)) { in LowerVECTOR_SHUFFLE()
8574 } else if (PPC::isXXBRQShuffleMask(SVOp)) { in LowerVECTOR_SHUFFLE()
8582 if (V2.isUndef() && PPC::isSplatShuffleMask(SVOp, 4)) { in LowerVECTOR_SHUFFLE()
8583 int SplatIdx = PPC::getVSPLTImmediate(SVOp, 4, DAG); in LowerVECTOR_SHUFFLE()
8592 if (V2.isUndef() && PPC::isVSLDOIShuffleMask(SVOp, 1, DAG) == 8) { in LowerVECTOR_SHUFFLE()
8605 int AlignIdx = PPC::isQVALIGNIShuffleMask(SVOp); in LowerVECTOR_SHUFFLE()
8639 if (PPC::isSplatShuffleMask(SVOp, 1) || in LowerVECTOR_SHUFFLE()
8640 PPC::isSplatShuffleMask(SVOp, 2) || in LowerVECTOR_SHUFFLE()
8641 PPC::isSplatShuffleMask(SVOp, 4) || in LowerVECTOR_SHUFFLE()
8642 PPC::isVPKUWUMShuffleMask(SVOp, 1, DAG) || in LowerVECTOR_SHUFFLE()
8643 PPC::isVPKUHUMShuffleMask(SVOp, 1, DAG) || in LowerVECTOR_SHUFFLE()
8644 PPC::isVSLDOIShuffleMask(SVOp, 1, DAG) != -1 || in LowerVECTOR_SHUFFLE()
8645 PPC::isVMRGLShuffleMask(SVOp, 1, 1, DAG) || in LowerVECTOR_SHUFFLE()
8646 PPC::isVMRGLShuffleMask(SVOp, 2, 1, DAG) || in LowerVECTOR_SHUFFLE()
8647 PPC::isVMRGLShuffleMask(SVOp, 4, 1, DAG) || in LowerVECTOR_SHUFFLE()
8648 PPC::isVMRGHShuffleMask(SVOp, 1, 1, DAG) || in LowerVECTOR_SHUFFLE()
8649 PPC::isVMRGHShuffleMask(SVOp, 2, 1, DAG) || in LowerVECTOR_SHUFFLE()
8650 PPC::isVMRGHShuffleMask(SVOp, 4, 1, DAG) || in LowerVECTOR_SHUFFLE()
8652 PPC::isVPKUDUMShuffleMask(SVOp, 1, DAG) || in LowerVECTOR_SHUFFLE()
8653 PPC::isVMRGEOShuffleMask(SVOp, true, 1, DAG) || in LowerVECTOR_SHUFFLE()
8654 PPC::isVMRGEOShuffleMask(SVOp, false, 1, DAG)))) { in LowerVECTOR_SHUFFLE()
8663 if (PPC::isVPKUWUMShuffleMask(SVOp, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8664 PPC::isVPKUHUMShuffleMask(SVOp, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8665 PPC::isVSLDOIShuffleMask(SVOp, ShuffleKind, DAG) != -1 || in LowerVECTOR_SHUFFLE()
8666 PPC::isVMRGLShuffleMask(SVOp, 1, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8667 PPC::isVMRGLShuffleMask(SVOp, 2, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8668 PPC::isVMRGLShuffleMask(SVOp, 4, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8669 PPC::isVMRGHShuffleMask(SVOp, 1, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8670 PPC::isVMRGHShuffleMask(SVOp, 2, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8671 PPC::isVMRGHShuffleMask(SVOp, 4, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8673 PPC::isVPKUDUMShuffleMask(SVOp, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8674 PPC::isVMRGEOShuffleMask(SVOp, true, ShuffleKind, DAG) || in LowerVECTOR_SHUFFLE()
8675 PPC::isVMRGEOShuffleMask(SVOp, false, ShuffleKind, DAG)))) in LowerVECTOR_SHUFFLE()
9029 return DAG.getRegister(PPC::X13, MVT::i64); in LowerINTRINSIC_WO_CHAIN()
9030 return DAG.getRegister(PPC::R2, MVT::i32); in LowerINTRINSIC_WO_CHAIN()
9060 DAG.getRegister(PPC::CR6, MVT::i32), in LowerINTRINSIC_WO_CHAIN()
9106 return SDValue(DAG.getMachineNode(PPC::CFENCE8, DL, MVT::Other, in LowerINTRINSIC_VOID()
9796 auto LoadMnemonic = PPC::LDARX; in EmitAtomicBinary()
9797 auto StoreMnemonic = PPC::STDCX; in EmitAtomicBinary()
9802 LoadMnemonic = PPC::LBARX; in EmitAtomicBinary()
9803 StoreMnemonic = PPC::STBCX; in EmitAtomicBinary()
9807 LoadMnemonic = PPC::LHARX; in EmitAtomicBinary()
9808 StoreMnemonic = PPC::STHCX; in EmitAtomicBinary()
9812 LoadMnemonic = PPC::LWARX; in EmitAtomicBinary()
9813 StoreMnemonic = PPC::STWCX; in EmitAtomicBinary()
9816 LoadMnemonic = PPC::LDARX; in EmitAtomicBinary()
9817 StoreMnemonic = PPC::STDCX; in EmitAtomicBinary()
9845 RegInfo.createVirtualRegister( AtomicSize == 8 ? &PPC::G8RCRegClass in EmitAtomicBinary()
9846 : &PPC::GPRCRegClass); in EmitAtomicBinary()
9877 if (CmpOpcode == PPC::CMPW && AtomicSize < 4) { in EmitAtomicBinary()
9878 unsigned ExtReg = RegInfo.createVirtualRegister(&PPC::GPRCRegClass); in EmitAtomicBinary()
9879 BuildMI(BB, dl, TII->get(AtomicSize == 1 ? PPC::EXTSB : PPC::EXTSH), in EmitAtomicBinary()
9881 BuildMI(BB, dl, TII->get(CmpOpcode), PPC::CR0) in EmitAtomicBinary()
9884 BuildMI(BB, dl, TII->get(CmpOpcode), PPC::CR0) in EmitAtomicBinary()
9887 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
9888 .addImm(CmpPred).addReg(PPC::CR0).addMBB(exitMBB); in EmitAtomicBinary()
9895 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitAtomicBinary()
9896 .addImm(PPC::PRED_NE).addReg(PPC::CR0).addMBB(loopMBB); in EmitAtomicBinary()
9923 unsigned ZeroReg = is64bit ? PPC::ZERO8 : PPC::ZERO; in EmitPartwordAtomicBinary()
9949 is64bit ? &PPC::G8RCRegClass : &PPC::GPRCRegClass; in EmitPartwordAtomicBinary()
9950 const TargetRegisterClass *GPRC = &PPC::GPRCRegClass; in EmitPartwordAtomicBinary()
9994 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitPartwordAtomicBinary()
10002 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitPartwordAtomicBinary()
10003 .addReg(Ptr1Reg, 0, is64bit ? PPC::sub_32 : 0) in EmitPartwordAtomicBinary()
10008 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitPartwordAtomicBinary()
10012 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitPartwordAtomicBinary()
10017 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitPartwordAtomicBinary()
10022 BuildMI(BB, dl, TII->get(PPC::SLW), Incr2Reg).addReg(incr).addReg(ShiftReg); in EmitPartwordAtomicBinary()
10024 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitPartwordAtomicBinary()
10026 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitPartwordAtomicBinary()
10027 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitPartwordAtomicBinary()
10031 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitPartwordAtomicBinary()
10036 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitPartwordAtomicBinary()
10043 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitPartwordAtomicBinary()
10046 BuildMI(BB, dl, TII->get(PPC::AND), Tmp3Reg).addReg(TmpReg).addReg(MaskReg); in EmitPartwordAtomicBinary()
10051 BuildMI(BB, dl, TII->get(PPC::AND), SReg) in EmitPartwordAtomicBinary()
10056 if (CmpOpcode == PPC::CMPW) { in EmitPartwordAtomicBinary()
10058 BuildMI(BB, dl, TII->get(PPC::SRW), ValueReg) in EmitPartwordAtomicBinary()
10062 BuildMI(BB, dl, TII->get(is8bit ? PPC::EXTSB : PPC::EXTSH), ValueSReg) in EmitPartwordAtomicBinary()
10067 BuildMI(BB, dl, TII->get(CmpOpcode), PPC::CR0) in EmitPartwordAtomicBinary()
10070 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
10072 .addReg(PPC::CR0) in EmitPartwordAtomicBinary()
10078 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg).addReg(Tmp3Reg).addReg(Tmp2Reg); in EmitPartwordAtomicBinary()
10079 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitPartwordAtomicBinary()
10083 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitPartwordAtomicBinary()
10084 .addImm(PPC::PRED_NE) in EmitPartwordAtomicBinary()
10085 .addReg(PPC::CR0) in EmitPartwordAtomicBinary()
10093 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), dest) in EmitPartwordAtomicBinary()
10173 MIB = BuildMI(*thisMBB, MI, DL, TII->get(PPC::STD)) in emitEHSjLjSetJmp()
10174 .addReg(PPC::X2) in emitEHSjLjSetJmp()
10184 BaseReg = Subtarget.isPPC64() ? PPC::X1 : PPC::R1; in emitEHSjLjSetJmp()
10186 BaseReg = Subtarget.isPPC64() ? PPC::BP8 : PPC::BP; in emitEHSjLjSetJmp()
10189 TII->get(Subtarget.isPPC64() ? PPC::STD : PPC::STW)) in emitEHSjLjSetJmp()
10196 MIB = BuildMI(*thisMBB, MI, DL, TII->get(PPC::BCLalways)).addMBB(mainMBB); in emitEHSjLjSetJmp()
10199 BuildMI(*thisMBB, MI, DL, TII->get(PPC::LI), restoreDstReg).addImm(1); in emitEHSjLjSetJmp()
10201 MIB = BuildMI(*thisMBB, MI, DL, TII->get(PPC::EH_SjLj_Setup)) in emitEHSjLjSetJmp()
10203 MIB = BuildMI(*thisMBB, MI, DL, TII->get(PPC::B)).addMBB(sinkMBB); in emitEHSjLjSetJmp()
10212 TII->get(Subtarget.isPPC64() ? PPC::MFLR8 : PPC::MFLR), LabelReg); in emitEHSjLjSetJmp()
10216 MIB = BuildMI(mainMBB, DL, TII->get(PPC::STD)) in emitEHSjLjSetJmp()
10221 MIB = BuildMI(mainMBB, DL, TII->get(PPC::STW)) in emitEHSjLjSetJmp()
10228 BuildMI(mainMBB, DL, TII->get(PPC::LI), mainDstReg).addImm(0); in emitEHSjLjSetJmp()
10233 TII->get(PPC::PHI), DstReg) in emitEHSjLjSetJmp()
10255 (PVT == MVT::i64) ? &PPC::G8RCRegClass : &PPC::GPRCRegClass; in emitEHSjLjLongJmp()
10258 unsigned FP = (PVT == MVT::i64) ? PPC::X31 : PPC::R31; in emitEHSjLjLongJmp()
10259 unsigned SP = (PVT == MVT::i64) ? PPC::X1 : PPC::R1; in emitEHSjLjLongJmp()
10262 ? PPC::X30 in emitEHSjLjLongJmp()
10263 : (Subtarget.isSVR4ABI() && isPositionIndependent() ? PPC::R29 in emitEHSjLjLongJmp()
10264 : PPC::R30); in emitEHSjLjLongJmp()
10279 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LD), FP) in emitEHSjLjLongJmp()
10283 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LWZ), FP) in emitEHSjLjLongJmp()
10291 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LD), Tmp) in emitEHSjLjLongJmp()
10295 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LWZ), Tmp) in emitEHSjLjLongJmp()
10303 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LD), SP) in emitEHSjLjLongJmp()
10307 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LWZ), SP) in emitEHSjLjLongJmp()
10315 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LD), BP) in emitEHSjLjLongJmp()
10319 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LWZ), BP) in emitEHSjLjLongJmp()
10328 MIB = BuildMI(*MBB, MI, DL, TII->get(PPC::LD), PPC::X2) in emitEHSjLjLongJmp()
10336 TII->get(PVT == MVT::i64 ? PPC::MTCTR8 : PPC::MTCTR)).addReg(Tmp); in emitEHSjLjLongJmp()
10337 BuildMI(*MBB, MI, DL, TII->get(PVT == MVT::i64 ? PPC::BCTR8 : PPC::BCTR)); in emitEHSjLjLongJmp()
10355 MI.addOperand(MachineOperand::CreateReg(PPC::X2, false, true)); in EmitInstrWithCustomInserter()
10361 if (MI.getOpcode() == PPC::EH_SjLj_SetJmp32 || in EmitInstrWithCustomInserter()
10362 MI.getOpcode() == PPC::EH_SjLj_SetJmp64) { in EmitInstrWithCustomInserter()
10364 } else if (MI.getOpcode() == PPC::EH_SjLj_LongJmp32 || in EmitInstrWithCustomInserter()
10365 MI.getOpcode() == PPC::EH_SjLj_LongJmp64) { in EmitInstrWithCustomInserter()
10378 if (MI.getOpcode() == PPC::SELECT_CC_I4 || in EmitInstrWithCustomInserter()
10379 MI.getOpcode() == PPC::SELECT_CC_I8 || MI.getOpcode() == PPC::SELECT_I4 || in EmitInstrWithCustomInserter()
10380 MI.getOpcode() == PPC::SELECT_I8) { in EmitInstrWithCustomInserter()
10382 if (MI.getOpcode() == PPC::SELECT_CC_I4 || in EmitInstrWithCustomInserter()
10383 MI.getOpcode() == PPC::SELECT_CC_I8) in EmitInstrWithCustomInserter()
10386 Cond.push_back(MachineOperand::CreateImm(PPC::PRED_BIT_SET)); in EmitInstrWithCustomInserter()
10392 } else if (MI.getOpcode() == PPC::SELECT_CC_I4 || in EmitInstrWithCustomInserter()
10393 MI.getOpcode() == PPC::SELECT_CC_I8 || in EmitInstrWithCustomInserter()
10394 MI.getOpcode() == PPC::SELECT_CC_F4 || in EmitInstrWithCustomInserter()
10395 MI.getOpcode() == PPC::SELECT_CC_F8 || in EmitInstrWithCustomInserter()
10396 MI.getOpcode() == PPC::SELECT_CC_F16 || in EmitInstrWithCustomInserter()
10397 MI.getOpcode() == PPC::SELECT_CC_QFRC || in EmitInstrWithCustomInserter()
10398 MI.getOpcode() == PPC::SELECT_CC_QSRC || in EmitInstrWithCustomInserter()
10399 MI.getOpcode() == PPC::SELECT_CC_QBRC || in EmitInstrWithCustomInserter()
10400 MI.getOpcode() == PPC::SELECT_CC_VRRC || in EmitInstrWithCustomInserter()
10401 MI.getOpcode() == PPC::SELECT_CC_VSFRC || in EmitInstrWithCustomInserter()
10402 MI.getOpcode() == PPC::SELECT_CC_VSSRC || in EmitInstrWithCustomInserter()
10403 MI.getOpcode() == PPC::SELECT_CC_VSRC || in EmitInstrWithCustomInserter()
10404 MI.getOpcode() == PPC::SELECT_CC_SPE4 || in EmitInstrWithCustomInserter()
10405 MI.getOpcode() == PPC::SELECT_CC_SPE || in EmitInstrWithCustomInserter()
10406 MI.getOpcode() == PPC::SELECT_I4 || in EmitInstrWithCustomInserter()
10407 MI.getOpcode() == PPC::SELECT_I8 || in EmitInstrWithCustomInserter()
10408 MI.getOpcode() == PPC::SELECT_F4 || in EmitInstrWithCustomInserter()
10409 MI.getOpcode() == PPC::SELECT_F8 || in EmitInstrWithCustomInserter()
10410 MI.getOpcode() == PPC::SELECT_F16 || in EmitInstrWithCustomInserter()
10411 MI.getOpcode() == PPC::SELECT_QFRC || in EmitInstrWithCustomInserter()
10412 MI.getOpcode() == PPC::SELECT_QSRC || in EmitInstrWithCustomInserter()
10413 MI.getOpcode() == PPC::SELECT_QBRC || in EmitInstrWithCustomInserter()
10414 MI.getOpcode() == PPC::SELECT_SPE || in EmitInstrWithCustomInserter()
10415 MI.getOpcode() == PPC::SELECT_SPE4 || in EmitInstrWithCustomInserter()
10416 MI.getOpcode() == PPC::SELECT_VRRC || in EmitInstrWithCustomInserter()
10417 MI.getOpcode() == PPC::SELECT_VSFRC || in EmitInstrWithCustomInserter()
10418 MI.getOpcode() == PPC::SELECT_VSSRC || in EmitInstrWithCustomInserter()
10419 MI.getOpcode() == PPC::SELECT_VSRC) { in EmitInstrWithCustomInserter()
10446 if (MI.getOpcode() == PPC::SELECT_I4 || MI.getOpcode() == PPC::SELECT_I8 || in EmitInstrWithCustomInserter()
10447 MI.getOpcode() == PPC::SELECT_F4 || MI.getOpcode() == PPC::SELECT_F8 || in EmitInstrWithCustomInserter()
10448 MI.getOpcode() == PPC::SELECT_F16 || in EmitInstrWithCustomInserter()
10449 MI.getOpcode() == PPC::SELECT_SPE4 || in EmitInstrWithCustomInserter()
10450 MI.getOpcode() == PPC::SELECT_SPE || in EmitInstrWithCustomInserter()
10451 MI.getOpcode() == PPC::SELECT_QFRC || in EmitInstrWithCustomInserter()
10452 MI.getOpcode() == PPC::SELECT_QSRC || in EmitInstrWithCustomInserter()
10453 MI.getOpcode() == PPC::SELECT_QBRC || in EmitInstrWithCustomInserter()
10454 MI.getOpcode() == PPC::SELECT_VRRC || in EmitInstrWithCustomInserter()
10455 MI.getOpcode() == PPC::SELECT_VSFRC || in EmitInstrWithCustomInserter()
10456 MI.getOpcode() == PPC::SELECT_VSSRC || in EmitInstrWithCustomInserter()
10457 MI.getOpcode() == PPC::SELECT_VSRC) { in EmitInstrWithCustomInserter()
10458 BuildMI(BB, dl, TII->get(PPC::BC)) in EmitInstrWithCustomInserter()
10463 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
10481 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::PHI), MI.getOperand(0).getReg()) in EmitInstrWithCustomInserter()
10486 } else if (MI.getOpcode() == PPC::ReadTB) { in EmitInstrWithCustomInserter()
10514 unsigned ReadAgainReg = RegInfo.createVirtualRegister(&PPC::GPRCRegClass); in EmitInstrWithCustomInserter()
10518 BuildMI(BB, dl, TII->get(PPC::MFSPR), HiReg).addImm(269); in EmitInstrWithCustomInserter()
10519 BuildMI(BB, dl, TII->get(PPC::MFSPR), LoReg).addImm(268); in EmitInstrWithCustomInserter()
10520 BuildMI(BB, dl, TII->get(PPC::MFSPR), ReadAgainReg).addImm(269); in EmitInstrWithCustomInserter()
10522 unsigned CmpReg = RegInfo.createVirtualRegister(&PPC::CRRCRegClass); in EmitInstrWithCustomInserter()
10524 BuildMI(BB, dl, TII->get(PPC::CMPW), CmpReg) in EmitInstrWithCustomInserter()
10527 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
10528 .addImm(PPC::PRED_NE) in EmitInstrWithCustomInserter()
10534 } else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I8) in EmitInstrWithCustomInserter()
10535 BB = EmitPartwordAtomicBinary(MI, BB, true, PPC::ADD4); in EmitInstrWithCustomInserter()
10536 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I16) in EmitInstrWithCustomInserter()
10537 BB = EmitPartwordAtomicBinary(MI, BB, false, PPC::ADD4); in EmitInstrWithCustomInserter()
10538 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I32) in EmitInstrWithCustomInserter()
10539 BB = EmitAtomicBinary(MI, BB, 4, PPC::ADD4); in EmitInstrWithCustomInserter()
10540 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I64) in EmitInstrWithCustomInserter()
10541 BB = EmitAtomicBinary(MI, BB, 8, PPC::ADD8); in EmitInstrWithCustomInserter()
10543 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I8) in EmitInstrWithCustomInserter()
10544 BB = EmitPartwordAtomicBinary(MI, BB, true, PPC::AND); in EmitInstrWithCustomInserter()
10545 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I16) in EmitInstrWithCustomInserter()
10546 BB = EmitPartwordAtomicBinary(MI, BB, false, PPC::AND); in EmitInstrWithCustomInserter()
10547 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I32) in EmitInstrWithCustomInserter()
10548 BB = EmitAtomicBinary(MI, BB, 4, PPC::AND); in EmitInstrWithCustomInserter()
10549 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I64) in EmitInstrWithCustomInserter()
10550 BB = EmitAtomicBinary(MI, BB, 8, PPC::AND8); in EmitInstrWithCustomInserter()
10552 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I8) in EmitInstrWithCustomInserter()
10553 BB = EmitPartwordAtomicBinary(MI, BB, true, PPC::OR); in EmitInstrWithCustomInserter()
10554 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I16) in EmitInstrWithCustomInserter()
10555 BB = EmitPartwordAtomicBinary(MI, BB, false, PPC::OR); in EmitInstrWithCustomInserter()
10556 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I32) in EmitInstrWithCustomInserter()
10557 BB = EmitAtomicBinary(MI, BB, 4, PPC::OR); in EmitInstrWithCustomInserter()
10558 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I64) in EmitInstrWithCustomInserter()
10559 BB = EmitAtomicBinary(MI, BB, 8, PPC::OR8); in EmitInstrWithCustomInserter()
10561 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I8) in EmitInstrWithCustomInserter()
10562 BB = EmitPartwordAtomicBinary(MI, BB, true, PPC::XOR); in EmitInstrWithCustomInserter()
10563 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I16) in EmitInstrWithCustomInserter()
10564 BB = EmitPartwordAtomicBinary(MI, BB, false, PPC::XOR); in EmitInstrWithCustomInserter()
10565 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I32) in EmitInstrWithCustomInserter()
10566 BB = EmitAtomicBinary(MI, BB, 4, PPC::XOR); in EmitInstrWithCustomInserter()
10567 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I64) in EmitInstrWithCustomInserter()
10568 BB = EmitAtomicBinary(MI, BB, 8, PPC::XOR8); in EmitInstrWithCustomInserter()
10570 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I8) in EmitInstrWithCustomInserter()
10571 BB = EmitPartwordAtomicBinary(MI, BB, true, PPC::NAND); in EmitInstrWithCustomInserter()
10572 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I16) in EmitInstrWithCustomInserter()
10573 BB = EmitPartwordAtomicBinary(MI, BB, false, PPC::NAND); in EmitInstrWithCustomInserter()
10574 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I32) in EmitInstrWithCustomInserter()
10575 BB = EmitAtomicBinary(MI, BB, 4, PPC::NAND); in EmitInstrWithCustomInserter()
10576 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I64) in EmitInstrWithCustomInserter()
10577 BB = EmitAtomicBinary(MI, BB, 8, PPC::NAND8); in EmitInstrWithCustomInserter()
10579 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I8) in EmitInstrWithCustomInserter()
10580 BB = EmitPartwordAtomicBinary(MI, BB, true, PPC::SUBF); in EmitInstrWithCustomInserter()
10581 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I16) in EmitInstrWithCustomInserter()
10582 BB = EmitPartwordAtomicBinary(MI, BB, false, PPC::SUBF); in EmitInstrWithCustomInserter()
10583 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I32) in EmitInstrWithCustomInserter()
10584 BB = EmitAtomicBinary(MI, BB, 4, PPC::SUBF); in EmitInstrWithCustomInserter()
10585 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I64) in EmitInstrWithCustomInserter()
10586 BB = EmitAtomicBinary(MI, BB, 8, PPC::SUBF8); in EmitInstrWithCustomInserter()
10588 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I8) in EmitInstrWithCustomInserter()
10589 BB = EmitPartwordAtomicBinary(MI, BB, true, 0, PPC::CMPW, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10590 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I16) in EmitInstrWithCustomInserter()
10591 BB = EmitPartwordAtomicBinary(MI, BB, false, 0, PPC::CMPW, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10592 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I32) in EmitInstrWithCustomInserter()
10593 BB = EmitAtomicBinary(MI, BB, 4, 0, PPC::CMPW, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10594 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I64) in EmitInstrWithCustomInserter()
10595 BB = EmitAtomicBinary(MI, BB, 8, 0, PPC::CMPD, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10597 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I8) in EmitInstrWithCustomInserter()
10598 BB = EmitPartwordAtomicBinary(MI, BB, true, 0, PPC::CMPW, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10599 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I16) in EmitInstrWithCustomInserter()
10600 BB = EmitPartwordAtomicBinary(MI, BB, false, 0, PPC::CMPW, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10601 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I32) in EmitInstrWithCustomInserter()
10602 BB = EmitAtomicBinary(MI, BB, 4, 0, PPC::CMPW, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10603 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I64) in EmitInstrWithCustomInserter()
10604 BB = EmitAtomicBinary(MI, BB, 8, 0, PPC::CMPD, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10606 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I8) in EmitInstrWithCustomInserter()
10607 BB = EmitPartwordAtomicBinary(MI, BB, true, 0, PPC::CMPLW, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10608 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I16) in EmitInstrWithCustomInserter()
10609 BB = EmitPartwordAtomicBinary(MI, BB, false, 0, PPC::CMPLW, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10610 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I32) in EmitInstrWithCustomInserter()
10611 BB = EmitAtomicBinary(MI, BB, 4, 0, PPC::CMPLW, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10612 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I64) in EmitInstrWithCustomInserter()
10613 BB = EmitAtomicBinary(MI, BB, 8, 0, PPC::CMPLD, PPC::PRED_GE); in EmitInstrWithCustomInserter()
10615 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I8) in EmitInstrWithCustomInserter()
10616 BB = EmitPartwordAtomicBinary(MI, BB, true, 0, PPC::CMPLW, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10617 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I16) in EmitInstrWithCustomInserter()
10618 BB = EmitPartwordAtomicBinary(MI, BB, false, 0, PPC::CMPLW, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10619 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I32) in EmitInstrWithCustomInserter()
10620 BB = EmitAtomicBinary(MI, BB, 4, 0, PPC::CMPLW, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10621 else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I64) in EmitInstrWithCustomInserter()
10622 BB = EmitAtomicBinary(MI, BB, 8, 0, PPC::CMPLD, PPC::PRED_LE); in EmitInstrWithCustomInserter()
10624 else if (MI.getOpcode() == PPC::ATOMIC_SWAP_I8) in EmitInstrWithCustomInserter()
10626 else if (MI.getOpcode() == PPC::ATOMIC_SWAP_I16) in EmitInstrWithCustomInserter()
10628 else if (MI.getOpcode() == PPC::ATOMIC_SWAP_I32) in EmitInstrWithCustomInserter()
10630 else if (MI.getOpcode() == PPC::ATOMIC_SWAP_I64) in EmitInstrWithCustomInserter()
10632 else if (MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I32 || in EmitInstrWithCustomInserter()
10633 MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I64 || in EmitInstrWithCustomInserter()
10635 MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I8) || in EmitInstrWithCustomInserter()
10637 MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I16)) { in EmitInstrWithCustomInserter()
10638 bool is64bit = MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I64; in EmitInstrWithCustomInserter()
10640 auto LoadMnemonic = PPC::LDARX; in EmitInstrWithCustomInserter()
10641 auto StoreMnemonic = PPC::STDCX; in EmitInstrWithCustomInserter()
10645 case PPC::ATOMIC_CMP_SWAP_I8: in EmitInstrWithCustomInserter()
10646 LoadMnemonic = PPC::LBARX; in EmitInstrWithCustomInserter()
10647 StoreMnemonic = PPC::STBCX; in EmitInstrWithCustomInserter()
10650 case PPC::ATOMIC_CMP_SWAP_I16: in EmitInstrWithCustomInserter()
10651 LoadMnemonic = PPC::LHARX; in EmitInstrWithCustomInserter()
10652 StoreMnemonic = PPC::STHCX; in EmitInstrWithCustomInserter()
10655 case PPC::ATOMIC_CMP_SWAP_I32: in EmitInstrWithCustomInserter()
10656 LoadMnemonic = PPC::LWARX; in EmitInstrWithCustomInserter()
10657 StoreMnemonic = PPC::STWCX; in EmitInstrWithCustomInserter()
10659 case PPC::ATOMIC_CMP_SWAP_I64: in EmitInstrWithCustomInserter()
10660 LoadMnemonic = PPC::LDARX; in EmitInstrWithCustomInserter()
10661 StoreMnemonic = PPC::STDCX; in EmitInstrWithCustomInserter()
10701 BuildMI(BB, dl, TII->get(is64bit ? PPC::CMPD : PPC::CMPW), PPC::CR0) in EmitInstrWithCustomInserter()
10704 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
10705 .addImm(PPC::PRED_NE) in EmitInstrWithCustomInserter()
10706 .addReg(PPC::CR0) in EmitInstrWithCustomInserter()
10716 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
10717 .addImm(PPC::PRED_NE) in EmitInstrWithCustomInserter()
10718 .addReg(PPC::CR0) in EmitInstrWithCustomInserter()
10720 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
10734 } else if (MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I8 || in EmitInstrWithCustomInserter()
10735 MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I16) { in EmitInstrWithCustomInserter()
10741 bool is8bit = MI.getOpcode() == PPC::ATOMIC_CMP_SWAP_I8; in EmitInstrWithCustomInserter()
10764 is64bit ? &PPC::G8RCRegClass : &PPC::GPRCRegClass; in EmitInstrWithCustomInserter()
10765 const TargetRegisterClass *GPRC = &PPC::GPRCRegClass; in EmitInstrWithCustomInserter()
10783 unsigned ZeroReg = is64bit ? PPC::ZERO8 : PPC::ZERO; in EmitInstrWithCustomInserter()
10818 BuildMI(BB, dl, TII->get(is64bit ? PPC::ADD8 : PPC::ADD4), Ptr1Reg) in EmitInstrWithCustomInserter()
10827 BuildMI(BB, dl, TII->get(PPC::RLWINM), Shift1Reg) in EmitInstrWithCustomInserter()
10828 .addReg(Ptr1Reg, 0, is64bit ? PPC::sub_32 : 0) in EmitInstrWithCustomInserter()
10833 BuildMI(BB, dl, TII->get(PPC::XORI), ShiftReg) in EmitInstrWithCustomInserter()
10837 BuildMI(BB, dl, TII->get(PPC::RLDICR), PtrReg) in EmitInstrWithCustomInserter()
10842 BuildMI(BB, dl, TII->get(PPC::RLWINM), PtrReg) in EmitInstrWithCustomInserter()
10847 BuildMI(BB, dl, TII->get(PPC::SLW), NewVal2Reg) in EmitInstrWithCustomInserter()
10850 BuildMI(BB, dl, TII->get(PPC::SLW), OldVal2Reg) in EmitInstrWithCustomInserter()
10854 BuildMI(BB, dl, TII->get(PPC::LI), Mask2Reg).addImm(255); in EmitInstrWithCustomInserter()
10856 BuildMI(BB, dl, TII->get(PPC::LI), Mask3Reg).addImm(0); in EmitInstrWithCustomInserter()
10857 BuildMI(BB, dl, TII->get(PPC::ORI), Mask2Reg) in EmitInstrWithCustomInserter()
10861 BuildMI(BB, dl, TII->get(PPC::SLW), MaskReg) in EmitInstrWithCustomInserter()
10864 BuildMI(BB, dl, TII->get(PPC::AND), NewVal3Reg) in EmitInstrWithCustomInserter()
10867 BuildMI(BB, dl, TII->get(PPC::AND), OldVal3Reg) in EmitInstrWithCustomInserter()
10872 BuildMI(BB, dl, TII->get(PPC::LWARX), TmpDestReg) in EmitInstrWithCustomInserter()
10875 BuildMI(BB, dl, TII->get(PPC::AND), TmpReg) in EmitInstrWithCustomInserter()
10878 BuildMI(BB, dl, TII->get(PPC::CMPW), PPC::CR0) in EmitInstrWithCustomInserter()
10881 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
10882 .addImm(PPC::PRED_NE) in EmitInstrWithCustomInserter()
10883 .addReg(PPC::CR0) in EmitInstrWithCustomInserter()
10889 BuildMI(BB, dl, TII->get(PPC::ANDC), Tmp2Reg) in EmitInstrWithCustomInserter()
10892 BuildMI(BB, dl, TII->get(PPC::OR), Tmp4Reg) in EmitInstrWithCustomInserter()
10895 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitInstrWithCustomInserter()
10899 BuildMI(BB, dl, TII->get(PPC::BCC)) in EmitInstrWithCustomInserter()
10900 .addImm(PPC::PRED_NE) in EmitInstrWithCustomInserter()
10901 .addReg(PPC::CR0) in EmitInstrWithCustomInserter()
10903 BuildMI(BB, dl, TII->get(PPC::B)).addMBB(exitMBB); in EmitInstrWithCustomInserter()
10908 BuildMI(BB, dl, TII->get(PPC::STWCX)) in EmitInstrWithCustomInserter()
10917 BuildMI(*BB, BB->begin(), dl, TII->get(PPC::SRW), dest) in EmitInstrWithCustomInserter()
10920 } else if (MI.getOpcode() == PPC::FADDrtz) { in EmitInstrWithCustomInserter()
10930 unsigned MFFSReg = RegInfo.createVirtualRegister(&PPC::F8RCRegClass); in EmitInstrWithCustomInserter()
10933 BuildMI(*BB, MI, dl, TII->get(PPC::MFFS), MFFSReg); in EmitInstrWithCustomInserter()
10936 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB1)).addImm(31); in EmitInstrWithCustomInserter()
10937 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSB0)).addImm(30); in EmitInstrWithCustomInserter()
10940 BuildMI(*BB, MI, dl, TII->get(PPC::FADD), Dest).addReg(Src1).addReg(Src2); in EmitInstrWithCustomInserter()
10943 BuildMI(*BB, MI, dl, TII->get(PPC::MTFSFb)).addImm(1).addReg(MFFSReg); in EmitInstrWithCustomInserter()
10944 } else if (MI.getOpcode() == PPC::ANDIo_1_EQ_BIT || in EmitInstrWithCustomInserter()
10945 MI.getOpcode() == PPC::ANDIo_1_GT_BIT || in EmitInstrWithCustomInserter()
10946 MI.getOpcode() == PPC::ANDIo_1_EQ_BIT8 || in EmitInstrWithCustomInserter()
10947 MI.getOpcode() == PPC::ANDIo_1_GT_BIT8) { in EmitInstrWithCustomInserter()
10948 unsigned Opcode = (MI.getOpcode() == PPC::ANDIo_1_EQ_BIT8 || in EmitInstrWithCustomInserter()
10949 MI.getOpcode() == PPC::ANDIo_1_GT_BIT8) in EmitInstrWithCustomInserter()
10950 ? PPC::ANDIo8 in EmitInstrWithCustomInserter()
10951 : PPC::ANDIo; in EmitInstrWithCustomInserter()
10952 bool isEQ = (MI.getOpcode() == PPC::ANDIo_1_EQ_BIT || in EmitInstrWithCustomInserter()
10953 MI.getOpcode() == PPC::ANDIo_1_EQ_BIT8); in EmitInstrWithCustomInserter()
10957 Opcode == PPC::ANDIo ? &PPC::GPRCRegClass : &PPC::G8RCRegClass); in EmitInstrWithCustomInserter()
10965 .addReg(isEQ ? PPC::CR0EQ : PPC::CR0GT); in EmitInstrWithCustomInserter()
10966 } else if (MI.getOpcode() == PPC::TCHECK_RET) { in EmitInstrWithCustomInserter()
10969 unsigned CRReg = RegInfo.createVirtualRegister(&PPC::CRRCRegClass); in EmitInstrWithCustomInserter()
10970 BuildMI(*BB, MI, Dl, TII->get(PPC::TCHECK), CRReg); in EmitInstrWithCustomInserter()
11046 case PPC::DIR_440: in combineRepeatedFPDivisors()
11047 case PPC::DIR_A2: in combineRepeatedFPDivisors()
11048 case PPC::DIR_E500: in combineRepeatedFPDivisors()
11049 case PPC::DIR_E500mc: in combineRepeatedFPDivisors()
11050 case PPC::DIR_E5500: in combineRepeatedFPDivisors()
13332 PPC::Predicate CompOpc; in PerformDAGCombine()
13336 CompOpc = BranchOnWhenPredTrue ? PPC::PRED_EQ : PPC::PRED_NE; in PerformDAGCombine()
13339 CompOpc = BranchOnWhenPredTrue ? PPC::PRED_NE : PPC::PRED_EQ; in PerformDAGCombine()
13342 CompOpc = BranchOnWhenPredTrue ? PPC::PRED_LT : PPC::PRED_GE; in PerformDAGCombine()
13345 CompOpc = BranchOnWhenPredTrue ? PPC::PRED_GE : PPC::PRED_LT; in PerformDAGCombine()
13351 DAG.getRegister(PPC::CR6, MVT::i32), in PerformDAGCombine()
13444 case PPC::DIR_970: in getPrefLoopAlignment()
13445 case PPC::DIR_PWR4: in getPrefLoopAlignment()
13446 case PPC::DIR_PWR5: in getPrefLoopAlignment()
13447 case PPC::DIR_PWR5X: in getPrefLoopAlignment()
13448 case PPC::DIR_PWR6: in getPrefLoopAlignment()
13449 case PPC::DIR_PWR6X: in getPrefLoopAlignment()
13450 case PPC::DIR_PWR7: in getPrefLoopAlignment()
13451 case PPC::DIR_PWR8: in getPrefLoopAlignment()
13452 case PPC::DIR_PWR9: { in getPrefLoopAlignment()
13577 return std::make_pair(0U, &PPC::G8RC_NOX0RegClass); in getRegForInlineAsmConstraint()
13578 return std::make_pair(0U, &PPC::GPRC_NOR0RegClass); in getRegForInlineAsmConstraint()
13581 return std::make_pair(0U, &PPC::G8RCRegClass); in getRegForInlineAsmConstraint()
13582 return std::make_pair(0U, &PPC::GPRCRegClass); in getRegForInlineAsmConstraint()
13590 return std::make_pair(0U, &PPC::SPE4RCRegClass); in getRegForInlineAsmConstraint()
13592 return std::make_pair(0U, &PPC::SPERCRegClass); in getRegForInlineAsmConstraint()
13595 return std::make_pair(0U, &PPC::F4RCRegClass); in getRegForInlineAsmConstraint()
13597 return std::make_pair(0U, &PPC::F8RCRegClass); in getRegForInlineAsmConstraint()
13599 return std::make_pair(0U, &PPC::QFRCRegClass); in getRegForInlineAsmConstraint()
13601 return std::make_pair(0U, &PPC::QSRCRegClass); in getRegForInlineAsmConstraint()
13606 return std::make_pair(0U, &PPC::QFRCRegClass); in getRegForInlineAsmConstraint()
13608 return std::make_pair(0U, &PPC::QSRCRegClass); in getRegForInlineAsmConstraint()
13610 return std::make_pair(0U, &PPC::VRRCRegClass); in getRegForInlineAsmConstraint()
13613 return std::make_pair(0U, &PPC::CRRCRegClass); in getRegForInlineAsmConstraint()
13617 return std::make_pair(0U, &PPC::CRBITRCRegClass); in getRegForInlineAsmConstraint()
13621 return std::make_pair(0U, &PPC::VSRCRegClass); in getRegForInlineAsmConstraint()
13624 return std::make_pair(0U, &PPC::VSSRCRegClass); in getRegForInlineAsmConstraint()
13626 return std::make_pair(0U, &PPC::VSFRCRegClass); in getRegForInlineAsmConstraint()
13639 PPC::GPRCRegClass.contains(R.first)) in getRegForInlineAsmConstraint()
13641 PPC::sub_32, &PPC::G8RCRegClass), in getRegForInlineAsmConstraint()
13642 &PPC::G8RCRegClass); in getRegForInlineAsmConstraint()
13646 R.first = PPC::CR0; in getRegForInlineAsmConstraint()
13647 R.second = &PPC::CRRCRegClass; in getRegForInlineAsmConstraint()
13819 FrameReg = isPPC64 ? PPC::X1 : PPC::R1; in LowerFRAMEADDR()
13821 FrameReg = isPPC64 ? PPC::FP8 : PPC::FP; in LowerFRAMEADDR()
13844 .Case("r1", is64Bit ? PPC::X1 : PPC::R1) in getRegisterByName()
13845 .Case("r2", (isDarwinABI || isPPC64) ? 0 : PPC::R2) in getRegisterByName()
13847 (is64Bit ? PPC::X13 : PPC::R13)) in getRegisterByName()
14239 PPC::X12, PPC::LR8, PPC::CTR8, 0 in getScratchRegisters()
14247 return Subtarget.isPPC64() ? PPC::X3 : PPC::R3; in getExceptionPointerRegister()
14252 return Subtarget.isPPC64() ? PPC::X4 : PPC::R4; in getExceptionSelectorRegister()
14278 return PPC::createFastISel(FuncInfo, LibInfo); in createFastISel()
14303 if (PPC::G8RCRegClass.contains(*I)) in insertCopiesSplitCSR()
14304 RC = &PPC::G8RCRegClass; in insertCopiesSplitCSR()
14305 else if (PPC::F8RCRegClass.contains(*I)) in insertCopiesSplitCSR()
14306 RC = &PPC::F8RCRegClass; in insertCopiesSplitCSR()
14307 else if (PPC::CRRCRegClass.contains(*I)) in insertCopiesSplitCSR()
14308 RC = &PPC::CRRCRegClass; in insertCopiesSplitCSR()
14309 else if (PPC::VRRCRegClass.contains(*I)) in insertCopiesSplitCSR()
14310 RC = &PPC::VRRCRegClass; in insertCopiesSplitCSR()