Lines Matching defs:SparcOperand

56 class SparcOperand;
105 ParseStatus parseSparcAsmOperand(std::unique_ptr<SparcOperand> &Operand,
199 /// SparcOperand - Instances of this class represent a parsed Sparc machine
201 class SparcOperand : public MCParsedAsmOperand {
258 SparcOperand(KindTy K) : Kind(K) {}
461 static std::unique_ptr<SparcOperand> CreateToken(StringRef Str, SMLoc S) {
462 auto Op = std::make_unique<SparcOperand>(k_Token);
470 static std::unique_ptr<SparcOperand> CreateReg(unsigned RegNum, unsigned Kind,
472 auto Op = std::make_unique<SparcOperand>(k_Register);
474 Op->Reg.Kind = (SparcOperand::RegisterKind)Kind;
480 static std::unique_ptr<SparcOperand> CreateImm(const MCExpr *Val, SMLoc S,
482 auto Op = std::make_unique<SparcOperand>(k_Immediate);
489 static std::unique_ptr<SparcOperand> CreateASITag(unsigned Val, SMLoc S,
491 auto Op = std::make_unique<SparcOperand>(k_ASITag);
498 static std::unique_ptr<SparcOperand> CreatePrefetchTag(unsigned Val, SMLoc S,
500 auto Op = std::make_unique<SparcOperand>(k_PrefetchTag);
507 static bool MorphToIntPairReg(SparcOperand &Op) {
526 static bool MorphToDoubleReg(SparcOperand &Op) {
537 static bool MorphToQuadReg(SparcOperand &Op) {
560 static bool MorphToCoprocPairReg(SparcOperand &Op) {
573 static std::unique_ptr<SparcOperand>
574 MorphToMEMrr(unsigned Base, std::unique_ptr<SparcOperand> Op) {
583 static std::unique_ptr<SparcOperand>
585 auto Op = std::make_unique<SparcOperand>(k_MemoryReg);
594 static std::unique_ptr<SparcOperand>
595 MorphToMEMri(unsigned Base, std::unique_ptr<SparcOperand> Op) {
834 ErrorLoc = ((SparcOperand &)*Operands[ErrorInfo]).getStartLoc();
863 unsigned RegKind = SparcOperand::rk_None;
902 Operands.push_back(SparcOperand::CreateToken(Name, NameLoc));
923 Operands.push_back(SparcOperand::CreateToken("+", Parser.getTok().getLoc()));
963 std::unique_ptr<SparcOperand> LHS;
969 Operands.push_back(SparcOperand::MorphToMEMri(Sparc::G0, std::move(LHS)));
982 std::unique_ptr<SparcOperand> RHS;
992 ? SparcOperand::MorphToMEMri(LHS->getReg(), std::move(RHS))
993 : SparcOperand::MorphToMEMrr(LHS->getReg(), std::move(RHS)));
998 Operands.push_back(SparcOperand::CreateMEMr(LHS->getReg(), S, E));
1022 Operands.push_back(SparcOperand::CreateImm(Expr, S, E));
1103 Operands.push_back(SparcOperand::CreateImm(Val, S, E));
1112 std::unique_ptr<SparcOperand> Mask;
1145 Operands.push_back(SparcOperand::CreateImm(EVal, S, E));
1164 Operands.push_back(SparcOperand::CreateASITag(ASIVal, S, E));
1183 Operands.push_back(SparcOperand::CreateASITag(ASIVal, S, E));
1202 Operands.push_back(SparcOperand::CreatePrefetchTag(PrefetchVal, S, E));
1218 Operands.push_back(SparcOperand::CreatePrefetchTag(PrefetchVal, S, E));
1245 Operands.push_back(SparcOperand::CreateImm(DestExpr, S, E));
1262 Operands.push_back(SparcOperand::CreateToken("[",
1280 Operands.push_back(SparcOperand::CreateReg(Reg, RegKind, S, E));
1292 Operands.push_back(SparcOperand::CreateToken("]",
1313 SparcOperand &OldMemOp = (SparcOperand &)*Operands[Operands.size() - 2];
1318 Operands[Operands.size() - 2] = SparcOperand::MorphToMEMri(
1320 SparcOperand::CreateImm(MCConstantExpr::create(0, getContext()),
1329 Operands.push_back(SparcOperand::CreateToken("%asi", S));
1345 std::unique_ptr<SparcOperand> Op;
1358 SparcAsmParser::parseSparcAsmOperand(std::unique_ptr<SparcOperand> &Op,
1376 Op = SparcOperand::CreateToken("%xcc", S);
1378 Op = SparcOperand::CreateReg(Reg, RegKind, S, E);
1383 Op = SparcOperand::CreateImm(EVal, S, E);
1409 Op = SparcOperand::CreateImm(EVal, S, E);
1425 Operands.push_back(SparcOperand::CreateToken(modName,
1444 RegKind = SparcOperand::rk_None;
1461 RegKind = SparcOperand::rk_Special;
1466 RegKind = SparcOperand::rk_IntReg;
1470 RegKind = SparcOperand::rk_FloatReg;
1474 RegKind = SparcOperand::rk_CoprocReg;
1480 RegKind = SparcOperand::rk_IntReg;
1488 RegKind = SparcOperand::rk_FloatReg;
1491 RegKind = SparcOperand::rk_DoubleReg;
1501 RegKind = SparcOperand::rk_CoprocReg;
1506 RegKind = SparcOperand::rk_Special;
1517 RegKind = SparcOperand::rk_IntReg;
1523 RegKind = SparcOperand::rk_Special;
1530 RegKind = SparcOperand::rk_Special;
1534 RegKind = SparcOperand::rk_Special;
1538 RegKind = SparcOperand::rk_Special;
1542 RegKind = SparcOperand::rk_Special;
1546 RegKind = SparcOperand::rk_Special;
1550 RegKind = SparcOperand::rk_Special;
1554 RegKind = SparcOperand::rk_Special;
1558 RegKind = SparcOperand::rk_Special;
1562 RegKind = SparcOperand::rk_Special;
1566 RegKind = SparcOperand::rk_Special;
1691 SparcOperand &Op = (SparcOperand &)GOp;
1696 if (!Op.isFloatReg() || SparcOperand::MorphToDoubleReg(Op))
1700 if (SparcOperand::MorphToQuadReg(Op))
1706 if (SparcOperand::MorphToIntPairReg(Op))
1710 if (SparcOperand::MorphToCoprocPairReg(Op))