1 //===-- MipsFixupKinds.h - Mips Specific Fixup Entries ----------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSFIXUPKINDS_H
11 #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSFIXUPKINDS_H
13 #include "llvm/MC/MCFixup.h"
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.
21 // This table *must* be in the same order of
22 // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds]
23 // in MipsAsmBackend.cpp.
26 // Branch fixups resulting in R_MIPS_NONE.
27 fixup_Mips_NONE = FirstTargetFixupKind,
29 // Branch fixups resulting in R_MIPS_16.
32 // Pure 32 bit data fixup resulting in - R_MIPS_32.
35 // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32.
38 // Jump 26 bit fixup resulting in - R_MIPS_26.
41 // Pure upper 16 bit fixup resulting in - R_MIPS_HI16.
44 // Pure lower 16 bit fixup resulting in - R_MIPS_LO16.
47 // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16.
50 // 16 bit literal fixup resulting in - R_MIPS_LITERAL.
53 // Symbol fixup resulting in - R_MIPS_GOT16.
56 // PC relative branch fixup resulting in - R_MIPS_PC16.
59 // resulting in - R_MIPS_CALL16.
62 // resulting in - R_MIPS_GPREL32.
65 // resulting in - R_MIPS_SHIFT5.
68 // resulting in - R_MIPS_SHIFT6.
71 // Pure 64 bit data fixup resulting in - R_MIPS_64.
74 // resulting in - R_MIPS_TLS_GD.
77 // resulting in - R_MIPS_TLS_GOTTPREL.
80 // resulting in - R_MIPS_TLS_TPREL_HI16.
83 // resulting in - R_MIPS_TLS_TPREL_LO16.
86 // resulting in - R_MIPS_TLS_LDM.
89 // resulting in - R_MIPS_TLS_DTPREL_HI16.
92 // resulting in - R_MIPS_TLS_DTPREL_LO16.
95 // PC relative branch fixup resulting in - R_MIPS_PC16
96 fixup_Mips_Branch_PCRel,
98 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16
99 // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_HI16
101 fixup_MICROMIPS_GPOFF_HI,
103 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16
104 // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_LO16
106 fixup_MICROMIPS_GPOFF_LO,
108 // resulting in - R_MIPS_PAGE
111 // resulting in - R_MIPS_GOT_OFST
114 // resulting in - R_MIPS_GOT_DISP
117 // resulting in - R_MIPS_HIGHER/R_MICROMIPS_HIGHER
119 fixup_MICROMIPS_HIGHER,
121 // resulting in - R_MIPS_HIGHEST/R_MICROMIPS_HIGHEST
123 fixup_MICROMIPS_HIGHEST,
125 // resulting in - R_MIPS_GOT_HI16
128 // resulting in - R_MIPS_GOT_LO16
131 // resulting in - R_MIPS_CALL_HI16
132 fixup_Mips_CALL_HI16,
134 // resulting in - R_MIPS_CALL_LO16
135 fixup_Mips_CALL_LO16,
137 // resulting in - R_MIPS_PC18_S3
140 // resulting in - R_MIPS_PC19_S2
143 // resulting in - R_MIPS_PC21_S2
146 // resulting in - R_MIPS_PC26_S2
149 // resulting in - R_MIPS_PCHI16
152 // resulting in - R_MIPS_PCLO16
155 // resulting in - R_MICROMIPS_26_S1
156 fixup_MICROMIPS_26_S1,
158 // resulting in - R_MICROMIPS_HI16
159 fixup_MICROMIPS_HI16,
161 // resulting in - R_MICROMIPS_LO16
162 fixup_MICROMIPS_LO16,
164 // resulting in - R_MICROMIPS_GOT16
165 fixup_MICROMIPS_GOT16,
167 // resulting in - R_MICROMIPS_PC7_S1
168 fixup_MICROMIPS_PC7_S1,
170 // resulting in - R_MICROMIPS_PC10_S1
171 fixup_MICROMIPS_PC10_S1,
173 // resulting in - R_MICROMIPS_PC16_S1
174 fixup_MICROMIPS_PC16_S1,
176 // resulting in - R_MICROMIPS_PC26_S1
177 fixup_MICROMIPS_PC26_S1,
179 // resulting in - R_MICROMIPS_PC19_S2
180 fixup_MICROMIPS_PC19_S2,
182 // resulting in - R_MICROMIPS_PC18_S3
183 fixup_MICROMIPS_PC18_S3,
185 // resulting in - R_MICROMIPS_PC21_S1
186 fixup_MICROMIPS_PC21_S1,
188 // resulting in - R_MICROMIPS_CALL16
189 fixup_MICROMIPS_CALL16,
191 // resulting in - R_MICROMIPS_GOT_DISP
192 fixup_MICROMIPS_GOT_DISP,
194 // resulting in - R_MICROMIPS_GOT_PAGE
195 fixup_MICROMIPS_GOT_PAGE,
197 // resulting in - R_MICROMIPS_GOT_OFST
198 fixup_MICROMIPS_GOT_OFST,
200 // resulting in - R_MICROMIPS_TLS_GD
201 fixup_MICROMIPS_TLS_GD,
203 // resulting in - R_MICROMIPS_TLS_LDM
204 fixup_MICROMIPS_TLS_LDM,
206 // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
207 fixup_MICROMIPS_TLS_DTPREL_HI16,
209 // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
210 fixup_MICROMIPS_TLS_DTPREL_LO16,
212 // resulting in - R_MICROMIPS_TLS_GOTTPREL.
213 fixup_MICROMIPS_GOTTPREL,
215 // resulting in - R_MICROMIPS_TLS_TPREL_HI16
216 fixup_MICROMIPS_TLS_TPREL_HI16,
218 // resulting in - R_MICROMIPS_TLS_TPREL_LO16
219 fixup_MICROMIPS_TLS_TPREL_LO16,
221 // resulting in - R_MIPS_SUB/R_MICROMIPS_SUB
225 // resulting in - R_MIPS_JALR/R_MICROMIPS_JALR
227 fixup_MICROMIPS_JALR,
231 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind