LLVM 22.0.0git
XtensaOperand Struct Reference
Inheritance diagram for XtensaOperand:
[legend]

Classes

struct  ImmOp
struct  RegOp

Public Types

enum  KindTy { Token , Register , Immediate }

Public Member Functions

 XtensaOperand (KindTy K)
 XtensaOperand (const XtensaOperand &o)
bool isToken () const override
 isToken - Is this a token operand?
bool isReg () const override
 isReg - Is this a register operand?
bool isImm () const override
 isImm - Is this an immediate operand?
bool isMem () const override
 isMem - Is this a memory operand?
bool isImm (int64_t MinValue, int64_t MaxValue) const
bool isImm8 () const
bool isImm8_sh8 () const
bool isImm12 () const
bool isImm12m () const
bool isOffset4m32 () const
bool isOffset8m8 () const
bool isOffset8m16 () const
bool isOffset8m32 () const
bool isentry_imm12 () const
bool isUimm4 () const
bool isUimm5 () const
bool isImm8n_7 () const
bool isShimm1_31 () const
bool isImm16_31 () const
bool isImm1_16 () const
bool isImm1n_15 () const
bool isImm32n_95 () const
bool isImm64n_4n () const
bool isB4const () const
bool isB4constu () const
bool isimm7_22 () const
SMLoc getStartLoc () const override
 getStartLoc - Gets location of the first token of this operand
SMLoc getEndLoc () const override
 getEndLoc - Gets location of the last token of this operand
MCRegister getReg () const override
const MCExprgetImm () const
StringRef getToken () const
void print (raw_ostream &OS, const MCAsmInfo &MAI) const override
 print - Print a debug representation of the operand to the given stream.
void addExpr (MCInst &Inst, const MCExpr *Expr) const
void addRegOperands (MCInst &Inst, unsigned N) const
void addImmOperands (MCInst &Inst, unsigned N) const
Public Member Functions inherited from llvm::MCParsedAsmOperand
virtual ~MCParsedAsmOperand ()=default
void setConstraint (StringRef C)
StringRef getConstraint ()
void setMCOperandNum (unsigned OpNum)
unsigned getMCOperandNum ()
virtual StringRef getSymName ()
virtual void * getOpDecl ()
virtual bool isMemUseUpRegs () const
 isMemUseUpRegs - Is memory operand use up regs, for example, intel MS inline asm may use ARR[baseReg + IndexReg + ...] which may use up regs in [...] expr, so ARR[baseReg + IndexReg + ...] can not use extra reg for ARR.
virtual bool needAddressOf () const
 needAddressOf - Do we need to emit code to get the address of the variable/label?
virtual bool isOffsetOfLocal () const
 isOffsetOfLocal - Do we need to emit code to get the offset of the local variable, rather than its value?
virtual SMLoc getOffsetOfLoc () const
 getOffsetOfLoc - Get the location of the offset operator.
virtual void dump () const
 dump - Print to the debug stream.

Static Public Member Functions

static std::unique_ptr< XtensaOperandcreateToken (StringRef Str, SMLoc S)
static std::unique_ptr< XtensaOperandcreateReg (unsigned RegNo, SMLoc S, SMLoc E)
static std::unique_ptr< XtensaOperandcreateImm (const MCExpr *Val, SMLoc S, SMLoc E)

Public Attributes

enum XtensaOperand::KindTy Kind
SMLoc StartLoc
SMLoc EndLoc
union { 
   StringRef   Tok 
   RegOp   Reg 
   ImmOp   Imm 
}; 

Additional Inherited Members

Protected Member Functions inherited from llvm::MCParsedAsmOperand
 MCParsedAsmOperand ()=default
 MCParsedAsmOperand (const MCParsedAsmOperand &RHS)=default
MCParsedAsmOperandoperator= (const MCParsedAsmOperand &)=default

Detailed Description

Definition at line 115 of file XtensaAsmParser.cpp.

Member Enumeration Documentation

◆ KindTy

Enumerator
Token 
Register 
Immediate 

Definition at line 117 of file XtensaAsmParser.cpp.

Constructor & Destructor Documentation

◆ XtensaOperand() [1/2]

XtensaOperand::XtensaOperand ( KindTy K)
inline

Definition at line 138 of file XtensaAsmParser.cpp.

References Kind, and llvm::MCParsedAsmOperand::MCParsedAsmOperand().

Referenced by XtensaOperand().

◆ XtensaOperand() [2/2]

XtensaOperand::XtensaOperand ( const XtensaOperand & o)
inline

