1 | //===-- HexagonFixupKinds.h - Hexagon Specific Fixup Entries --------------===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #ifndef LLVM_HEXAGON_HEXAGONFIXUPKINDS_H |
10 | #define LLVM_HEXAGON_HEXAGONFIXUPKINDS_H |
11 | |
12 | #include "llvm/MC/MCFixup.h" |
13 | |
14 | namespace llvm { |
15 | namespace Hexagon { |
16 | enum Fixups { |
17 | // Branch fixups for R_HEX_B{22,15,7}_PCREL. |
18 | fixup_Hexagon_B22_PCREL = FirstTargetFixupKind, |
19 | fixup_Hexagon_B15_PCREL, |
20 | fixup_Hexagon_B7_PCREL, |
21 | fixup_Hexagon_LO16, |
22 | fixup_Hexagon_HI16, |
23 | fixup_Hexagon_32, |
24 | fixup_Hexagon_16, |
25 | fixup_Hexagon_8, |
26 | fixup_Hexagon_GPREL16_0, |
27 | fixup_Hexagon_GPREL16_1, |
28 | fixup_Hexagon_GPREL16_2, |
29 | fixup_Hexagon_GPREL16_3, |
30 | fixup_Hexagon_HL16, |
31 | fixup_Hexagon_B13_PCREL, |
32 | fixup_Hexagon_B9_PCREL, |
33 | fixup_Hexagon_B32_PCREL_X, |
34 | fixup_Hexagon_32_6_X, |
35 | fixup_Hexagon_B22_PCREL_X, |
36 | fixup_Hexagon_B15_PCREL_X, |
37 | fixup_Hexagon_B13_PCREL_X, |
38 | fixup_Hexagon_B9_PCREL_X, |
39 | fixup_Hexagon_B7_PCREL_X, |
40 | fixup_Hexagon_16_X, |
41 | fixup_Hexagon_12_X, |
42 | fixup_Hexagon_11_X, |
43 | fixup_Hexagon_10_X, |
44 | fixup_Hexagon_9_X, |
45 | fixup_Hexagon_8_X, |
46 | fixup_Hexagon_7_X, |
47 | fixup_Hexagon_6_X, |
48 | fixup_Hexagon_32_PCREL, |
49 | fixup_Hexagon_COPY, |
50 | fixup_Hexagon_GLOB_DAT, |
51 | fixup_Hexagon_JMP_SLOT, |
52 | fixup_Hexagon_RELATIVE, |
53 | fixup_Hexagon_PLT_B22_PCREL, |
54 | fixup_Hexagon_GOTREL_LO16, |
55 | fixup_Hexagon_GOTREL_HI16, |
56 | fixup_Hexagon_GOTREL_32, |
57 | fixup_Hexagon_GOT_LO16, |
58 | fixup_Hexagon_GOT_HI16, |
59 | fixup_Hexagon_GOT_32, |
60 | fixup_Hexagon_GOT_16, |
61 | fixup_Hexagon_DTPMOD_32, |
62 | fixup_Hexagon_DTPREL_LO16, |
63 | fixup_Hexagon_DTPREL_HI16, |
64 | fixup_Hexagon_DTPREL_32, |
65 | fixup_Hexagon_DTPREL_16, |
66 | fixup_Hexagon_GD_PLT_B22_PCREL, |
67 | fixup_Hexagon_LD_PLT_B22_PCREL, |
68 | fixup_Hexagon_GD_GOT_LO16, |
69 | fixup_Hexagon_GD_GOT_HI16, |
70 | fixup_Hexagon_GD_GOT_32, |
71 | fixup_Hexagon_GD_GOT_16, |
72 | fixup_Hexagon_LD_GOT_LO16, |
73 | fixup_Hexagon_LD_GOT_HI16, |
74 | fixup_Hexagon_LD_GOT_32, |
75 | fixup_Hexagon_LD_GOT_16, |
76 | fixup_Hexagon_IE_LO16, |
77 | fixup_Hexagon_IE_HI16, |
78 | fixup_Hexagon_IE_32, |
79 | fixup_Hexagon_IE_16, |
80 | fixup_Hexagon_IE_GOT_LO16, |
81 | fixup_Hexagon_IE_GOT_HI16, |
82 | fixup_Hexagon_IE_GOT_32, |
83 | fixup_Hexagon_IE_GOT_16, |
84 | fixup_Hexagon_TPREL_LO16, |
85 | fixup_Hexagon_TPREL_HI16, |
86 | fixup_Hexagon_TPREL_32, |
87 | fixup_Hexagon_TPREL_16, |
88 | fixup_Hexagon_6_PCREL_X, |
89 | fixup_Hexagon_GOTREL_32_6_X, |
90 | fixup_Hexagon_GOTREL_16_X, |
91 | fixup_Hexagon_GOTREL_11_X, |
92 | fixup_Hexagon_GOT_32_6_X, |
93 | fixup_Hexagon_GOT_16_X, |
94 | fixup_Hexagon_GOT_11_X, |
95 | fixup_Hexagon_DTPREL_32_6_X, |
96 | fixup_Hexagon_DTPREL_16_X, |
97 | fixup_Hexagon_DTPREL_11_X, |
98 | fixup_Hexagon_GD_GOT_32_6_X, |
99 | fixup_Hexagon_GD_GOT_16_X, |
100 | fixup_Hexagon_GD_GOT_11_X, |
101 | fixup_Hexagon_LD_GOT_32_6_X, |
102 | fixup_Hexagon_LD_GOT_16_X, |
103 | fixup_Hexagon_LD_GOT_11_X, |
104 | fixup_Hexagon_IE_32_6_X, |
105 | fixup_Hexagon_IE_16_X, |
106 | fixup_Hexagon_IE_GOT_32_6_X, |
107 | fixup_Hexagon_IE_GOT_16_X, |
108 | fixup_Hexagon_IE_GOT_11_X, |
109 | fixup_Hexagon_TPREL_32_6_X, |
110 | fixup_Hexagon_TPREL_16_X, |
111 | fixup_Hexagon_TPREL_11_X, |
112 | fixup_Hexagon_23_REG, |
113 | fixup_Hexagon_27_REG, |
114 | fixup_Hexagon_GD_PLT_B22_PCREL_X, |
115 | fixup_Hexagon_GD_PLT_B32_PCREL_X, |
116 | fixup_Hexagon_LD_PLT_B22_PCREL_X, |
117 | fixup_Hexagon_LD_PLT_B32_PCREL_X, |
118 | |
119 | LastTargetFixupKind, |
120 | NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind |
121 | }; |
122 | enum FixupBitmaps : unsigned { |
123 | Word8 = 0xff, |
124 | Word16 = 0xffff, |
125 | Word32 = 0xffffffff, |
126 | Word32_LO = 0x00c03fff, |
127 | Word32_HL = 0x0, // Not Implemented |
128 | Word32_GP = 0x0, // Not Implemented |
129 | Word32_B7 = 0x00001f18, |
130 | Word32_B9 = 0x003000fe, |
131 | Word32_B13 = 0x00202ffe, |
132 | Word32_B15 = 0x00df20fe, |
133 | Word32_B22 = 0x01ff3ffe, |
134 | Word32_R6 = 0x000007e0, |
135 | Word32_U6 = 0x0, // Not Implemented |
136 | Word32_U16 = 0x0, // Not Implemented |
137 | Word32_X26 = 0x0fff3fff |
138 | }; |
139 | } // namespace Hexagon |
140 | } // namespace llvm |
141 | |
142 | #endif // LLVM_HEXAGON_HEXAGONFIXUPKINDS_H |
143 | |