Michael J. Spencer | 081a194 | 2013-08-08 22:27:13 +0000 | [diff] [blame^] | 1 | //===- ELF.cpp - ELF object file implementation -----------------*- 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 | #include "llvm/Object/ELF.h" |
| 11 | |
| 12 | namespace llvm { |
| 13 | namespace object { |
| 14 | |
| 15 | #define LLVM_ELF_SWITCH_RELOC_TYPE_NAME(enum) \ |
| 16 | case ELF::enum: \ |
| 17 | return #enum; \ |
| 18 | |
| 19 | StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) { |
| 20 | switch (Machine) { |
| 21 | case ELF::EM_X86_64: |
| 22 | switch (Type) { |
| 23 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_NONE); |
| 24 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_64); |
| 25 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC32); |
| 26 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT32); |
| 27 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLT32); |
| 28 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_COPY); |
| 29 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GLOB_DAT); |
| 30 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_JUMP_SLOT); |
| 31 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_RELATIVE); |
| 32 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL); |
| 33 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32); |
| 34 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32S); |
| 35 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_16); |
| 36 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC16); |
| 37 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_8); |
| 38 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC8); |
| 39 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPMOD64); |
| 40 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF64); |
| 41 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF64); |
| 42 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSGD); |
| 43 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSLD); |
| 44 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF32); |
| 45 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTTPOFF); |
| 46 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF32); |
| 47 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC64); |
| 48 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTOFF64); |
| 49 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32); |
| 50 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT64); |
| 51 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL64); |
| 52 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC64); |
| 53 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPLT64); |
| 54 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLTOFF64); |
| 55 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE32); |
| 56 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE64); |
| 57 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32_TLSDESC); |
| 58 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC_CALL); |
| 59 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC); |
| 60 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_IRELATIVE); |
| 61 | default: |
| 62 | break; |
| 63 | } |
| 64 | break; |
| 65 | case ELF::EM_386: |
| 66 | switch (Type) { |
| 67 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_NONE); |
| 68 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32); |
| 69 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC32); |
| 70 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOT32); |
| 71 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PLT32); |
| 72 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_COPY); |
| 73 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GLOB_DAT); |
| 74 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_JUMP_SLOT); |
| 75 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_RELATIVE); |
| 76 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTOFF); |
| 77 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTPC); |
| 78 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32PLT); |
| 79 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF); |
| 80 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE); |
| 81 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTIE); |
| 82 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE); |
| 83 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD); |
| 84 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM); |
| 85 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_16); |
| 86 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC16); |
| 87 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_8); |
| 88 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC8); |
| 89 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_32); |
| 90 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_PUSH); |
| 91 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_CALL); |
| 92 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_POP); |
| 93 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_32); |
| 94 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_PUSH); |
| 95 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_CALL); |
| 96 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_POP); |
| 97 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDO_32); |
| 98 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE_32); |
| 99 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE_32); |
| 100 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPMOD32); |
| 101 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPOFF32); |
| 102 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF32); |
| 103 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTDESC); |
| 104 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC_CALL); |
| 105 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC); |
| 106 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_IRELATIVE); |
| 107 | default: |
| 108 | break; |
| 109 | } |
| 110 | break; |
| 111 | case ELF::EM_MIPS: |
| 112 | switch (Type) { |
| 113 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NONE); |
| 114 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_16); |
| 115 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_32); |
| 116 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL32); |
| 117 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_26); |
| 118 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HI16); |
| 119 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LO16); |
| 120 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL16); |
| 121 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LITERAL); |
| 122 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT16); |
| 123 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC16); |
| 124 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL16); |
| 125 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL32); |
| 126 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT5); |
| 127 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT6); |
| 128 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_64); |
| 129 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_DISP); |
| 130 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_PAGE); |
| 131 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_OFST); |
| 132 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_HI16); |
| 133 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_LO16); |
| 134 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SUB); |
| 135 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_A); |
| 136 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_B); |
| 137 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_DELETE); |
| 138 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHER); |
| 139 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHEST); |
| 140 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_HI16); |
| 141 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_LO16); |
| 142 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SCN_DISP); |
| 143 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL16); |
| 144 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_ADD_IMMEDIATE); |
| 145 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PJUMP); |
| 146 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_RELGOT); |
| 147 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JALR); |
| 148 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD32); |
| 149 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL32); |
| 150 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD64); |
| 151 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL64); |
| 152 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GD); |
| 153 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_LDM); |
| 154 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_HI16); |
| 155 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_LO16); |
| 156 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GOTTPREL); |
| 157 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL32); |
| 158 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL64); |
| 159 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16); |
| 160 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16); |
| 161 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT); |
| 162 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY); |
| 163 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT); |
| 164 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NUM); |
| 165 | default: |
| 166 | break; |
| 167 | } |
| 168 | break; |
| 169 | case ELF::EM_AARCH64: |
| 170 | switch (Type) { |
| 171 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_NONE); |
| 172 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS64); |
| 173 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS32); |
| 174 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS16); |
| 175 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL64); |
| 176 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL32); |
| 177 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL16); |
| 178 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0); |
| 179 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0_NC); |
| 180 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1); |
| 181 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1_NC); |
| 182 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2); |
| 183 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2_NC); |
| 184 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G3); |
| 185 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G0); |
| 186 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G1); |
| 187 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G2); |
| 188 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD_PREL_LO19); |
| 189 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_LO21); |
| 190 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_PG_HI21); |
| 191 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADD_ABS_LO12_NC); |
| 192 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST8_ABS_LO12_NC); |
| 193 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TSTBR14); |
| 194 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CONDBR19); |
| 195 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_JUMP26); |
| 196 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CALL26); |
| 197 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST16_ABS_LO12_NC); |
| 198 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST32_ABS_LO12_NC); |
| 199 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST64_ABS_LO12_NC); |
| 200 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST128_ABS_LO12_NC); |
| 201 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_GOT_PAGE); |
| 202 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD64_GOT_LO12_NC); |
| 203 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G2); |
| 204 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1); |
| 205 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC); |
| 206 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0); |
| 207 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC); |
| 208 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_HI12); |
| 209 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12); |
| 210 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC); |
| 211 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12); |
| 212 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC); |
| 213 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12); |
| 214 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC); |
| 215 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12); |
| 216 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC); |
| 217 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12); |
| 218 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC); |
| 219 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1); |
| 220 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC); |
| 221 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21); |
| 222 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC); |
| 223 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19); |
| 224 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G2); |
| 225 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1); |
| 226 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC); |
| 227 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0); |
| 228 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC); |
| 229 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_HI12); |
| 230 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12); |
| 231 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC); |
| 232 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12); |
| 233 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC); |
| 234 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12); |
| 235 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC); |
| 236 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12); |
| 237 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC); |
| 238 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12); |
| 239 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC); |
| 240 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADR_PAGE); |
| 241 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_LD64_LO12_NC); |
| 242 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADD_LO12_NC); |
| 243 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_CALL); |
| 244 | default: |
| 245 | break; |
| 246 | } |
| 247 | break; |
| 248 | case ELF::EM_ARM: |
| 249 | switch (Type) { |
| 250 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_NONE); |
| 251 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PC24); |
| 252 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32); |
| 253 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32); |
| 254 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G0); |
| 255 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS16); |
| 256 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS12); |
| 257 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ABS5); |
| 258 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS8); |
| 259 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL32); |
| 260 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_CALL); |
| 261 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC8); |
| 262 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BREL_ADJ); |
| 263 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESC); |
| 264 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_SWI8); |
| 265 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_XPC25); |
| 266 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_XPC22); |
| 267 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPMOD32); |
| 268 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPOFF32); |
| 269 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_TPOFF32); |
| 270 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_COPY); |
| 271 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GLOB_DAT); |
| 272 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP_SLOT); |
| 273 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_RELATIVE); |
| 274 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF32); |
| 275 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_PREL); |
| 276 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL); |
| 277 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32); |
| 278 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_CALL); |
| 279 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP24); |
| 280 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP24); |
| 281 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_ABS); |
| 282 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_7_0); |
| 283 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_15_8); |
| 284 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_23_15); |
| 285 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SBREL_11_0_NC); |
| 286 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_19_12_NC); |
| 287 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_27_20_CK); |
| 288 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET1); |
| 289 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL31); |
| 290 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_V4BX); |
| 291 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET2); |
| 292 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PREL31); |
| 293 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_ABS_NC); |
| 294 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_ABS); |
| 295 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_PREL_NC); |
| 296 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_PREL); |
| 297 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_ABS_NC); |
| 298 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_ABS); |
| 299 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_PREL_NC); |
| 300 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_PREL); |
| 301 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP19); |
| 302 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP6); |
| 303 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ALU_PREL_11_0); |
| 304 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC12); |
| 305 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32_NOI); |
| 306 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32_NOI); |
| 307 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0_NC); |
| 308 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0); |
| 309 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1_NC); |
| 310 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1); |
| 311 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G2); |
| 312 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G1); |
| 313 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G2); |
| 314 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G0); |
| 315 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G1); |
| 316 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G2); |
| 317 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G0); |
| 318 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G1); |
| 319 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G2); |
| 320 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0_NC); |
| 321 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0); |
| 322 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1_NC); |
| 323 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1); |
| 324 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G2); |
| 325 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G0); |
| 326 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G1); |
| 327 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G2); |
| 328 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G0); |
| 329 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G1); |
| 330 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G2); |
| 331 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G0); |
| 332 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G1); |
| 333 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G2); |
| 334 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL_NC); |
| 335 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_BREL); |
| 336 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL); |
| 337 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL_NC); |
| 338 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_BREL); |
| 339 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL); |
| 340 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GOTDESC); |
| 341 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_CALL); |
| 342 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESCSEQ); |
| 343 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_CALL); |
| 344 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32_ABS); |
| 345 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_ABS); |
| 346 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_PREL); |
| 347 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL12); |
| 348 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF12); |
| 349 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTRELAX); |
| 350 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTENTRY); |
| 351 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTINHERIT); |
| 352 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP11); |
| 353 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP8); |
| 354 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GD32); |
| 355 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDM32); |
| 356 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO32); |
| 357 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE32); |
| 358 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE32); |
| 359 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO12); |
| 360 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE12); |
| 361 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE12GP); |
| 362 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_0); |
| 363 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_1); |
| 364 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_2); |
| 365 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_3); |
| 366 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_4); |
| 367 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_5); |
| 368 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_6); |
| 369 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_7); |
| 370 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_8); |
| 371 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_9); |
| 372 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_10); |
| 373 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_11); |
| 374 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_12); |
| 375 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_13); |
| 376 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_14); |
| 377 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_15); |
| 378 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ME_TOO); |
| 379 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ16); |
| 380 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ32); |
| 381 | default: |
| 382 | break; |
| 383 | } |
| 384 | break; |
| 385 | case ELF::EM_HEXAGON: |
| 386 | switch (Type) { |
| 387 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_NONE); |
| 388 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL); |
| 389 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL); |
| 390 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL); |
| 391 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_LO16); |
| 392 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HI16); |
| 393 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32); |
| 394 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16); |
| 395 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8); |
| 396 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_0); |
| 397 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_1); |
| 398 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_2); |
| 399 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_3); |
| 400 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HL16); |
| 401 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL); |
| 402 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL); |
| 403 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B32_PCREL_X); |
| 404 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_6_X); |
| 405 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL_X); |
| 406 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL_X); |
| 407 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL_X); |
| 408 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL_X); |
| 409 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL_X); |
| 410 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16_X); |
| 411 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_12_X); |
| 412 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_11_X); |
| 413 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_10_X); |
| 414 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_9_X); |
| 415 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8_X); |
| 416 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_7_X); |
| 417 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_X); |
| 418 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_PCREL); |
| 419 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_COPY); |
| 420 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GLOB_DAT); |
| 421 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_JMP_SLOT); |
| 422 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_RELATIVE); |
| 423 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_PLT_B22_PCREL); |
| 424 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_LO16); |
| 425 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_HI16); |
| 426 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32); |
| 427 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_LO16); |
| 428 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_HI16); |
| 429 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32); |
| 430 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16); |
| 431 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPMOD_32); |
| 432 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_LO16); |
| 433 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_HI16); |
| 434 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32); |
| 435 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16); |
| 436 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_PLT_B22_PCREL); |
| 437 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_LO16); |
| 438 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_HI16); |
| 439 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32); |
| 440 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16); |
| 441 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_LO16); |
| 442 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_HI16); |
| 443 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32); |
| 444 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_LO16); |
| 445 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_HI16); |
| 446 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32); |
| 447 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16); |
| 448 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_LO16); |
| 449 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_HI16); |
| 450 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32); |
| 451 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16); |
| 452 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_PCREL_X); |
| 453 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32_6_X); |
| 454 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_16_X); |
| 455 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_11_X); |
| 456 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32_6_X); |
| 457 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16_X); |
| 458 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_11_X); |
| 459 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32_6_X); |
| 460 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16_X); |
| 461 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_11_X); |
| 462 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32_6_X); |
| 463 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16_X); |
| 464 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_11_X); |
| 465 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32_6_X); |
| 466 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_16_X); |
| 467 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32_6_X); |
| 468 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16_X); |
| 469 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_11_X); |
| 470 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32_6_X); |
| 471 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16_X); |
| 472 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_11_X); |
| 473 | default: |
| 474 | break; |
| 475 | } |
| 476 | break; |
| 477 | case ELF::EM_PPC: |
| 478 | switch (Type) { |
| 479 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_NONE); |
| 480 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR32); |
| 481 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR24); |
| 482 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16); |
| 483 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_LO); |
| 484 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HI); |
| 485 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HA); |
| 486 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14); |
| 487 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRTAKEN); |
| 488 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRNTAKEN); |
| 489 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL24); |
| 490 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14); |
| 491 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRTAKEN); |
| 492 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRNTAKEN); |
| 493 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL32); |
| 494 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_LO); |
| 495 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HA); |
| 496 | default: |
| 497 | break; |
| 498 | } |
| 499 | break; |
| 500 | case ELF::EM_PPC64: |
| 501 | switch (Type) { |
| 502 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_NONE); |
| 503 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR32); |
| 504 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR24); |
| 505 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16); |
| 506 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO); |
| 507 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HI); |
| 508 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HA); |
| 509 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14); |
| 510 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRTAKEN); |
| 511 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRNTAKEN); |
| 512 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL24); |
| 513 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14); |
| 514 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRTAKEN); |
| 515 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRNTAKEN); |
| 516 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL32); |
| 517 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR64); |
| 518 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHER); |
| 519 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHEST); |
| 520 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL64); |
| 521 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16); |
| 522 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO); |
| 523 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HA); |
| 524 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC); |
| 525 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_DS); |
| 526 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO_DS); |
| 527 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_DS); |
| 528 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO_DS); |
| 529 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLS); |
| 530 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO); |
| 531 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HA); |
| 532 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO); |
| 533 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HA); |
| 534 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_LO); |
| 535 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HA); |
| 536 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_LO); |
| 537 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HA); |
| 538 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_LO_DS); |
| 539 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HA); |
| 540 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSGD); |
| 541 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSLD); |
| 542 | default: |
| 543 | break; |
| 544 | } |
| 545 | break; |
| 546 | case ELF::EM_S390: |
| 547 | switch (Type) { |
| 548 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_NONE); |
| 549 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_8); |
| 550 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_12); |
| 551 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_16); |
| 552 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_32); |
| 553 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32); |
| 554 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT12); |
| 555 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT32); |
| 556 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32); |
| 557 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_COPY); |
| 558 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GLOB_DAT); |
| 559 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_JMP_SLOT); |
| 560 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_RELATIVE); |
| 561 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF); |
| 562 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPC); |
| 563 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT16); |
| 564 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16); |
| 565 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16DBL); |
| 566 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT16DBL); |
| 567 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32DBL); |
| 568 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32DBL); |
| 569 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPCDBL); |
| 570 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_64); |
| 571 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC64); |
| 572 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT64); |
| 573 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT64); |
| 574 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTENT); |
| 575 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF16); |
| 576 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF64); |
| 577 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT12); |
| 578 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT16); |
| 579 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT32); |
| 580 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT64); |
| 581 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLTENT); |
| 582 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF16); |
| 583 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF32); |
| 584 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF64); |
| 585 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LOAD); |
| 586 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GDCALL); |
| 587 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDCALL); |
| 588 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD32); |
| 589 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD64); |
| 590 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE12); |
| 591 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE32); |
| 592 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE64); |
| 593 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM32); |
| 594 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM64); |
| 595 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE32); |
| 596 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE64); |
| 597 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IEENT); |
| 598 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE32); |
| 599 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE64); |
| 600 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO32); |
| 601 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO64); |
| 602 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPMOD); |
| 603 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPOFF); |
| 604 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_TPOFF); |
| 605 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_20); |
| 606 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT20); |
| 607 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT20); |
| 608 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE20); |
| 609 | LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_IRELATIVE); |
| 610 | default: |
| 611 | break; |
| 612 | } |
| 613 | break; |
| 614 | default: |
| 615 | break; |
| 616 | } |
| 617 | return "Unknown"; |
| 618 | } |
| 619 | |
| 620 | #undef LLVM_ELF_SWITCH_RELOC_TYPE_NAME |
| 621 | |
| 622 | } // end namespace object |
| 623 | } // end namespace llvm |