Lines Matching defs:VEOperand
40 class VEOperand;
76 ParseStatus parseVEAsmOperand(std::unique_ptr<VEOperand> &Operand);
146 /// VEOperand - Instances of this class represent a parsed VE machine
148 class VEOperand : public MCParsedAsmOperand {
214 VEOperand(KindTy K) : Kind(K) {}
590 static std::unique_ptr<VEOperand> CreateToken(StringRef Str, SMLoc S) {
591 auto Op = std::make_unique<VEOperand>(k_Token);
599 static std::unique_ptr<VEOperand> CreateReg(unsigned RegNum, SMLoc S,
601 auto Op = std::make_unique<VEOperand>(k_Register);
608 static std::unique_ptr<VEOperand> CreateImm(const MCExpr *Val, SMLoc S,
610 auto Op = std::make_unique<VEOperand>(k_Immediate);
617 static std::unique_ptr<VEOperand> CreateCCOp(unsigned CCVal, SMLoc S,
619 auto Op = std::make_unique<VEOperand>(k_CCOp);
626 static std::unique_ptr<VEOperand> CreateRDOp(unsigned RDVal, SMLoc S,
628 auto Op = std::make_unique<VEOperand>(k_RDOp);
635 static std::unique_ptr<VEOperand> CreateMImm(const MCExpr *Val, bool Flag,
637 auto Op = std::make_unique<VEOperand>(k_MImmOp);
645 static bool MorphToI32Reg(VEOperand &Op) {
654 static bool MorphToF32Reg(VEOperand &Op) {
663 static bool MorphToF128Reg(VEOperand &Op) {
672 static bool MorphToVM512Reg(VEOperand &Op) {
681 static bool MorphToMISCReg(VEOperand &Op) {
693 static std::unique_ptr<VEOperand>
694 MorphToMEMri(unsigned Base, std::unique_ptr<VEOperand> Op) {
704 static std::unique_ptr<VEOperand>
705 MorphToMEMzi(std::unique_ptr<VEOperand> Op) {
715 static std::unique_ptr<VEOperand>
716 MorphToMEMrri(unsigned Base, unsigned Index, std::unique_ptr<VEOperand> Op) {
726 static std::unique_ptr<VEOperand>
728 std::unique_ptr<VEOperand> Op) {
738 static std::unique_ptr<VEOperand>
739 MorphToMEMzri(unsigned Index, std::unique_ptr<VEOperand> Op) {
749 static std::unique_ptr<VEOperand>
750 MorphToMEMzii(const MCExpr *Index, std::unique_ptr<VEOperand> Op) {
786 ErrorLoc = ((VEOperand &)*Operands[ErrorInfo]).getStartLoc();
868 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
872 Operands->push_back(VEOperand::CreateCCOp(CondCode, CondLoc, SuffixLoc));
875 Operands->push_back(VEOperand::CreateToken(SuffixStr, SuffixLoc));
877 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
892 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
899 VEOperand::CreateRDOp(RoundingMode, SuffixLoc, SuffixEnd));
901 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
958 Operands->push_back(VEOperand::CreateToken(Mnemonic, NameLoc));
1214 std::unique_ptr<VEOperand> Offset;
1225 Offset = VEOperand::CreateImm(EVal, S, E);
1234 VEOperand::CreateImm(MCConstantExpr::create(0, getContext()), S, E);
1243 Operands.push_back(VEOperand::MorphToMEMzii(
1281 IndexValue ? VEOperand::MorphToMEMzii(IndexValue, std::move(Offset))
1282 : VEOperand::MorphToMEMzri(IndexReg, std::move(Offset)));
1300 ? VEOperand::MorphToMEMrii(BaseReg, IndexValue, std::move(Offset))
1301 : VEOperand::MorphToMEMrri(BaseReg, IndexReg, std::move(Offset)));
1321 std::unique_ptr<VEOperand> Offset;
1332 Offset = VEOperand::CreateImm(EVal, S, E);
1342 VEOperand::CreateImm(MCConstantExpr::create(0, getContext()), S, E);
1348 VEOperand::CreateImm(MCConstantExpr::create(0, getContext()), S, E);
1359 ? VEOperand::MorphToMEMri(BaseReg, std::move(Offset))
1360 : VEOperand::MorphToMEMzi(std::move(Offset)));
1391 ? VEOperand::MorphToMEMri(BaseReg, std::move(Offset))
1392 : VEOperand::MorphToMEMzi(std::move(Offset)));
1434 VEOperand::CreateMImm(EVal, Suffix == "0", Tok1.getLoc(), EndLoc));
1474 Operands.push_back(VEOperand::CreateToken(Tok1.getString(), Tok1.getLoc()));
1475 Operands.push_back(VEOperand::CreateReg(Reg1, S1, E1));
1476 Operands.push_back(VEOperand::CreateReg(Reg2, S2, E2));
1477 Operands.push_back(VEOperand::CreateToken(Parser.getTok().getString(),
1483 std::unique_ptr<VEOperand> Op;
1495 std::unique_ptr<VEOperand> Op1 = VEOperand::CreateToken(
1499 std::unique_ptr<VEOperand> Op2;
1509 Operands.push_back(VEOperand::CreateToken(Parser.getTok().getString(),
1519 ParseStatus VEAsmParser::parseVEAsmOperand(std::unique_ptr<VEOperand> &Op) {
1533 Op = VEOperand::CreateReg(Reg, S, E);
1541 Op = VEOperand::CreateImm(EVal, S, E);
1558 VEOperand &Op = (VEOperand &)GOp;
1567 if (Op.isReg() && VEOperand::MorphToF32Reg(Op))
1571 if (Op.isReg() && VEOperand::MorphToI32Reg(Op))
1575 if (Op.isReg() && VEOperand::MorphToF128Reg(Op))
1579 if (Op.isReg() && VEOperand::MorphToVM512Reg(Op))
1583 if (Op.isImm() && VEOperand::MorphToMISCReg(Op))