Lines Matching defs:PPCOperand
301 struct PPCOperand : public MCParsedAsmOperand { struct
302 enum KindTy {
308 } Kind;
310 SMLoc StartLoc, EndLoc;
311 bool IsPPC64;
313 struct TokOp {
318 struct ImmOp {
322 struct ExprOp {
327 struct TLSRegOp {
331 union {
338 PPCOperand(KindTy K) : MCParsedAsmOperand(), Kind(K) {} in PPCOperand() function
340 PPCOperand(const PPCOperand &o) : MCParsedAsmOperand() { in PPCOperand() argument
363 SMLoc getStartLoc() const override { return StartLoc; } in getStartLoc()
366 SMLoc getEndLoc() const override { return EndLoc; } in getEndLoc()
369 bool isPPC64() const { return IsPPC64; } in isPPC64()
371 int64_t getImm() const { in getImm()
375 int64_t getImmS16Context() const { in getImmS16Context()
381 int64_t getImmU16Context() const { in getImmU16Context()
386 const MCExpr *getExpr() const { in getExpr()
391 int64_t getExprCRVal() const { in getExprCRVal()
396 const MCExpr *getTLSReg() const { in getTLSReg()
401 unsigned getReg() const override { in getReg()
406 unsigned getVSReg() const { in getVSReg()
411 unsigned getCCReg() const { in getCCReg()
416 unsigned getCRBit() const { in getCRBit()
421 unsigned getCRBitMask() const { in getCRBitMask()
426 bool isToken() const override { return Kind == Token; } in isToken()
427 bool isImm() const override { return Kind == Immediate || Kind == Expression; } in isImm()
428 bool isU1Imm() const { return Kind == Immediate && isUInt<1>(getImm()); } in isU1Imm()
429 bool isU2Imm() const { return Kind == Immediate && isUInt<2>(getImm()); } in isU2Imm()
430 bool isU3Imm() const { return Kind == Immediate && isUInt<3>(getImm()); } in isU3Imm()
431 bool isU4Imm() const { return Kind == Immediate && isUInt<4>(getImm()); } in isU4Imm()
432 bool isU5Imm() const { return Kind == Immediate && isUInt<5>(getImm()); } in isU5Imm()
433 bool isS5Imm() const { return Kind == Immediate && isInt<5>(getImm()); } in isS5Imm()
434 bool isU6Imm() const { return Kind == Immediate && isUInt<6>(getImm()); } in isU6Imm()
435 bool isU6ImmX2() const { return Kind == Immediate && in isU6ImmX2()
438 bool isU7ImmX4() const { return Kind == Immediate && in isU7ImmX4()
441 bool isU8ImmX8() const { return Kind == Immediate && in isU8ImmX8()
444 bool isU12Imm() const { return Kind == Immediate && isUInt<12>(getImm()); } in isU12Imm()
445 bool isU16Imm() const { in isU16Imm()
456 bool isS16Imm() const { in isS16Imm()
467 bool isS16ImmX4() const { return Kind == Expression || in isS16ImmX4()
470 bool isS17Imm() const { in isS17Imm()
481 bool isTLSReg() const { return Kind == TLSRegister; } in isTLSReg()
482 bool isDirectBr() const { in isDirectBr()
499 bool isCondBr() const { return Kind == Expression || in isCondBr()
502 bool isRegNumber() const { return Kind == Immediate && isUInt<5>(getImm()); } in isRegNumber()
503 bool isVSRegNumber() const { return Kind == Immediate && isUInt<6>(getImm()); } in isVSRegNumber()
504 bool isCCRegNumber() const { return (Kind == Expression in isCCRegNumber()
508 bool isCRBitNumber() const { return (Kind == Expression in isCRBitNumber()
512 bool isCRBitMask() const { return Kind == Immediate && isUInt<8>(getImm()) && in isCRBitMask()
514 bool isMem() const override { return false; } in isMem()
515 bool isReg() const override { return false; } in isReg()
517 void addRegOperands(MCInst &Inst, unsigned N) const { in addRegOperands()
521 void addRegGPRCOperands(MCInst &Inst, unsigned N) const { in addRegGPRCOperands()
526 void addRegGPRCNoR0Operands(MCInst &Inst, unsigned N) const { in addRegGPRCNoR0Operands()
531 void addRegG8RCOperands(MCInst &Inst, unsigned N) const { in addRegG8RCOperands()
536 void addRegG8RCNoX0Operands(MCInst &Inst, unsigned N) const { in addRegG8RCNoX0Operands()
541 void addRegGxRCOperands(MCInst &Inst, unsigned N) const { in addRegGxRCOperands()
548 void addRegGxRCNoR0Operands(MCInst &Inst, unsigned N) const { in addRegGxRCNoR0Operands()
555 void addRegF4RCOperands(MCInst &Inst, unsigned N) const { in addRegF4RCOperands()
560 void addRegF8RCOperands(MCInst &Inst, unsigned N) const { in addRegF8RCOperands()
565 void addRegVRRCOperands(MCInst &Inst, unsigned N) const { in addRegVRRCOperands()
570 void addRegVSRCOperands(MCInst &Inst, unsigned N) const { in addRegVSRCOperands()
575 void addRegVSFRCOperands(MCInst &Inst, unsigned N) const { in addRegVSFRCOperands()
580 void addRegQFRCOperands(MCInst &Inst, unsigned N) const { in addRegQFRCOperands()
585 void addRegQSRCOperands(MCInst &Inst, unsigned N) const { in addRegQSRCOperands()
590 void addRegQBRCOperands(MCInst &Inst, unsigned N) const { in addRegQBRCOperands()
595 void addRegCRBITRCOperands(MCInst &Inst, unsigned N) const { in addRegCRBITRCOperands()
600 void addRegCRRCOperands(MCInst &Inst, unsigned N) const { in addRegCRRCOperands()
605 void addCRBitMaskOperands(MCInst &Inst, unsigned N) const { in addCRBitMaskOperands()
610 void addImmOperands(MCInst &Inst, unsigned N) const { in addImmOperands()
618 void addS16ImmOperands(MCInst &Inst, unsigned N) const { in addS16ImmOperands()
633 void addU16ImmOperands(MCInst &Inst, unsigned N) const { in addU16ImmOperands()
648 void addBranchTargetOperands(MCInst &Inst, unsigned N) const { in addBranchTargetOperands()
656 void addTLSRegOperands(MCInst &Inst, unsigned N) const { in addTLSRegOperands()
661 StringRef getToken() const { in getToken()
668 static std::unique_ptr<PPCOperand> CreateToken(StringRef Str, SMLoc S, in CreateToken()
680 CreateTokenWithStringCopy(StringRef Str, SMLoc S, bool IsPPC64) { in CreateTokenWithStringCopy()
697 static std::unique_ptr<PPCOperand> CreateImm(int64_t Val, SMLoc S, SMLoc E, in CreateImm()
707 static std::unique_ptr<PPCOperand> CreateExpr(const MCExpr *Val, SMLoc S, in CreateExpr()
719 CreateTLSReg(const MCSymbolRefExpr *Sym, SMLoc S, SMLoc E, bool IsPPC64) { in CreateTLSReg()
729 CreateContextImm(int64_t Val, SMLoc S, SMLoc E, bool IsPPC64) { in CreateContextImm()
739 CreateFromMCExpr(const MCExpr *Val, SMLoc S, SMLoc E, bool IsPPC64) { in CreateFromMCExpr()