Home | History | Annotate | Download | only in AsmParser

Lines Matching defs:Reg

100     RegOp Reg;
134 Op->Reg.Kind = Kind;
135 Op->Reg.Num = Num;
177 return Kind == KindReg && Reg.Kind == RegKind;
181 return Reg.Num;
308 bool parseRegister(Register &Reg);
310 bool parseRegister(Register &Reg, RegisterGroup Group, const unsigned *Regs,
431 bool SystemZAsmParser::parseRegister(Register &Reg) {
432 Reg.StartLoc = Parser.getTok().getLoc();
441 return Error(Reg.StartLoc, "invalid register");
446 return Error(Reg.StartLoc, "invalid register");
450 if (Name.substr(1).getAsInteger(10, Reg.Num))
451 return Error(Reg.StartLoc, "invalid register");
454 if (Prefix == 'r' && Reg.Num < 16)
455 Reg.Group = RegGR;
456 else if (Prefix == 'f' && Reg.Num < 16)
457 Reg.Group = RegFP;
458 else if (Prefix == 'a' && Reg.Num < 16)
459 Reg.Group = RegAccess;
461 return Error(Reg.StartLoc, "invalid register");
463 Reg.EndLoc = Parser.getTok().getLoc();
472 bool SystemZAsmParser::parseRegister(Register &Reg, RegisterGroup Group,
474 if (parseRegister(Reg))
476 if (Reg.Group != Group)
477 return Error(Reg.StartLoc, "invalid operand for instruction");
478 if (Regs && Regs[Reg.Num] == 0)
479 return Error(Reg.StartLoc, "invalid register pair");
480 if (Reg.Num == 0 && IsAddress)
481 return Error(Reg.StartLoc, "%r0 used in an address");
483 Reg.Num = Regs[Reg.Num];
495 Register Reg;
497 if (parseRegister(Reg, Group, Regs, IsAddress))
500 Operands.push_back(SystemZOperand::createReg(Kind, Reg.Num,
501 Reg.StartLoc, Reg.EndLoc));
525 Register Reg;
526 if (parseRegister(Reg, RegGR, Regs, RegKind))
529 Index = Reg.Num;
531 Base = Reg.Num;
541 Register Reg;
542 if (parseRegister(Reg, RegGR, Regs, RegKind))
544 Base = Reg.Num;
599 Register Reg;
600 if (parseRegister(Reg))
602 if (Reg.Group == RegGR)
603 RegNo = SystemZMC::GR64Regs[Reg.Num];
604 else if (Reg.Group == RegFP)
605 RegNo = SystemZMC::FP64Regs[Reg.Num];
608 return Error(Reg.StartLoc, "invalid operand for instruction");
609 StartLoc = Reg.StartLoc;
610 EndLoc = Reg.EndLoc;
667 Register Reg;
668 if (parseRegister(Reg))
670 Operands.push_back(SystemZOperand::createInvalid(Reg.StartLoc, Reg.EndLoc));
750 Register Reg;
751 if (parseRegister(Reg, RegAccess, 0))
754 Operands.push_back(SystemZOperand::createAccessReg(Reg.Num,
755 Reg.StartLoc,
756 Reg.EndLoc));