Home | History | Annotate | Download | only in Object
      1 //===- ELF.cpp - ELF object file implementation -----------------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #include "llvm/Object/ELF.h"
     11 
     12 namespace llvm {
     13 namespace object {
     14 
     15 #define LLVM_ELF_SWITCH_RELOC_TYPE_NAME(enum)                                  \
     16   case ELF::enum:                                                              \
     17     return #enum;                                                              \
     18 
     19 StringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
     20   switch (Machine) {
     21   case ELF::EM_X86_64:
     22     switch (Type) {
     23       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_NONE);
     24       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_64);
     25       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC32);
     26       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT32);
     27       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLT32);
     28       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_COPY);
     29       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GLOB_DAT);
     30       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_JUMP_SLOT);
     31       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_RELATIVE);
     32       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL);
     33       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32);
     34       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32S);
     35       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_16);
     36       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC16);
     37       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_8);
     38       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC8);
     39       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPMOD64);
     40       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF64);
     41       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF64);
     42       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSGD);
     43       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSLD);
     44       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF32);
     45       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTTPOFF);
     46       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF32);
     47       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC64);
     48       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTOFF64);
     49       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32);
     50       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT64);
     51       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL64);
     52       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC64);
     53       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPLT64);
     54       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLTOFF64);
     55       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE32);
     56       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE64);
     57       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32_TLSDESC);
     58       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC_CALL);
     59       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC);
     60       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_IRELATIVE);
     61     default:
     62       break;
     63     }
     64     break;
     65   case ELF::EM_386:
     66     switch (Type) {
     67       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_NONE);
     68       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32);
     69       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC32);
     70       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOT32);
     71       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PLT32);
     72       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_COPY);
     73       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GLOB_DAT);
     74       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_JUMP_SLOT);
     75       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_RELATIVE);
     76       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTOFF);
     77       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTPC);
     78       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32PLT);
     79       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF);
     80       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE);
     81       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTIE);
     82       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE);
     83       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD);
     84       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM);
     85       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_16);
     86       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC16);
     87       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_8);
     88       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC8);
     89       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_32);
     90       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_PUSH);
     91       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_CALL);
     92       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_POP);
     93       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_32);
     94       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_PUSH);
     95       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_CALL);
     96       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_POP);
     97       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDO_32);
     98       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE_32);
     99       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE_32);
    100       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPMOD32);
    101       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPOFF32);
    102       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF32);
    103       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTDESC);
    104       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC_CALL);
    105       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC);
    106       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_IRELATIVE);
    107     default:
    108       break;
    109     }
    110     break;
    111   case ELF::EM_MIPS:
    112     switch (Type) {
    113       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NONE);
    114       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_16);
    115       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_32);
    116       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL32);
    117       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_26);
    118       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HI16);
    119       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LO16);
    120       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL16);
    121       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LITERAL);
    122       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT16);
    123       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC16);
    124       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL16);
    125       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL32);
    126       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT5);
    127       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT6);
    128       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_64);
    129       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_DISP);
    130       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_PAGE);
    131       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_OFST);
    132       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_HI16);
    133       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_LO16);
    134       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SUB);
    135       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_A);
    136       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_B);
    137       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_DELETE);
    138       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHER);
    139       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHEST);
    140       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_HI16);
    141       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_LO16);
    142       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SCN_DISP);
    143       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL16);
    144       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_ADD_IMMEDIATE);
    145       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PJUMP);
    146       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_RELGOT);
    147       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JALR);
    148       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD32);
    149       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL32);
    150       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD64);
    151       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL64);
    152       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GD);
    153       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_LDM);
    154       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_HI16);
    155       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_LO16);
    156       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GOTTPREL);
    157       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL32);
    158       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL64);
    159       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16);
    160       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16);
    161       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT);
    162       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC21_S2);
    163       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC26_S2);
    164       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC18_S3);
    165       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC19_S2);
    166       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCHI16);
    167       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCLO16);
    168       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_GOT16);
    169       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_HI16);
    170       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_LO16);
    171       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY);
    172       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT);
    173       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_26_S1);
    174       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_HI16);
    175       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_LO16);
    176       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT16);
    177       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_PC16_S1);
    178       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_CALL16);
    179       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_DISP);
    180       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_PAGE);
    181       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_OFST);
    182       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_GD);
    183       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_LDM);
    184       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_HI16);
    185       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_LO16);
    186       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_HI16);
    187       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_LO16);
    188       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NUM);
    189       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC32);
    190     default:
    191       break;
    192     }
    193     break;
    194   case ELF::EM_AARCH64:
    195     switch (Type) {
    196       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_NONE);
    197       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS64);
    198       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS32);
    199       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS16);
    200       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL64);
    201       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL32);
    202       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL16);
    203       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0);
    204       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0_NC);
    205       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1);
    206       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1_NC);
    207       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2);
    208       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2_NC);
    209       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G3);
    210       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G0);
    211       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G1);
    212       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G2);
    213       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD_PREL_LO19);
    214       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_LO21);
    215       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_PG_HI21);
    216       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADD_ABS_LO12_NC);
    217       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST8_ABS_LO12_NC);
    218       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TSTBR14);
    219       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CONDBR19);
    220       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_JUMP26);
    221       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CALL26);
    222       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST16_ABS_LO12_NC);
    223       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST32_ABS_LO12_NC);
    224       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST64_ABS_LO12_NC);
    225       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST128_ABS_LO12_NC);
    226       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_GOT_PAGE);
    227       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD64_GOT_LO12_NC);
    228       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G2);
    229       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1);
    230       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC);
    231       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0);
    232       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC);
    233       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_HI12);
    234       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12);
    235       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC);
    236       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12);
    237       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC);
    238       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12);
    239       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC);
    240       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12);
    241       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC);
    242       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12);
    243       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC);
    244       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1);
    245       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC);
    246       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21);
    247       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC);
    248       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19);
    249       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G2);
    250       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1);
    251       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC);
    252       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0);
    253       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC);
    254       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_HI12);
    255       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12);
    256       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC);
    257       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12);
    258       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC);
    259       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12);
    260       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC);
    261       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12);
    262       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC);
    263       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12);
    264       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC);
    265       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADR_PAGE);
    266       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_LD64_LO12_NC);
    267       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADD_LO12_NC);
    268       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_CALL);
    269     default:
    270       break;
    271     }
    272     break;
    273   case ELF::EM_ARM:
    274     switch (Type) {
    275       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_NONE);
    276       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PC24);
    277       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32);
    278       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32);
    279       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G0);
    280       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS16);
    281       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS12);
    282       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ABS5);
    283       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS8);
    284       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL32);
    285       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_CALL);
    286       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC8);
    287       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BREL_ADJ);
    288       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESC);
    289       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_SWI8);
    290       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_XPC25);
    291       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_XPC22);
    292       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPMOD32);
    293       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPOFF32);
    294       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_TPOFF32);
    295       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_COPY);
    296       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GLOB_DAT);
    297       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP_SLOT);
    298       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_RELATIVE);
    299       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF32);
    300       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_PREL);
    301       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL);
    302       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32);
    303       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_CALL);
    304       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP24);
    305       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP24);
    306       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_ABS);
    307       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_7_0);
    308       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_15_8);
    309       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_23_15);
    310       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SBREL_11_0_NC);
    311       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_19_12_NC);
    312       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_27_20_CK);
    313       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET1);
    314       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL31);
    315       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_V4BX);
    316       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET2);
    317       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PREL31);
    318       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_ABS_NC);
    319       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_ABS);
    320       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_PREL_NC);
    321       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_PREL);
    322       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_ABS_NC);
    323       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_ABS);
    324       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_PREL_NC);
    325       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_PREL);
    326       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP19);
    327       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP6);
    328       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ALU_PREL_11_0);
    329       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC12);
    330       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32_NOI);
    331       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32_NOI);
    332       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0_NC);
    333       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0);
    334       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1_NC);
    335       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1);
    336       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G2);
    337       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G1);
    338       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G2);
    339       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G0);
    340       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G1);
    341       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G2);
    342       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G0);
    343       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G1);
    344       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G2);
    345       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0_NC);
    346       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0);
    347       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1_NC);
    348       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1);
    349       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G2);
    350       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G0);
    351       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G1);
    352       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G2);
    353       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G0);
    354       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G1);
    355       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G2);
    356       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G0);
    357       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G1);
    358       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G2);
    359       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL_NC);
    360       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_BREL);
    361       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL);
    362       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL_NC);
    363       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_BREL);
    364       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL);
    365       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GOTDESC);
    366       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_CALL);
    367       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESCSEQ);
    368       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_CALL);
    369       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32_ABS);
    370       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_ABS);
    371       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_PREL);
    372       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL12);
    373       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF12);
    374       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTRELAX);
    375       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTENTRY);
    376       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTINHERIT);
    377       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP11);
    378       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP8);
    379       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GD32);
    380       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDM32);
    381       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO32);
    382       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE32);
    383       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE32);
    384       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO12);
    385       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE12);
    386       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE12GP);
    387       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_0);
    388       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_1);
    389       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_2);
    390       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_3);
    391       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_4);
    392       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_5);
    393       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_6);
    394       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_7);
    395       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_8);
    396       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_9);
    397       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_10);
    398       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_11);
    399       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_12);
    400       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_13);
    401       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_14);
    402       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_15);
    403       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ME_TOO);
    404       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ16);
    405       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ32);
    406     default:
    407       break;
    408     }
    409     break;
    410   case ELF::EM_HEXAGON:
    411     switch (Type) {
    412       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_NONE);
    413       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL);
    414       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL);
    415       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL);
    416       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_LO16);
    417       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HI16);
    418       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32);
    419       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16);
    420       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8);
    421       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_0);
    422       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_1);
    423       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_2);
    424       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_3);
    425       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HL16);
    426       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL);
    427       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL);
    428       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B32_PCREL_X);
    429       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_6_X);
    430       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL_X);
    431       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL_X);
    432       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL_X);
    433       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL_X);
    434       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL_X);
    435       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16_X);
    436       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_12_X);
    437       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_11_X);
    438       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_10_X);
    439       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_9_X);
    440       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8_X);
    441       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_7_X);
    442       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_X);
    443       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_PCREL);
    444       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_COPY);
    445       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GLOB_DAT);
    446       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_JMP_SLOT);
    447       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_RELATIVE);
    448       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_PLT_B22_PCREL);
    449       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_LO16);
    450       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_HI16);
    451       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32);
    452       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_LO16);
    453       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_HI16);
    454       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32);
    455       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16);
    456       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPMOD_32);
    457       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_LO16);
    458       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_HI16);
    459       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32);
    460       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16);
    461       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_PLT_B22_PCREL);
    462       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_LO16);
    463       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_HI16);
    464       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32);
    465       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16);
    466       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_LO16);
    467       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_HI16);
    468       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32);
    469       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_LO16);
    470       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_HI16);
    471       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32);
    472       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16);
    473       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_LO16);
    474       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_HI16);
    475       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32);
    476       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16);
    477       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_PCREL_X);
    478       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32_6_X);
    479       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_16_X);
    480       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_11_X);
    481       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32_6_X);
    482       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16_X);
    483       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_11_X);
    484       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32_6_X);
    485       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16_X);
    486       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_11_X);
    487       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32_6_X);
    488       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16_X);
    489       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_11_X);
    490       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32_6_X);
    491       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_16_X);
    492       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32_6_X);
    493       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16_X);
    494       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_11_X);
    495       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32_6_X);
    496       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16_X);
    497       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_11_X);
    498     default:
    499       break;
    500     }
    501     break;
    502   case ELF::EM_PPC:
    503     switch (Type) {
    504       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_NONE);
    505       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR32);
    506       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR24);
    507       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16);
    508       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_LO);
    509       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HI);
    510       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HA);
    511       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14);
    512       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRTAKEN);
    513       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRNTAKEN);
    514       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL24);
    515       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14);
    516       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRTAKEN);
    517       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRNTAKEN);
    518       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16);
    519       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_LO);
    520       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HI);
    521       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HA);
    522       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL32);
    523       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLS);
    524       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPMOD32);
    525       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16);
    526       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_LO);
    527       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HI);
    528       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HA);
    529       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL32);
    530       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16);
    531       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_LO);
    532       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HI);
    533       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HA);
    534       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL32);
    535       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16);
    536       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_LO);
    537       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HI);
    538       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HA);
    539       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16);
    540       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_LO);
    541       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HI);
    542       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HA);
    543       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16);
    544       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_LO);
    545       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HI);
    546       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HA);
    547       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16);
    548       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_LO);
    549       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HI);
    550       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HA);
    551       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSGD);
    552       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSLD);
    553       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16);
    554       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_LO);
    555       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HI);
    556       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HA);
    557     default:
    558       break;
    559     }
    560     break;
    561   case ELF::EM_PPC64:
    562     switch (Type) {
    563       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_NONE);
    564       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR32);
    565       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR24);
    566       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16);
    567       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO);
    568       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HI);
    569       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HA);
    570       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14);
    571       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRTAKEN);
    572       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRNTAKEN);
    573       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL24);
    574       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14);
    575       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRTAKEN);
    576       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRNTAKEN);
    577       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16);
    578       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO);
    579       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HI);
    580       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HA);
    581       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL32);
    582       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR64);
    583       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHER);
    584       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHERA);
    585       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHEST);
    586       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHESTA);
    587       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL64);
    588       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16);
    589       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO);
    590       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HI);
    591       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HA);
    592       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC);
    593       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_DS);
    594       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO_DS);
    595       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_DS);
    596       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO_DS);
    597       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_DS);
    598       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO_DS);
    599       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLS);
    600       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPMOD64);
    601       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16);
    602       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO);
    603       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HI);
    604       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HA);
    605       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL64);
    606       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16);
    607       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO);
    608       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HI);
    609       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HA);
    610       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL64);
    611       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16);
    612       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_LO);
    613       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HI);
    614       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HA);
    615       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16);
    616       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_LO);
    617       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HI);
    618       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HA);
    619       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_DS);
    620       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_LO_DS);
    621       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HI);
    622       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HA);
    623       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_DS);
    624       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_LO_DS);
    625       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HI);
    626       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HA);
    627       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_DS);
    628       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO_DS);
    629       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHER);
    630       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHERA);
    631       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHEST);
    632       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHESTA);
    633       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_DS);
    634       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO_DS);
    635       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHER);
    636       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHERA);
    637       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHEST);
    638       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHESTA);
    639       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSGD);
    640       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSLD);
    641       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16);
    642       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_LO);
    643       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HI);
    644       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HA);
    645     default:
    646       break;
    647     }
    648     break;
    649   case ELF::EM_S390:
    650     switch (Type) {
    651       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_NONE);
    652       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_8);
    653       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_12);
    654       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_16);
    655       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_32);
    656       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32);
    657       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT12);
    658       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT32);
    659       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32);
    660       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_COPY);
    661       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GLOB_DAT);
    662       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_JMP_SLOT);
    663       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_RELATIVE);
    664       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF);
    665       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPC);
    666       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT16);
    667       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16);
    668       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16DBL);
    669       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT16DBL);
    670       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32DBL);
    671       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32DBL);
    672       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPCDBL);
    673       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_64);
    674       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC64);
    675       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT64);
    676       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT64);
    677       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTENT);
    678       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF16);
    679       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF64);
    680       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT12);
    681       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT16);
    682       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT32);
    683       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT64);
    684       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLTENT);
    685       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF16);
    686       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF32);
    687       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF64);
    688       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LOAD);
    689       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GDCALL);
    690       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDCALL);
    691       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD32);
    692       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD64);
    693       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE12);
    694       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE32);
    695       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE64);
    696       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM32);
    697       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM64);
    698       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE32);
    699       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE64);
    700       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IEENT);
    701       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE32);
    702       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE64);
    703       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO32);
    704       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO64);
    705       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPMOD);
    706       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPOFF);
    707       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_TPOFF);
    708       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_20);
    709       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT20);
    710       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT20);
    711       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE20);
    712       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_IRELATIVE);
    713     default:
    714       break;
    715     }
    716     break;
    717   case ELF::EM_SPARC:
    718   case ELF::EM_SPARC32PLUS:
    719   case ELF::EM_SPARCV9:
    720     switch (Type) {
    721       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_NONE);
    722       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_8);
    723       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_16);
    724       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_32);
    725       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP8);
    726       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP16);
    727       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP32);
    728       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP30);
    729       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP22);
    730       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HI22);
    731       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_22);
    732       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_13);
    733       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LO10);
    734       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT10);
    735       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT13);
    736       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT22);
    737       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC10);
    738       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC22);
    739       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WPLT30);
    740       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_COPY);
    741       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GLOB_DAT);
    742       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_JMP_SLOT);
    743       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_RELATIVE);
    744       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA32);
    745       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT32);
    746       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIPLT22);
    747       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOPLT10);
    748       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT32);
    749       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT22);
    750       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT10);
    751       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_10);
    752       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_11);
    753       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_64);
    754       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_OLO10);
    755       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HH22);
    756       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HM10);
    757       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LM22);
    758       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HH22);
    759       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HM10);
    760       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_LM22);
    761       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP16);
    762       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP19);
    763       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_7);
    764       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_5);
    765       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_6);
    766       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP64);
    767       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT64);
    768       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIX22);
    769       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOX10);
    770       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_H44);
    771       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_M44);
    772       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_L44);
    773       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_REGISTER);
    774       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA64);
    775       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA16);
    776       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_HI22);
    777       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_LO10);
    778       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_ADD);
    779       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_CALL);
    780       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_HI22);
    781       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_LO10);
    782       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_ADD);
    783       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_CALL);
    784       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_HIX22);
    785       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_LOX10);
    786       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_ADD);
    787       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_HI22);
    788       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LO10);
    789       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LD);
    790       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LDX);
    791       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_ADD);
    792       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_HIX22);
    793       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_LOX10);
    794       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD32);
    795       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD64);
    796       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF32);
    797       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF64);
    798       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF32);
    799       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF64);
    800       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_HIX22);
    801       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_LOX22);
    802       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_HIX22);
    803       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_LOX22);
    804       LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP);
    805     default:
    806       break;
    807     }
    808     break;
    809   default:
    810     break;
    811   }
    812   return "Unknown";
    813 }
    814 
    815 #undef LLVM_ELF_SWITCH_RELOC_TYPE_NAME
    816 
    817 } // end namespace object
    818 } // end namespace llvm
    819