LLVM  14.0.0git
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
llvm::Mips::fixup_MICROMIPS_TLS_GD
@ fixup_MICROMIPS_TLS_GD
Definition: MipsFixupKinds.h:197
llvm::Mips::fixup_MIPS_PC18_S3
@ fixup_MIPS_PC18_S3
Definition: MipsFixupKinds.h:134
llvm::Mips::fixup_MICROMIPS_LO16
@ fixup_MICROMIPS_LO16
Definition: MipsFixupKinds.h:158
llvm::Mips::fixup_MICROMIPS_GPOFF_HI
@ fixup_MICROMIPS_GPOFF_HI
Definition: MipsFixupKinds.h:97
llvm::Mips::fixup_Mips_GPREL16
@ fixup_Mips_GPREL16
Definition: MipsFixupKinds.h:44
llvm
This file implements support for optimizing divisions by a constant.
Definition: AllocatorList.h:23
llvm::Mips::fixup_MICROMIPS_26_S1
@ fixup_MICROMIPS_26_S1
Definition: MipsFixupKinds.h:152
llvm::Mips::fixup_Mips_26
@ fixup_Mips_26
Definition: MipsFixupKinds.h:35
llvm::Mips::fixup_Mips_LO16
@ fixup_Mips_LO16
Definition: MipsFixupKinds.h:41
llvm::Mips::fixup_MICROMIPS_JALR
@ fixup_MICROMIPS_JALR
Definition: MipsFixupKinds.h:223
llvm::Mips::fixup_MIPS_PCHI16
@ fixup_MIPS_PCHI16
Definition: MipsFixupKinds.h:146
llvm::Mips::fixup_MICROMIPS_SUB
@ fixup_MICROMIPS_SUB
Definition: MipsFixupKinds.h:219
llvm::FirstTargetFixupKind
@ FirstTargetFixupKind
Definition: MCFixup.h:45
llvm::Mips::fixup_Mips_TPREL_LO
@ fixup_Mips_TPREL_LO
Definition: MipsFixupKinds.h:80
llvm::Mips::fixup_Mips_HI16
@ fixup_Mips_HI16
Definition: MipsFixupKinds.h:38
llvm::Mips::fixup_Mips_JALR
@ fixup_Mips_JALR
Definition: MipsFixupKinds.h:222
llvm::Mips::fixup_Mips_REL32
@ fixup_Mips_REL32
Definition: MipsFixupKinds.h:32
llvm::Mips::fixup_MICROMIPS_HIGHEST
@ fixup_MICROMIPS_HIGHEST
Definition: MipsFixupKinds.h:119
llvm::Mips::fixup_Mips_LITERAL
@ fixup_Mips_LITERAL
Definition: MipsFixupKinds.h:47
llvm::Mips::fixup_MIPS_PC19_S2
@ fixup_MIPS_PC19_S2
Definition: MipsFixupKinds.h:137
llvm::Mips::fixup_Mips_GOTTPREL
@ fixup_Mips_GOTTPREL
Definition: MipsFixupKinds.h:74
llvm::Mips::fixup_Mips_GOT_HI16
@ fixup_Mips_GOT_HI16
Definition: MipsFixupKinds.h:122
llvm::Mips::fixup_Mips_GPREL32
@ fixup_Mips_GPREL32
Definition: MipsFixupKinds.h:59
llvm::Mips::fixup_MICROMIPS_PC21_S1
@ fixup_MICROMIPS_PC21_S1
Definition: MipsFixupKinds.h:182
llvm::Mips::fixup_MICROMIPS_PC19_S2
@ fixup_MICROMIPS_PC19_S2
Definition: MipsFixupKinds.h:176
llvm::Mips::fixup_MICROMIPS_TLS_DTPREL_LO16
@ fixup_MICROMIPS_TLS_DTPREL_LO16
Definition: MipsFixupKinds.h:206
llvm::Mips::fixup_Mips_DTPREL_HI
@ fixup_Mips_DTPREL_HI
Definition: MipsFixupKinds.h:86
llvm::Mips::fixup_Mips_CALL_LO16
@ fixup_Mips_CALL_LO16
Definition: MipsFixupKinds.h:131
llvm::Mips::Fixups
Fixups
Definition: MipsFixupKinds.h:24
llvm::Mips::fixup_MICROMIPS_HI16
@ fixup_MICROMIPS_HI16
Definition: MipsFixupKinds.h:155
llvm::Mips::fixup_MICROMIPS_TLS_LDM
@ fixup_MICROMIPS_TLS_LDM
Definition: MipsFixupKinds.h:200
llvm::Mips::fixup_Mips_GOT_OFST
@ fixup_Mips_GOT_OFST
Definition: MipsFixupKinds.h:108
llvm::Mips::fixup_Mips_TLSLDM
@ fixup_Mips_TLSLDM
Definition: MipsFixupKinds.h:83
llvm::Mips::fixup_Mips_SHIFT5
@ fixup_Mips_SHIFT5
Definition: MipsFixupKinds.h:62
llvm::Mips::fixup_MICROMIPS_GOT_OFST
@ fixup_MICROMIPS_GOT_OFST
Definition: MipsFixupKinds.h:194
llvm::Mips::fixup_Mips_GOT_DISP
@ fixup_Mips_GOT_DISP
Definition: MipsFixupKinds.h:111
llvm::Mips::fixup_MICROMIPS_GOTTPREL
@ fixup_MICROMIPS_GOTTPREL
Definition: MipsFixupKinds.h:209
llvm::Mips::fixup_Mips_HIGHEST
@ fixup_Mips_HIGHEST
Definition: MipsFixupKinds.h:118
llvm::Mips::fixup_Mips_CALL16
@ fixup_Mips_CALL16
Definition: MipsFixupKinds.h:56
llvm::Mips::fixup_Mips_GOT
@ fixup_Mips_GOT
Definition: MipsFixupKinds.h:50
llvm::Mips::fixup_Mips_GPOFF_HI
@ fixup_Mips_GPOFF_HI
Definition: MipsFixupKinds.h:96
llvm::Mips::fixup_Mips_GOT_LO16
@ fixup_Mips_GOT_LO16
Definition: MipsFixupKinds.h:125
llvm::Mips::fixup_MICROMIPS_PC7_S1
@ fixup_MICROMIPS_PC7_S1
Definition: MipsFixupKinds.h:164
llvm::Mips::fixup_MIPS_PCLO16
@ fixup_MIPS_PCLO16
Definition: MipsFixupKinds.h:149
llvm::Mips::fixup_Mips_HIGHER
@ fixup_Mips_HIGHER
Definition: MipsFixupKinds.h:114
llvm::Mips::fixup_Mips_DTPREL_LO
@ fixup_Mips_DTPREL_LO
Definition: MipsFixupKinds.h:89
llvm::Mips::fixup_Mips_TLSGD
@ fixup_Mips_TLSGD
Definition: MipsFixupKinds.h:71
llvm::Mips::fixup_MIPS_PC26_S2
@ fixup_MIPS_PC26_S2
Definition: MipsFixupKinds.h:143
llvm::Mips::LastTargetFixupKind
@ LastTargetFixupKind
Definition: MipsFixupKinds.h:226
llvm::Mips::fixup_Mips_CALL_HI16
@ fixup_Mips_CALL_HI16
Definition: MipsFixupKinds.h:128
llvm::Mips::fixup_MICROMIPS_TLS_DTPREL_HI16
@ fixup_MICROMIPS_TLS_DTPREL_HI16
Definition: MipsFixupKinds.h:203
llvm::Mips::NumTargetFixupKinds
@ NumTargetFixupKinds
Definition: MipsFixupKinds.h:227
llvm::Mips::fixup_Mips_GPOFF_LO
@ fixup_Mips_GPOFF_LO
Definition: MipsFixupKinds.h:101
llvm::Mips::fixup_MICROMIPS_PC26_S1
@ fixup_MICROMIPS_PC26_S1
Definition: MipsFixupKinds.h:173
MCFixup.h
llvm::Mips::fixup_MICROMIPS_CALL16
@ fixup_MICROMIPS_CALL16
Definition: MipsFixupKinds.h:185
llvm::Mips::fixup_Mips_16
@ fixup_Mips_16
Definition: MipsFixupKinds.h:26
llvm::Mips::fixup_MICROMIPS_PC16_S1
@ fixup_MICROMIPS_PC16_S1
Definition: MipsFixupKinds.h:170
llvm::Mips::fixup_MICROMIPS_GOT_PAGE
@ fixup_MICROMIPS_GOT_PAGE
Definition: MipsFixupKinds.h:191
llvm::Mips::fixup_Mips_Branch_PCRel
@ fixup_Mips_Branch_PCRel
Definition: MipsFixupKinds.h:92
llvm::Mips::fixup_MICROMIPS_TLS_TPREL_LO16
@ fixup_MICROMIPS_TLS_TPREL_LO16
Definition: MipsFixupKinds.h:215
llvm::Mips::fixup_Mips_SUB
@ fixup_Mips_SUB
Definition: MipsFixupKinds.h:218
llvm::Mips::fixup_Mips_SHIFT6
@ fixup_Mips_SHIFT6
Definition: MipsFixupKinds.h:65
llvm::Mips::fixup_MICROMIPS_PC10_S1
@ fixup_MICROMIPS_PC10_S1
Definition: MipsFixupKinds.h:167
llvm::Mips::fixup_MIPS_PC21_S2
@ fixup_MIPS_PC21_S2
Definition: MipsFixupKinds.h:140
llvm::Mips::fixup_Mips_32
@ fixup_Mips_32
Definition: MipsFixupKinds.h:29
llvm::Mips::fixup_Mips_PC16
@ fixup_Mips_PC16
Definition: MipsFixupKinds.h:53
llvm::Mips::fixup_Mips_GOT_PAGE
@ fixup_Mips_GOT_PAGE
Definition: MipsFixupKinds.h:105
llvm::Mips::fixup_MICROMIPS_GOT_DISP
@ fixup_MICROMIPS_GOT_DISP
Definition: MipsFixupKinds.h:188
llvm::Mips::fixup_MICROMIPS_GPOFF_LO
@ fixup_MICROMIPS_GPOFF_LO
Definition: MipsFixupKinds.h:102
llvm::Mips::fixup_MICROMIPS_TLS_TPREL_HI16
@ fixup_MICROMIPS_TLS_TPREL_HI16
Definition: MipsFixupKinds.h:212
llvm::Mips::fixup_Mips_64
@ fixup_Mips_64
Definition: MipsFixupKinds.h:68
llvm::Mips::fixup_MICROMIPS_PC18_S3
@ fixup_MICROMIPS_PC18_S3
Definition: MipsFixupKinds.h:179
llvm::Mips::fixup_MICROMIPS_GOT16
@ fixup_MICROMIPS_GOT16
Definition: MipsFixupKinds.h:161
llvm::Mips::fixup_Mips_TPREL_HI
@ fixup_Mips_TPREL_HI
Definition: MipsFixupKinds.h:77
llvm::Mips::fixup_MICROMIPS_HIGHER
@ fixup_MICROMIPS_HIGHER
Definition: MipsFixupKinds.h:115