LLVM 23.0.0git
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_CALL30 , 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_PCADD_HI , MO_PCADD_LO , MO_GOT_PCADD_HI , MO_GOT_PCADD_LO ,
  MO_IE_PCADD_HI , MO_IE_PCADD_LO , MO_LD_PCADD_HI , MO_LD_PCADD_LO ,
  MO_GD_PCADD_HI , MO_GD_PCADD_LO , MO_DESC_PCADD_HI , MO_DESC_PCADD_LO ,
  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_CALL30 
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_PCADD_HI 
MO_PCADD_LO 
MO_GOT_PCADD_HI 
MO_GOT_PCADD_LO 
MO_IE_PCADD_HI 
MO_IE_PCADD_LO 
MO_LD_PCADD_HI 
MO_LD_PCADD_LO 
MO_GD_PCADD_HI 
MO_GD_PCADD_LO 
MO_DESC_PCADD_HI 
MO_DESC_PCADD_LO 
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 102 of file LoongArchBaseInfo.h.

Function Documentation

◆ encodeFlags()

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

Definition at line 91 of file LoongArchBaseInfo.h.

References MO_RELAX.

◆ getDirectFlags()

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

◆ hasRelaxFlag()

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

Definition at line 96 of file LoongArchBaseInfo.h.

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

Referenced by lowerSymbolOperand().

◆ isAMCAS()

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

Definition at line 128 of file LoongArchBaseInfo.h.

References IsAMCASMask.

◆ isSubjectToAMORdConstraint()

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 123 of file LoongArchBaseInfo.h.

References IsSubjectToAMORdConstraintMask.