@@ -741,94 +741,94 @@ namespace AArch64PRCTX {
741
741
}
742
742
743
743
namespace 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
+ };
832
832
} // end namespace AArch64II
833
833
834
834
// ===----------------------------------------------------------------------===//
0 commit comments