1259698Sdim//===- ELF.cpp - ELF object file implementation -----------------*- C++ -*-===// 2259698Sdim// 3259698Sdim// The LLVM Compiler Infrastructure 4259698Sdim// 5259698Sdim// This file is distributed under the University of Illinois Open Source 6259698Sdim// License. See LICENSE.TXT for details. 7259698Sdim// 8259698Sdim//===----------------------------------------------------------------------===// 9259698Sdim 10259698Sdim#include "llvm/Object/ELF.h" 11259698Sdim 12259698Sdimnamespace llvm { 13259698Sdimnamespace object { 14259698Sdim 15259698Sdim#define LLVM_ELF_SWITCH_RELOC_TYPE_NAME(enum) \ 16259698Sdim case ELF::enum: \ 17259698Sdim return #enum; \ 18259698Sdim 19259698SdimStringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) { 20259698Sdim switch (Machine) { 21259698Sdim case ELF::EM_X86_64: 22259698Sdim switch (Type) { 23259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_NONE); 24259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_64); 25259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC32); 26259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT32); 27259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLT32); 28259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_COPY); 29259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GLOB_DAT); 30259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_JUMP_SLOT); 31259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_RELATIVE); 32259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL); 33259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32); 34259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32S); 35259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_16); 36259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC16); 37259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_8); 38259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC8); 39259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPMOD64); 40259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF64); 41259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF64); 42259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSGD); 43259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSLD); 44259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF32); 45259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTTPOFF); 46259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF32); 47259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC64); 48259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTOFF64); 49259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32); 50259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT64); 51259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL64); 52259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC64); 53259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPLT64); 54259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLTOFF64); 55259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE32); 56259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE64); 57259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32_TLSDESC); 58259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC_CALL); 59259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC); 60259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_IRELATIVE); 61259698Sdim default: 62259698Sdim break; 63259698Sdim } 64259698Sdim break; 65259698Sdim case ELF::EM_386: 66259698Sdim switch (Type) { 67259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_NONE); 68259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32); 69259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC32); 70259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOT32); 71259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PLT32); 72259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_COPY); 73259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GLOB_DAT); 74259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_JUMP_SLOT); 75259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_RELATIVE); 76259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTOFF); 77259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTPC); 78259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32PLT); 79259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF); 80259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE); 81259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTIE); 82259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE); 83259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD); 84259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM); 85259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_16); 86259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC16); 87259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_8); 88259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC8); 89259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_32); 90259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_PUSH); 91259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_CALL); 92259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_POP); 93259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_32); 94259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_PUSH); 95259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_CALL); 96259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_POP); 97259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDO_32); 98259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE_32); 99259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE_32); 100259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPMOD32); 101259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPOFF32); 102259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF32); 103259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTDESC); 104259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC_CALL); 105259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC); 106259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_IRELATIVE); 107259698Sdim default: 108259698Sdim break; 109259698Sdim } 110259698Sdim break; 111259698Sdim case ELF::EM_MIPS: 112259698Sdim switch (Type) { 113259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NONE); 114259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_16); 115259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_32); 116259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL32); 117259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_26); 118259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HI16); 119259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LO16); 120259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL16); 121259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LITERAL); 122259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT16); 123259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC16); 124259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL16); 125259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL32); 126259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT5); 127259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT6); 128259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_64); 129259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_DISP); 130259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_PAGE); 131259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_OFST); 132259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_HI16); 133259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_LO16); 134259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SUB); 135259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_A); 136259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_B); 137259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_DELETE); 138259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHER); 139259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHEST); 140259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_HI16); 141259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_LO16); 142259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SCN_DISP); 143259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL16); 144259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_ADD_IMMEDIATE); 145259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PJUMP); 146259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_RELGOT); 147259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JALR); 148259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD32); 149259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL32); 150259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD64); 151259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL64); 152259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GD); 153259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_LDM); 154259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_HI16); 155259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_LO16); 156259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GOTTPREL); 157259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL32); 158259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL64); 159259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16); 160259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16); 161259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT); 162259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY); 163259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT); 164259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_26_S1); 165259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_HI16); 166259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_LO16); 167259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT16); 168259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_PC16_S1); 169259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_CALL16); 170259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_DISP); 171259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_PAGE); 172259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_OFST); 173259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_HI16); 174259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_LO16); 175259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_HI16); 176259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_LO16); 177259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NUM); 178259698Sdim default: 179259698Sdim break; 180259698Sdim } 181259698Sdim break; 182259698Sdim case ELF::EM_AARCH64: 183259698Sdim switch (Type) { 184259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_NONE); 185259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS64); 186259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS32); 187259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS16); 188259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL64); 189259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL32); 190259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL16); 191259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0); 192259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0_NC); 193259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1); 194259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1_NC); 195259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2); 196259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2_NC); 197259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G3); 198259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G0); 199259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G1); 200259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G2); 201259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD_PREL_LO19); 202259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_LO21); 203259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_PG_HI21); 204259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADD_ABS_LO12_NC); 205259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST8_ABS_LO12_NC); 206259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TSTBR14); 207259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CONDBR19); 208259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_JUMP26); 209259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CALL26); 210259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST16_ABS_LO12_NC); 211259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST32_ABS_LO12_NC); 212259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST64_ABS_LO12_NC); 213259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST128_ABS_LO12_NC); 214259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_GOT_PAGE); 215259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD64_GOT_LO12_NC); 216259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G2); 217259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1); 218259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC); 219259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0); 220259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC); 221259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_HI12); 222259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12); 223259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC); 224259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12); 225259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC); 226259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12); 227259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC); 228259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12); 229259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC); 230259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12); 231259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC); 232259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1); 233259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC); 234259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21); 235259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC); 236259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19); 237259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G2); 238259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1); 239259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC); 240259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0); 241259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC); 242259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_HI12); 243259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12); 244259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC); 245259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12); 246259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC); 247259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12); 248259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC); 249259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12); 250259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC); 251259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12); 252259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC); 253259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADR_PAGE); 254259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_LD64_LO12_NC); 255259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADD_LO12_NC); 256259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_CALL); 257259698Sdim default: 258259698Sdim break; 259259698Sdim } 260259698Sdim break; 261259698Sdim case ELF::EM_ARM: 262259698Sdim switch (Type) { 263259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_NONE); 264259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PC24); 265259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32); 266259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32); 267259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G0); 268259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS16); 269259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS12); 270259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ABS5); 271259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS8); 272259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL32); 273259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_CALL); 274259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC8); 275259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BREL_ADJ); 276259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESC); 277259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_SWI8); 278259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_XPC25); 279259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_XPC22); 280259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPMOD32); 281259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPOFF32); 282259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_TPOFF32); 283259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_COPY); 284259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GLOB_DAT); 285259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP_SLOT); 286259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_RELATIVE); 287259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF32); 288259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_PREL); 289259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL); 290259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32); 291259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_CALL); 292259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP24); 293259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP24); 294259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_ABS); 295259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_7_0); 296259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_15_8); 297259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_23_15); 298259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SBREL_11_0_NC); 299259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_19_12_NC); 300259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_27_20_CK); 301259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET1); 302259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL31); 303259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_V4BX); 304259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET2); 305259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PREL31); 306259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_ABS_NC); 307259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_ABS); 308259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_PREL_NC); 309259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_PREL); 310259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_ABS_NC); 311259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_ABS); 312259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_PREL_NC); 313259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_PREL); 314259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP19); 315259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP6); 316259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ALU_PREL_11_0); 317259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC12); 318259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32_NOI); 319259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32_NOI); 320259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0_NC); 321259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0); 322259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1_NC); 323259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1); 324259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G2); 325259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G1); 326259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G2); 327259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G0); 328259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G1); 329259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G2); 330259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G0); 331259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G1); 332259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G2); 333259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0_NC); 334259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0); 335259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1_NC); 336259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1); 337259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G2); 338259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G0); 339259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G1); 340259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G2); 341259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G0); 342259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G1); 343259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G2); 344259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G0); 345259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G1); 346259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G2); 347259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL_NC); 348259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_BREL); 349259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL); 350259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL_NC); 351259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_BREL); 352259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL); 353259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GOTDESC); 354259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_CALL); 355259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESCSEQ); 356259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_CALL); 357259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32_ABS); 358259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_ABS); 359259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_PREL); 360259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL12); 361259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF12); 362259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTRELAX); 363259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTENTRY); 364259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTINHERIT); 365259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP11); 366259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP8); 367259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GD32); 368259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDM32); 369259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO32); 370259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE32); 371259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE32); 372259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO12); 373259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE12); 374259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE12GP); 375259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_0); 376259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_1); 377259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_2); 378259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_3); 379259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_4); 380259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_5); 381259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_6); 382259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_7); 383259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_8); 384259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_9); 385259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_10); 386259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_11); 387259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_12); 388259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_13); 389259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_14); 390259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_15); 391259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ME_TOO); 392259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ16); 393259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ32); 394259698Sdim default: 395259698Sdim break; 396259698Sdim } 397259698Sdim break; 398259698Sdim case ELF::EM_HEXAGON: 399259698Sdim switch (Type) { 400259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_NONE); 401259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL); 402259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL); 403259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL); 404259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_LO16); 405259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HI16); 406259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32); 407259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16); 408259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8); 409259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_0); 410259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_1); 411259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_2); 412259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_3); 413259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HL16); 414259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL); 415259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL); 416259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B32_PCREL_X); 417259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_6_X); 418259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL_X); 419259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL_X); 420259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL_X); 421259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL_X); 422259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL_X); 423259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16_X); 424259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_12_X); 425259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_11_X); 426259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_10_X); 427259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_9_X); 428259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8_X); 429259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_7_X); 430259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_X); 431259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_PCREL); 432259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_COPY); 433259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GLOB_DAT); 434259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_JMP_SLOT); 435259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_RELATIVE); 436259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_PLT_B22_PCREL); 437259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_LO16); 438259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_HI16); 439259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32); 440259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_LO16); 441259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_HI16); 442259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32); 443259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16); 444259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPMOD_32); 445259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_LO16); 446259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_HI16); 447259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32); 448259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16); 449259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_PLT_B22_PCREL); 450259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_LO16); 451259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_HI16); 452259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32); 453259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16); 454259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_LO16); 455259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_HI16); 456259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32); 457259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_LO16); 458259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_HI16); 459259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32); 460259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16); 461259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_LO16); 462259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_HI16); 463259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32); 464259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16); 465259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_PCREL_X); 466259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32_6_X); 467259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_16_X); 468259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_11_X); 469259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32_6_X); 470259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16_X); 471259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_11_X); 472259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32_6_X); 473259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16_X); 474259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_11_X); 475259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32_6_X); 476259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16_X); 477259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_11_X); 478259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32_6_X); 479259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_16_X); 480259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32_6_X); 481259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16_X); 482259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_11_X); 483259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32_6_X); 484259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16_X); 485259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_11_X); 486259698Sdim default: 487259698Sdim break; 488259698Sdim } 489259698Sdim break; 490259698Sdim case ELF::EM_PPC: 491259698Sdim switch (Type) { 492259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_NONE); 493259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR32); 494259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR24); 495259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16); 496259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_LO); 497259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HI); 498259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HA); 499259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14); 500259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRTAKEN); 501259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRNTAKEN); 502259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL24); 503259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14); 504259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRTAKEN); 505259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRNTAKEN); 506259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16); 507259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_LO); 508259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HI); 509259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HA); 510259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL32); 511259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLS); 512259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPMOD32); 513259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16); 514259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_LO); 515259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HI); 516259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HA); 517259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL32); 518259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16); 519259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_LO); 520259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HI); 521259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HA); 522259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL32); 523259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16); 524259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_LO); 525259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HI); 526259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HA); 527259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16); 528259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_LO); 529259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HI); 530259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HA); 531259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16); 532259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_LO); 533259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HI); 534259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HA); 535259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16); 536259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_LO); 537259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HI); 538259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HA); 539259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSGD); 540259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSLD); 541259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16); 542259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_LO); 543259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HI); 544259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HA); 545259698Sdim default: 546259698Sdim break; 547259698Sdim } 548259698Sdim break; 549259698Sdim case ELF::EM_PPC64: 550259698Sdim switch (Type) { 551259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_NONE); 552259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR32); 553259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR24); 554259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16); 555259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO); 556259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HI); 557259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HA); 558259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14); 559259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRTAKEN); 560259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRNTAKEN); 561259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL24); 562259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14); 563259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRTAKEN); 564259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRNTAKEN); 565259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16); 566259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO); 567259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HI); 568259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HA); 569259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL32); 570259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR64); 571259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHER); 572259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHERA); 573259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHEST); 574259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHESTA); 575259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL64); 576259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16); 577259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO); 578259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HI); 579259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HA); 580259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC); 581259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_DS); 582259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO_DS); 583259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_DS); 584259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO_DS); 585259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_DS); 586259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO_DS); 587259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLS); 588259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPMOD64); 589259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16); 590259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO); 591259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HI); 592259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HA); 593259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL64); 594259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16); 595259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO); 596259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HI); 597259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HA); 598259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL64); 599259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16); 600259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_LO); 601259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HI); 602259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HA); 603259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16); 604259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_LO); 605259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HI); 606259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HA); 607259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_DS); 608259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_LO_DS); 609259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HI); 610259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HA); 611259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_DS); 612259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_LO_DS); 613259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HI); 614259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HA); 615259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_DS); 616259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO_DS); 617259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHER); 618259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHERA); 619259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHEST); 620259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHESTA); 621259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_DS); 622259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO_DS); 623259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHER); 624259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHERA); 625259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHEST); 626259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHESTA); 627259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSGD); 628259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSLD); 629259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16); 630259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_LO); 631259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HI); 632259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HA); 633259698Sdim default: 634259698Sdim break; 635259698Sdim } 636259698Sdim break; 637259698Sdim case ELF::EM_S390: 638259698Sdim switch (Type) { 639259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_NONE); 640259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_8); 641259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_12); 642259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_16); 643259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_32); 644259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32); 645259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT12); 646259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT32); 647259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32); 648259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_COPY); 649259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GLOB_DAT); 650259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_JMP_SLOT); 651259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_RELATIVE); 652259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF); 653259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPC); 654259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT16); 655259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16); 656259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16DBL); 657259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT16DBL); 658259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32DBL); 659259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32DBL); 660259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPCDBL); 661259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_64); 662259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC64); 663259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT64); 664259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT64); 665259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTENT); 666259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF16); 667259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF64); 668259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT12); 669259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT16); 670259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT32); 671259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT64); 672259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLTENT); 673259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF16); 674259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF32); 675259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF64); 676259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LOAD); 677259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GDCALL); 678259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDCALL); 679259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD32); 680259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD64); 681259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE12); 682259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE32); 683259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE64); 684259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM32); 685259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM64); 686259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE32); 687259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE64); 688259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IEENT); 689259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE32); 690259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE64); 691259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO32); 692259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO64); 693259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPMOD); 694259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPOFF); 695259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_TPOFF); 696259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_20); 697259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT20); 698259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT20); 699259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE20); 700259698Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_IRELATIVE); 701259698Sdim default: 702259698Sdim break; 703259698Sdim } 704259698Sdim break; 705263763Sdim case ELF::EM_SPARC: 706263763Sdim case ELF::EM_SPARC32PLUS: 707263763Sdim case ELF::EM_SPARCV9: 708263763Sdim switch (Type) { 709263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_NONE); 710263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_8); 711263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_16); 712263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_32); 713263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP8); 714263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP16); 715263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP32); 716263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP30); 717263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP22); 718263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HI22); 719263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_22); 720263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_13); 721263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LO10); 722263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT10); 723263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT13); 724263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT22); 725263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC10); 726263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC22); 727263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WPLT30); 728263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_COPY); 729263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GLOB_DAT); 730263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_JMP_SLOT); 731263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_RELATIVE); 732263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA32); 733263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT32); 734263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIPLT22); 735263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOPLT10); 736263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT32); 737263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT22); 738263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT10); 739263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_10); 740263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_11); 741263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_64); 742263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_OLO10); 743263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HH22); 744263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HM10); 745263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LM22); 746263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HH22); 747263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HM10); 748263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_LM22); 749263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP16); 750263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP19); 751263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_7); 752263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_5); 753263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_6); 754263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP64); 755263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT64); 756263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIX22); 757263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOX10); 758263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_H44); 759263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_M44); 760263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_L44); 761263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_REGISTER); 762263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA64); 763263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA16); 764263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_HI22); 765263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_LO10); 766263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_ADD); 767263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_CALL); 768263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_HI22); 769263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_LO10); 770263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_ADD); 771263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_CALL); 772263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_HIX22); 773263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_LOX10); 774263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_ADD); 775263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_HI22); 776263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LO10); 777263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LD); 778263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LDX); 779263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_ADD); 780263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_HIX22); 781263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_LOX10); 782263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD32); 783263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD64); 784263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF32); 785263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF64); 786263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF32); 787263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF64); 788263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_HIX22); 789263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_LOX22); 790263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_HIX22); 791263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_LOX22); 792263763Sdim LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP); 793263763Sdim default: 794263763Sdim break; 795263763Sdim } 796263763Sdim break; 797259698Sdim default: 798259698Sdim break; 799259698Sdim } 800259698Sdim return "Unknown"; 801259698Sdim} 802259698Sdim 803259698Sdim#undef LLVM_ELF_SWITCH_RELOC_TYPE_NAME 804259698Sdim 805259698Sdim} // end namespace object 806259698Sdim} // end namespace llvm 807