Lines Matching defs:AArch64Operand

341 /// AArch64Operand - Instances of this class represent a parsed AArch64 machine
343 class AArch64Operand : public MCParsedAsmOperand {
524 AArch64Operand(KindTy K, MCContext &Ctx) : Kind(K), Ctx(Ctx) {}
526 AArch64Operand(const AArch64Operand &o) : MCParsedAsmOperand(), Ctx(o.Ctx) {
2251 static std::unique_ptr<AArch64Operand>
2253 auto Op = std::make_unique<AArch64Operand>(k_Token, Ctx);
2262 static std::unique_ptr<AArch64Operand>
2268 auto Op = std::make_unique<AArch64Operand>(k_Register, Ctx);
2281 static std::unique_ptr<AArch64Operand>
2297 static std::unique_ptr<AArch64Operand>
2301 auto Op = std::make_unique<AArch64Operand>(k_VectorList, Ctx);
2313 static std::unique_ptr<AArch64Operand>
2315 auto Op = std::make_unique<AArch64Operand>(k_VectorIndex, Ctx);
2322 static std::unique_ptr<AArch64Operand>
2324 auto Op = std::make_unique<AArch64Operand>(k_MatrixTileList, Ctx);
2361 static std::unique_ptr<AArch64Operand> CreateImm(const MCExpr *Val, SMLoc S,
2363 auto Op = std::make_unique<AArch64Operand>(k_Immediate, Ctx);
2370 static std::unique_ptr<AArch64Operand> CreateShiftedImm(const MCExpr *Val,
2374 auto Op = std::make_unique<AArch64Operand>(k_ShiftedImm, Ctx);
2382 static std::unique_ptr<AArch64Operand> CreateImmRange(unsigned First,
2386 auto Op = std::make_unique<AArch64Operand>(k_ImmRange, Ctx);
2393 static std::unique_ptr<AArch64Operand>
2395 auto Op = std::make_unique<AArch64Operand>(k_CondCode, Ctx);
2402 static std::unique_ptr<AArch64Operand>
2404 auto Op = std::make_unique<AArch64Operand>(k_FPImm, Ctx);
2412 static std::unique_ptr<AArch64Operand> CreateBarrier(unsigned Val,
2417 auto Op = std::make_unique<AArch64Operand>(k_Barrier, Ctx);
2427 static std::unique_ptr<AArch64Operand> CreateSysReg(StringRef Str, SMLoc S,
2432 auto Op = std::make_unique<AArch64Operand>(k_SysReg, Ctx);
2443 static std::unique_ptr<AArch64Operand> CreateSysCR(unsigned Val, SMLoc S,
2445 auto Op = std::make_unique<AArch64Operand>(k_SysCR, Ctx);
2452 static std::unique_ptr<AArch64Operand> CreatePrefetch(unsigned Val,
2456 auto Op = std::make_unique<AArch64Operand>(k_Prefetch, Ctx);
2465 static std::unique_ptr<AArch64Operand> CreatePSBHint(unsigned Val,
2469 auto Op = std::make_unique<AArch64Operand>(k_PSBHint, Ctx);
2478 static std::unique_ptr<AArch64Operand> CreateBTIHint(unsigned Val,
2482 auto Op = std::make_unique<AArch64Operand>(k_BTIHint, Ctx);
2491 static std::unique_ptr<AArch64Operand>
2494 auto Op = std::make_unique<AArch64Operand>(k_MatrixRegister, Ctx);
2503 static std::unique_ptr<AArch64Operand>
2505 auto Op = std::make_unique<AArch64Operand>(k_SVCR, Ctx);
2514 static std::unique_ptr<AArch64Operand>
2517 auto Op = std::make_unique<AArch64Operand>(k_ShiftExtend, Ctx);
2529 void AArch64Operand::print(raw_ostream &OS) const {
3049 AArch64Operand::CreateSysCR(CRNum, S, getLoc(), getContext()));
3076 Operands.push_back(AArch64Operand::CreatePrefetch(
3088 Operands.push_back(AArch64Operand::CreatePrefetch(
3136 Operands.push_back(AArch64Operand::CreatePrefetch(prfop, PRFM.value_or(""),
3148 Operands.push_back(AArch64Operand::CreatePrefetch(
3165 Operands.push_back(AArch64Operand::CreatePSBHint(
3198 Operands.push_back(AArch64Operand::CreateReg(
3215 Operands.push_back(AArch64Operand::CreateBTIHint(
3265 Operands.push_back(AArch64Operand::CreateImm(Expr, S, E, getContext()));
3301 Operands.push_back(AArch64Operand::CreateImm(Expr, S, E, getContext()));
3329 AArch64Operand::CreateFPImm(F, true, S, getContext()));
3342 Operands.push_back(AArch64Operand::CreateToken("#0", S, getContext()));
3343 Operands.push_back(AArch64Operand::CreateToken(".0", S, getContext()));
3345 Operands.push_back(AArch64Operand::CreateFPImm(
3375 AArch64Operand::CreateImm(Imm, S, getLoc(), getContext()));
3384 AArch64Operand::CreateImm(Imm, S, getLoc(), getContext()));
3386 AArch64Operand::CreateToken(VecGroup, getLoc(), getContext()));
3412 AArch64Operand::CreateImm(Imm, S, getLoc(), getContext()));
3416 Operands.push_back(AArch64Operand::CreateShiftedImm(Imm, ShiftAmount, S,
3491 AArch64Operand::CreateCondCode(CC, S, getLoc(), getContext()));
3510 AArch64Operand::CreateSVCR(PStateImm, Tok.getString(), S, getContext()));
3533 Operands.push_back(AArch64Operand::CreateMatrixRegister(
3571 Operands.push_back(AArch64Operand::CreateMatrixRegister(
3625 AArch64Operand::CreateShiftExtend(ShOp, 0, false, S, E, getContext()));
3645 Operands.push_back(AArch64Operand::CreateShiftExtend(
3796 AArch64Operand::CreateImm(Expr, S, getLoc(), getContext()));
3798 AArch64Operand::CreateSysCR(Cn, S, getLoc(), getContext()));
3800 AArch64Operand::CreateSysCR(Cm, S, getLoc(), getContext()));
3803 AArch64Operand::CreateImm(Expr, S, getLoc(), getContext()));
3814 Operands.push_back(AArch64Operand::CreateToken("sys", NameLoc, getContext()));
3919 AArch64Operand::CreateToken("sysp", NameLoc, getContext()));
3996 Operands.push_back(AArch64Operand::CreateBarrier(Value, DB ? DB->Name : "",
4023 Operands.push_back(AArch64Operand::CreateBarrier(
4054 Operands.push_back(AArch64Operand::CreateBarrier(DB->Encoding, DB->Name,
4070 AArch64Operand::CreateBarrier(DB->Encoding, Tok.getString(), getLoc(),
4105 AArch64Operand::CreateSysReg(Tok.getString(), getLoc(), MRSReg, MSRReg,
4131 AArch64Operand::CreateVectorReg(Reg, RegKind::NeonVector, ElementWidth,
4137 Operands.push_back(AArch64Operand::CreateToken(Kind, S, getContext()));
4157 Operands.push_back(AArch64Operand::CreateVectorIndex(MCE->getValue(), SIdx,
4224 Operands.push_back(AArch64Operand::CreateVectorReg(
4250 Operands.push_back(AArch64Operand::CreateToken("/", getLoc(), getContext()));
4264 Operands.push_back(AArch64Operand::CreateToken(ZM, getLoc(), getContext()));
4397 Operands.push_back(AArch64Operand::CreateMatrixTileList(
4409 Operands.push_back(AArch64Operand::CreateMatrixTileList(
4428 AArch64Operand::ComputeRegsForAlias(FirstReg, DRegs, ElementWidth);
4451 AArch64Operand::ComputeRegsForAlias(Reg, DRegs, ElementWidth);
4465 AArch64Operand::CreateMatrixTileList(RegMask, S, getLoc(), getContext()));
4587 Operands.push_back(AArch64Operand::CreateVectorList(
4612 Operands.push_back(AArch64Operand::CreateReg(
4627 Operands.push_back(AArch64Operand::CreateReg(
4642 Operands.push_back(AArch64Operand::CreateReg(
4649 AArch64Operand::CreateToken("[", getLoc(), getContext()));
4656 Operands.push_back(AArch64Operand::CreateImm(
4665 AArch64Operand::CreateToken("]", getLoc(), getContext()));
4681 Operands.push_back(AArch64Operand::CreateReg(
4695 auto Ext = static_cast<AArch64Operand*>(ExtOpnd.back().get());
4696 Operands.push_back(AArch64Operand::CreateReg(
4718 AArch64Operand::CreateToken("mul", getLoc(), getContext()));
4723 AArch64Operand::CreateToken("vl", getLoc(), getContext()));
4736 Operands.push_back(AArch64Operand::CreateImm(
4777 AArch64Operand::CreateToken(Keyword, Tok.getLoc(), getContext()));
4821 Operands.push_back(AArch64Operand::CreateImm(Expr, S, E, getContext()));
4826 AArch64Operand::CreateToken("[", getLoc(), getContext()));
4838 AArch64Operand::CreateToken("{", getLoc(), getContext()));
4850 AArch64Operand::CreateToken(VecGroup, getLoc(), getContext()));
4895 Operands.push_back(AArch64Operand::CreateImm(IdVal, S, E, getContext()));
4931 Operands.push_back(AArch64Operand::CreateToken("#0", S, getContext()));
4932 Operands.push_back(AArch64Operand::CreateToken(".0", S, getContext()));
4941 Operands.push_back(AArch64Operand::CreateImm(ImmVal, S, E, getContext()));
4956 !static_cast<AArch64Operand &>(*Operands[1]).isScalarReg())
4974 Operands[0] = AArch64Operand::CreateToken("movz", Loc, Ctx);
4975 Operands.push_back(AArch64Operand::CreateImm(
4978 Operands.push_back(AArch64Operand::CreateShiftExtend(AArch64_AM::LSL,
4990 Operands.push_back(AArch64Operand::CreateImm(CPLoc, S, E, Ctx));
5057 auto &AOp1 = static_cast<const AArch64Operand&>(Op1);
5058 auto &AOp2 = static_cast<const AArch64Operand&>(Op2);
5137 Operands.push_back(AArch64Operand::CreateToken(Head, NameLoc, getContext()));
5156 Operands.push_back(AArch64Operand::CreateToken(".", SuffixLoc, getContext(),
5159 AArch64Operand::CreateCondCode(CC, NameLoc, NameLoc, getContext()));
5169 Operands.push_back(AArch64Operand::CreateToken(
5219 AArch64Operand::CreateToken("]", getLoc(), getContext()));
5222 AArch64Operand::CreateToken("!", getLoc(), getContext()));
5225 AArch64Operand::CreateToken("}", getLoc(), getContext()));
5748 auto &Op = static_cast<const AArch64Operand &>(*Operands[ErrorInfo]);
5994 ((AArch64Operand &)*Operands[0]).getToken(),
6213 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[0]);
6220 AArch64Operand &Op2 = static_cast<AArch64Operand &>(*Operands[2]);
6221 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]);
6241 AArch64Operand::CreateToken("ubfm", Op.getStartLoc(), getContext());
6242 Operands.push_back(AArch64Operand::CreateImm(
6244 Operands[3] = AArch64Operand::CreateImm(NewOp3, Op3.getStartLoc(),
6250 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]);
6251 AArch64Operand LSBOp = static_cast<AArch64Operand &>(*Operands[2]);
6252 AArch64Operand WidthOp = static_cast<AArch64Operand &>(*Operands[3]);
6291 AArch64Operand::CreateToken("bfm", Op.getStartLoc(), getContext());
6292 Operands[2] = AArch64Operand::CreateReg(
6295 Operands[3] = AArch64Operand::CreateImm(
6298 AArch64Operand::CreateImm(ImmSExpr, WidthOp.getStartLoc(),
6306 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]);
6307 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]);
6308 AArch64Operand &Op4 = static_cast<AArch64Operand &>(*Operands[4]);
6348 Operands[3] = AArch64Operand::CreateImm(
6350 Operands[4] = AArch64Operand::CreateImm(
6353 Operands[0] = AArch64Operand::CreateToken("bfm", Op.getStartLoc(),
6356 Operands[0] = AArch64Operand::CreateToken("sbfm", Op.getStartLoc(),
6359 Operands[0] = AArch64Operand::CreateToken("ubfm", Op.getStartLoc(),
6370 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]);
6371 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]);
6372 AArch64Operand &Op4 = static_cast<AArch64Operand &>(*Operands[4]);
6404 Operands[4] = AArch64Operand::CreateImm(
6407 Operands[0] = AArch64Operand::CreateToken("bfm", Op.getStartLoc(),
6410 Operands[0] = AArch64Operand::CreateToken("sbfm", Op.getStartLoc(),
6413 Operands[0] = AArch64Operand::CreateToken("ubfm", Op.getStartLoc(),
6428 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]);
6429 AArch64Operand &Op2 = static_cast<AArch64Operand &>(*Operands[2]);
6430 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]);
6441 AArch64Operand::CreateToken(".16b", IDLoc, getContext());
6452 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[2]);
6455 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar,
6462 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[1]);
6468 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[2]);
6471 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar,
6479 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[1]);
6485 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[1]);
6488 Operands[1] = AArch64Operand::CreateReg(Reg, RegKind::Scalar,
6520 Operands.size() > 1 && ((AArch64Operand &)*Operands[1]).isToken() &&
6521 ((AArch64Operand &)*Operands[1]).isTokenSuffix()) {
6565 ErrorLoc = ((AArch64Operand &)*Operands[ErrorInfo]).getStartLoc();
6571 if (((AArch64Operand &)*Operands[ErrorInfo]).isToken() &&
6572 ((AArch64Operand &)*Operands[ErrorInfo]).isTokenSuffix())
6790 SMLoc ErrorLoc = ((AArch64Operand &)*Operands[ErrorInfo]).getStartLoc();
7804 AArch64Operand &Op = static_cast<AArch64Operand &>(AsmOp);
7929 Operands.push_back(AArch64Operand::CreateReg(Pair, RegKind::Scalar, S,
7959 Operands.push_back(AArch64Operand::CreateVectorReg(
7977 auto Ext = static_cast<AArch64Operand *>(ExtOpnd.back().get());
7978 Operands.push_back(AArch64Operand::CreateVectorReg(
8023 AArch64Operand::CreateImm(MCConstantExpr::create(Pattern, getContext()),
8045 AArch64Operand::CreateImm(MCConstantExpr::create(Pattern, getContext()),
8068 AArch64Operand::CreateReg(X8Reg, RegKind::Scalar, SS, getLoc(), ctx));
8101 AArch64Operand::CreateImmRange(ImmFVal, ImmLVal, S, E, getContext()));