LLVM  10.0.0svn
Enumerations
llvm::AArch64II Namespace Reference

Enumerations

enum  TOF {
  MO_NO_FLAG, MO_FRAGMENT = 0x7, MO_PAGE = 1, MO_PAGEOFF = 2,
  MO_G3 = 3, MO_G2 = 4, MO_G1 = 5, MO_G0 = 6,
  MO_HI12 = 7, MO_COFFSTUB = 0x8, MO_GOT = 0x10, MO_NC = 0x20,
  MO_TLS = 0x40, MO_DLLIMPORT = 0x80, MO_S = 0x100, MO_PREL = 0x200,
  MO_TAGGED = 0x400
}
 Target Operand Flag enum. More...
 

Enumeration Type Documentation

◆ TOF

Target Operand Flag enum.

Enumerator
MO_NO_FLAG 
MO_FRAGMENT 
MO_PAGE 

MO_PAGE - A symbol operand with this flag represents the pc-relative offset of the 4K page containing the symbol.

This is used with the ADRP instruction.

MO_PAGEOFF 

MO_PAGEOFF - A symbol operand with this flag represents the offset of that symbol within a 4K page.

This offset is added to the page address to produce the complete address.

MO_G3 

MO_G3 - A symbol operand with this flag (granule 3) represents the high 16-bits of a 64-bit address, used in a MOVZ or MOVK instruction.

MO_G2 

MO_G2 - A symbol operand with this flag (granule 2) represents the bits 32-47 of a 64-bit address, used in a MOVZ or MOVK instruction.

MO_G1 

MO_G1 - A symbol operand with this flag (granule 1) represents the bits 16-31 of a 64-bit address, used in a MOVZ or MOVK instruction.

MO_G0 

MO_G0 - A symbol operand with this flag (granule 0) represents the bits 0-15 of a 64-bit address, used in a MOVZ or MOVK instruction.

MO_HI12 

MO_HI12 - This flag indicates that a symbol operand represents the bits 13-24 of a 64-bit address, used in a arithmetic immediate-shifted-left- by-12-bits instruction.

MO_COFFSTUB 

MO_COFFSTUB - On a symbol operand "FOO", this indicates that the reference is actually to the ".refptrp.FOO" symbol.

This is used for stub symbols on windows.

MO_GOT 

MO_GOT - This flag indicates that a symbol operand represents the address of the GOT entry for the symbol, rather than the address of the symbol itself.

MO_NC 

MO_NC - Indicates whether the linker is expected to check the symbol reference for overflow.

For example in an ADRP/ADD pair of relocations the ADRP usually does check, but not the ADD.

MO_TLS 

MO_TLS - Indicates that the operand being accessed is some kind of thread-local symbol.

On Darwin, only one type of thread-local access exists (pre linker-relaxation), but on ELF the TLSModel used for the referee will affect interpretation.

MO_DLLIMPORT 

MO_DLLIMPORT - On a symbol operand, this represents that the reference to the symbol is for an import stub.

This is used for DLL import storage class indication on Windows.

MO_S 

MO_S - Indicates that the bits of the symbol operand represented by MO_G0 etc are signed.

MO_PREL 

MO_PREL - Indicates that the bits of the symbol operand represented by MO_G0 etc are PC relative.

MO_TAGGED 

MO_TAGGED - With MO_PAGE, indicates that the page includes a memory tag in bits 56-63.

Definition at line 562 of file AArch64BaseInfo.h.