[InstCombine] Signed saturation patterns
[llvm-core.git] / lib / Target / Mips / MCTargetDesc / MipsFixupKinds.h
blobb83d822bd8d03be88520218703e7bb95ab71e42c
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 //===----------------------------------------------------------------------===//
9 #ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSFIXUPKINDS_H
10 #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSFIXUPKINDS_H
12 #include "llvm/MC/MCFixup.h"
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.
20 // This table *must* be in the same order of
21 // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds]
22 // in MipsAsmBackend.cpp.
24 enum Fixups {
25 // Branch fixups resulting in R_MIPS_16.
26 fixup_Mips_16 = FirstTargetFixupKind,
28 // Pure 32 bit data fixup resulting in - R_MIPS_32.
29 fixup_Mips_32,
31 // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32.
32 fixup_Mips_REL32,
34 // Jump 26 bit fixup resulting in - R_MIPS_26.
35 fixup_Mips_26,
37 // Pure upper 16 bit fixup resulting in - R_MIPS_HI16.
38 fixup_Mips_HI16,
40 // Pure lower 16 bit fixup resulting in - R_MIPS_LO16.
41 fixup_Mips_LO16,
43 // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16.
44 fixup_Mips_GPREL16,
46 // 16 bit literal fixup resulting in - R_MIPS_LITERAL.
47 fixup_Mips_LITERAL,
49 // Symbol fixup resulting in - R_MIPS_GOT16.
50 fixup_Mips_GOT,
52 // PC relative branch fixup resulting in - R_MIPS_PC16.
53 fixup_Mips_PC16,
55 // resulting in - R_MIPS_CALL16.
56 fixup_Mips_CALL16,
58 // resulting in - R_MIPS_GPREL32.
59 fixup_Mips_GPREL32,
61 // resulting in - R_MIPS_SHIFT5.
62 fixup_Mips_SHIFT5,
64 // resulting in - R_MIPS_SHIFT6.
65 fixup_Mips_SHIFT6,
67 // Pure 64 bit data fixup resulting in - R_MIPS_64.
68 fixup_Mips_64,
70 // resulting in - R_MIPS_TLS_GD.
71 fixup_Mips_TLSGD,
73 // resulting in - R_MIPS_TLS_GOTTPREL.
74 fixup_Mips_GOTTPREL,
76 // resulting in - R_MIPS_TLS_TPREL_HI16.
77 fixup_Mips_TPREL_HI,
79 // resulting in - R_MIPS_TLS_TPREL_LO16.
80 fixup_Mips_TPREL_LO,
82 // resulting in - R_MIPS_TLS_LDM.
83 fixup_Mips_TLSLDM,
85 // resulting in - R_MIPS_TLS_DTPREL_HI16.
86 fixup_Mips_DTPREL_HI,
88 // resulting in - R_MIPS_TLS_DTPREL_LO16.
89 fixup_Mips_DTPREL_LO,
91 // PC relative branch fixup resulting in - R_MIPS_PC16
92 fixup_Mips_Branch_PCRel,
94 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16
95 // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_HI16
96 fixup_Mips_GPOFF_HI,
97 fixup_MICROMIPS_GPOFF_HI,
99 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16
100 // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_LO16
101 fixup_Mips_GPOFF_LO,
102 fixup_MICROMIPS_GPOFF_LO,
104 // resulting in - R_MIPS_PAGE
105 fixup_Mips_GOT_PAGE,
107 // resulting in - R_MIPS_GOT_OFST
108 fixup_Mips_GOT_OFST,
110 // resulting in - R_MIPS_GOT_DISP
111 fixup_Mips_GOT_DISP,
113 // resulting in - R_MIPS_HIGHER/R_MICROMIPS_HIGHER
114 fixup_Mips_HIGHER,
115 fixup_MICROMIPS_HIGHER,
117 // resulting in - R_MIPS_HIGHEST/R_MICROMIPS_HIGHEST
118 fixup_Mips_HIGHEST,
119 fixup_MICROMIPS_HIGHEST,
121 // resulting in - R_MIPS_GOT_HI16
122 fixup_Mips_GOT_HI16,
124 // resulting in - R_MIPS_GOT_LO16
125 fixup_Mips_GOT_LO16,
127 // resulting in - R_MIPS_CALL_HI16
128 fixup_Mips_CALL_HI16,
130 // resulting in - R_MIPS_CALL_LO16
131 fixup_Mips_CALL_LO16,
133 // resulting in - R_MIPS_PC18_S3
134 fixup_MIPS_PC18_S3,
136 // resulting in - R_MIPS_PC19_S2
137 fixup_MIPS_PC19_S2,
139 // resulting in - R_MIPS_PC21_S2
140 fixup_MIPS_PC21_S2,
142 // resulting in - R_MIPS_PC26_S2
143 fixup_MIPS_PC26_S2,
145 // resulting in - R_MIPS_PCHI16
146 fixup_MIPS_PCHI16,
148 // resulting in - R_MIPS_PCLO16
149 fixup_MIPS_PCLO16,
151 // resulting in - R_MICROMIPS_26_S1
152 fixup_MICROMIPS_26_S1,
154 // resulting in - R_MICROMIPS_HI16
155 fixup_MICROMIPS_HI16,
157 // resulting in - R_MICROMIPS_LO16
158 fixup_MICROMIPS_LO16,
160 // resulting in - R_MICROMIPS_GOT16
161 fixup_MICROMIPS_GOT16,
163 // resulting in - R_MICROMIPS_PC7_S1
164 fixup_MICROMIPS_PC7_S1,
166 // resulting in - R_MICROMIPS_PC10_S1
167 fixup_MICROMIPS_PC10_S1,
169 // resulting in - R_MICROMIPS_PC16_S1
170 fixup_MICROMIPS_PC16_S1,
172 // resulting in - R_MICROMIPS_PC26_S1
173 fixup_MICROMIPS_PC26_S1,
175 // resulting in - R_MICROMIPS_PC19_S2
176 fixup_MICROMIPS_PC19_S2,
178 // resulting in - R_MICROMIPS_PC18_S3
179 fixup_MICROMIPS_PC18_S3,
181 // resulting in - R_MICROMIPS_PC21_S1
182 fixup_MICROMIPS_PC21_S1,
184 // resulting in - R_MICROMIPS_CALL16
185 fixup_MICROMIPS_CALL16,
187 // resulting in - R_MICROMIPS_GOT_DISP
188 fixup_MICROMIPS_GOT_DISP,
190 // resulting in - R_MICROMIPS_GOT_PAGE
191 fixup_MICROMIPS_GOT_PAGE,
193 // resulting in - R_MICROMIPS_GOT_OFST
194 fixup_MICROMIPS_GOT_OFST,
196 // resulting in - R_MICROMIPS_TLS_GD
197 fixup_MICROMIPS_TLS_GD,
199 // resulting in - R_MICROMIPS_TLS_LDM
200 fixup_MICROMIPS_TLS_LDM,
202 // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
203 fixup_MICROMIPS_TLS_DTPREL_HI16,
205 // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
206 fixup_MICROMIPS_TLS_DTPREL_LO16,
208 // resulting in - R_MICROMIPS_TLS_GOTTPREL.
209 fixup_MICROMIPS_GOTTPREL,
211 // resulting in - R_MICROMIPS_TLS_TPREL_HI16
212 fixup_MICROMIPS_TLS_TPREL_HI16,
214 // resulting in - R_MICROMIPS_TLS_TPREL_LO16
215 fixup_MICROMIPS_TLS_TPREL_LO16,
217 // resulting in - R_MIPS_SUB/R_MICROMIPS_SUB
218 fixup_Mips_SUB,
219 fixup_MICROMIPS_SUB,
221 // resulting in - R_MIPS_JALR/R_MICROMIPS_JALR
222 fixup_Mips_JALR,
223 fixup_MICROMIPS_JALR,
225 // Marker
226 LastTargetFixupKind,
227 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
229 } // namespace Mips
230 } // namespace llvm
233 #endif