LLVM API Documentation

ELF.cpp
Go to the documentation of this file.
00001 //===- ELF.cpp - ELF object file implementation -----------------*- C++ -*-===//
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 
00010 #include "llvm/Object/ELF.h"
00011 
00012 namespace llvm {
00013 namespace object {
00014 
00015 #define LLVM_ELF_SWITCH_RELOC_TYPE_NAME(enum)                                  \
00016   case ELF::enum:                                                              \
00017     return #enum;                                                              \
00018 
00019 StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
00020   switch (Machine) {
00021   case ELF::EM_X86_64:
00022     switch (Type) {
00023       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_NONE);
00024       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_64);
00025       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC32);
00026       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT32);
00027       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLT32);
00028       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_COPY);
00029       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GLOB_DAT);
00030       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_JUMP_SLOT);
00031       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_RELATIVE);
00032       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL);
00033       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32);
00034       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32S);
00035       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_16);
00036       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC16);
00037       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_8);
00038       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC8);
00039       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPMOD64);
00040       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF64);
00041       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF64);
00042       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSGD);
00043       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSLD);
00044       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF32);
00045       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTTPOFF);
00046       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF32);
00047       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC64);
00048       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTOFF64);
00049       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32);
00050       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT64);
00051       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL64);
00052       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC64);
00053       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPLT64);
00054       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLTOFF64);
00055       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE32);
00056       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE64);
00057       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32_TLSDESC);
00058       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC_CALL);
00059       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC);
00060       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_IRELATIVE);
00061     default:
00062       break;
00063     }
00064     break;
00065   case ELF::EM_386:
00066     switch (Type) {
00067       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_NONE);
00068       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32);
00069       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC32);
00070       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOT32);
00071       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PLT32);
00072       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_COPY);
00073       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GLOB_DAT);
00074       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_JUMP_SLOT);
00075       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_RELATIVE);
00076       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTOFF);
00077       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTPC);
00078       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32PLT);
00079       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF);
00080       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE);
00081       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTIE);
00082       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE);
00083       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD);
00084       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM);
00085       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_16);
00086       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC16);
00087       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_8);
00088       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC8);
00089       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_32);
00090       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_PUSH);
00091       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_CALL);
00092       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_POP);
00093       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_32);
00094       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_PUSH);
00095       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_CALL);
00096       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_POP);
00097       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDO_32);
00098       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE_32);
00099       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE_32);
00100       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPMOD32);
00101       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPOFF32);
00102       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF32);
00103       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTDESC);
00104       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC_CALL);
00105       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC);
00106       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_IRELATIVE);
00107     default:
00108       break;
00109     }
00110     break;
00111   case ELF::EM_MIPS:
00112     switch (Type) {
00113       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NONE);
00114       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_16);
00115       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_32);
00116       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL32);
00117       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_26);
00118       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HI16);
00119       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LO16);
00120       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL16);
00121       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LITERAL);
00122       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT16);
00123       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC16);
00124       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL16);
00125       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL32);
00126       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT5);
00127       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT6);
00128       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_64);
00129       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_DISP);
00130       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_PAGE);
00131       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_OFST);
00132       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_HI16);
00133       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_LO16);
00134       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SUB);
00135       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_A);
00136       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_B);
00137       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_DELETE);
00138       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHER);
00139       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHEST);
00140       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_HI16);
00141       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_LO16);
00142       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SCN_DISP);
00143       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL16);
00144       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_ADD_IMMEDIATE);
00145       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PJUMP);
00146       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_RELGOT);
00147       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JALR);
00148       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD32);
00149       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL32);
00150       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD64);
00151       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL64);
00152       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GD);
00153       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_LDM);
00154       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_HI16);
00155       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_LO16);
00156       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GOTTPREL);
00157       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL32);
00158       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL64);
00159       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16);
00160       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16);
00161       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT);
00162       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC21_S2);
00163       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC26_S2);
00164       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC18_S3);
00165       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC19_S2);
00166       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCHI16);
00167       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCLO16);
00168       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_GOT16);
00169       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_HI16);
00170       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_LO16);
00171       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY);
00172       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT);
00173       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_26_S1);
00174       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_HI16);
00175       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_LO16);
00176       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT16);
00177       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_PC16_S1);
00178       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_CALL16);
00179       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_DISP);
00180       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_PAGE);
00181       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_OFST);
00182       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_GD);
00183       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_LDM);
00184       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_HI16);
00185       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_LO16);
00186       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_HI16);
00187       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_LO16);
00188       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NUM);
00189       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC32);
00190     default:
00191       break;
00192     }
00193     break;
00194   case ELF::EM_AARCH64:
00195     switch (Type) {
00196       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_NONE);
00197       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS64);
00198       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS32);
00199       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS16);
00200       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL64);
00201       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL32);
00202       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL16);
00203       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0);
00204       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0_NC);
00205       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1);
00206       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1_NC);
00207       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2);
00208       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2_NC);
00209       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G3);
00210       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G0);
00211       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G1);
00212       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G2);
00213       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD_PREL_LO19);
00214       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_LO21);
00215       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_PG_HI21);
00216       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADD_ABS_LO12_NC);
00217       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST8_ABS_LO12_NC);
00218       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TSTBR14);
00219       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CONDBR19);
00220       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_JUMP26);
00221       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CALL26);
00222       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST16_ABS_LO12_NC);
00223       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST32_ABS_LO12_NC);
00224       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST64_ABS_LO12_NC);
00225       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST128_ABS_LO12_NC);
00226       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_GOTREL64);
00227       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_GOTREL32);
00228       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_GOT_PAGE);
00229       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD64_GOT_LO12_NC);
00230       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G2);
00231       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1);
00232       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC);
00233       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0);
00234       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC);
00235       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_HI12);
00236       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12);
00237       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC);
00238       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12);
00239       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC);
00240       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12);
00241       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC);
00242       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12);
00243       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC);
00244       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12);
00245       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC);
00246       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1);
00247       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC);
00248       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21);
00249       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC);
00250       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19);
00251       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G2);
00252       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1);
00253       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC);
00254       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0);
00255       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC);
00256       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_HI12);
00257       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12);
00258       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC);
00259       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12);
00260       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC);
00261       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12);
00262       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC);
00263       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12);
00264       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC);
00265       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12);
00266       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC);
00267       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADR_PAGE);
00268       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_LD64_LO12_NC);
00269       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADD_LO12_NC);
00270       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_CALL);
00271       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_COPY);
00272       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_GLOB_DAT);
00273       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_JUMP_SLOT);
00274       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_RELATIVE);
00275       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLS_DTPREL64);
00276       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLS_DTPMOD64);
00277       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLS_TPREL64);
00278       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC);
00279       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_IRELATIVE);
00280     default:
00281       break;
00282     }
00283     break;
00284   case ELF::EM_ARM:
00285     switch (Type) {
00286       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_NONE);
00287       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PC24);
00288       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32);
00289       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32);
00290       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G0);
00291       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS16);
00292       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS12);
00293       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ABS5);
00294       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS8);
00295       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL32);
00296       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_CALL);
00297       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC8);
00298       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BREL_ADJ);
00299       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESC);
00300       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_SWI8);
00301       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_XPC25);
00302       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_XPC22);
00303       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPMOD32);
00304       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPOFF32);
00305       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_TPOFF32);
00306       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_COPY);
00307       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GLOB_DAT);
00308       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP_SLOT);
00309       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_RELATIVE);
00310       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF32);
00311       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_PREL);
00312       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL);
00313       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32);
00314       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_CALL);
00315       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP24);
00316       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP24);
00317       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_ABS);
00318       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_7_0);
00319       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_15_8);
00320       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_23_15);
00321       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SBREL_11_0_NC);
00322       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_19_12_NC);
00323       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_27_20_CK);
00324       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET1);
00325       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL31);
00326       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_V4BX);
00327       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET2);
00328       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PREL31);
00329       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_ABS_NC);
00330       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_ABS);
00331       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_PREL_NC);
00332       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_PREL);
00333       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_ABS_NC);
00334       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_ABS);
00335       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_PREL_NC);
00336       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_PREL);
00337       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP19);
00338       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP6);
00339       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ALU_PREL_11_0);
00340       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC12);
00341       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32_NOI);
00342       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32_NOI);
00343       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0_NC);
00344       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0);
00345       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1_NC);
00346       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1);
00347       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G2);
00348       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G1);
00349       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G2);
00350       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G0);
00351       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G1);
00352       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G2);
00353       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G0);
00354       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G1);
00355       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G2);
00356       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0_NC);
00357       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0);
00358       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1_NC);
00359       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1);
00360       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G2);
00361       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G0);
00362       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G1);
00363       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G2);
00364       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G0);
00365       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G1);
00366       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G2);
00367       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G0);
00368       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G1);
00369       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G2);
00370       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL_NC);
00371       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_BREL);
00372       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL);
00373       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL_NC);
00374       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_BREL);
00375       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL);
00376       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GOTDESC);
00377       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_CALL);
00378       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESCSEQ);
00379       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_CALL);
00380       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32_ABS);
00381       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_ABS);
00382       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_PREL);
00383       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL12);
00384       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF12);
00385       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTRELAX);
00386       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTENTRY);
00387       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTINHERIT);
00388       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP11);
00389       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP8);
00390       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GD32);
00391       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDM32);
00392       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO32);
00393       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE32);
00394       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE32);
00395       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO12);
00396       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE12);
00397       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE12GP);
00398       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_0);
00399       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_1);
00400       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_2);
00401       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_3);
00402       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_4);
00403       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_5);
00404       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_6);
00405       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_7);
00406       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_8);
00407       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_9);
00408       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_10);
00409       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_11);
00410       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_12);
00411       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_13);
00412       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_14);
00413       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_15);
00414       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ME_TOO);
00415       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ16);
00416       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ32);
00417     default:
00418       break;
00419     }
00420     break;
00421   case ELF::EM_HEXAGON:
00422     switch (Type) {
00423       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_NONE);
00424       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL);
00425       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL);
00426       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL);
00427       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_LO16);
00428       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HI16);
00429       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32);
00430       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16);
00431       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8);
00432       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_0);
00433       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_1);
00434       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_2);
00435       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_3);
00436       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HL16);
00437       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL);
00438       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL);
00439       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B32_PCREL_X);
00440       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_6_X);
00441       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL_X);
00442       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL_X);
00443       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL_X);
00444       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL_X);
00445       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL_X);
00446       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16_X);
00447       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_12_X);
00448       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_11_X);
00449       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_10_X);
00450       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_9_X);
00451       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8_X);
00452       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_7_X);
00453       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_X);
00454       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_PCREL);
00455       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_COPY);
00456       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GLOB_DAT);
00457       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_JMP_SLOT);
00458       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_RELATIVE);
00459       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_PLT_B22_PCREL);
00460       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_LO16);
00461       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_HI16);
00462       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32);
00463       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_LO16);
00464       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_HI16);
00465       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32);
00466       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16);
00467       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPMOD_32);
00468       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_LO16);
00469       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_HI16);
00470       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32);
00471       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16);
00472       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_PLT_B22_PCREL);
00473       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_LO16);
00474       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_HI16);
00475       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32);
00476       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16);
00477       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_LO16);
00478       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_HI16);
00479       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32);
00480       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_LO16);
00481       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_HI16);
00482       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32);
00483       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16);
00484       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_LO16);
00485       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_HI16);
00486       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32);
00487       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16);
00488       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_PCREL_X);
00489       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32_6_X);
00490       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_16_X);
00491       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_11_X);
00492       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32_6_X);
00493       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16_X);
00494       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_11_X);
00495       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32_6_X);
00496       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16_X);
00497       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_11_X);
00498       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32_6_X);
00499       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16_X);
00500       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_11_X);
00501       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32_6_X);
00502       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_16_X);
00503       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32_6_X);
00504       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16_X);
00505       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_11_X);
00506       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32_6_X);
00507       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16_X);
00508       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_11_X);
00509     default:
00510       break;
00511     }
00512     break;
00513   case ELF::EM_PPC:
00514     switch (Type) {
00515       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_NONE);
00516       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR32);
00517       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR24);
00518       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16);
00519       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_LO);
00520       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HI);
00521       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HA);
00522       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14);
00523       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRTAKEN);
00524       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRNTAKEN);
00525       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL24);
00526       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14);
00527       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRTAKEN);
00528       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRNTAKEN);
00529       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16);
00530       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_LO);
00531       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HI);
00532       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HA);
00533       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_PLTREL24);
00534       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL32);
00535       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLS);
00536       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPMOD32);
00537       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16);
00538       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_LO);
00539       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HI);
00540       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HA);
00541       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL32);
00542       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16);
00543       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_LO);
00544       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HI);
00545       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HA);
00546       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL32);
00547       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16);
00548       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_LO);
00549       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HI);
00550       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HA);
00551       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16);
00552       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_LO);
00553       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HI);
00554       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HA);
00555       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16);
00556       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_LO);
00557       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HI);
00558       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HA);
00559       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16);
00560       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_LO);
00561       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HI);
00562       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HA);
00563       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSGD);
00564       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSLD);
00565       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16);
00566       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_LO);
00567       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HI);
00568       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HA);
00569     default:
00570       break;
00571     }
00572     break;
00573   case ELF::EM_PPC64:
00574     switch (Type) {
00575       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_NONE);
00576       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR32);
00577       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR24);
00578       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16);
00579       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO);
00580       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HI);
00581       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HA);
00582       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14);
00583       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRTAKEN);
00584       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRNTAKEN);
00585       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL24);
00586       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14);
00587       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRTAKEN);
00588       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRNTAKEN);
00589       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16);
00590       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO);
00591       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HI);
00592       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HA);
00593       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL32);
00594       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR64);
00595       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHER);
00596       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHERA);
00597       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHEST);
00598       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHESTA);
00599       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL64);
00600       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16);
00601       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO);
00602       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HI);
00603       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HA);
00604       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC);
00605       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_DS);
00606       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO_DS);
00607       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_DS);
00608       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO_DS);
00609       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_DS);
00610       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO_DS);
00611       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLS);
00612       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPMOD64);
00613       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16);
00614       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO);
00615       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HI);
00616       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HA);
00617       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL64);
00618       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16);
00619       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO);
00620       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HI);
00621       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HA);
00622       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL64);
00623       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16);
00624       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_LO);
00625       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HI);
00626       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HA);
00627       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16);
00628       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_LO);
00629       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HI);
00630       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HA);
00631       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_DS);
00632       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_LO_DS);
00633       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HI);
00634       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HA);
00635       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_DS);
00636       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_LO_DS);
00637       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HI);
00638       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HA);
00639       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_DS);
00640       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO_DS);
00641       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHER);
00642       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHERA);
00643       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHEST);
00644       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHESTA);
00645       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_DS);
00646       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO_DS);
00647       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHER);
00648       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHERA);
00649       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHEST);
00650       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHESTA);
00651       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSGD);
00652       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSLD);
00653       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16);
00654       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_LO);
00655       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HI);
00656       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HA);
00657     default:
00658       break;
00659     }
00660     break;
00661   case ELF::EM_S390:
00662     switch (Type) {
00663       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_NONE);
00664       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_8);
00665       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_12);
00666       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_16);
00667       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_32);
00668       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32);
00669       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT12);
00670       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT32);
00671       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32);
00672       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_COPY);
00673       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GLOB_DAT);
00674       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_JMP_SLOT);
00675       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_RELATIVE);
00676       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF);
00677       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPC);
00678       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT16);
00679       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16);
00680       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16DBL);
00681       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT16DBL);
00682       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32DBL);
00683       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32DBL);
00684       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPCDBL);
00685       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_64);
00686       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC64);
00687       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT64);
00688       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT64);
00689       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTENT);
00690       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF16);
00691       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF64);
00692       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT12);
00693       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT16);
00694       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT32);
00695       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT64);
00696       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLTENT);
00697       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF16);
00698       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF32);
00699       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF64);
00700       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LOAD);
00701       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GDCALL);
00702       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDCALL);
00703       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD32);
00704       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD64);
00705       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE12);
00706       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE32);
00707       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE64);
00708       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM32);
00709       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM64);
00710       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE32);
00711       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE64);
00712       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IEENT);
00713       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE32);
00714       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE64);
00715       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO32);
00716       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO64);
00717       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPMOD);
00718       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPOFF);
00719       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_TPOFF);
00720       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_20);
00721       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT20);
00722       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT20);
00723       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE20);
00724       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_IRELATIVE);
00725     default:
00726       break;
00727     }
00728     break;
00729   case ELF::EM_SPARC:
00730   case ELF::EM_SPARC32PLUS:
00731   case ELF::EM_SPARCV9:
00732     switch (Type) {
00733       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_NONE);
00734       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_8);
00735       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_16);
00736       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_32);
00737       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP8);
00738       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP16);
00739       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP32);
00740       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP30);
00741       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP22);
00742       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HI22);
00743       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_22);
00744       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_13);
00745       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LO10);
00746       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT10);
00747       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT13);
00748       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT22);
00749       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC10);
00750       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC22);
00751       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WPLT30);
00752       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_COPY);
00753       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GLOB_DAT);
00754       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_JMP_SLOT);
00755       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_RELATIVE);
00756       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA32);
00757       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT32);
00758       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIPLT22);
00759       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOPLT10);
00760       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT32);
00761       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT22);
00762       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT10);
00763       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_10);
00764       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_11);
00765       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_64);
00766       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_OLO10);
00767       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HH22);
00768       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HM10);
00769       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LM22);
00770       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HH22);
00771       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HM10);
00772       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_LM22);
00773       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP16);
00774       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP19);
00775       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_7);
00776       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_5);
00777       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_6);
00778       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP64);
00779       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT64);
00780       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIX22);
00781       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOX10);
00782       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_H44);
00783       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_M44);
00784       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_L44);
00785       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_REGISTER);
00786       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA64);
00787       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA16);
00788       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_HI22);
00789       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_LO10);
00790       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_ADD);
00791       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_CALL);
00792       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_HI22);
00793       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_LO10);
00794       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_ADD);
00795       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_CALL);
00796       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_HIX22);
00797       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_LOX10);
00798       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_ADD);
00799       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_HI22);
00800       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LO10);
00801       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LD);
00802       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LDX);
00803       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_ADD);
00804       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_HIX22);
00805       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_LOX10);
00806       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD32);
00807       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD64);
00808       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF32);
00809       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF64);
00810       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF32);
00811       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF64);
00812       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_HIX22);
00813       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_LOX22);
00814       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_HIX22);
00815       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_LOX22);
00816       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP);
00817     default:
00818       break;
00819     }
00820     break;
00821   default:
00822     break;
00823   }
00824   return "Unknown";
00825 }
00826 
00827 #undef LLVM_ELF_SWITCH_RELOC_TYPE_NAME
00828 
00829 } // end namespace object
00830 } // end namespace llvm