Home | History | Annotate | Download | only in MCTargetDesc
      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     // Symbol fixup resulting in - R_MIPS_GOT16.
     54     fixup_Mips_GOT,
     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_PC7_S1
    162     fixup_MICROMIPS_PC7_S1,
    163 
    164     // resulting in - R_MICROMIPS_PC10_S1
    165     fixup_MICROMIPS_PC10_S1,
    166 
    167     // resulting in - R_MICROMIPS_PC16_S1
    168     fixup_MICROMIPS_PC16_S1,
    169 
    170     // resulting in - R_MICROMIPS_PC26_S1
    171     fixup_MICROMIPS_PC26_S1,
    172 
    173     // resulting in - R_MICROMIPS_PC19_S2
    174     fixup_MICROMIPS_PC19_S2,
    175 
    176     // resulting in - R_MICROMIPS_PC18_S3
    177     fixup_MICROMIPS_PC18_S3,
    178 
    179     // resulting in - R_MICROMIPS_PC21_S1
    180     fixup_MICROMIPS_PC21_S1,
    181 
    182     // resulting in - R_MICROMIPS_CALL16
    183     fixup_MICROMIPS_CALL16,
    184 
    185     // resulting in - R_MICROMIPS_GOT_DISP
    186     fixup_MICROMIPS_GOT_DISP,
    187 
    188     // resulting in - R_MICROMIPS_GOT_PAGE
    189     fixup_MICROMIPS_GOT_PAGE,
    190 
    191     // resulting in - R_MICROMIPS_GOT_OFST
    192     fixup_MICROMIPS_GOT_OFST,
    193 
    194     // resulting in - R_MICROMIPS_TLS_GD
    195     fixup_MICROMIPS_TLS_GD,
    196 
    197     // resulting in - R_MICROMIPS_TLS_LDM
    198     fixup_MICROMIPS_TLS_LDM,
    199 
    200     // resulting in - R_MICROMIPS_TLS_DTPREL_HI16
    201     fixup_MICROMIPS_TLS_DTPREL_HI16,
    202 
    203     // resulting in - R_MICROMIPS_TLS_DTPREL_LO16
    204     fixup_MICROMIPS_TLS_DTPREL_LO16,
    205 
    206     // resulting in - R_MICROMIPS_TLS_TPREL_HI16
    207     fixup_MICROMIPS_TLS_TPREL_HI16,
    208 
    209     // resulting in - R_MICROMIPS_TLS_TPREL_LO16
    210     fixup_MICROMIPS_TLS_TPREL_LO16,
    211 
    212     // Marker
    213     LastTargetFixupKind,
    214     NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind
    215   };
    216 } // namespace Mips
    217 } // namespace llvm
    218 
    219 
    220 #endif
    221