LLVM 19.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::MCOperandInfo Class Reference

This holds information about one operand of a machine instruction, indicating the register class for register operands, etc. More...

#include "llvm/MC/MCInstrDesc.h"

Public Member Functions

bool isLookupPtrRegClass () const
 Set if this operand is a pointer value and it requires a callback to look up its register class.
 
bool isPredicate () const
 Set if this is one of the operands that made up of the predicate operand that controls an isPredicable() instruction.
 
bool isOptionalDef () const
 Set if this operand is a optional def.
 
bool isBranchTarget () const
 Set if this operand is a branch target.
 
bool isGenericType () const
 
unsigned getGenericTypeIndex () const
 
bool isGenericImm () const
 
unsigned getGenericImmIndex () const
 

Public Attributes

int16_t RegClass
 This specifies the register class enumeration of the operand if the operand is a register.
 
uint8_t Flags
 These are flags from the MCOI::OperandFlags enum.
 
uint8_t OperandType
 Information about the type of the operand.
 
uint16_t Constraints
 Operand constraints (see OperandConstraint enum).
 

Detailed Description

This holds information about one operand of a machine instruction, indicating the register class for register operands, etc.

Definition at line 85 of file MCInstrDesc.h.

Member Function Documentation

◆ getGenericImmIndex()

unsigned llvm::MCOperandInfo::getGenericImmIndex ( ) const
inline

◆ getGenericTypeIndex()

unsigned llvm::MCOperandInfo::getGenericTypeIndex ( ) const
inline

◆ isBranchTarget()

bool llvm::MCOperandInfo::isBranchTarget ( ) const
inline

Set if this operand is a branch target.

Definition at line 116 of file MCInstrDesc.h.

References llvm::MCOI::BranchTarget, and Flags.

◆ isGenericImm()

bool llvm::MCOperandInfo::isGenericImm ( ) const
inline

◆ isGenericType()

bool llvm::MCOperandInfo::isGenericType ( ) const
inline

◆ isLookupPtrRegClass()

bool llvm::MCOperandInfo::isLookupPtrRegClass ( ) const
inline

Set if this operand is a pointer value and it requires a callback to look up its register class.

Definition at line 104 of file MCInstrDesc.h.

References Flags, and llvm::MCOI::LookupPtrRegClass.

Referenced by llvm::PPCInstrInfo::onlyFoldImmediate().

◆ isOptionalDef()

bool llvm::MCOperandInfo::isOptionalDef ( ) const
inline

Set if this operand is a optional def.

Definition at line 113 of file MCInstrDesc.h.

References Flags, and llvm::MCOI::OptionalDef.

◆ isPredicate()

bool llvm::MCOperandInfo::isPredicate ( ) const
inline

Set if this is one of the operands that made up of the predicate operand that controls an isPredicable() instruction.

Definition at line 110 of file MCInstrDesc.h.

References Flags, and llvm::MCOI::Predicate.

Member Data Documentation

◆ Constraints

uint16_t llvm::MCOperandInfo::Constraints

Operand constraints (see OperandConstraint enum).

Definition at line 100 of file MCInstrDesc.h.

Referenced by llvm::PPCInstrInfo::onlyFoldImmediate().

◆ Flags

uint8_t llvm::MCOperandInfo::Flags

These are flags from the MCOI::OperandFlags enum.

Definition at line 94 of file MCInstrDesc.h.

Referenced by isBranchTarget(), isLookupPtrRegClass(), isOptionalDef(), and isPredicate().

◆ OperandType

uint8_t llvm::MCOperandInfo::OperandType

◆ RegClass

int16_t llvm::MCOperandInfo::RegClass

This specifies the register class enumeration of the operand if the operand is a register.

If isLookupPtrRegClass is set, then this is an index that is passed to TargetRegisterInfo::getPointerRegClass(x) to get a dynamic register class.

Definition at line 91 of file MCInstrDesc.h.

Referenced by llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::SIInstrInfo::getOpSize(), llvm::SIInstrInfo::isImmOperandLegal(), llvm::SIInstrInfo::isLegalRegOperand(), llvm::SIInstrInfo::isOperandLegal(), llvm::PPCInstrInfo::onlyFoldImmediate(), and llvm::SystemZInstrInfo::verifyInstruction().


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