Member Function Documentation

◆ addExpr()

void XtensaOperand::addExpr ( MCInst & Inst,
const MCExpr * Expr ) const
inline

◆ addImmOperands()

void XtensaOperand::addImmOperands ( MCInst & Inst,
unsigned N ) const
inline

Definition at line 368 of file XtensaAsmParser.cpp.

References addExpr(), assert(), getImm(), and N.

◆ addRegOperands()

void XtensaOperand::addRegOperands ( MCInst & Inst,
unsigned N ) const
inline

◆ createImm()

std::unique_ptr< XtensaOperand > XtensaOperand::createImm ( const MCExpr * Val,
SMLoc S,
SMLoc E )
inlinestatic

Definition at line 337 of file XtensaAsmParser.cpp.

References Immediate.

◆ createReg()

std::unique_ptr< XtensaOperand > XtensaOperand::createReg ( unsigned RegNo,
SMLoc S,
SMLoc E )
inlinestatic

Definition at line 328 of file XtensaAsmParser.cpp.

References Register.

◆ createToken()

std::unique_ptr< XtensaOperand > XtensaOperand::createToken ( StringRef Str,
SMLoc S )
inlinestatic

Definition at line 320 of file XtensaAsmParser.cpp.

References Token.

◆ getEndLoc()

SMLoc XtensaOperand::getEndLoc ( ) const
inlineoverridevirtual

getEndLoc - Gets location of the last token of this operand

Implements llvm::MCParsedAsmOperand.

Definition at line 288 of file XtensaAsmParser.cpp.

References EndLoc.

◆ getImm()

const MCExpr * XtensaOperand::getImm ( ) const
inline

◆ getReg()

MCRegister XtensaOperand::getReg ( ) const
inlineoverridevirtual

Implements llvm::MCParsedAsmOperand.

Definition at line 290 of file XtensaAsmParser.cpp.

References assert(), Kind, Reg, and Register.

Referenced by addRegOperands(), and print().

◆ getStartLoc()

SMLoc XtensaOperand::getStartLoc ( ) const
inlineoverridevirtual

getStartLoc - Gets location of the first token of this operand

Implements llvm::MCParsedAsmOperand.

Definition at line 286 of file XtensaAsmParser.cpp.

References StartLoc.

◆ getToken()

StringRef XtensaOperand::getToken ( ) const
inline

Definition at line 300 of file XtensaAsmParser.cpp.

References assert(), Kind, Tok, and Token.

Referenced by print().

◆ isB4const()

bool XtensaOperand::isB4const ( ) const
inline

Definition at line 223 of file XtensaAsmParser.cpp.

References llvm::dyn_cast(), getImm(), Immediate, and Kind.

◆ isB4constu()

bool XtensaOperand::isB4constu ( ) const
inline

Definition at line 253 of file XtensaAsmParser.cpp.

References llvm::dyn_cast(), getImm(), Immediate, and Kind.

◆ isentry_imm12()

bool XtensaOperand::isentry_imm12 ( ) const
inline

Definition at line 196 of file XtensaAsmParser.cpp.

References llvm::cast(), getImm(), and isImm().

◆ isImm() [1/2]

bool XtensaOperand::isImm ( ) const
inlineoverridevirtual

◆ isImm() [2/2]

bool XtensaOperand::isImm ( int64_t MinValue,
int64_t MaxValue ) const
inline

Definition at line 163 of file XtensaAsmParser.cpp.

References getImm(), Immediate, inRange(), and Kind.

◆ isImm12()

bool XtensaOperand::isImm12 ( ) const
inline

Definition at line 174 of file XtensaAsmParser.cpp.

References isImm().

◆ isImm12m()

bool XtensaOperand::isImm12m ( ) const
inline

Definition at line 177 of file XtensaAsmParser.cpp.

References Immediate, and Kind.

◆ isImm16_31()

bool XtensaOperand::isImm16_31 ( ) const
inline

Definition at line 209 of file XtensaAsmParser.cpp.

References isImm().

◆ isImm1_16()

bool XtensaOperand::isImm1_16 ( ) const
inline

Definition at line 211 of file XtensaAsmParser.cpp.

References isImm().

◆ isImm1n_15()

bool XtensaOperand::isImm1n_15 ( ) const
inline

Definition at line 214 of file XtensaAsmParser.cpp.

References isImm().

◆ isImm32n_95()

bool XtensaOperand::isImm32n_95 ( ) const
inline

Definition at line 216 of file XtensaAsmParser.cpp.

References isImm().

