1234353Sdim//===-- MipsFixupKinds.h - Mips Specific Fixup Entries ----------*- C++ -*-===// 2226584Sdim// 3226584Sdim// The LLVM Compiler Infrastructure 4226584Sdim// 5226584Sdim// This file is distributed under the University of Illinois Open Source 6226584Sdim// License. See LICENSE.TXT for details. 7226584Sdim// 8226584Sdim//===----------------------------------------------------------------------===// 9226584Sdim 10234353Sdim#ifndef LLVM_MIPS_MIPSFIXUPKINDS_H 11234353Sdim#define LLVM_MIPS_MIPSFIXUPKINDS_H 12226584Sdim 13226584Sdim#include "llvm/MC/MCFixup.h" 14226584Sdim 15226584Sdimnamespace llvm { 16226584Sdimnamespace Mips { 17234353Sdim // Although most of the current fixup types reflect a unique relocation 18234353Sdim // one can have multiple fixup types for a given relocation and thus need 19234353Sdim // to be uniquely named. 20234353Sdim // 21234353Sdim // This table *must* be in the save order of 22234353Sdim // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds] 23234353Sdim // in MipsAsmBackend.cpp. 24234353Sdim // 25234353Sdim enum Fixups { 26234353Sdim // Branch fixups resulting in R_MIPS_16. 27234353Sdim fixup_Mips_16 = FirstTargetFixupKind, 28226584Sdim 29234353Sdim // Pure 32 bit data fixup resulting in - R_MIPS_32. 30234353Sdim fixup_Mips_32, 31226584Sdim 32234353Sdim // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32. 33234353Sdim fixup_Mips_REL32, 34226584Sdim 35234353Sdim // Jump 26 bit fixup resulting in - R_MIPS_26. 36234353Sdim fixup_Mips_26, 37226584Sdim 38234353Sdim // Pure upper 16 bit fixup resulting in - R_MIPS_HI16. 39234353Sdim fixup_Mips_HI16, 40226584Sdim 41234353Sdim // Pure lower 16 bit fixup resulting in - R_MIPS_LO16. 42234353Sdim fixup_Mips_LO16, 43226584Sdim 44234353Sdim // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16. 45234353Sdim fixup_Mips_GPREL16, 46226584Sdim 47234353Sdim // 16 bit literal fixup resulting in - R_MIPS_LITERAL. 48234353Sdim fixup_Mips_LITERAL, 49226584Sdim 50234353Sdim // Global symbol fixup resulting in - R_MIPS_GOT16. 51234353Sdim fixup_Mips_GOT_Global, 52226584Sdim 53234353Sdim // Local symbol fixup resulting in - R_MIPS_GOT16. 54234353Sdim fixup_Mips_GOT_Local, 55226584Sdim 56234353Sdim // PC relative branch fixup resulting in - R_MIPS_PC16. 57234353Sdim fixup_Mips_PC16, 58226584Sdim 59234353Sdim // resulting in - R_MIPS_CALL16. 60234353Sdim fixup_Mips_CALL16, 61226584Sdim 62234353Sdim // resulting in - R_MIPS_GPREL32. 63234353Sdim fixup_Mips_GPREL32, 64226584Sdim 65234353Sdim // resulting in - R_MIPS_SHIFT5. 66234353Sdim fixup_Mips_SHIFT5, 67226584Sdim 68234353Sdim // resulting in - R_MIPS_SHIFT6. 69234353Sdim fixup_Mips_SHIFT6, 70226584Sdim 71234353Sdim // Pure 64 bit data fixup resulting in - R_MIPS_64. 72234353Sdim fixup_Mips_64, 73226584Sdim 74234353Sdim // resulting in - R_MIPS_TLS_GD. 75234353Sdim fixup_Mips_TLSGD, 76226584Sdim 77234353Sdim // resulting in - R_MIPS_TLS_GOTTPREL. 78234353Sdim fixup_Mips_GOTTPREL, 79226584Sdim 80234353Sdim // resulting in - R_MIPS_TLS_TPREL_HI16. 81234353Sdim fixup_Mips_TPREL_HI, 82226584Sdim 83234353Sdim // resulting in - R_MIPS_TLS_TPREL_LO16. 84234353Sdim fixup_Mips_TPREL_LO, 85226584Sdim 86234353Sdim // resulting in - R_MIPS_TLS_LDM. 87234353Sdim fixup_Mips_TLSLDM, 88226584Sdim 89234353Sdim // resulting in - R_MIPS_TLS_DTPREL_HI16. 90234353Sdim fixup_Mips_DTPREL_HI, 91234353Sdim 92234353Sdim // resulting in - R_MIPS_TLS_DTPREL_LO16. 93234353Sdim fixup_Mips_DTPREL_LO, 94234353Sdim 95234353Sdim // PC relative branch fixup resulting in - R_MIPS_PC16 96234353Sdim fixup_Mips_Branch_PCRel, 97234353Sdim 98239462Sdim // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 99239462Sdim fixup_Mips_GPOFF_HI, 100239462Sdim 101239462Sdim // resulting in - R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 102239462Sdim fixup_Mips_GPOFF_LO, 103239462Sdim 104239462Sdim // resulting in - R_MIPS_PAGE 105239462Sdim fixup_Mips_GOT_PAGE, 106239462Sdim 107239462Sdim // resulting in - R_MIPS_GOT_OFST 108239462Sdim fixup_Mips_GOT_OFST, 109239462Sdim 110239462Sdim // resulting in - R_MIPS_GOT_DISP 111239462Sdim fixup_Mips_GOT_DISP, 112239462Sdim 113239462Sdim // resulting in - R_MIPS_GOT_HIGHER 114239462Sdim fixup_Mips_HIGHER, 115239462Sdim 116239462Sdim // resulting in - R_MIPS_HIGHEST 117239462Sdim fixup_Mips_HIGHEST, 118239462Sdim 119244628Sdim // resulting in - R_MIPS_GOT_HI16 120244628Sdim fixup_Mips_GOT_HI16, 121244628Sdim 122244628Sdim // resulting in - R_MIPS_GOT_LO16 123244628Sdim fixup_Mips_GOT_LO16, 124244628Sdim 125244628Sdim // resulting in - R_MIPS_CALL_HI16 126244628Sdim fixup_Mips_CALL_HI16, 127244628Sdim 128244628Sdim // resulting in - R_MIPS_CALL_LO16 129244628Sdim fixup_Mips_CALL_LO16, 130244628Sdim 131263508Sdim // resulting in - R_MICROMIPS_26_S1 132263508Sdim fixup_MICROMIPS_26_S1, 133263508Sdim 134263508Sdim // resulting in - R_MICROMIPS_HI16 135263508Sdim fixup_MICROMIPS_HI16, 136263508Sdim 137263508Sdim // resulting in - R_MICROMIPS_LO16 138263508Sdim fixup_MICROMIPS_LO16, 139263508Sdim 140263508Sdim // resulting in - R_MICROMIPS_GOT16 141263508Sdim fixup_MICROMIPS_GOT16, 142263508Sdim 143263508Sdim // resulting in - R_MICROMIPS_PC16_S1 144263508Sdim fixup_MICROMIPS_PC16_S1, 145263508Sdim 146263508Sdim // resulting in - R_MICROMIPS_CALL16 147263508Sdim fixup_MICROMIPS_CALL16, 148263508Sdim 149263508Sdim // resulting in - R_MICROMIPS_GOT_DISP 150263508Sdim fixup_MICROMIPS_GOT_DISP, 151263508Sdim 152263508Sdim // resulting in - R_MICROMIPS_GOT_PAGE 153263508Sdim fixup_MICROMIPS_GOT_PAGE, 154263508Sdim 155263508Sdim // resulting in - R_MICROMIPS_GOT_OFST 156263508Sdim fixup_MICROMIPS_GOT_OFST, 157263508Sdim 158263508Sdim // resulting in - R_MICROMIPS_TLS_DTPREL_HI16 159263508Sdim fixup_MICROMIPS_TLS_DTPREL_HI16, 160263508Sdim 161263508Sdim // resulting in - R_MICROMIPS_TLS_DTPREL_LO16 162263508Sdim fixup_MICROMIPS_TLS_DTPREL_LO16, 163263508Sdim 164263508Sdim // resulting in - R_MICROMIPS_TLS_TPREL_HI16 165263508Sdim fixup_MICROMIPS_TLS_TPREL_HI16, 166263508Sdim 167263508Sdim // resulting in - R_MICROMIPS_TLS_TPREL_LO16 168263508Sdim fixup_MICROMIPS_TLS_TPREL_LO16, 169263508Sdim 170234353Sdim // Marker 171234353Sdim LastTargetFixupKind, 172234353Sdim NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 173234353Sdim }; 174234353Sdim} // namespace Mips 175226584Sdim} // namespace llvm 176226584Sdim 177226584Sdim 178234353Sdim#endif // LLVM_MIPS_MIPSFIXUPKINDS_H 179