LLVM 20.0.0git
Enumerations | Functions
llvm::LoongArchII Namespace Reference

Enumerations

enum  {
  MO_None , MO_CALL , MO_CALL_PLT , MO_PCREL_HI ,
  MO_PCREL_LO , MO_PCREL64_LO , MO_PCREL64_HI , MO_GOT_PC_HI ,
  MO_GOT_PC_LO , MO_GOT_PC64_LO , MO_GOT_PC64_HI , MO_LE_HI ,
  MO_LE_LO , MO_LE64_LO , MO_LE64_HI , MO_IE_PC_HI ,
  MO_IE_PC_LO , MO_IE_PC64_LO , MO_IE_PC64_HI , MO_LD_PC_HI ,
  MO_GD_PC_HI , MO_CALL36 , MO_DESC_PC_HI , MO_DESC_PC_LO ,
  MO_DESC64_PC_HI , MO_DESC64_PC_LO , MO_DESC_LD , MO_DESC_CALL ,
  MO_LE_HI_R , MO_LE_ADD_R , MO_LE_LO_R , MO_DIRECT_FLAG_MASK = 0x3f ,
  MO_RELAX = 0x40
}
 
enum  { IsSubjectToAMORdConstraintShift = 0 , IsSubjectToAMORdConstraintMask = 1 << IsSubjectToAMORdConstraintShift , IsAMCASShift = IsSubjectToAMORdConstraintShift + 1 , IsAMCASMask = 1 << IsAMCASShift }
 

Functions

static unsigned getDirectFlags (const MachineOperand &MO)
 
static unsigned encodeFlags (unsigned Flags, bool Relax)
 
static bool hasRelaxFlag (const MachineOperand &MO)
 
static bool isSubjectToAMORdConstraint (uint64_t TSFlags)
 
static bool isAMCAS (uint64_t TSFlags)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MO_None 
MO_CALL 
MO_CALL_PLT 
MO_PCREL_HI 
MO_PCREL_LO 
MO_PCREL64_LO 
MO_PCREL64_HI 
MO_GOT_PC_HI 
MO_GOT_PC_LO 
MO_GOT_PC64_LO 
MO_GOT_PC64_HI 
MO_LE_HI 
MO_LE_LO 
MO_LE64_LO 
MO_LE64_HI 
MO_IE_PC_HI 
MO_IE_PC_LO 
MO_IE_PC64_LO 
MO_IE_PC64_HI 
MO_LD_PC_HI 
MO_GD_PC_HI 
MO_CALL36 
MO_DESC_PC_HI 
MO_DESC_PC_LO 
MO_DESC64_PC_HI 
MO_DESC64_PC_LO 
MO_DESC_LD 
MO_DESC_CALL 
MO_LE_HI_R 
MO_LE_ADD_R 
MO_LE_LO_R 
MO_DIRECT_FLAG_MASK 
MO_RELAX 

Definition at line 29 of file LoongArchBaseInfo.h.

◆ anonymous enum

anonymous enum
Enumerator
IsSubjectToAMORdConstraintShift 
IsSubjectToAMORdConstraintMask 
IsAMCASShift 
IsAMCASMask 

Definition at line 89 of file LoongArchBaseInfo.h.

Function Documentation

◆ encodeFlags()

static unsigned llvm::LoongArchII::encodeFlags ( unsigned  Flags,
bool  Relax 
)
inlinestatic

Definition at line 78 of file LoongArchBaseInfo.h.

References MO_RELAX.

◆ getDirectFlags()

static unsigned llvm::LoongArchII::getDirectFlags ( const MachineOperand MO)
inlinestatic

◆ hasRelaxFlag()

static bool llvm::LoongArchII::hasRelaxFlag ( const MachineOperand MO)
inlinestatic

Definition at line 83 of file LoongArchBaseInfo.h.

References llvm::MachineOperand::getTargetFlags(), and MO_RELAX.

Referenced by lowerSymbolOperand().

◆ isAMCAS()

static bool llvm::LoongArchII::isAMCAS ( uint64_t  TSFlags)
inlinestatic
Returns
true if this instruction belongs to the AMCAS family.

Definition at line 115 of file LoongArchBaseInfo.h.

References IsAMCASMask.

◆ isSubjectToAMORdConstraint()

static bool llvm::LoongArchII::isSubjectToAMORdConstraint ( uint64_t  TSFlags)
inlinestatic
Returns
true if this instruction's rd is normally required to differ from rj and rk, in the way 3-register atomic memory operations behave.

Definition at line 110 of file LoongArchBaseInfo.h.

References IsSubjectToAMORdConstraintMask.