◆ isImm64n_4n()

bool XtensaOperand::isImm64n_4n ( ) const
inline

Definition at line 218 of file XtensaAsmParser.cpp.

References llvm::cast(), getImm(), and isImm().

◆ isimm7_22()

bool XtensaOperand::isimm7_22 ( ) const
inline

Definition at line 283 of file XtensaAsmParser.cpp.

References isImm().

◆ isImm8()

bool XtensaOperand::isImm8 ( ) const
inline

Definition at line 167 of file XtensaAsmParser.cpp.

References isImm().

◆ isImm8_sh8()

bool XtensaOperand::isImm8_sh8 ( ) const
inline

Definition at line 169 of file XtensaAsmParser.cpp.

References llvm::cast(), getImm(), and isImm().

◆ isImm8n_7()

bool XtensaOperand::isImm8n_7 ( ) const
inline

Definition at line 205 of file XtensaAsmParser.cpp.

References isImm().

◆ isMem()

bool XtensaOperand::isMem ( ) const
inlineoverridevirtual

isMem - Is this a memory operand?

Implements llvm::MCParsedAsmOperand.

Definition at line 161 of file XtensaAsmParser.cpp.

◆ isOffset4m32()

bool XtensaOperand::isOffset4m32 ( ) const
inline

Definition at line 179 of file XtensaAsmParser.cpp.

References llvm::cast(), getImm(), and isImm().

◆ isOffset8m16()

bool XtensaOperand::isOffset8m16 ( ) const
inline

Definition at line 186 of file XtensaAsmParser.cpp.

References llvm::cast(), getImm(), and isImm().

◆ isOffset8m32()

bool XtensaOperand::isOffset8m32 ( ) const
inline

Definition at line 191 of file XtensaAsmParser.cpp.

References llvm::cast(), getImm(), and isImm().

◆ isOffset8m8()

bool XtensaOperand::isOffset8m8 ( ) const
inline

Definition at line 184 of file XtensaAsmParser.cpp.

References isImm().

◆ isReg()

bool XtensaOperand::isReg ( ) const
inlineoverridevirtual

isReg - Is this a register operand?

Implements llvm::MCParsedAsmOperand.

Definition at line 159 of file XtensaAsmParser.cpp.

References Kind, and Register.

◆ isShimm1_31()

bool XtensaOperand::isShimm1_31 ( ) const
inline

Definition at line 207 of file XtensaAsmParser.cpp.

References isImm().

◆ isToken()

bool XtensaOperand::isToken ( ) const
inlineoverridevirtual

isToken - Is this a token operand?

Implements llvm::MCParsedAsmOperand.

Definition at line 158 of file XtensaAsmParser.cpp.

References Kind, and Token.

◆ isUimm4()

bool XtensaOperand::isUimm4 ( ) const
inline

Definition at line 201 of file XtensaAsmParser.cpp.

References isImm().

◆ isUimm5()

bool XtensaOperand::isUimm5 ( ) const
inline

Definition at line 203 of file XtensaAsmParser.cpp.

References isImm().

◆ print()

void XtensaOperand::print ( raw_ostream & ,
const MCAsmInfo &  ) const
inlineoverridevirtual

print - Print a debug representation of the operand to the given stream.

Implements llvm::MCParsedAsmOperand.

Definition at line 305 of file XtensaAsmParser.cpp.

References getImm(), getReg(), getToken(), Immediate, Kind, llvm::MCAsmInfo::printExpr(), Register, and Token.

Member Data Documentation

◆ [union]

union { ... } XtensaOperand

◆ EndLoc

SMLoc XtensaOperand::EndLoc

Definition at line 131 of file XtensaAsmParser.cpp.

Referenced by getEndLoc(), and XtensaOperand().

◆ Imm

ImmOp XtensaOperand::Imm

Definition at line 135 of file XtensaAsmParser.cpp.

Referenced by addExpr(), getImm(), and XtensaOperand().

◆ Kind

◆ Reg

RegOp XtensaOperand::Reg

Definition at line 134 of file XtensaAsmParser.cpp.

Referenced by getReg(), and XtensaOperand().

◆ StartLoc

SMLoc XtensaOperand::StartLoc

Definition at line 131 of file XtensaAsmParser.cpp.

Referenced by getStartLoc(), and XtensaOperand().

◆ Tok

StringRef XtensaOperand::Tok

Definition at line 133 of file XtensaAsmParser.cpp.

Referenced by getToken(), and XtensaOperand().


The documentation for this struct was generated from the following file: