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
101 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16
104 // resulting in - R_MIPS_PAGE
107 // resulting in - R_MIPS_GOT_OFST
110 // resulting in - R_MIPS_GOT_DISP
113 // resulting in - R_MIPS_GOT_HIGHER
116 // resulting in - R_MIPS_HIGHEST
119 // resulting in - R_MIPS_GOT_HI16
122 // resulting in - R_MIPS_GOT_LO16
125 // resulting in - R_MIPS_CALL_HI16
126 fixup_Mips_CALL_HI16,
128 // resulting in - R_MIPS_CALL_LO16
129 fixup_Mips_CALL_LO16,
131 // resulting in - R_MIPS_PC18_S3
134 // resulting in - R_MIPS_PC19_S2
137 // resulting in - R_MIPS_PC21_S2
140 // resulting in - R_MIPS_PC26_S2
143 // resulting in - R_MIPS_PCHI16
146 // resulting in - R_MIPS_PCLO16
149 // resulting in - R_MICROMIPS_26_S1
150 fixup_MICROMIPS_26_S1,
152 // resulting in - R_MICROMIPS_HI16
153 fixup_MICROMIPS_HI16,
155 // resulting in - R_MICROMIPS_LO16
156 fixup_MICROMIPS_LO16,
158 // resulting in - R_MICROMIPS_GOT16
159 fixup_MICROMIPS_GOT16,
161 // resulting in - R_MICROMIPS_PC7_S1
162 fixup_MICROMIPS_PC7_S1,
164 // resulting in - R_MICROMIPS_PC10_S1
165 fixup_MICROMIPS_PC10_S1,
167 // resulting in - R_MICROMIPS_PC16_S1
168 fixup_MICROMIPS_PC16_S1,
170 // resulting in - R_MICROMIPS_PC26_S1
171 fixup_MICROMIPS_PC26_S1,
173 // resulting in - R_MICROMIPS_PC19_S2
174 fixup_MICROMIPS_PC19_S2,
176 // resulting in - R_MICROMIPS_PC18_S3
177 fixup_MICROMIPS_PC18_S3,
179 // resulting in - R_MICROMIPS_PC21_S1
180 fixup_MICROMIPS_PC21_S1,
182 // resulting in - R_MICROMIPS_CALL16
183 fixup_MICROMIPS_CALL16,
185 // resulting in - R_MICROMIPS_GOT_DISP
186 fixup_MICROMIPS_GOT_DISP,
188 // resulting in - R_MICROMIPS_GOT_PAGE
189 fixup_MICROMIPS_GOT_PAGE,
191 // resulting in - R_MICROMIPS_GOT_OFST
192 fixup_MICROMIPS_GOT_OFST,
194 // resulting in - R_MICROMIPS_TLS_GD
195 fixup_MICROMIPS_TLS_GD,
197 // resulting in - R_MICROMIPS_TLS_LDM
198 fixup_MICROMIPS_TLS_LDM,
200 // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
201 fixup_MICROMIPS_TLS_DTPREL_HI16,
203 // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
204 fixup_MICROMIPS_TLS_DTPREL_LO16,
206 // resulting in - R_MICROMIPS_TLS_GOTTPREL.
207 fixup_MICROMIPS_GOTTPREL,
209 // resulting in - R_MICROMIPS_TLS_TPREL_HI16
210 fixup_MICROMIPS_TLS_TPREL_HI16,
212 // resulting in - R_MICROMIPS_TLS_TPREL_LO16
213 fixup_MICROMIPS_TLS_TPREL_LO16,
215 // resulting in - R_MIPS_SUB/R_MICROMIPS_SUB
221 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind