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_GOT16); 494 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_LO); 495 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HI); 496 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HA); 497 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL32); 498 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLS); 499 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPMOD32); 500 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16); 501 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_LO); 502 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HI); 503 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HA); 504 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL32); 505 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16); 506 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_LO); 507 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HI); 508 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HA); 509 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL32); 510 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16); 511 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_LO); 512 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HI); 513 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HA); 514 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16); 515 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_LO); 516 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HI); 517 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HA); 518 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16); 519 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_LO); 520 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HI); 521 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HA); 522 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16); 523 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_LO); 524 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HI); 525 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HA); 526 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSGD); 527 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSLD); 528 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16); 529 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_LO); 530 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HI); 531 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HA); 532 default: 533 break; 534 } 535 break; 536 case ELF::EM_PPC64: 537 switch (Type) { 538 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_NONE); 539 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR32); 540 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR24); 541 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16); 542 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO); 543 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HI); 544 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HA); 545 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14); 546 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRTAKEN); 547 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRNTAKEN); 548 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL24); 549 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14); 550 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRTAKEN); 551 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRNTAKEN); 552 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16); 553 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO); 554 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HI); 555 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HA); 556 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL32); 557 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR64); 558 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHER); 559 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHERA); 560 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHEST); 561 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHESTA); 562 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL64); 563 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16); 564 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO); 565 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HI); 566 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HA); 567 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC); 568 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_DS); 569 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO_DS); 570 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_DS); 571 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO_DS); 572 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_DS); 573 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO_DS); 574 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLS); 575 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPMOD64); 576 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16); 577 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO); 578 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HI); 579 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HA); 580 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL64); 581 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16); 582 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO); 583 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HI); 584 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HA); 585 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL64); 586 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16); 587 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_LO); 588 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HI); 589 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HA); 590 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16); 591 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_LO); 592 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HI); 593 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HA); 594 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_DS); 595 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_LO_DS); 596 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HI); 597 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HA); 598 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_DS); 599 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_LO_DS); 600 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HI); 601 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HA); 602 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_DS); 603 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO_DS); 604 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHER); 605 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHERA); 606 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHEST); 607 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHESTA); 608 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_DS); 609 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO_DS); 610 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHER); 611 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHERA); 612 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHEST); 613 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHESTA); 614 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSGD); 615 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSLD); 616 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16); 617 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_LO); 618 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HI); 619 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HA); 620 default: 621 break; 622 } 623 break; 624 case ELF::EM_S390: 625 switch (Type) { 626 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_NONE); 627 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_8); 628 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_12); 629 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_16); 630 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_32); 631 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32); 632 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT12); 633 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT32); 634 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32); 635 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_COPY); 636 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GLOB_DAT); 637 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_JMP_SLOT); 638 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_RELATIVE); 639 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF); 640 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPC); 641 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT16); 642 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16); 643 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16DBL); 644 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT16DBL); 645 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32DBL); 646 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32DBL); 647 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPCDBL); 648 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_64); 649 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC64); 650 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT64); 651 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT64); 652 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTENT); 653 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF16); 654 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF64); 655 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT12); 656 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT16); 657 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT32); 658 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT64); 659 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLTENT); 660 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF16); 661 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF32); 662 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF64); 663 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LOAD); 664 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GDCALL); 665 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDCALL); 666 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD32); 667 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD64); 668 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE12); 669 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE32); 670 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE64); 671 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM32); 672 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM64); 673 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE32); 674 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE64); 675 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IEENT); 676 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE32); 677 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE64); 678 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO32); 679 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO64); 680 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPMOD); 681 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPOFF); 682 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_TPOFF); 683 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_20); 684 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT20); 685 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT20); 686 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE20); 687 LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_IRELATIVE); 688 default: 689 break; 690 } 691 break; 692 default: 693 break; 694 } 695 return "Unknown"; 696 } 697 698 #undef LLVM_ELF_SWITCH_RELOC_TYPE_NAME 699 700 } // end namespace object 701 } // end namespace llvm 702