Lines Matching refs:Reg
113 RegOp Reg; member
148 Op->Reg.Kind = Kind; in createReg()
149 Op->Reg.Num = Num; in createReg()
200 return Kind == KindReg && Reg.Kind == RegKind; in isReg()
204 return Reg.Num; in getReg()
365 bool parseRegister(Register &Reg);
367 bool parseRegister(Register &Reg, RegisterGroup Group, const unsigned *Regs,
498 bool SystemZAsmParser::parseRegister(Register &Reg) { in parseRegister() argument
499 Reg.StartLoc = Parser.getTok().getLoc(); in parseRegister()
508 return Error(Reg.StartLoc, "invalid register"); in parseRegister()
513 return Error(Reg.StartLoc, "invalid register"); in parseRegister()
517 if (Name.substr(1).getAsInteger(10, Reg.Num)) in parseRegister()
518 return Error(Reg.StartLoc, "invalid register"); in parseRegister()
521 if (Prefix == 'r' && Reg.Num < 16) in parseRegister()
522 Reg.Group = RegGR; in parseRegister()
523 else if (Prefix == 'f' && Reg.Num < 16) in parseRegister()
524 Reg.Group = RegFP; in parseRegister()
525 else if (Prefix == 'v' && Reg.Num < 32) in parseRegister()
526 Reg.Group = RegV; in parseRegister()
527 else if (Prefix == 'a' && Reg.Num < 16) in parseRegister()
528 Reg.Group = RegAccess; in parseRegister()
530 return Error(Reg.StartLoc, "invalid register"); in parseRegister()
532 Reg.EndLoc = Parser.getTok().getLoc(); in parseRegister()
543 bool SystemZAsmParser::parseRegister(Register &Reg, RegisterGroup Group, in parseRegister() argument
545 if (parseRegister(Reg)) in parseRegister()
547 if (Reg.Group != Group && !(Reg.Group == RegFP && Group == RegV)) in parseRegister()
548 return Error(Reg.StartLoc, "invalid operand for instruction"); in parseRegister()
549 if (Regs && Regs[Reg.Num] == 0) in parseRegister()
550 return Error(Reg.StartLoc, "invalid register pair"); in parseRegister()
551 if (Reg.Num == 0 && IsAddress) in parseRegister()
552 return Error(Reg.StartLoc, "%r0 used in an address"); in parseRegister()
554 Reg.Num = Regs[Reg.Num]; in parseRegister()
565 Register Reg; in parseRegister() local
567 if (parseRegister(Reg, Group, Regs, IsAddress)) in parseRegister()
570 Operands.push_back(SystemZOperand::createReg(Kind, Reg.Num, in parseRegister()
571 Reg.StartLoc, Reg.EndLoc)); in parseRegister()
596 Register Reg; in parseAddress() local
597 if (parseRegister(Reg)) in parseAddress()
599 if (Reg.Group == RegV) { in parseAddress()
602 Index = SystemZMC::VR128Regs[Reg.Num]; in parseAddress()
603 } else if (Reg.Group == RegGR) { in parseAddress()
604 if (Reg.Num == 0) in parseAddress()
605 return Error(Reg.StartLoc, "%r0 used in an address"); in parseAddress()
609 Index = Regs[Reg.Num]; in parseAddress()
611 Base = Regs[Reg.Num]; in parseAddress()
613 return Error(Reg.StartLoc, "invalid address register"); in parseAddress()
623 Register Reg; in parseAddress() local
624 if (parseRegister(Reg, RegGR, Regs, RegKind)) in parseAddress()
626 Base = Reg.Num; in parseAddress()
689 Register Reg; in ParseRegister() local
690 if (parseRegister(Reg)) in ParseRegister()
692 if (Reg.Group == RegGR) in ParseRegister()
693 RegNo = SystemZMC::GR64Regs[Reg.Num]; in ParseRegister()
694 else if (Reg.Group == RegFP) in ParseRegister()
695 RegNo = SystemZMC::FP64Regs[Reg.Num]; in ParseRegister()
696 else if (Reg.Group == RegV) in ParseRegister()
697 RegNo = SystemZMC::VR128Regs[Reg.Num]; in ParseRegister()
700 return Error(Reg.StartLoc, "invalid operand for instruction"); in ParseRegister()
701 StartLoc = Reg.StartLoc; in ParseRegister()
702 EndLoc = Reg.EndLoc; in ParseRegister()
758 Register Reg; in parseOperand() local
759 if (parseRegister(Reg)) in parseOperand()
761 Operands.push_back(SystemZOperand::createInvalid(Reg.StartLoc, Reg.EndLoc)); in parseOperand()
842 Register Reg; in parseAccessReg() local
843 if (parseRegister(Reg, RegAccess, nullptr)) in parseAccessReg()
846 Operands.push_back(SystemZOperand::createAccessReg(Reg.Num, in parseAccessReg()
847 Reg.StartLoc, in parseAccessReg()
848 Reg.EndLoc)); in parseAccessReg()