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