@@ -741,94 +741,94 @@ namespace AArch64PRCTX {
741741}
742742
743743namespace AArch64II {
744- // / Target Operand Flag enum.
745- enum TOF {
746- // ===------------------------------------------------------------------===//
747- // AArch64 Specific MachineOperand flags.
748-
749- MO_NO_FLAG,
750-
751- MO_FRAGMENT = 0x7 ,
752-
753- // / MO_PAGE - A symbol operand with this flag represents the pc-relative
754- // / offset of the 4K page containing the symbol. This is used with the
755- // / ADRP instruction.
756- MO_PAGE = 1 ,
757-
758- // / MO_PAGEOFF - A symbol operand with this flag represents the offset of
759- // / that symbol within a 4K page. This offset is added to the page address
760- // / to produce the complete address.
761- MO_PAGEOFF = 2 ,
762-
763- // / MO_G3 - A symbol operand with this flag (granule 3) represents the high
764- // / 16-bits of a 64-bit address, used in a MOVZ or MOVK instruction
765- MO_G3 = 3 ,
766-
767- // / MO_G2 - A symbol operand with this flag (granule 2) represents the bits
768- // / 32-47 of a 64-bit address, used in a MOVZ or MOVK instruction
769- MO_G2 = 4 ,
770-
771- // / MO_G1 - A symbol operand with this flag (granule 1) represents the bits
772- // / 16-31 of a 64-bit address, used in a MOVZ or MOVK instruction
773- MO_G1 = 5 ,
774-
775- // / MO_G0 - A symbol operand with this flag (granule 0) represents the bits
776- // / 0-15 of a 64-bit address, used in a MOVZ or MOVK instruction
777- MO_G0 = 6 ,
778-
779- // / MO_HI12 - This flag indicates that a symbol operand represents the bits
780- // / 13-24 of a 64-bit address, used in a arithmetic immediate-shifted-left-
781- // / by-12-bits instruction.
782- MO_HI12 = 7 ,
783-
784- // / MO_COFFSTUB - On a symbol operand "FOO", this indicates that the
785- // / reference is actually to the ".refptr.FOO" symbol. This is used for
786- // / stub symbols on windows.
787- MO_COFFSTUB = 0x8 ,
788-
789- // / MO_GOT - This flag indicates that a symbol operand represents the
790- // / address of the GOT entry for the symbol, rather than the address of
791- // / the symbol itself.
792- MO_GOT = 0x10 ,
793-
794- // / MO_NC - Indicates whether the linker is expected to check the symbol
795- // / reference for overflow. For example in an ADRP/ADD pair of relocations
796- // / the ADRP usually does check, but not the ADD.
797- MO_NC = 0x20 ,
798-
799- // / MO_TLS - Indicates that the operand being accessed is some kind of
800- // / thread-local symbol. On Darwin, only one type of thread-local access
801- // / exists (pre linker-relaxation), but on ELF the TLSModel used for the
802- // / referee will affect interpretation.
803- MO_TLS = 0x40 ,
804-
805- // / MO_DLLIMPORT - On a symbol operand, this represents that the reference
806- // / to the symbol is for an import stub. This is used for DLL import
807- // / storage class indication on Windows.
808- MO_DLLIMPORT = 0x80 ,
809-
810- // / MO_S - Indicates that the bits of the symbol operand represented by
811- // / MO_G0 etc are signed.
812- MO_S = 0x100 ,
813-
814- // / MO_PREL - Indicates that the bits of the symbol operand represented by
815- // / MO_G0 etc are PC relative.
816- MO_PREL = 0x200 ,
817-
818- // / MO_TAGGED - With MO_PAGE, indicates that the page includes a memory tag
819- // / in bits 56-63.
820- // / On a FrameIndex operand, indicates that the underlying memory is tagged
821- // / with an unknown tag value (MTE); this needs to be lowered either to an
822- // / SP-relative load or store instruction (which do not check tags), or to
823- // / an LDG instruction to obtain the tag value.
824- MO_TAGGED = 0x400 ,
825-
826- // / MO_ARM64EC_CALLMANGLE - Operand refers to the Arm64EC-mangled version
827- // / of a symbol, not the original. For dllimport symbols, this means it
828- // / uses "__imp_aux". For other symbols, this means it uses the mangled
829- // / ("#" prefix for C) name.
830- MO_ARM64EC_CALLMANGLE = 0x800 ,
831- };
744+ // / Target Operand Flag enum.
745+ enum TOF {
746+ // ===------------------------------------------------------------------===//
747+ // AArch64 Specific MachineOperand flags.
748+
749+ MO_NO_FLAG,
750+
751+ MO_FRAGMENT = 0x7 ,
752+
753+ // / MO_PAGE - A symbol operand with this flag represents the pc-relative
754+ // / offset of the 4K page containing the symbol. This is used with the
755+ // / ADRP instruction.
756+ MO_PAGE = 1 ,
757+
758+ // / MO_PAGEOFF - A symbol operand with this flag represents the offset of
759+ // / that symbol within a 4K page. This offset is added to the page address
760+ // / to produce the complete address.
761+ MO_PAGEOFF = 2 ,
762+
763+ // / MO_G3 - A symbol operand with this flag (granule 3) represents the high
764+ // / 16-bits of a 64-bit address, used in a MOVZ or MOVK instruction
765+ MO_G3 = 3 ,
766+
767+ // / MO_G2 - A symbol operand with this flag (granule 2) represents the bits
768+ // / 32-47 of a 64-bit address, used in a MOVZ or MOVK instruction
769+ MO_G2 = 4 ,
770+
771+ // / MO_G1 - A symbol operand with this flag (granule 1) represents the bits
772+ // / 16-31 of a 64-bit address, used in a MOVZ or MOVK instruction
773+ MO_G1 = 5 ,
774+
775+ // / MO_G0 - A symbol operand with this flag (granule 0) represents the bits
776+ // / 0-15 of a 64-bit address, used in a MOVZ or MOVK instruction
777+ MO_G0 = 6 ,
778+
779+ // / MO_HI12 - This flag indicates that a symbol operand represents the bits
780+ // / 13-24 of a 64-bit address, used in a arithmetic immediate-shifted-left-
781+ // / by-12-bits instruction.
782+ MO_HI12 = 7 ,
783+
784+ // / MO_COFFSTUB - On a symbol operand "FOO", this indicates that the
785+ // / reference is actually to the ".refptr.FOO" symbol. This is used for
786+ // / stub symbols on windows.
787+ MO_COFFSTUB = 0x8 ,
788+
789+ // / MO_GOT - This flag indicates that a symbol operand represents the
790+ // / address of the GOT entry for the symbol, rather than the address of
791+ // / the symbol itself.
792+ MO_GOT = 0x10 ,
793+
794+ // / MO_NC - Indicates whether the linker is expected to check the symbol
795+ // / reference for overflow. For example in an ADRP/ADD pair of relocations
796+ // / the ADRP usually does check, but not the ADD.
797+ MO_NC = 0x20 ,
798+
799+ // / MO_TLS - Indicates that the operand being accessed is some kind of
800+ // / thread-local symbol. On Darwin, only one type of thread-local access
801+ // / exists (pre linker-relaxation), but on ELF the TLSModel used for the
802+ // / referee will affect interpretation.
803+ MO_TLS = 0x40 ,
804+
805+ // / MO_DLLIMPORT - On a symbol operand, this represents that the reference
806+ // / to the symbol is for an import stub. This is used for DLL import
807+ // / storage class indication on Windows.
808+ MO_DLLIMPORT = 0x80 ,
809+
810+ // / MO_S - Indicates that the bits of the symbol operand represented by
811+ // / MO_G0 etc are signed.
812+ MO_S = 0x100 ,
813+
814+ // / MO_PREL - Indicates that the bits of the symbol operand represented by
815+ // / MO_G0 etc are PC relative.
816+ MO_PREL = 0x200 ,
817+
818+ // / MO_TAGGED - With MO_PAGE, indicates that the page includes a memory tag
819+ // / in bits 56-63.
820+ // / On a FrameIndex operand, indicates that the underlying memory is tagged
821+ // / with an unknown tag value (MTE); this needs to be lowered either to an
822+ // / SP-relative load or store instruction (which do not check tags), or to
823+ // / an LDG instruction to obtain the tag value.
824+ MO_TAGGED = 0x400 ,
825+
826+ // / MO_ARM64EC_CALLMANGLE - Operand refers to the Arm64EC-mangled version
827+ // / of a symbol, not the original. For dllimport symbols, this means it
828+ // / uses "__imp_aux". For other symbols, this means it uses the mangled
829+ // / ("#" prefix for C) name.
830+ MO_ARM64EC_CALLMANGLE = 0x800 ,
831+ };
832832} // end namespace AArch64II
833833
834834// ===----------------------------------------------------------------------===//
0 commit comments