LLVM 20.0.0git
|
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 , MO_ARM64EC_CALLMANGLE = 0x800 } |
Target Operand Flag enum. More... | |
enum llvm::AArch64II::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 ".refptr.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. On a FrameIndex operand, indicates that the underlying memory is tagged with an unknown tag value (MTE); this needs to be lowered either to an SP-relative load or store instruction (which do not check tags), or to an LDG instruction to obtain the tag value. |
MO_ARM64EC_CALLMANGLE | MO_ARM64EC_CALLMANGLE - Operand refers to the Arm64EC-mangled version of a symbol, not the original. For dllimport symbols, this means it uses "__imp_aux". For other symbols, this means it uses the mangled ("#" prefix for C) name. |
Definition at line 725 of file AArch64BaseInfo.h.