LLVM  10.0.0svn
MipsFixupKinds.h
Go to the documentation of this file.
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.
27 
28  // Pure 32 bit data fixup resulting in - R_MIPS_32.
30 
31  // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32.
33 
34  // Jump 26 bit fixup resulting in - R_MIPS_26.
36 
37  // Pure upper 16 bit fixup resulting in - R_MIPS_HI16.
39 
40  // Pure lower 16 bit fixup resulting in - R_MIPS_LO16.
42 
43  // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16.
45 
46  // 16 bit literal fixup resulting in - R_MIPS_LITERAL.
48 
49  // Symbol fixup resulting in - R_MIPS_GOT16.
51 
52  // PC relative branch fixup resulting in - R_MIPS_PC16.
54 
55  // resulting in - R_MIPS_CALL16.
57 
58  // resulting in - R_MIPS_GPREL32.
60 
61  // resulting in - R_MIPS_SHIFT5.
63 
64  // resulting in - R_MIPS_SHIFT6.
66 
67  // Pure 64 bit data fixup resulting in - R_MIPS_64.
69 
70  // resulting in - R_MIPS_TLS_GD.
72 
73  // resulting in - R_MIPS_TLS_GOTTPREL.
75 
76  // resulting in - R_MIPS_TLS_TPREL_HI16.
78 
79  // resulting in - R_MIPS_TLS_TPREL_LO16.
81 
82  // resulting in - R_MIPS_TLS_LDM.
84 
85  // resulting in - R_MIPS_TLS_DTPREL_HI16.
87 
88  // resulting in - R_MIPS_TLS_DTPREL_LO16.
90 
91  // PC relative branch fixup resulting in - R_MIPS_PC16
93 
94  // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16
95  // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_HI16
98 
99  // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16
100  // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_LO16
103 
104  // resulting in - R_MIPS_PAGE
106 
107  // resulting in - R_MIPS_GOT_OFST
109 
110  // resulting in - R_MIPS_GOT_DISP
112 
113  // resulting in - R_MIPS_HIGHER/R_MICROMIPS_HIGHER
116 
117  // resulting in - R_MIPS_HIGHEST/R_MICROMIPS_HIGHEST
120 
121  // resulting in - R_MIPS_GOT_HI16
123 
124  // resulting in - R_MIPS_GOT_LO16
126 
127  // resulting in - R_MIPS_CALL_HI16
129 
130  // resulting in - R_MIPS_CALL_LO16
132 
133  // resulting in - R_MIPS_PC18_S3
135 
136  // resulting in - R_MIPS_PC19_S2
138 
139  // resulting in - R_MIPS_PC21_S2
141 
142  // resulting in - R_MIPS_PC26_S2
144 
145  // resulting in - R_MIPS_PCHI16
147 
148  // resulting in - R_MIPS_PCLO16
150 
151  // resulting in - R_MICROMIPS_26_S1
153 
154  // resulting in - R_MICROMIPS_HI16
156 
157  // resulting in - R_MICROMIPS_LO16
159 
160  // resulting in - R_MICROMIPS_GOT16
162 
163  // resulting in - R_MICROMIPS_PC7_S1
165 
166  // resulting in - R_MICROMIPS_PC10_S1
168 
169  // resulting in - R_MICROMIPS_PC16_S1
171 
172  // resulting in - R_MICROMIPS_PC26_S1
174 
175  // resulting in - R_MICROMIPS_PC19_S2
177 
178  // resulting in - R_MICROMIPS_PC18_S3
180 
181  // resulting in - R_MICROMIPS_PC21_S1
183 
184  // resulting in - R_MICROMIPS_CALL16
186 
187  // resulting in - R_MICROMIPS_GOT_DISP
189 
190  // resulting in - R_MICROMIPS_GOT_PAGE
192 
193  // resulting in - R_MICROMIPS_GOT_OFST
195 
196  // resulting in - R_MICROMIPS_TLS_GD
198 
199  // resulting in - R_MICROMIPS_TLS_LDM
201 
202  // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
204 
205  // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
207 
208  // resulting in - R_MICROMIPS_TLS_GOTTPREL.
210 
211  // resulting in - R_MICROMIPS_TLS_TPREL_HI16
213 
214  // resulting in - R_MICROMIPS_TLS_TPREL_LO16
216 
217  // resulting in - R_MIPS_SUB/R_MICROMIPS_SUB
220 
221  // resulting in - R_MIPS_JALR/R_MICROMIPS_JALR
224 
225  // Marker
228  };
229 } // namespace Mips
230 } // namespace llvm
231 
232 
233 #endif
This class represents lattice values for constants.
Definition: AllocatorList.h:23