LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MipsFixupKinds.h
Go to the documentation of this file.
1 //===-- MipsFixupKinds.h - Mips Specific Fixup Entries ----------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_MIPS_MIPSFIXUPKINDS_H
11 #define LLVM_MIPS_MIPSFIXUPKINDS_H
12 
13 #include "llvm/MC/MCFixup.h"
14 
15 namespace llvm {
16 namespace Mips {
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.
20  //
21  // This table *must* be in the save order of
22  // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds]
23  // in MipsAsmBackend.cpp.
24  //
25  enum Fixups {
26  // Branch fixups resulting in R_MIPS_16.
28 
29  // Pure 32 bit data fixup resulting in - R_MIPS_32.
31 
32  // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32.
34 
35  // Jump 26 bit fixup resulting in - R_MIPS_26.
37 
38  // Pure upper 16 bit fixup resulting in - R_MIPS_HI16.
40 
41  // Pure lower 16 bit fixup resulting in - R_MIPS_LO16.
43 
44  // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16.
46 
47  // 16 bit literal fixup resulting in - R_MIPS_LITERAL.
49 
50  // Global symbol fixup resulting in - R_MIPS_GOT16.
52 
53  // Local symbol fixup resulting in - R_MIPS_GOT16.
55 
56  // PC relative branch fixup resulting in - R_MIPS_PC16.
58 
59  // resulting in - R_MIPS_CALL16.
61 
62  // resulting in - R_MIPS_GPREL32.
64 
65  // resulting in - R_MIPS_SHIFT5.
67 
68  // resulting in - R_MIPS_SHIFT6.
70 
71  // Pure 64 bit data fixup resulting in - R_MIPS_64.
73 
74  // resulting in - R_MIPS_TLS_GD.
76 
77  // resulting in - R_MIPS_TLS_GOTTPREL.
79 
80  // resulting in - R_MIPS_TLS_TPREL_HI16.
82 
83  // resulting in - R_MIPS_TLS_TPREL_LO16.
85 
86  // resulting in - R_MIPS_TLS_LDM.
88 
89  // resulting in - R_MIPS_TLS_DTPREL_HI16.
91 
92  // resulting in - R_MIPS_TLS_DTPREL_LO16.
94 
95  // PC relative branch fixup resulting in - R_MIPS_PC16
97 
98  // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16
100 
101  // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_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_GOT_HIGHER
115 
116  // resulting in - R_MIPS_HIGHEST
118 
119  // resulting in - R_MIPS_GOT_HI16
121 
122  // resulting in - R_MIPS_GOT_LO16
124 
125  // resulting in - R_MIPS_CALL_HI16
127 
128  // resulting in - R_MIPS_CALL_LO16
130 
131  // resulting in - R_MICROMIPS_26_S1
133 
134  // resulting in - R_MICROMIPS_HI16
136 
137  // resulting in - R_MICROMIPS_LO16
139 
140  // resulting in - R_MICROMIPS_GOT16
142 
143  // resulting in - R_MICROMIPS_PC16_S1
145 
146  // resulting in - R_MICROMIPS_CALL16
148 
149  // resulting in - R_MICROMIPS_GOT_DISP
151 
152  // resulting in - R_MICROMIPS_GOT_PAGE
154 
155  // resulting in - R_MICROMIPS_GOT_OFST
157 
158  // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
160 
161  // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
163 
164  // resulting in - R_MICROMIPS_TLS_TPREL_HI16
166 
167  // resulting in - R_MICROMIPS_TLS_TPREL_LO16
169 
170  // Marker
173  };
174 } // namespace Mips
175 } // namespace llvm
176 
177 
178 #endif // LLVM_MIPS_MIPSFIXUPKINDS_H