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