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_MIPS_MIPSFIXUPKINDS_H
11 #define LLVM_MIPS_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 save order of
22 // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds]
23 // in MipsAsmBackend.cpp.
26 // Branch fixups resulting in R_MIPS_16.
27 fixup_Mips_16 = FirstTargetFixupKind,
29 // Pure 32 bit data fixup resulting in - R_MIPS_32.
32 // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32.
35 // Jump 26 bit fixup resulting in - R_MIPS_26.
38 // Pure upper 16 bit fixup resulting in - R_MIPS_HI16.
41 // Pure lower 16 bit fixup resulting in - R_MIPS_LO16.
44 // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16.
47 // 16 bit literal fixup resulting in - R_MIPS_LITERAL.
50 // Global symbol fixup resulting in - R_MIPS_GOT16.
51 fixup_Mips_GOT_Global,
53 // Local 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_PC21_S2
134 // resulting in - R_MIPS_PC26_S2
137 // resulting in - R_MIPS_PCHI16
140 // resulting in - R_MIPS_PCLO16
143 // resulting in - R_MICROMIPS_26_S1
144 fixup_MICROMIPS_26_S1,
146 // resulting in - R_MICROMIPS_HI16
147 fixup_MICROMIPS_HI16,
149 // resulting in - R_MICROMIPS_LO16
150 fixup_MICROMIPS_LO16,
152 // resulting in - R_MICROMIPS_GOT16
153 fixup_MICROMIPS_GOT16,
155 // resulting in - R_MICROMIPS_PC16_S1
156 fixup_MICROMIPS_PC16_S1,
158 // resulting in - R_MICROMIPS_CALL16
159 fixup_MICROMIPS_CALL16,
161 // resulting in - R_MICROMIPS_GOT_DISP
162 fixup_MICROMIPS_GOT_DISP,
164 // resulting in - R_MICROMIPS_GOT_PAGE
165 fixup_MICROMIPS_GOT_PAGE,
167 // resulting in - R_MICROMIPS_GOT_OFST
168 fixup_MICROMIPS_GOT_OFST,
170 // resulting in - R_MICROMIPS_TLS_GD
171 fixup_MICROMIPS_TLS_GD,
173 // resulting in - R_MICROMIPS_TLS_LDM
174 fixup_MICROMIPS_TLS_LDM,
176 // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
177 fixup_MICROMIPS_TLS_DTPREL_HI16,
179 // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
180 fixup_MICROMIPS_TLS_DTPREL_LO16,
182 // resulting in - R_MICROMIPS_TLS_TPREL_HI16
183 fixup_MICROMIPS_TLS_TPREL_HI16,
185 // resulting in - R_MICROMIPS_TLS_TPREL_LO16
186 fixup_MICROMIPS_TLS_TPREL_LO16,
190 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
196 #endif // LLVM_MIPS_MIPSFIXUPKINDS_H