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. 27 fixup_Mips_16 = FirstTargetFixupKind, 28 29 // Pure 32 bit data fixup resulting in - R_MIPS_32. 30 fixup_Mips_32, 31 32 // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32. 33 fixup_Mips_REL32, 34 35 // Jump 26 bit fixup resulting in - R_MIPS_26. 36 fixup_Mips_26, 37 38 // Pure upper 16 bit fixup resulting in - R_MIPS_HI16. 39 fixup_Mips_HI16, 40 41 // Pure lower 16 bit fixup resulting in - R_MIPS_LO16. 42 fixup_Mips_LO16, 43 44 // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16. 45 fixup_Mips_GPREL16, 46 47 // 16 bit literal fixup resulting in - R_MIPS_LITERAL. 48 fixup_Mips_LITERAL, 49 50 // Global symbol fixup resulting in - R_MIPS_GOT16. 51 fixup_Mips_GOT_Global, 52 53 // Local symbol fixup resulting in - R_MIPS_GOT16. 54 fixup_Mips_GOT_Local, 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 fixup_Mips_GPOFF_HI, 100 101 // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 102 fixup_Mips_GPOFF_LO, 103 104 // resulting in - R_MIPS_PAGE 105 fixup_Mips_GOT_PAGE, 106 107 // resulting in - R_MIPS_GOT_OFST 108 fixup_Mips_GOT_OFST, 109 110 // resulting in - R_MIPS_GOT_DISP 111 fixup_Mips_GOT_DISP, 112 113 // resulting in - R_MIPS_GOT_HIGHER 114 fixup_Mips_HIGHER, 115 116 // resulting in - R_MIPS_HIGHEST 117 fixup_Mips_HIGHEST, 118 119 // resulting in - R_MIPS_GOT_HI16 120 fixup_Mips_GOT_HI16, 121 122 // resulting in - R_MIPS_GOT_LO16 123 fixup_Mips_GOT_LO16, 124 125 // resulting in - R_MIPS_CALL_HI16 126 fixup_Mips_CALL_HI16, 127 128 // resulting in - R_MIPS_CALL_LO16 129 fixup_Mips_CALL_LO16, 130 131 // resulting in - R_MIPS_PC18_S3 132 fixup_MIPS_PC18_S3, 133 134 // resulting in - R_MIPS_PC19_S2 135 fixup_MIPS_PC19_S2, 136 137 // resulting in - R_MIPS_PC21_S2 138 fixup_MIPS_PC21_S2, 139 140 // resulting in - R_MIPS_PC26_S2 141 fixup_MIPS_PC26_S2, 142 143 // resulting in - R_MIPS_PCHI16 144 fixup_MIPS_PCHI16, 145 146 // resulting in - R_MIPS_PCLO16 147 fixup_MIPS_PCLO16, 148 149 // resulting in - R_MICROMIPS_26_S1 150 fixup_MICROMIPS_26_S1, 151 152 // resulting in - R_MICROMIPS_HI16 153 fixup_MICROMIPS_HI16, 154 155 // resulting in - R_MICROMIPS_LO16 156 fixup_MICROMIPS_LO16, 157 158 // resulting in - R_MICROMIPS_GOT16 159 fixup_MICROMIPS_GOT16, 160 161 // resulting in - R_MICROMIPS_PC16_S1 162 fixup_MICROMIPS_PC16_S1, 163 164 // resulting in - R_MICROMIPS_CALL16 165 fixup_MICROMIPS_CALL16, 166 167 // resulting in - R_MICROMIPS_GOT_DISP 168 fixup_MICROMIPS_GOT_DISP, 169 170 // resulting in - R_MICROMIPS_GOT_PAGE 171 fixup_MICROMIPS_GOT_PAGE, 172 173 // resulting in - R_MICROMIPS_GOT_OFST 174 fixup_MICROMIPS_GOT_OFST, 175 176 // resulting in - R_MICROMIPS_TLS_GD 177 fixup_MICROMIPS_TLS_GD, 178 179 // resulting in - R_MICROMIPS_TLS_LDM 180 fixup_MICROMIPS_TLS_LDM, 181 182 // resulting in - R_MICROMIPS_TLS_DTPREL_HI16 183 fixup_MICROMIPS_TLS_DTPREL_HI16, 184 185 // resulting in - R_MICROMIPS_TLS_DTPREL_LO16 186 fixup_MICROMIPS_TLS_DTPREL_LO16, 187 188 // resulting in - R_MICROMIPS_TLS_TPREL_HI16 189 fixup_MICROMIPS_TLS_TPREL_HI16, 190 191 // resulting in - R_MICROMIPS_TLS_TPREL_LO16 192 fixup_MICROMIPS_TLS_TPREL_LO16, 193 194 // Marker 195 LastTargetFixupKind, 196 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 197 }; 198 } // namespace Mips 199 } // namespace llvm 200 201 202 #endif // LLVM_MIPS_MIPSFIXUPKINDS_H 203