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_LIB_TARGET_MIPS_MCTARGETDESC_MIPSFIXUPKINDS_H 11 #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_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 same order of 22 // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds] 23 // in MipsAsmBackend.cpp. 24 // 25 enum Fixups { 26 // Branch fixups resulting in R_MIPS_NONE. 27 fixup_Mips_NONE = FirstTargetFixupKind, 28 29 // Branch fixups resulting in R_MIPS_16. 30 fixup_Mips_16, 31 32 // Pure 32 bit data fixup resulting in - R_MIPS_32. 33 fixup_Mips_32, 34 35 // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32. 36 fixup_Mips_REL32, 37 38 // Jump 26 bit fixup resulting in - R_MIPS_26. 39 fixup_Mips_26, 40 41 // Pure upper 16 bit fixup resulting in - R_MIPS_HI16. 42 fixup_Mips_HI16, 43 44 // Pure lower 16 bit fixup resulting in - R_MIPS_LO16. 45 fixup_Mips_LO16, 46 47 // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16. 48 fixup_Mips_GPREL16, 49 50 // 16 bit literal fixup resulting in - R_MIPS_LITERAL. 51 fixup_Mips_LITERAL, 52 53 // Symbol fixup resulting in - R_MIPS_GOT16. 54 fixup_Mips_GOT, 55 56 // PC relative branch fixup resulting in - R_MIPS_PC16. 57 fixup_Mips_PC16, 58 59 // resulting in - R_MIPS_CALL16. 60 fixup_Mips_CALL16, 61 62 // resulting in - R_MIPS_GPREL32. 63 fixup_Mips_GPREL32, 64 65 // resulting in - R_MIPS_SHIFT5. 66 fixup_Mips_SHIFT5, 67 68 // resulting in - R_MIPS_SHIFT6. 69 fixup_Mips_SHIFT6, 70 71 // Pure 64 bit data fixup resulting in - R_MIPS_64. 72 fixup_Mips_64, 73 74 // resulting in - R_MIPS_TLS_GD. 75 fixup_Mips_TLSGD, 76 77 // resulting in - R_MIPS_TLS_GOTTPREL. 78 fixup_Mips_GOTTPREL, 79 80 // resulting in - R_MIPS_TLS_TPREL_HI16. 81 fixup_Mips_TPREL_HI, 82 83 // resulting in - R_MIPS_TLS_TPREL_LO16. 84 fixup_Mips_TPREL_LO, 85 86 // resulting in - R_MIPS_TLS_LDM. 87 fixup_Mips_TLSLDM, 88 89 // resulting in - R_MIPS_TLS_DTPREL_HI16. 90 fixup_Mips_DTPREL_HI, 91 92 // resulting in - R_MIPS_TLS_DTPREL_LO16. 93 fixup_Mips_DTPREL_LO, 94 95 // PC relative branch fixup resulting in - R_MIPS_PC16 96 fixup_Mips_Branch_PCRel, 97 98 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 99 // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_HI16 100 fixup_Mips_GPOFF_HI, 101 fixup_MICROMIPS_GPOFF_HI, 102 103 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 104 // R_MICROMIPS_GPREL16/R_MICROMIPS_SUB/R_MICROMIPS_LO16 105 fixup_Mips_GPOFF_LO, 106 fixup_MICROMIPS_GPOFF_LO, 107 108 // resulting in - R_MIPS_PAGE 109 fixup_Mips_GOT_PAGE, 110 111 // resulting in - R_MIPS_GOT_OFST 112 fixup_Mips_GOT_OFST, 113 114 // resulting in - R_MIPS_GOT_DISP 115 fixup_Mips_GOT_DISP, 116 117 // resulting in - R_MIPS_HIGHER/R_MICROMIPS_HIGHER 118 fixup_Mips_HIGHER, 119 fixup_MICROMIPS_HIGHER, 120 121 // resulting in - R_MIPS_HIGHEST/R_MICROMIPS_HIGHEST 122 fixup_Mips_HIGHEST, 123 fixup_MICROMIPS_HIGHEST, 124 125 // resulting in - R_MIPS_GOT_HI16 126 fixup_Mips_GOT_HI16, 127 128 // resulting in - R_MIPS_GOT_LO16 129 fixup_Mips_GOT_LO16, 130 131 // resulting in - R_MIPS_CALL_HI16 132 fixup_Mips_CALL_HI16, 133 134 // resulting in - R_MIPS_CALL_LO16 135 fixup_Mips_CALL_LO16, 136 137 // resulting in - R_MIPS_PC18_S3 138 fixup_MIPS_PC18_S3, 139 140 // resulting in - R_MIPS_PC19_S2 141 fixup_MIPS_PC19_S2, 142 143 // resulting in - R_MIPS_PC21_S2 144 fixup_MIPS_PC21_S2, 145 146 // resulting in - R_MIPS_PC26_S2 147 fixup_MIPS_PC26_S2, 148 149 // resulting in - R_MIPS_PCHI16 150 fixup_MIPS_PCHI16, 151 152 // resulting in - R_MIPS_PCLO16 153 fixup_MIPS_PCLO16, 154 155 // resulting in - R_MICROMIPS_26_S1 156 fixup_MICROMIPS_26_S1, 157 158 // resulting in - R_MICROMIPS_HI16 159 fixup_MICROMIPS_HI16, 160 161 // resulting in - R_MICROMIPS_LO16 162 fixup_MICROMIPS_LO16, 163 164 // resulting in - R_MICROMIPS_GOT16 165 fixup_MICROMIPS_GOT16, 166 167 // resulting in - R_MICROMIPS_PC7_S1 168 fixup_MICROMIPS_PC7_S1, 169 170 // resulting in - R_MICROMIPS_PC10_S1 171 fixup_MICROMIPS_PC10_S1, 172 173 // resulting in - R_MICROMIPS_PC16_S1 174 fixup_MICROMIPS_PC16_S1, 175 176 // resulting in - R_MICROMIPS_PC26_S1 177 fixup_MICROMIPS_PC26_S1, 178 179 // resulting in - R_MICROMIPS_PC19_S2 180 fixup_MICROMIPS_PC19_S2, 181 182 // resulting in - R_MICROMIPS_PC18_S3 183 fixup_MICROMIPS_PC18_S3, 184 185 // resulting in - R_MICROMIPS_PC21_S1 186 fixup_MICROMIPS_PC21_S1, 187 188 // resulting in - R_MICROMIPS_CALL16 189 fixup_MICROMIPS_CALL16, 190 191 // resulting in - R_MICROMIPS_GOT_DISP 192 fixup_MICROMIPS_GOT_DISP, 193 194 // resulting in - R_MICROMIPS_GOT_PAGE 195 fixup_MICROMIPS_GOT_PAGE, 196 197 // resulting in - R_MICROMIPS_GOT_OFST 198 fixup_MICROMIPS_GOT_OFST, 199 200 // resulting in - R_MICROMIPS_TLS_GD 201 fixup_MICROMIPS_TLS_GD, 202 203 // resulting in - R_MICROMIPS_TLS_LDM 204 fixup_MICROMIPS_TLS_LDM, 205 206 // resulting in - R_MICROMIPS_TLS_DTPREL_HI16 207 fixup_MICROMIPS_TLS_DTPREL_HI16, 208 209 // resulting in - R_MICROMIPS_TLS_DTPREL_LO16 210 fixup_MICROMIPS_TLS_DTPREL_LO16, 211 212 // resulting in - R_MICROMIPS_TLS_GOTTPREL. 213 fixup_MICROMIPS_GOTTPREL, 214 215 // resulting in - R_MICROMIPS_TLS_TPREL_HI16 216 fixup_MICROMIPS_TLS_TPREL_HI16, 217 218 // resulting in - R_MICROMIPS_TLS_TPREL_LO16 219 fixup_MICROMIPS_TLS_TPREL_LO16, 220 221 // resulting in - R_MIPS_SUB/R_MICROMIPS_SUB 222 fixup_Mips_SUB, 223 fixup_MICROMIPS_SUB, 224 225 // Marker 226 LastTargetFixupKind, 227 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 228 }; 229 } // namespace Mips 230 } // namespace llvm 231 232 233 #endif 234