reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    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