Lines Matching defs:VEOperand

37 class VEOperand;
73 ParseStatus parseVEAsmOperand(std::unique_ptr<VEOperand> &Operand);
143 /// VEOperand - Instances of this class represent a parsed VE machine
145 class VEOperand : public MCParsedAsmOperand {
211 VEOperand(KindTy K) : Kind(K) {}
587 static std::unique_ptr<VEOperand> CreateToken(StringRef Str, SMLoc S) {
588 auto Op = std::make_unique<VEOperand>(k_Token);
596 static std::unique_ptr<VEOperand> CreateReg(unsigned RegNum, SMLoc S,
598 auto Op = std::make_unique<VEOperand>(k_Register);
605 static std::unique_ptr<VEOperand> CreateImm(const MCExpr *Val, SMLoc S,
607 auto Op = std::make_unique<VEOperand>(k_Immediate);
614 static std::unique_ptr<VEOperand> CreateCCOp(unsigned CCVal, SMLoc S,
616 auto Op = std::make_unique<VEOperand>(k_CCOp);
623 static std::unique_ptr<VEOperand> CreateRDOp(unsigned RDVal, SMLoc S,
625 auto Op = std::make_unique<VEOperand>(k_RDOp);
632 static std::unique_ptr<VEOperand> CreateMImm(const MCExpr *Val, bool Flag,
634 auto Op = std::make_unique<VEOperand>(k_MImmOp);
642 static bool MorphToI32Reg(VEOperand &Op) {
651 static bool MorphToF32Reg(VEOperand &Op) {
660 static bool MorphToF128Reg(VEOperand &Op) {
669 static bool MorphToVM512Reg(VEOperand &Op) {
678 static bool MorphToMISCReg(VEOperand &Op) {
690 static std::unique_ptr<VEOperand>
691 MorphToMEMri(unsigned Base, std::unique_ptr<VEOperand> Op) {
701 static std::unique_ptr<VEOperand>
702 MorphToMEMzi(std::unique_ptr<VEOperand> Op) {
712 static std::unique_ptr<VEOperand>
713 MorphToMEMrri(unsigned Base, unsigned Index, std::unique_ptr<VEOperand> Op) {
723 static std::unique_ptr<VEOperand>
725 std::unique_ptr<VEOperand> Op) {
735 static std::unique_ptr<VEOperand>
736 MorphToMEMzri(unsigned Index, std::unique_ptr<VEOperand> Op) {
746 static std::unique_ptr<VEOperand>
747 MorphToMEMzii(const MCExpr *Index, std::unique_ptr<VEOperand> Op) {
783 ErrorLoc = ((VEOperand &)*Operands[ErrorInfo]).getStartLoc();
865 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
869 Operands->push_back(VEOperand::CreateCCOp(CondCode, CondLoc, SuffixLoc));
872 Operands->push_back(VEOperand::CreateToken(SuffixStr, SuffixLoc));
874 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
889 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
896 VEOperand::CreateRDOp(RoundingMode, SuffixLoc, SuffixEnd));
898 Operands->push_back(VEOperand::CreateToken(Name, NameLoc));
955 Operands->push_back(VEOperand::CreateToken(Mnemonic, NameLoc));
1211 std::unique_ptr<VEOperand> Offset;
1222 Offset = VEOperand::CreateImm(EVal, S, E);
1231 VEOperand::CreateImm(MCConstantExpr::create(0, getContext()), S, E);
1240 Operands.push_back(VEOperand::MorphToMEMzii(
1278 IndexValue ? VEOperand::MorphToMEMzii(IndexValue, std::move(Offset))
1279 : VEOperand::MorphToMEMzri(IndexReg, std::move(Offset)));
1297 ? VEOperand::MorphToMEMrii(BaseReg, IndexValue, std::move(Offset))
1298 : VEOperand::MorphToMEMrri(BaseReg, IndexReg, std::move(Offset)));
1318 std::unique_ptr<VEOperand> Offset;
1329 Offset = VEOperand::CreateImm(EVal, S, E);
1339 VEOperand::CreateImm(MCConstantExpr::create(0, getContext()), S, E);
1345 VEOperand::CreateImm(MCConstantExpr::create(0, getContext()), S, E);
1356 ? VEOperand::MorphToMEMri(BaseReg, std::move(Offset))
1357 : VEOperand::MorphToMEMzi(std::move(Offset)));
1388 ? VEOperand::MorphToMEMri(BaseReg, std::move(Offset))
1389 : VEOperand::MorphToMEMzi(std::move(Offset)));
1431 VEOperand::CreateMImm(EVal, Suffix == "0", Tok1.getLoc(), EndLoc));
1471 Operands.push_back(VEOperand::CreateToken(Tok1.getString(), Tok1.getLoc()));
1472 Operands.push_back(VEOperand::CreateReg(Reg1, S1, E1));
1473 Operands.push_back(VEOperand::CreateReg(Reg2, S2, E2));
1474 Operands.push_back(VEOperand::CreateToken(Parser.getTok().getString(),
1480 std::unique_ptr<VEOperand> Op;
1492 std::unique_ptr<VEOperand> Op1 = VEOperand::CreateToken(
1496 std::unique_ptr<VEOperand> Op2;
1506 Operands.push_back(VEOperand::CreateToken(Parser.getTok().getString(),
1516 ParseStatus VEAsmParser::parseVEAsmOperand(std::unique_ptr<VEOperand> &Op) {
1530 Op = VEOperand::CreateReg(Reg, S, E);
1538 Op = VEOperand::CreateImm(EVal, S, E);
1555 VEOperand &Op = (VEOperand &)GOp;
1564 if (Op.isReg() && VEOperand::MorphToF32Reg(Op))
1568 if (Op.isReg() && VEOperand::MorphToI32Reg(Op))
1572 if (Op.isReg() && VEOperand::MorphToF128Reg(Op))
1576 if (Op.isReg() && VEOperand::MorphToVM512Reg(Op))
1580 if (Op.isImm() && VEOperand::MorphToMISCReg(Op))