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 // Global symbol fixup resulting in - R_MIPS_GOT16. 54 fixup_Mips_GOT_Global, 55 56 // Local symbol fixup resulting in - R_MIPS_GOT16. 57 fixup_Mips_GOT_Local, 58 59 // PC relative branch fixup resulting in - R_MIPS_PC16. 60 fixup_Mips_PC16, 61 62 // resulting in - R_MIPS_CALL16. 63 fixup_Mips_CALL16, 64 65 // resulting in - R_MIPS_GPREL32. 66 fixup_Mips_GPREL32, 67 68 // resulting in - R_MIPS_SHIFT5. 69 fixup_Mips_SHIFT5, 70 71 // resulting in - R_MIPS_SHIFT6. 72 fixup_Mips_SHIFT6, 73 74 // Pure 64 bit data fixup resulting in - R_MIPS_64. 75 fixup_Mips_64, 76 77 // resulting in - R_MIPS_TLS_GD. 78 fixup_Mips_TLSGD, 79 80 // resulting in - R_MIPS_TLS_GOTTPREL. 81 fixup_Mips_GOTTPREL, 82 83 // resulting in - R_MIPS_TLS_TPREL_HI16. 84 fixup_Mips_TPREL_HI, 85 86 // resulting in - R_MIPS_TLS_TPREL_LO16. 87 fixup_Mips_TPREL_LO, 88 89 // resulting in - R_MIPS_TLS_LDM. 90 fixup_Mips_TLSLDM, 91 92 // resulting in - R_MIPS_TLS_DTPREL_HI16. 93 fixup_Mips_DTPREL_HI, 94 95 // resulting in - R_MIPS_TLS_DTPREL_LO16. 96 fixup_Mips_DTPREL_LO, 97 98 // PC relative branch fixup resulting in - R_MIPS_PC16 99 fixup_Mips_Branch_PCRel, 100 101 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 102 fixup_Mips_GPOFF_HI, 103 104 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 105 fixup_Mips_GPOFF_LO, 106 107 // resulting in - R_MIPS_PAGE 108 fixup_Mips_GOT_PAGE, 109 110 // resulting in - R_MIPS_GOT_OFST 111 fixup_Mips_GOT_OFST, 112 113 // resulting in - R_MIPS_GOT_DISP 114 fixup_Mips_GOT_DISP, 115 116 // resulting in - R_MIPS_GOT_HIGHER 117 fixup_Mips_HIGHER, 118 119 // resulting in - R_MIPS_HIGHEST 120 fixup_Mips_HIGHEST, 121 122 // resulting in - R_MIPS_GOT_HI16 123 fixup_Mips_GOT_HI16, 124 125 // resulting in - R_MIPS_GOT_LO16 126 fixup_Mips_GOT_LO16, 127 128 // resulting in - R_MIPS_CALL_HI16 129 fixup_Mips_CALL_HI16, 130 131 // resulting in - R_MIPS_CALL_LO16 132 fixup_Mips_CALL_LO16, 133 134 // resulting in - R_MIPS_PC18_S3 135 fixup_MIPS_PC18_S3, 136 137 // resulting in - R_MIPS_PC19_S2 138 fixup_MIPS_PC19_S2, 139 140 // resulting in - R_MIPS_PC21_S2 141 fixup_MIPS_PC21_S2, 142 143 // resulting in - R_MIPS_PC26_S2 144 fixup_MIPS_PC26_S2, 145 146 // resulting in - R_MIPS_PCHI16 147 fixup_MIPS_PCHI16, 148 149 // resulting in - R_MIPS_PCLO16 150 fixup_MIPS_PCLO16, 151 152 // resulting in - R_MICROMIPS_26_S1 153 fixup_MICROMIPS_26_S1, 154 155 // resulting in - R_MICROMIPS_HI16 156 fixup_MICROMIPS_HI16, 157 158 // resulting in - R_MICROMIPS_LO16 159 fixup_MICROMIPS_LO16, 160 161 // resulting in - R_MICROMIPS_GOT16 162 fixup_MICROMIPS_GOT16, 163 164 // resulting in - R_MICROMIPS_PC7_S1 165 fixup_MICROMIPS_PC7_S1, 166 167 // resulting in - R_MICROMIPS_PC10_S1 168 fixup_MICROMIPS_PC10_S1, 169 170 // resulting in - R_MICROMIPS_PC16_S1 171 fixup_MICROMIPS_PC16_S1, 172 173 // resulting in - R_MICROMIPS_CALL16 174 fixup_MICROMIPS_CALL16, 175 176 // resulting in - R_MICROMIPS_GOT_DISP 177 fixup_MICROMIPS_GOT_DISP, 178 179 // resulting in - R_MICROMIPS_GOT_PAGE 180 fixup_MICROMIPS_GOT_PAGE, 181 182 // resulting in - R_MICROMIPS_GOT_OFST 183 fixup_MICROMIPS_GOT_OFST, 184 185 // resulting in - R_MICROMIPS_TLS_GD 186 fixup_MICROMIPS_TLS_GD, 187 188 // resulting in - R_MICROMIPS_TLS_LDM 189 fixup_MICROMIPS_TLS_LDM, 190 191 // resulting in - R_MICROMIPS_TLS_DTPREL_HI16 192 fixup_MICROMIPS_TLS_DTPREL_HI16, 193 194 // resulting in - R_MICROMIPS_TLS_DTPREL_LO16 195 fixup_MICROMIPS_TLS_DTPREL_LO16, 196 197 // resulting in - R_MICROMIPS_TLS_TPREL_HI16 198 fixup_MICROMIPS_TLS_TPREL_HI16, 199 200 // resulting in - R_MICROMIPS_TLS_TPREL_LO16 201 fixup_MICROMIPS_TLS_TPREL_LO16, 202 203 // Marker 204 LastTargetFixupKind, 205 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 206 }; 207 } // namespace Mips 208 } // namespace llvm 209 210 211 #endif 212