Lines Matching refs:LanaiOperand

46 struct LanaiOperand;
50 std::unique_ptr<LanaiOperand> parseRegister(bool RestoreOnFailure = false);
52 std::unique_ptr<LanaiOperand> parseImmediate();
54 std::unique_ptr<LanaiOperand> parseIdentifier();
105 struct LanaiOperand : public MCParsedAsmOperand { struct
144 explicit LanaiOperand(KindTy Kind) : Kind(Kind) {} in LanaiOperand() argument
585 static std::unique_ptr<LanaiOperand> CreateToken(StringRef Str, SMLoc Start) { in CreateToken() argument
586 auto Op = std::make_unique<LanaiOperand>(TOKEN); in CreateToken()
594 static std::unique_ptr<LanaiOperand> createReg(unsigned RegNum, SMLoc Start, in createReg() argument
596 auto Op = std::make_unique<LanaiOperand>(REGISTER); in createReg()
603 static std::unique_ptr<LanaiOperand> createImm(const MCExpr *Value, in createImm() argument
605 auto Op = std::make_unique<LanaiOperand>(IMMEDIATE); in createImm()
612 static std::unique_ptr<LanaiOperand>
613 MorphToMemImm(std::unique_ptr<LanaiOperand> Op) { in MorphToMemImm() argument
623 static std::unique_ptr<LanaiOperand>
624 MorphToMemRegReg(unsigned BaseReg, std::unique_ptr<LanaiOperand> Op, in MorphToMemRegReg() argument
635 static std::unique_ptr<LanaiOperand>
636 MorphToMemRegImm(unsigned BaseReg, std::unique_ptr<LanaiOperand> Op, in MorphToMemRegImm() argument
675 ErrorLoc = ((LanaiOperand &)*Operands[ErrorInfo]).getStartLoc(); in MatchAndEmitInstruction()
692 std::unique_ptr<LanaiOperand>
712 return LanaiOperand::createReg(RegNum, Start, End); in parseRegister()
724 std::unique_ptr<LanaiOperand> Op = parseRegister(/*RestoreOnFailure=*/false); in ParseRegister()
736 std::unique_ptr<LanaiOperand> Op = parseRegister(/*RestoreOnFailure=*/true); in tryParseRegister()
743 std::unique_ptr<LanaiOperand> LanaiAsmParser::parseIdentifier() { in parseIdentifier()
798 return LanaiOperand::createImm(Res, Start, End); in parseIdentifier()
801 std::unique_ptr<LanaiOperand> LanaiAsmParser::parseImmediate() { in parseImmediate()
814 return LanaiOperand::createImm(ExprVal, Start, End); in parseImmediate()
866 bool shouldBeSls(const LanaiOperand &Op) { in shouldBeSls()
905 Type = static_cast<LanaiOperand *>(Operands[0].get())->getToken(); in parseMemoryOperand()
914 std::unique_ptr<LanaiOperand> Op = parseRegister(); in parseMemoryOperand()
931 std::unique_ptr<LanaiOperand> Offset = nullptr; in parseMemoryOperand()
947 Operands.push_back(LanaiOperand::MorphToMemImm(std::move(Op))); in parseMemoryOperand()
955 Operands.push_back(LanaiOperand::MorphToMemRegImm( in parseMemoryOperand()
981 Offset = LanaiOperand::createImm(OffsetConstExpr, Start, End); in parseMemoryOperand()
1015 ? LanaiOperand::MorphToMemRegImm(BaseReg, std::move(Offset), AluOp) in parseMemoryOperand()
1016 : LanaiOperand::MorphToMemRegReg(BaseReg, std::move(Offset), AluOp)); in parseMemoryOperand()
1038 std::unique_ptr<LanaiOperand> Op = parseRegister(); in parseOperand()
1081 Operands->push_back(LanaiOperand::CreateToken(Mnemonic, NameLoc)); in splitMnemonic()
1082 Operands->push_back(LanaiOperand::createImm( in splitMnemonic()
1085 Operands->push_back(LanaiOperand::CreateToken(".r", NameLoc)); in splitMnemonic()
1110 Operands->push_back(LanaiOperand::CreateToken(Mnemonic, NameLoc)); in splitMnemonic()
1111 Operands->push_back(LanaiOperand::createImm( in splitMnemonic()
1117 Operands->push_back(LanaiOperand::CreateToken(Mnemonic, NameLoc)); in splitMnemonic()
1119 Operands->push_back(LanaiOperand::CreateToken(".r", NameLoc)); in splitMnemonic()
1150 if (LanaiOperand *PossibleAluOp = in IsMemoryAssignmentError()
1151 static_cast<LanaiOperand *>(Operands[PossibleAluOpIdx].get())) in IsMemoryAssignmentError()
1163 return static_cast<const LanaiOperand &>(op).isReg(); in IsRegister()
1171 static_cast<const LanaiOperand &>(*Operands[0]).getToken()) in MaybePredicatedInst()
1202 Operands.insert(Operands.begin(), LanaiOperand::CreateToken("s", NameLoc)); in ParseInstruction()
1204 LanaiOperand::createImm( in ParseInstruction()
1215 Operands.insert(Operands.begin(), LanaiOperand::CreateToken("bt", NameLoc)); in ParseInstruction()
1239 LanaiOperand::createImm( in ParseInstruction()