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>
279 template <RegKind VectorKind>
380 RegKind Kind;
420 RegKind RegisterKind;
1212 return Kind == k_Register && Reg.Kind == RegKind::Scalar; in isScalarReg()
1216 return Kind == k_Register && Reg.Kind == RegKind::NeonVector; in isNeonVectorReg()
1220 return Kind == k_Register && Reg.Kind == RegKind::NeonVector && in isNeonVectorRegLo()
1228 return Kind == k_Register && Reg.Kind == RegKind::NeonVector && in isNeonVectorReg0to7()
1237 RegKind RK; in isSVEPredicateAsCounterReg()
1244 RK = RegKind::SVEPredicateAsCounter; in isSVEPredicateAsCounterReg()
1255 RegKind RK; in isSVEVectorReg()
1260 RK = RegKind::SVEDataVector; in isSVEVectorReg()
1267 RK = RegKind::SVEPredicateVector; in isSVEVectorReg()
1278 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isFPRasZPR()
1284 if (Kind != k_Register || Reg.Kind != RegKind::SVEPredicateVector) in isSVEPredicateVectorRegOfWidth()
1295 if (Kind != k_Register || Reg.Kind != RegKind::SVEPredicateAsCounter) in isSVEPredicateAsCounterRegOfWidth()
1306 if (Kind != k_Register || Reg.Kind != RegKind::SVEDataVector) in isSVEDataVectorRegOfWidth()
1339 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR32as64()
1344 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR64as32()
1349 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR64x8()
1355 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isWSeqPair()
1361 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isXSeqPair()
1384 return Kind == k_Register && Reg.Kind == RegKind::Scalar && in isGPR64()
1390 if (Kind != k_Register || Reg.Kind != RegKind::Scalar) in isGPR64WithShiftExtend()
1401 template <RegKind VectorKind, unsigned NumRegs>
1408 template <RegKind VectorKind, unsigned NumRegs, unsigned NumElements,
1424 template <RegKind VectorKind, unsigned NumRegs, unsigned NumElements,
1436 template <RegKind VectorKind, unsigned NumRegs, unsigned Stride,
2234 CreateReg(unsigned RegNum, RegKind Kind, SMLoc S, SMLoc E, MCContext &Ctx, in CreateReg()
2253 CreateVectorReg(unsigned RegNum, RegKind Kind, unsigned ElementWidth, in CreateVectorReg()
2258 assert((Kind == RegKind::NeonVector || Kind == RegKind::SVEDataVector || in CreateVectorReg()
2259 Kind == RegKind::SVEPredicateVector || in CreateVectorReg()
2260 Kind == RegKind::SVEPredicateAsCounter) && in CreateVectorReg()
2271 RegKind RegisterKind, SMLoc S, SMLoc E, MCContext &Ctx) { in CreateVectorList()
2649 RegKind VectorKind) { in parseVectorKind()
2653 case RegKind::NeonVector: in parseVectorKind()
2680 case RegKind::SVEPredicateAsCounter: in parseVectorKind()
2681 case RegKind::SVEPredicateVector: in parseVectorKind()
2682 case RegKind::SVEDataVector: in parseVectorKind()
2683 case RegKind::Matrix: in parseVectorKind()
2703 static bool isValidVectorKind(StringRef Suffix, RegKind VectorKind) { in isValidVectorKind()
2920 RegKind Kind) { in matchRegisterNameAlias()
2923 return Kind == RegKind::SVEDataVector ? RegNum : 0; in matchRegisterNameAlias()
2926 return Kind == RegKind::SVEPredicateVector ? RegNum : 0; in matchRegisterNameAlias()
2929 return Kind == RegKind::SVEPredicateAsCounter ? RegNum : 0; in matchRegisterNameAlias()
2932 return Kind == RegKind::NeonVector ? RegNum : 0; in matchRegisterNameAlias()
2935 return Kind == RegKind::Matrix ? RegNum : 0; in matchRegisterNameAlias()
2938 return Kind == RegKind::LookupTable ? AArch64::ZT0 : 0; in matchRegisterNameAlias()
2942 return (Kind == RegKind::Scalar) ? RegNum : 0; in matchRegisterNameAlias()
2952 return Kind == RegKind::Scalar ? RegNum : 0; in matchRegisterNameAlias()
2968 unsigned AArch64AsmParser::getNumRegsForRegKind(RegKind K) { in getNumRegsForRegKind()
2970 case RegKind::Scalar: in getNumRegsForRegKind()
2971 case RegKind::NeonVector: in getNumRegsForRegKind()
2972 case RegKind::SVEDataVector: in getNumRegsForRegKind()
2974 case RegKind::Matrix: in getNumRegsForRegKind()
2975 case RegKind::SVEPredicateVector: in getNumRegsForRegKind()
2976 case RegKind::SVEPredicateAsCounter: in getNumRegsForRegKind()
2978 case RegKind::LookupTable: in getNumRegsForRegKind()
2993 unsigned Reg = matchRegisterNameAlias(lowerCase, RegKind::Scalar); in tryParseScalarRegister()
3170 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext())); in tryParseSyspXzrPair()
3498 parseVectorKind(Name.drop_front(DotPosition), RegKind::Matrix); in tryParseMatrixRegister()
3517 unsigned Reg = matchRegisterNameAlias(Name, RegKind::Matrix); in tryParseMatrixRegister()
3534 const auto &KindRes = parseVectorKind(Tail, RegKind::Matrix); in tryParseMatrixRegister()
4093 ParseStatus Res = tryParseVectorRegister(Reg, Kind, RegKind::NeonVector); in tryParseNeonVectorRegister()
4097 const auto &KindRes = parseVectorKind(Kind, RegKind::NeonVector); in tryParseNeonVectorRegister()
4103 AArch64Operand::CreateVectorReg(Reg, RegKind::NeonVector, ElementWidth, in tryParseNeonVectorRegister()
4142 RegKind MatchKind) { in tryParseVectorRegister()
4171 template <RegKind RK>
4192 if (RK == RegKind::SVEPredicateAsCounter) { in tryParseSVEPredicateVector()
4219 if (RK == RegKind::SVEPredicateAsCounter && Pred != "z") in tryParseSVEPredicateVector()
4222 if (RK == RegKind::SVEPredicateVector && Pred != "z" && Pred != "m") in tryParseSVEPredicateVector()
4344 parseVectorKind(Tail, RegKind::Matrix); in tryParseMatrixTileList()
4433 template <RegKind VectorKind>
4559 auto ParseRes = tryParseVectorList<RegKind::NeonVector>(Operands, true); in parseNeonVectorList()
4576 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext())); in tryParseGPR64sp0Operand()
4591 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext())); in tryParseGPR64sp0Operand()
4600 unsigned RegNum = matchRegisterNameAlias(Name, RegKind::LookupTable); in tryParseZTOperand()
4606 RegNum, RegKind::LookupTable, StartLoc, getLoc(), getContext())); in tryParseZTOperand()
4645 RegNum, RegKind::Scalar, StartLoc, getLoc(), getContext(), EqTy)); in tryParseGPROperand()
4660 RegNum, RegKind::Scalar, StartLoc, Ext->getEndLoc(), getContext(), EqTy, in tryParseGPROperand()
6209 RegWidth == 32 ? AArch64::WZR : AArch64::XZR, RegKind::Scalar, in MatchAndEmitInstruction()
6371 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
6387 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
6404 Operands[1] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
7121 RegKind RegisterKind = RegKind::Scalar; in parseDirectiveReq()
7127 RegisterKind = RegKind::NeonVector; in parseDirectiveReq()
7128 ParseRes = tryParseVectorRegister(RegNum, Kind, RegKind::NeonVector); in parseDirectiveReq()
7139 RegisterKind = RegKind::SVEDataVector; in parseDirectiveReq()
7141 tryParseVectorRegister(RegNum, Kind, RegKind::SVEDataVector); in parseDirectiveReq()
7153 RegisterKind = RegKind::SVEPredicateVector; in parseDirectiveReq()
7154 ParseRes = tryParseVectorRegister(RegNum, Kind, RegKind::SVEPredicateVector); in parseDirectiveReq()
7842 Operands.push_back(AArch64Operand::CreateReg(Pair, RegKind::Scalar, S, in tryParseGPRSeqPair()
7856 tryParseVectorRegister(RegNum, Kind, RegKind::SVEDataVector); in tryParseSVEDataVector()
7864 const auto &KindRes = parseVectorKind(Kind, RegKind::SVEDataVector); in tryParseSVEDataVector()
7873 RegNum, RegKind::SVEDataVector, ElementWidth, S, S, getContext())); in tryParseSVEDataVector()
7892 RegNum, RegKind::SVEDataVector, ElementWidth, S, Ext->getEndLoc(), in tryParseSVEDataVector()
7981 AArch64Operand::CreateReg(X8Reg, RegKind::Scalar, SS, getLoc(), ctx)); in tryParseGPR64x8()