1 | //===-- MipsFixupKinds.h - Mips Specific Fixup Entries ----------*- C++ -*-===// |
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_LIB_TARGET_MIPS_MCTARGETDESC_MIPSFIXUPKINDS_H |
10 | #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSFIXUPKINDS_H |
11 | |
12 | #include "llvm/MC/MCFixup.h" |
13 | |
14 | namespace llvm { |
15 | namespace Mips { |
16 | // Although most of the current fixup types reflect a unique relocation |
17 | // one can have multiple fixup types for a given relocation and thus need |
18 | // to be uniquely named. |
19 | // |
20 | // This table *must* be in the same order of |
21 | // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds] |
22 | // in MipsAsmBackend.cpp. |
23 | // |
24 | enum Fixups { |
25 | // Branch fixups resulting in R_MIPS_16. |
26 | fixup_Mips_16 = FirstTargetFixupKind, |
27 | |
28 | // Pure 32 bit data fixup resulting in - R_MIPS_32. |
29 | fixup_Mips_32, |
30 | |
31 | // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32. |
32 | fixup_Mips_REL32, |
33 | |
34 | // Jump 26 bit fixup resulting in - R_MIPS_26. |
35 | fixup_Mips_26, |
36 | |
37 | // Pure upper 16 bit fixup resulting in - R_MIPS_HI16. |
38 | fixup_Mips_HI16, |
39 | |
40 | // Pure lower 16 bit fixup resulting in - R_MIPS_LO16. |
41 | fixup_Mips_LO16, |
42 | |
43 | // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16. |
44 | fixup_Mips_GPREL16, |
45 | |
46 | // 16 bit literal fixup resulting in - R_MIPS_LITERAL. |
47 | fixup_Mips_LITERAL, |
48 | |
49 | // Symbol fixup resulting in - R_MIPS_GOT16. |
50 | fixup_Mips_GOT, |
51 | |
52 | // PC relative branch fixup resulting in - R_MIPS_PC16. |
53 | fixup_Mips_PC16, |
54 | |
55 | // resulting in - R_MIPS_CALL16. |
56 | fixup_Mips_CALL16, |
57 | |
58 | // resulting in - R_MIPS_GPREL32. |
59 | fixup_Mips_GPREL32, |
60 | |
61 | // resulting in - R_MIPS_SHIFT5. |
62 | fixup_Mips_SHIFT5, |
63 | |
64 | // resulting in - R_MIPS_SHIFT6. |
65 | fixup_Mips_SHIFT6, |
66 | |
67 | // Pure 64 bit data fixup resulting in - R_MIPS_64. |
68 | fixup_Mips_64, |
69 | |
70 | // resulting in - R_MIPS_TLS_GD. |
71 | fixup_Mips_TLSGD, |
72 | |
73 | // resulting in - R_MIPS_TLS_GOTTPREL. |
74 | fixup_Mips_GOTTPREL, |
75 | |
76 | // resulting in - R_MIPS_TLS_TPREL_HI16. |
77 | fixup_Mips_TPREL_HI, |
78 | |
79 | // resulting in - R_MIPS_TLS_TPREL_LO16. |
80 | fixup_Mips_TPREL_LO, |
81 | |
82 | // resulting in - R_MIPS_TLS_LDM. |
83 | fixup_Mips_TLSLDM, |
84 | |
85 | // resulting in - R_MIPS_TLS_DTPREL_HI16. |
86 | fixup_Mips_DTPREL_HI, |
87 | |
88 | // resulting in - R_MIPS_TLS_DTPREL_LO16. |
89 | fixup_Mips_DTPREL_LO, |
90 | |
91 | // PC relative branch fixup resulting in - R_MIPS_PC16 |
92 | fixup_Mips_Branch_PCRel, |
93 | |
94 | // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 |
95 | // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_HI16 |
96 | fixup_Mips_GPOFF_HI, |
97 | fixup_MICROMIPS_GPOFF_HI, |
98 | |
99 | // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 |
100 | // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_LO16 |
101 | fixup_Mips_GPOFF_LO, |
102 | fixup_MICROMIPS_GPOFF_LO, |
103 | |
104 | // resulting in - R_MIPS_PAGE |
105 | fixup_Mips_GOT_PAGE, |
106 | |
107 | // resulting in - R_MIPS_GOT_OFST |
108 | fixup_Mips_GOT_OFST, |
109 | |
110 | // resulting in - R_MIPS_GOT_DISP |
111 | fixup_Mips_GOT_DISP, |
112 | |
113 | // resulting in - R_MIPS_HIGHER/R_MICROMIPS_HIGHER |
114 | fixup_Mips_HIGHER, |
115 | fixup_MICROMIPS_HIGHER, |
116 | |
117 | // resulting in - R_MIPS_HIGHEST/R_MICROMIPS_HIGHEST |
118 | fixup_Mips_HIGHEST, |
119 | fixup_MICROMIPS_HIGHEST, |
120 | |
121 | // resulting in - R_MIPS_GOT_HI16 |
122 | fixup_Mips_GOT_HI16, |
123 | |
124 | // resulting in - R_MIPS_GOT_LO16 |
125 | fixup_Mips_GOT_LO16, |
126 | |
127 | // resulting in - R_MIPS_CALL_HI16 |
128 | fixup_Mips_CALL_HI16, |
129 | |
130 | // resulting in - R_MIPS_CALL_LO16 |
131 | fixup_Mips_CALL_LO16, |
132 | |
133 | // resulting in - R_MIPS_PC18_S3 |
134 | fixup_MIPS_PC18_S3, |
135 | |
136 | // resulting in - R_MIPS_PC19_S2 |
137 | fixup_MIPS_PC19_S2, |
138 | |
139 | // resulting in - R_MIPS_PC21_S2 |
140 | fixup_MIPS_PC21_S2, |
141 | |
142 | // resulting in - R_MIPS_PC26_S2 |
143 | fixup_MIPS_PC26_S2, |
144 | |
145 | // resulting in - R_MIPS_PCHI16 |
146 | fixup_MIPS_PCHI16, |
147 | |
148 | // resulting in - R_MIPS_PCLO16 |
149 | fixup_MIPS_PCLO16, |
150 | |
151 | // resulting in - R_MICROMIPS_26_S1 |
152 | fixup_MICROMIPS_26_S1, |
153 | |
154 | // resulting in - R_MICROMIPS_HI16 |
155 | fixup_MICROMIPS_HI16, |
156 | |
157 | // resulting in - R_MICROMIPS_LO16 |
158 | fixup_MICROMIPS_LO16, |
159 | |
160 | // resulting in - R_MICROMIPS_GOT16 |
161 | fixup_MICROMIPS_GOT16, |
162 | |
163 | // resulting in - R_MICROMIPS_PC7_S1 |
164 | fixup_MICROMIPS_PC7_S1, |
165 | |
166 | // resulting in - R_MICROMIPS_PC10_S1 |
167 | fixup_MICROMIPS_PC10_S1, |
168 | |
169 | // resulting in - R_MICROMIPS_PC16_S1 |
170 | fixup_MICROMIPS_PC16_S1, |
171 | |
172 | // resulting in - R_MICROMIPS_PC26_S1 |
173 | fixup_MICROMIPS_PC26_S1, |
174 | |
175 | // resulting in - R_MICROMIPS_PC19_S2 |
176 | fixup_MICROMIPS_PC19_S2, |
177 | |
178 | // resulting in - R_MICROMIPS_PC18_S3 |
179 | fixup_MICROMIPS_PC18_S3, |
180 | |
181 | // resulting in - R_MICROMIPS_PC21_S1 |
182 | fixup_MICROMIPS_PC21_S1, |
183 | |
184 | // resulting in - R_MICROMIPS_CALL16 |
185 | fixup_MICROMIPS_CALL16, |
186 | |
187 | // resulting in - R_MICROMIPS_GOT_DISP |
188 | fixup_MICROMIPS_GOT_DISP, |
189 | |
190 | // resulting in - R_MICROMIPS_GOT_PAGE |
191 | fixup_MICROMIPS_GOT_PAGE, |
192 | |
193 | // resulting in - R_MICROMIPS_GOT_OFST |
194 | fixup_MICROMIPS_GOT_OFST, |
195 | |
196 | // resulting in - R_MICROMIPS_TLS_GD |
197 | fixup_MICROMIPS_TLS_GD, |
198 | |
199 | // resulting in - R_MICROMIPS_TLS_LDM |
200 | fixup_MICROMIPS_TLS_LDM, |
201 | |
202 | // resulting in - R_MICROMIPS_TLS_DTPREL_HI16 |
203 | fixup_MICROMIPS_TLS_DTPREL_HI16, |
204 | |
205 | // resulting in - R_MICROMIPS_TLS_DTPREL_LO16 |
206 | fixup_MICROMIPS_TLS_DTPREL_LO16, |
207 | |
208 | // resulting in - R_MICROMIPS_TLS_GOTTPREL. |
209 | fixup_MICROMIPS_GOTTPREL, |
210 | |
211 | // resulting in - R_MICROMIPS_TLS_TPREL_HI16 |
212 | fixup_MICROMIPS_TLS_TPREL_HI16, |
213 | |
214 | // resulting in - R_MICROMIPS_TLS_TPREL_LO16 |
215 | fixup_MICROMIPS_TLS_TPREL_LO16, |
216 | |
217 | // resulting in - R_MIPS_SUB/R_MICROMIPS_SUB |
218 | fixup_Mips_SUB, |
219 | fixup_MICROMIPS_SUB, |
220 | |
221 | // resulting in - R_MIPS_JALR/R_MICROMIPS_JALR |
222 | fixup_Mips_JALR, |
223 | fixup_MICROMIPS_JALR, |
224 | |
225 | // Marker |
226 | LastTargetFixupKind, |
227 | NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind |
228 | }; |
229 | } // namespace Mips |
230 | } // namespace llvm |
231 | |
232 | |
233 | #endif |
234 | |