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_MIPS_MIPSFIXUPKINDS_H 11 #define LLVM_MIPS_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 save order of 22 // MCFixupKindInfo Infos[Mips::NumTargetFixupKinds] 23 // in MipsAsmBackend.cpp. 24 // 25 enum Fixups { 26 // Branch fixups resulting in R_MIPS_16. 27 fixup_Mips_16 = FirstTargetFixupKind, 28 29 // Pure 32 bit data fixup resulting in - R_MIPS_32. 30 fixup_Mips_32, 31 32 // Full 32 bit data relative data fixup resulting in - R_MIPS_REL32. 33 fixup_Mips_REL32, 34 35 // Jump 26 bit fixup resulting in - R_MIPS_26. 36 fixup_Mips_26, 37 38 // Pure upper 16 bit fixup resulting in - R_MIPS_HI16. 39 fixup_Mips_HI16, 40 41 // Pure lower 16 bit fixup resulting in - R_MIPS_LO16. 42 fixup_Mips_LO16, 43 44 // 16 bit fixup for GP offest resulting in - R_MIPS_GPREL16. 45 fixup_Mips_GPREL16, 46 47 // 16 bit literal fixup resulting in - R_MIPS_LITERAL. 48 fixup_Mips_LITERAL, 49 50 // Global symbol fixup resulting in - R_MIPS_GOT16. 51 fixup_Mips_GOT_Global, 52 53 // Local symbol fixup resulting in - R_MIPS_GOT16. 54 fixup_Mips_GOT_Local, 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 // Marker 132 LastTargetFixupKind, 133 NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind 134 }; 135 } // namespace Mips 136 } // namespace llvm 137 138 139 #endif // LLVM_MIPS_MIPSFIXUPKINDS_H 140