@@ -118,16 +118,16 @@ struct LanaiOperand : public MCParsedAsmOperand {
118118 };
119119
120120 struct RegOp {
121- unsigned RegNum;
121+ MCRegister RegNum;
122122 };
123123
124124 struct ImmOp {
125125 const MCExpr *Value;
126126 };
127127
128128 struct MemOp {
129- unsigned BaseReg;
130- unsigned OffsetReg;
129+ MCRegister BaseReg;
130+ MCRegister OffsetReg;
131131 unsigned AluOp;
132132 const MCExpr *Offset;
133133 };
@@ -166,12 +166,12 @@ struct LanaiOperand : public MCParsedAsmOperand {
166166 return StringRef (Tok.Data , Tok.Length );
167167 }
168168
169- unsigned getMemBaseReg () const {
169+ MCRegister getMemBaseReg () const {
170170 assert (isMem () && " Invalid type access!" );
171171 return Mem.BaseReg ;
172172 }
173173
174- unsigned getMemOffsetReg () const {
174+ MCRegister getMemOffsetReg () const {
175175 assert (isMem () && " Invalid type access!" );
176176 return Mem.OffsetReg ;
177177 }
@@ -439,7 +439,7 @@ struct LanaiOperand : public MCParsedAsmOperand {
439439 void addMemRegRegOperands (MCInst &Inst, unsigned N) const {
440440 assert (N == 3 && " Invalid number of operands!" );
441441 Inst.addOperand (MCOperand::createReg (getMemBaseReg ()));
442- assert (getMemOffsetReg () != 0 && " Invalid offset" );
442+ assert (getMemOffsetReg () && " Invalid offset" );
443443 Inst.addOperand (MCOperand::createReg (getMemOffsetReg ()));
444444 Inst.addOperand (MCOperand::createImm (getMemOp ()));
445445 }
@@ -589,10 +589,10 @@ struct LanaiOperand : public MCParsedAsmOperand {
589589 return Op;
590590 }
591591
592- static std::unique_ptr<LanaiOperand> createReg (unsigned RegNum , SMLoc Start,
592+ static std::unique_ptr<LanaiOperand> createReg (MCRegister Reg , SMLoc Start,
593593 SMLoc End) {
594594 auto Op = std::make_unique<LanaiOperand>(REGISTER);
595- Op->Reg .RegNum = RegNum ;
595+ Op->Reg .RegNum = Reg ;
596596 Op->StartLoc = Start;
597597 Op->EndLoc = End;
598598 return Op;
@@ -611,17 +611,17 @@ struct LanaiOperand : public MCParsedAsmOperand {
611611 MorphToMemImm (std::unique_ptr<LanaiOperand> Op) {
612612 const MCExpr *Imm = Op->getImm ();
613613 Op->Kind = MEMORY_IMM;
614- Op->Mem .BaseReg = 0 ;
614+ Op->Mem .BaseReg = MCRegister () ;
615615 Op->Mem .AluOp = LPAC::ADD;
616616 Op->Mem .OffsetReg = 0 ;
617617 Op->Mem .Offset = Imm;
618618 return Op;
619619 }
620620
621621 static std::unique_ptr<LanaiOperand>
622- MorphToMemRegReg (unsigned BaseReg, std::unique_ptr<LanaiOperand> Op,
622+ MorphToMemRegReg (MCRegister BaseReg, std::unique_ptr<LanaiOperand> Op,
623623 unsigned AluOp) {
624- unsigned OffsetReg = Op->getReg ();
624+ MCRegister OffsetReg = Op->getReg ();
625625 Op->Kind = MEMORY_REG_REG;
626626 Op->Mem .BaseReg = BaseReg;
627627 Op->Mem .AluOp = AluOp;
@@ -631,7 +631,7 @@ struct LanaiOperand : public MCParsedAsmOperand {
631631 }
632632
633633 static std::unique_ptr<LanaiOperand>
634- MorphToMemRegImm (unsigned BaseReg, std::unique_ptr<LanaiOperand> Op,
634+ MorphToMemRegImm (MCRegister BaseReg, std::unique_ptr<LanaiOperand> Op,
635635 unsigned AluOp) {
636636 const MCExpr *Imm = Op->getImm ();
637637 Op->Kind = MEMORY_REG_IMM;
@@ -691,21 +691,21 @@ LanaiAsmParser::parseRegister(bool RestoreOnFailure) {
691691 SMLoc End = SMLoc::getFromPointer (Parser.getTok ().getLoc ().getPointer () - 1 );
692692 std::optional<AsmToken> PercentTok;
693693
694- unsigned RegNum ;
694+ MCRegister Reg ;
695695 // Eat the '%'.
696696 if (Lexer.getKind () == AsmToken::Percent) {
697697 PercentTok = Parser.getTok ();
698698 Parser.Lex ();
699699 }
700700 if (Lexer.getKind () == AsmToken::Identifier) {
701- RegNum = MatchRegisterName (Lexer.getTok ().getIdentifier ());
702- if (RegNum == 0 ) {
701+ Reg = MatchRegisterName (Lexer.getTok ().getIdentifier ());
702+ if (!Reg ) {
703703 if (PercentTok && RestoreOnFailure)
704704 Lexer.UnLex (*PercentTok);
705705 return nullptr ;
706706 }
707707 Parser.Lex (); // Eat identifier token
708- return LanaiOperand::createReg (RegNum , Start, End);
708+ return LanaiOperand::createReg (Reg , Start, End);
709709 }
710710 if (PercentTok && RestoreOnFailure)
711711 Lexer.UnLex (*PercentTok);
@@ -900,7 +900,7 @@ ParseStatus LanaiAsmParser::parseMemoryOperand(OperandVector &Operands) {
900900
901901 // Use 0 if no offset given
902902 int OffsetValue = 0 ;
903- unsigned BaseReg = 0 ;
903+ MCRegister BaseReg;
904904 unsigned AluOp = LPAC::ADD;
905905 bool PostOp = false , PreOp = false ;
906906
0 commit comments