Lines Matching defs:PPCOperand

168 struct PPCOperand : public MCParsedAsmOperand {  struct
169 enum KindTy {
175 } Kind;
177 SMLoc StartLoc, EndLoc;
178 bool IsPPC64;
180 struct TokOp {
185 struct ImmOp {
189 struct ExprOp {
194 struct TLSRegOp {
198 union {
205 PPCOperand(KindTy K) : Kind(K) {} in PPCOperand() argument
208 PPCOperand(const PPCOperand &o) : MCParsedAsmOperand() { in PPCOperand() argument
232 void operator delete(void *p) { ::operator delete(p); } in operator delete()
235 SMLoc getStartLoc() const override { return StartLoc; } in getStartLoc()
238 SMLoc getEndLoc() const override { return EndLoc; } in getEndLoc()
242 SMRange getLocRange() const { return SMRange(StartLoc, EndLoc); } in getLocRange()
245 bool isPPC64() const { return IsPPC64; } in isPPC64()
247 int64_t getImm() const { in getImm()
251 int64_t getImmS16Context() const { in getImmS16Context()
258 int64_t getImmU16Context() const { in getImmU16Context()
264 const MCExpr *getExpr() const { in getExpr()
269 int64_t getExprCRVal() const { in getExprCRVal()
274 const MCExpr *getTLSReg() const { in getTLSReg()
279 unsigned getReg() const override { in getReg()
284 unsigned getVSReg() const { in getVSReg()
289 unsigned getACCReg() const { in getACCReg()
294 unsigned getVSRpEvenReg() const { in getVSRpEvenReg()
299 unsigned getG8pReg() const { in getG8pReg()
304 unsigned getCCReg() const { in getCCReg()
309 unsigned getCRBit() const { in getCRBit()
314 unsigned getCRBitMask() const { in getCRBitMask()
319 bool isToken() const override { return Kind == Token; } in isToken()
320 bool isImm() const override { in isImm()
323 bool isU1Imm() const { return Kind == Immediate && isUInt<1>(getImm()); } in isU1Imm()
324 bool isU2Imm() const { return Kind == Immediate && isUInt<2>(getImm()); } in isU2Imm()
325 bool isU3Imm() const { return Kind == Immediate && isUInt<3>(getImm()); } in isU3Imm()
326 bool isU4Imm() const { return Kind == Immediate && isUInt<4>(getImm()); } in isU4Imm()
327 bool isU5Imm() const { return Kind == Immediate && isUInt<5>(getImm()); } in isU5Imm()
328 bool isS5Imm() const { return Kind == Immediate && isInt<5>(getImm()); } in isS5Imm()
329 bool isU6Imm() const { return Kind == Immediate && isUInt<6>(getImm()); } in isU6Imm()
330 bool isU6ImmX2() const { return Kind == Immediate && in isU6ImmX2()
333 bool isU7Imm() const { return Kind == Immediate && isUInt<7>(getImm()); } in isU7Imm()
334 bool isU7ImmX4() const { return Kind == Immediate && in isU7ImmX4()
337 bool isU8Imm() const { return Kind == Immediate && isUInt<8>(getImm()); } in isU8Imm()
338 bool isU8ImmX8() const { return Kind == Immediate && in isU8ImmX8()
342 bool isU10Imm() const { return Kind == Immediate && isUInt<10>(getImm()); } in isU10Imm()
343 bool isU12Imm() const { return Kind == Immediate && isUInt<12>(getImm()); } in isU12Imm()
344 bool isU16Imm() const { return isExtImm<16>(/*Signed*/ false, 1); } in isU16Imm()
345 bool isS16Imm() const { return isExtImm<16>(/*Signed*/ true, 1); } in isS16Imm()
346 bool isS16ImmX4() const { return isExtImm<16>(/*Signed*/ true, 4); } in isS16ImmX4()
347 bool isS16ImmX16() const { return isExtImm<16>(/*Signed*/ true, 16); } in isS16ImmX16()
348 bool isS17Imm() const { return isExtImm<17>(/*Signed*/ true, 1); } in isS17Imm()
350 bool isHashImmX8() const { in isHashImmX8()
358 bool isS34ImmX16() const { in isS34ImmX16()
362 bool isS34Imm() const { in isS34Imm()
368 bool isTLSReg() const { return Kind == TLSRegister; } in isTLSReg()
369 bool isDirectBr() const { in isDirectBr()
386 bool isCondBr() const { return Kind == Expression || in isCondBr()
389 bool isImmZero() const { return Kind == Immediate && getImm() == 0; } in isImmZero()
390 bool isRegNumber() const { return Kind == Immediate && isUInt<5>(getImm()); } in isRegNumber()
391 bool isACCRegNumber() const { in isACCRegNumber()
394 bool isVSRpEvenRegNumber() const { in isVSRpEvenRegNumber()
397 bool isVSRegNumber() const { in isVSRegNumber()
400 bool isCCRegNumber() const { return (Kind == Expression in isCCRegNumber()
404 bool isCRBitNumber() const { return (Kind == Expression in isCRBitNumber()
409 bool isEvenRegNumber() const { return isRegNumber() && (getImm() & 1) == 0; } in isEvenRegNumber()
411 bool isCRBitMask() const { return Kind == Immediate && isUInt<8>(getImm()) && in isCRBitMask()
413 bool isATBitsAsHint() const { return false; } in isATBitsAsHint()
414 bool isMem() const override { return false; } in isMem()
415 bool isReg() const override { return false; } in isReg()
417 void addRegOperands(MCInst &Inst, unsigned N) const { in addRegOperands()
421 void addRegGPRCOperands(MCInst &Inst, unsigned N) const { in addRegGPRCOperands()
426 void addRegGPRCNoR0Operands(MCInst &Inst, unsigned N) const { in addRegGPRCNoR0Operands()
431 void addRegG8RCOperands(MCInst &Inst, unsigned N) const { in addRegG8RCOperands()
436 void addRegG8RCNoX0Operands(MCInst &Inst, unsigned N) const { in addRegG8RCNoX0Operands()
441 void addRegG8pRCOperands(MCInst &Inst, unsigned N) const { in addRegG8pRCOperands()
446 void addRegGxRCOperands(MCInst &Inst, unsigned N) const { in addRegGxRCOperands()
453 void addRegGxRCNoR0Operands(MCInst &Inst, unsigned N) const { in addRegGxRCNoR0Operands()
460 void addRegF4RCOperands(MCInst &Inst, unsigned N) const { in addRegF4RCOperands()
465 void addRegF8RCOperands(MCInst &Inst, unsigned N) const { in addRegF8RCOperands()
470 void addRegVFRCOperands(MCInst &Inst, unsigned N) const { in addRegVFRCOperands()
475 void addRegVRRCOperands(MCInst &Inst, unsigned N) const { in addRegVRRCOperands()
480 void addRegVSRCOperands(MCInst &Inst, unsigned N) const { in addRegVSRCOperands()
485 void addRegVSFRCOperands(MCInst &Inst, unsigned N) const { in addRegVSFRCOperands()
490 void addRegVSSRCOperands(MCInst &Inst, unsigned N) const { in addRegVSSRCOperands()
495 void addRegSPE4RCOperands(MCInst &Inst, unsigned N) const { in addRegSPE4RCOperands()
500 void addRegSPERCOperands(MCInst &Inst, unsigned N) const { in addRegSPERCOperands()
505 void addRegACCRCOperands(MCInst &Inst, unsigned N) const { in addRegACCRCOperands()
510 void addRegVSRpRCOperands(MCInst &Inst, unsigned N) const { in addRegVSRpRCOperands()
515 void addRegVSRpEvenRCOperands(MCInst &Inst, unsigned N) const { in addRegVSRpEvenRCOperands()
520 void addRegCRBITRCOperands(MCInst &Inst, unsigned N) const { in addRegCRBITRCOperands()
525 void addRegCRRCOperands(MCInst &Inst, unsigned N) const { in addRegCRRCOperands()
530 void addCRBitMaskOperands(MCInst &Inst, unsigned N) const { in addCRBitMaskOperands()
535 void addImmOperands(MCInst &Inst, unsigned N) const { in addImmOperands()
543 void addS16ImmOperands(MCInst &Inst, unsigned N) const { in addS16ImmOperands()
558 void addU16ImmOperands(MCInst &Inst, unsigned N) const { in addU16ImmOperands()
573 void addBranchTargetOperands(MCInst &Inst, unsigned N) const { in addBranchTargetOperands()
581 void addTLSRegOperands(MCInst &Inst, unsigned N) const { in addTLSRegOperands()
586 StringRef getToken() const { in getToken()
593 static std::unique_ptr<PPCOperand> CreateToken(StringRef Str, SMLoc S, in CreateToken()
605 CreateTokenWithStringCopy(StringRef Str, SMLoc S, bool IsPPC64) { in CreateTokenWithStringCopy()
622 static std::unique_ptr<PPCOperand> CreateImm(int64_t Val, SMLoc S, SMLoc E, in CreateImm()
632 static std::unique_ptr<PPCOperand> CreateExpr(const MCExpr *Val, SMLoc S, in CreateExpr()
644 CreateTLSReg(const MCSymbolRefExpr *Sym, SMLoc S, SMLoc E, bool IsPPC64) { in CreateTLSReg()
654 CreateContextImm(int64_t Val, SMLoc S, SMLoc E, bool IsPPC64) { in CreateContextImm()
664 CreateFromMCExpr(const MCExpr *Val, SMLoc S, SMLoc E, bool IsPPC64) { in CreateFromMCExpr()
684 bool isExtImm(bool Signed, unsigned Multiple) const { in isExtImm()