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