MipsFixupKinds.h revision cd81d94322a39503e4a3e87b6ee03d4fcb3465fb
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_MIPS_MIPSFIXUPKINDS_H
11#define LLVM_MIPS_MIPSFIXUPKINDS_H
12
13#include "llvm/MC/MCFixup.h"
14
15namespace llvm {
16namespace 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 save order of
22  // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds]
23  // in MipsAsmBackend.cpp.
24  //
25  enum Fixups {
26    // Branch fixups resulting in R_MIPS_16.
27    fixup_Mips_16 = FirstTargetFixupKind,
28
29    // Pure 32 bit data fixup resulting in - R_MIPS_32.
30    fixup_Mips_32,
31
32    // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32.
33    fixup_Mips_REL32,
34
35    // Jump 26 bit fixup resulting in - R_MIPS_26.
36    fixup_Mips_26,
37
38    // Pure upper 16 bit fixup resulting in - R_MIPS_HI16.
39    fixup_Mips_HI16,
40
41    // Pure lower 16 bit fixup resulting in - R_MIPS_LO16.
42    fixup_Mips_LO16,
43
44    // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16.
45    fixup_Mips_GPREL16,
46
47    // 16 bit literal fixup resulting in - R_MIPS_LITERAL.
48    fixup_Mips_LITERAL,
49
50    // Global symbol fixup resulting in - R_MIPS_GOT16.
51    fixup_Mips_GOT_Global,
52
53    // Local symbol fixup resulting in - R_MIPS_GOT16.
54    fixup_Mips_GOT_Local,
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    fixup_Mips_GPOFF_HI,
100
101    // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16
102    fixup_Mips_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_GOT_HIGHER
114    fixup_Mips_HIGHER,
115
116    // resulting in - R_MIPS_HIGHEST
117    fixup_Mips_HIGHEST,
118
119    // resulting in - R_MIPS_GOT_HI16
120    fixup_Mips_GOT_HI16,
121
122    // resulting in - R_MIPS_GOT_LO16
123    fixup_Mips_GOT_LO16,
124
125    // resulting in - R_MIPS_CALL_HI16
126    fixup_Mips_CALL_HI16,
127
128    // resulting in - R_MIPS_CALL_LO16
129    fixup_Mips_CALL_LO16,
130
131    // resulting in - R_MIPS_PC18_S3
132    fixup_MIPS_PC18_S3,
133
134    // resulting in - R_MIPS_PC19_S2
135    fixup_MIPS_PC19_S2,
136
137    // resulting in - R_MIPS_PC21_S2
138    fixup_MIPS_PC21_S2,
139
140    // resulting in - R_MIPS_PC26_S2
141    fixup_MIPS_PC26_S2,
142
143    // resulting in - R_MIPS_PCHI16
144    fixup_MIPS_PCHI16,
145
146    // resulting in - R_MIPS_PCLO16
147    fixup_MIPS_PCLO16,
148
149    // resulting in - R_MICROMIPS_26_S1
150    fixup_MICROMIPS_26_S1,
151
152    // resulting in - R_MICROMIPS_HI16
153    fixup_MICROMIPS_HI16,
154
155    // resulting in - R_MICROMIPS_LO16
156    fixup_MICROMIPS_LO16,
157
158    // resulting in - R_MICROMIPS_GOT16
159    fixup_MICROMIPS_GOT16,
160
161    // resulting in - R_MICROMIPS_PC16_S1
162    fixup_MICROMIPS_PC16_S1,
163
164    // resulting in - R_MICROMIPS_CALL16
165    fixup_MICROMIPS_CALL16,
166
167    // resulting in - R_MICROMIPS_GOT_DISP
168    fixup_MICROMIPS_GOT_DISP,
169
170    // resulting in - R_MICROMIPS_GOT_PAGE
171    fixup_MICROMIPS_GOT_PAGE,
172
173    // resulting in - R_MICROMIPS_GOT_OFST
174    fixup_MICROMIPS_GOT_OFST,
175
176    // resulting in - R_MICROMIPS_TLS_GD
177    fixup_MICROMIPS_TLS_GD,
178
179    // resulting in - R_MICROMIPS_TLS_LDM
180    fixup_MICROMIPS_TLS_LDM,
181
182    // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
183    fixup_MICROMIPS_TLS_DTPREL_HI16,
184
185    // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
186    fixup_MICROMIPS_TLS_DTPREL_LO16,
187
188    // resulting in - R_MICROMIPS_TLS_TPREL_HI16
189    fixup_MICROMIPS_TLS_TPREL_HI16,
190
191    // resulting in - R_MICROMIPS_TLS_TPREL_LO16
192    fixup_MICROMIPS_TLS_TPREL_LO16,
193
194    // Marker
195    LastTargetFixupKind,
196    NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
197  };
198} // namespace Mips
199} // namespace llvm
200
201
202#endif // LLVM_MIPS_MIPSFIXUPKINDS_H
203