Lines Matching refs:RegKind

67 enum class RegKind {  enum
90 StringMap<std::pair<RegKind, unsigned>> RegisterReqs;
166 unsigned matchRegisterNameAlias(StringRef Name, RegKind Kind);
233 unsigned getNumRegsForRegKind(RegKind K);
248 RegKind MatchKind);
277 template <RegKind RK>
281 template <RegKind VectorKind>
384 RegKind Kind;
424 RegKind RegisterKind;
1216 return Kind == k_Register && Reg.Kind == RegKind::Scalar; in isScalarReg()
1220 return Kind == k_Register && Reg.Kind == RegKind::NeonVector; in isNeonVectorReg()
1224 return Kind == k_Register && Reg.Kind == RegKind::NeonVector && in isNeonVectorRegLo()
1232 return Kind == k_Register && Reg.Kind == RegKind::NeonVector && in isNeonVectorReg0to7()
1241 RegKind RK; in isSVEPredicateAsCounterReg()
1249 RK = RegKind::SVEPredicateAsCounter; in isSVEPredicateAsCounterReg()
1260 RegKind RK; in isSVEVectorReg()
1265 RK = RegKind::SVEDataVector; in isSVEVectorReg()
1273 RK = RegKind::SVEPredicateVector; in isSVEVectorReg()
1284 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isFPRasZPR()
1290 if (Kind != k_Register || Reg.Kind != RegKind::SVEPredicateVector) in isSVEPredicateVectorRegOfWidth()
1301 if (Kind != k_Register || (Reg.Kind != RegKind::SVEPredicateAsCounter && in isSVEPredicateOrPredicateAsCounterRegOfWidth()
1302 Reg.Kind != RegKind::SVEPredicateVector)) in isSVEPredicateOrPredicateAsCounterRegOfWidth()
1315 if (Kind != k_Register || Reg.Kind != RegKind::SVEPredicateAsCounter) in isSVEPredicateAsCounterRegOfWidth()
1326 if (Kind != k_Register || Reg.Kind != RegKind::SVEDataVector) in isSVEDataVectorRegOfWidth()
1359 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR32as64()
1364 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR64as32()
1369 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR64x8()
1375 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isWSeqPair()
1381 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isXSeqPair()
1404 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR64()
1410 if (Kind != k_Register || Reg.Kind != RegKind::Scalar) in isGPR64WithShiftExtend()
1421 template <RegKind VectorKind, unsigned NumRegs>
1428 template <RegKind VectorKind, unsigned NumRegs, unsigned NumElements,
1444 template <RegKind VectorKind, unsigned NumRegs, unsigned NumElements,
1456 template <RegKind VectorKind, unsigned NumRegs, unsigned Stride,
2263 CreateReg(unsigned RegNum, RegKind Kind, SMLoc S, SMLoc E, MCContext &Ctx, in CreateReg()
2282 CreateVectorReg(unsigned RegNum, RegKind Kind, unsigned ElementWidth, in CreateVectorReg()
2287 assert((Kind == RegKind::NeonVector || Kind == RegKind::SVEDataVector || in CreateVectorReg()
2288 Kind == RegKind::SVEPredicateVector || in CreateVectorReg()
2289 Kind == RegKind::SVEPredicateAsCounter) && in CreateVectorReg()
2300 RegKind RegisterKind, SMLoc S, SMLoc E, MCContext &Ctx) { in CreateVectorList()
2678 RegKind VectorKind) { in parseVectorKind()
2682 case RegKind::NeonVector: in parseVectorKind()
2709 case RegKind::SVEPredicateAsCounter: in parseVectorKind()
2710 case RegKind::SVEPredicateVector: in parseVectorKind()
2711 case RegKind::SVEDataVector: in parseVectorKind()
2712 case RegKind::Matrix: in parseVectorKind()
2732 static bool isValidVectorKind(StringRef Suffix, RegKind VectorKind) { in isValidVectorKind()
2949 RegKind Kind) { in matchRegisterNameAlias()
2952 return Kind == RegKind::SVEDataVector ? RegNum : 0; in matchRegisterNameAlias()
2955 return Kind == RegKind::SVEPredicateVector ? RegNum : 0; in matchRegisterNameAlias()
2958 return Kind == RegKind::SVEPredicateAsCounter ? RegNum : 0; in matchRegisterNameAlias()
2961 return Kind == RegKind::NeonVector ? RegNum : 0; in matchRegisterNameAlias()
2964 return Kind == RegKind::Matrix ? RegNum : 0; in matchRegisterNameAlias()
2967 return Kind == RegKind::LookupTable ? AArch64::ZT0 : 0; in matchRegisterNameAlias()
2971 return (Kind == RegKind::Scalar) ? RegNum : 0; in matchRegisterNameAlias()
2981 return Kind == RegKind::Scalar ? RegNum : 0; in matchRegisterNameAlias()
2997 unsigned AArch64AsmParser::getNumRegsForRegKind(RegKind K) { in getNumRegsForRegKind()
2999 case RegKind::Scalar: in getNumRegsForRegKind()
3000 case RegKind::NeonVector: in getNumRegsForRegKind()
3001 case RegKind::SVEDataVector: in getNumRegsForRegKind()
3003 case RegKind::Matrix: in getNumRegsForRegKind()
3004 case RegKind::SVEPredicateVector: in getNumRegsForRegKind()
3005 case RegKind::SVEPredicateAsCounter: in getNumRegsForRegKind()
3007 case RegKind::LookupTable: in getNumRegsForRegKind()
3022 unsigned Reg = matchRegisterNameAlias(lowerCase, RegKind::Scalar); in tryParseScalarRegister()
3199 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext())); in tryParseSyspXzrPair()
3527 parseVectorKind(Name.drop_front(DotPosition), RegKind::Matrix); in tryParseMatrixRegister()
3546 unsigned Reg = matchRegisterNameAlias(Name, RegKind::Matrix); in tryParseMatrixRegister()
3563 const auto &KindRes = parseVectorKind(Tail, RegKind::Matrix); in tryParseMatrixRegister()
4121 ParseStatus Res = tryParseVectorRegister(Reg, Kind, RegKind::NeonVector); in tryParseNeonVectorRegister()
4125 const auto &KindRes = parseVectorKind(Kind, RegKind::NeonVector); in tryParseNeonVectorRegister()
4131 AArch64Operand::CreateVectorReg(Reg, RegKind::NeonVector, ElementWidth, in tryParseNeonVectorRegister()
4170 RegKind MatchKind) { in tryParseVectorRegister()
4201 tryParseSVEPredicateVector<RegKind::SVEPredicateAsCounter>(Operands); in tryParseSVEPredicateOrPredicateAsCounterVector()
4203 Status = tryParseSVEPredicateVector<RegKind::SVEPredicateVector>(Operands); in tryParseSVEPredicateOrPredicateAsCounterVector()
4208 template <RegKind RK>
4229 if (RK == RegKind::SVEPredicateAsCounter) { in tryParseSVEPredicateVector()
4256 if (RK == RegKind::SVEPredicateAsCounter && Pred != "z") in tryParseSVEPredicateVector()
4259 if (RK == RegKind::SVEPredicateVector && Pred != "z" && Pred != "m") in tryParseSVEPredicateVector()
4381 parseVectorKind(Tail, RegKind::Matrix); in tryParseMatrixTileList()
4470 template <RegKind VectorKind>
4596 auto ParseRes = tryParseVectorList<RegKind::NeonVector>(Operands, true); in parseNeonVectorList()
4613 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext())); in tryParseGPR64sp0Operand()
4628 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext())); in tryParseGPR64sp0Operand()
4637 unsigned RegNum = matchRegisterNameAlias(Name, RegKind::LookupTable); in tryParseZTOperand()
4643 RegNum, RegKind::LookupTable, StartLoc, getLoc(), getContext())); in tryParseZTOperand()
4682 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext(), EqTy)); in tryParseGPROperand()
4697 RegNum, RegKind::Scalar, StartLoc, Ext->getEndLoc(), getContext(), EqTy, in tryParseGPROperand()
6293 RegWidth == 32 ? AArch64::WZR : AArch64::XZR, RegKind::Scalar, in MatchAndEmitInstruction()
6455 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
6471 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
6488 Operands[1] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
7208 RegKind RegisterKind = RegKind::Scalar; in parseDirectiveReq()
7214 RegisterKind = RegKind::NeonVector; in parseDirectiveReq()
7215 ParseRes = tryParseVectorRegister(RegNum, Kind, RegKind::NeonVector); in parseDirectiveReq()
7226 RegisterKind = RegKind::SVEDataVector; in parseDirectiveReq()
7228 tryParseVectorRegister(RegNum, Kind, RegKind::SVEDataVector); in parseDirectiveReq()
7240 RegisterKind = RegKind::SVEPredicateVector; in parseDirectiveReq()
7241 ParseRes = tryParseVectorRegister(RegNum, Kind, RegKind::SVEPredicateVector); in parseDirectiveReq()
7929 Operands.push_back(AArch64Operand::CreateReg(Pair, RegKind::Scalar, S, in tryParseGPRSeqPair()
7943 tryParseVectorRegister(RegNum, Kind, RegKind::SVEDataVector); in tryParseSVEDataVector()
7951 const auto &KindRes = parseVectorKind(Kind, RegKind::SVEDataVector); in tryParseSVEDataVector()
7960 RegNum, RegKind::SVEDataVector, ElementWidth, S, S, getContext())); in tryParseSVEDataVector()
7979 RegNum, RegKind::SVEDataVector, ElementWidth, S, Ext->getEndLoc(), in tryParseSVEDataVector()
8068 AArch64Operand::CreateReg(X8Reg, RegKind::Scalar, SS, getLoc(), ctx)); in tryParseGPR64x8()