1081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer//===- ELF.cpp - ELF object file implementation -----------------*- C++ -*-===//
2081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer//
3081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer//                     The LLVM Compiler Infrastructure
4081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer//
5081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer// This file is distributed under the University of Illinois Open Source
6081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer// License. See LICENSE.TXT for details.
7081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer//
8081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer//===----------------------------------------------------------------------===//
9081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer
10081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer#include "llvm/Object/ELF.h"
11081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer
12081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencernamespace llvm {
13081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencernamespace object {
14081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer
15081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer#define LLVM_ELF_SWITCH_RELOC_TYPE_NAME(enum)                                  \
16081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::enum:                                                              \
17081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    return #enum;                                                              \
18081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer
19081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. SpencerStringRef getELFRelocationTypeName(uint32_t Machine, uint32_t Type) {
20081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  switch (Machine) {
21081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_X86_64:
22081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
23081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_NONE);
24081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_64);
25081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC32);
26081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT32);
27081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLT32);
28081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_COPY);
29081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GLOB_DAT);
30081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_JUMP_SLOT);
31081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_RELATIVE);
32081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL);
33081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32);
34081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_32S);
35081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_16);
36081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC16);
37081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_8);
38081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC8);
39081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPMOD64);
40081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF64);
41081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF64);
42081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSGD);
43081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSLD);
44081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_DTPOFF32);
45081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTTPOFF);
46081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TPOFF32);
47081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PC64);
48081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTOFF64);
49081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32);
50081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOT64);
51081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPCREL64);
52081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC64);
53081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPLT64);
54081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_PLTOFF64);
55081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE32);
56081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_SIZE64);
57081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_GOTPC32_TLSDESC);
58081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC_CALL);
59081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_TLSDESC);
60081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_X86_64_IRELATIVE);
61081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
62081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
63081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
64081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
65081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_386:
66081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
67081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_NONE);
68081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32);
69081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC32);
70081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOT32);
71081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PLT32);
72081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_COPY);
73081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GLOB_DAT);
74081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_JUMP_SLOT);
75081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_RELATIVE);
76081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTOFF);
77081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_GOTPC);
78081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_32PLT);
79081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF);
80081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE);
81081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTIE);
82081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE);
83081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD);
84081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM);
85081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_16);
86081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC16);
87081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_8);
88081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_PC8);
89081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_32);
90081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_PUSH);
91081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_CALL);
92081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GD_POP);
93081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_32);
94081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_PUSH);
95081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_CALL);
96081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDM_POP);
97081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LDO_32);
98081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_IE_32);
99081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_LE_32);
100081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPMOD32);
101081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DTPOFF32);
102081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_TPOFF32);
103081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_GOTDESC);
104081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC_CALL);
105081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_TLS_DESC);
106081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_386_IRELATIVE);
107081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
108081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
109081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
110081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
111081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_MIPS:
112081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
113081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NONE);
114081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_16);
115081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_32);
116081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL32);
117081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_26);
118081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HI16);
119081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LO16);
120081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL16);
121081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_LITERAL);
122081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT16);
123081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC16);
124081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL16);
125081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GPREL32);
126081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT5);
127081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SHIFT6);
128081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_64);
129081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_DISP);
130081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_PAGE);
131081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_OFST);
132081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_HI16);
133081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GOT_LO16);
134081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SUB);
135081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_A);
136081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_INSERT_B);
137081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_DELETE);
138081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHER);
139081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_HIGHEST);
140081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_HI16);
141081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_CALL_LO16);
142081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_SCN_DISP);
143081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_REL16);
144081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_ADD_IMMEDIATE);
145081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PJUMP);
146081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_RELGOT);
147081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JALR);
148081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD32);
149081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL32);
150081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPMOD64);
151081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL64);
152081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GD);
153081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_LDM);
154081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_HI16);
155081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_DTPREL_LO16);
156081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_GOTTPREL);
157081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL32);
158081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL64);
159081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_HI16);
160081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_TLS_TPREL_LO16);
161081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_GLOB_DAT);
162dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC21_S2);
163dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC26_S2);
164dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC18_S3);
165dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC19_S2);
166dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCHI16);
167dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PCLO16);
168dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_GOT16);
169dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_HI16);
170dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS16_LO16);
171081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_COPY);
172081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_JUMP_SLOT);
1731aaf43c2a2ec0fd4c8dbfe56558237219c5f8af7Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_26_S1);
1740082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_HI16);
1750082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_LO16);
1760082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT16);
1775c042162beb3c2dd556e00aab84c4278a69cd5b1Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_PC16_S1);
1780082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_CALL16);
1790082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_DISP);
1800082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_PAGE);
1810082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_GOT_OFST);
18236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_GD);
18336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_LDM);
1840082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_HI16);
1850082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_DTPREL_LO16);
1860082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_HI16);
1870082717cb537e2d1424f755a49510fa9f9e67071Zoran Jovanovic      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MICROMIPS_TLS_TPREL_LO16);
188081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_NUM);
189dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_MIPS_PC32);
190081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
191081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
192081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
193081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
194081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_AARCH64:
195081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
196081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_NONE);
197081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS64);
198081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS32);
199081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ABS16);
200081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL64);
201081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL32);
202081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_PREL16);
203081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0);
204081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G0_NC);
205081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1);
206081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G1_NC);
207081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2);
208081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G2_NC);
209081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_UABS_G3);
210081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G0);
211081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G1);
212081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_MOVW_SABS_G2);
213081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD_PREL_LO19);
214081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_LO21);
215081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_PREL_PG_HI21);
216081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADD_ABS_LO12_NC);
217081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST8_ABS_LO12_NC);
218081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TSTBR14);
219081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CONDBR19);
220081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_JUMP26);
221081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_CALL26);
222081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST16_ABS_LO12_NC);
223081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST32_ABS_LO12_NC);
224081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST64_ABS_LO12_NC);
225081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LDST128_ABS_LO12_NC);
226081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_ADR_GOT_PAGE);
227081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_LD64_GOT_LO12_NC);
228081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G2);
229081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1);
230081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC);
231081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0);
232081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC);
233081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_HI12);
234081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12);
235081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC);
236081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12);
237081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC);
238081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12);
239081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC);
240081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12);
241081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC);
242081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12);
243081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC);
244081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G1);
245081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC);
246081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21);
247081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC);
248081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSIE_LD_GOTTPREL_PREL19);
249081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G2);
250081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1);
251081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G1_NC);
252081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0);
253081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_MOVW_TPREL_G0_NC);
254081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_HI12);
255081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12);
256081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_ADD_TPREL_LO12_NC);
257081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12);
258081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC);
259081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12);
260081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC);
261081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12);
262081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC);
263081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12);
264081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC);
265081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADR_PAGE);
266081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_LD64_LO12_NC);
267081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_ADD_LO12_NC);
268081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_AARCH64_TLSDESC_CALL);
269081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
270081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
271081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
272081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
273081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_ARM:
274081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
275081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_NONE);
276081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PC24);
277081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32);
278081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32);
279081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G0);
280081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS16);
281081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS12);
282081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ABS5);
283081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS8);
284081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL32);
285081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_CALL);
286081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC8);
287081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BREL_ADJ);
288081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESC);
289081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_SWI8);
290081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_XPC25);
291081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_XPC22);
292081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPMOD32);
293081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DTPOFF32);
294081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_TPOFF32);
295081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_COPY);
296081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GLOB_DAT);
297081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP_SLOT);
298081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_RELATIVE);
299081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF32);
300081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_PREL);
301081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL);
302081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32);
303081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_CALL);
304081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_JUMP24);
305081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP24);
306081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_BASE_ABS);
307081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_7_0);
308081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_15_8);
309081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PCREL_23_15);
310081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SBREL_11_0_NC);
311081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_19_12_NC);
312081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SBREL_27_20_CK);
313081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET1);
314081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_SBREL31);
315081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_V4BX);
316081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TARGET2);
317081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PREL31);
318081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_ABS_NC);
319081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_ABS);
320081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_PREL_NC);
321081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_PREL);
322081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_ABS_NC);
323081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_ABS);
324081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_PREL_NC);
325081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_PREL);
326081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP19);
327081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP6);
328081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_ALU_PREL_11_0);
329081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_PC12);
330081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ABS32_NOI);
331081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_REL32_NOI);
332081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0_NC);
333081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G0);
334081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1_NC);
335081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G1);
336081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_PC_G2);
337081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G1);
338081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_PC_G2);
339081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G0);
340081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G1);
341081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_PC_G2);
342081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G0);
343081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G1);
344081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_PC_G2);
345081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0_NC);
346081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G0);
347081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1_NC);
348081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G1);
349081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ALU_SB_G2);
350081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G0);
351081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G1);
352081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDR_SB_G2);
353081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G0);
354081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G1);
355081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDRS_SB_G2);
356081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G0);
357081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G1);
358081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_LDC_SB_G2);
359081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL_NC);
360081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVT_BREL);
361081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_MOVW_BREL);
362081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL_NC);
363081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVT_BREL);
364081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_MOVW_BREL);
365081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GOTDESC);
366081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_CALL);
367081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_DESCSEQ);
368081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_CALL);
369081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PLT32_ABS);
370081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_ABS);
371081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_PREL);
372081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOT_BREL12);
373081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTOFF12);
374081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GOTRELAX);
375081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTENTRY);
376081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_GNU_VTINHERIT);
377081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP11);
378081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_JUMP8);
379081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_GD32);
380081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDM32);
381081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO32);
382081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE32);
383081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE32);
384081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LDO12);
385081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_LE12);
386081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_TLS_IE12GP);
387081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_0);
388081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_1);
389081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_2);
390081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_3);
391081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_4);
392081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_5);
393081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_6);
394081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_7);
395081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_8);
396081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_9);
397081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_10);
398081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_11);
399081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_12);
400081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_13);
401081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_14);
402081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_PRIVATE_15);
403081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_ME_TOO);
404081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ16);
405081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_ARM_THM_TLS_DESCSEQ32);
406081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
407081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
408081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
409081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
410081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_HEXAGON:
411081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
412081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_NONE);
413081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL);
414081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL);
415081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL);
416081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_LO16);
417081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HI16);
418081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32);
419081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16);
420081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8);
421081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_0);
422081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_1);
423081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_2);
424081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GPREL16_3);
425081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_HL16);
426081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL);
427081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL);
428081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B32_PCREL_X);
429081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_6_X);
430081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B22_PCREL_X);
431081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B15_PCREL_X);
432081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B13_PCREL_X);
433081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B9_PCREL_X);
434081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_B7_PCREL_X);
435081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_16_X);
436081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_12_X);
437081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_11_X);
438081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_10_X);
439081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_9_X);
440081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_8_X);
441081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_7_X);
442081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_X);
443081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_32_PCREL);
444081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_COPY);
445081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GLOB_DAT);
446081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_JMP_SLOT);
447081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_RELATIVE);
448081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_PLT_B22_PCREL);
449081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_LO16);
450081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_HI16);
451081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32);
452081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_LO16);
453081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_HI16);
454081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32);
455081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16);
456081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPMOD_32);
457081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_LO16);
458081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_HI16);
459081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32);
460081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16);
461081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_PLT_B22_PCREL);
462081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_LO16);
463081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_HI16);
464081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32);
465081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16);
466081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_LO16);
467081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_HI16);
468081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32);
469081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_LO16);
470081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_HI16);
471081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32);
472081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16);
473081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_LO16);
474081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_HI16);
475081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32);
476081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16);
477081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_6_PCREL_X);
478081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_32_6_X);
479081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_16_X);
480081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOTREL_11_X);
481081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_32_6_X);
482081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_16_X);
483081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GOT_11_X);
484081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_32_6_X);
485081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_16_X);
486081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_DTPREL_11_X);
487081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_32_6_X);
488081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_16_X);
489081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_GD_GOT_11_X);
490081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_32_6_X);
491081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_16_X);
492081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_32_6_X);
493081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_16_X);
494081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_IE_GOT_11_X);
495081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_32_6_X);
496081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_16_X);
497081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_HEX_TPREL_11_X);
498081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
499081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
500081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
501081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
502081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_PPC:
503081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
504081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_NONE);
505081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR32);
506081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR24);
507081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16);
508081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_LO);
509081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HI);
510081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR16_HA);
511081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14);
512081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRTAKEN);
513081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_ADDR14_BRNTAKEN);
514081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL24);
515081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14);
516081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRTAKEN);
517081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL14_BRNTAKEN);
518d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16);
519d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_LO);
520d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HI);
521d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT16_HA);
522081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL32);
523d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLS);
524d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPMOD32);
525d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16);
526081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_LO);
527d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HI);
528081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL16_HA);
529d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TPREL32);
530d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16);
531d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_LO);
532d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HI);
533d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL16_HA);
534d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_DTPREL32);
535d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16);
536d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_LO);
537d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HI);
538d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSGD16_HA);
539d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16);
540d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_LO);
541d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HI);
542d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TLSLD16_HA);
543d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16);
544d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_LO);
545d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HI);
546d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_TPREL16_HA);
547d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16);
548d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_LO);
549d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HI);
550d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_GOT_DTPREL16_HA);
551d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSGD);
552d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_TLSLD);
553d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16);
554d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_LO);
555d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HI);
556d25fed9827c60c18707464b911518360a301b8c6Ulrich Weigand      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC_REL16_HA);
557081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
558081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
559081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
560081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
561081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_PPC64:
562081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
563081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_NONE);
564081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR32);
565081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR24);
566081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16);
567081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO);
568081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HI);
569081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HA);
570081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14);
571081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRTAKEN);
572081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR14_BRNTAKEN);
573081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL24);
574081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14);
575081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRTAKEN);
576081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL14_BRNTAKEN);
577f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16);
578f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO);
579f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HI);
580f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_HA);
581081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL32);
582081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR64);
583081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHER);
584f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHERA);
585081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHEST);
586f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_HIGHESTA);
587081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL64);
588081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16);
589081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO);
590f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HI);
591081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_HA);
592081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC);
593081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_DS);
594081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_ADDR16_LO_DS);
595f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_DS);
596f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT16_LO_DS);
597081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_DS);
598081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TOC16_LO_DS);
599081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLS);
600f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPMOD64);
601f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16);
602081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO);
603f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HI);
604081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HA);
605f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL64);
606f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16);
607081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO);
608f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HI);
609081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HA);
610f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL64);
611f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16);
612081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_LO);
613f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HI);
614081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSGD16_HA);
615f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16);
616081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_LO);
617f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HI);
618081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TLSLD16_HA);
619f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_DS);
620081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_LO_DS);
621f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HI);
622081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_TPREL16_HA);
623f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_DS);
624f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_LO_DS);
625f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HI);
626f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_GOT_DTPREL16_HA);
627f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_DS);
628f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_LO_DS);
629f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHER);
630f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHERA);
631f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHEST);
632f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TPREL16_HIGHESTA);
633f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_DS);
634f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_LO_DS);
635f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHER);
636f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHERA);
637f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHEST);
638f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_DTPREL16_HIGHESTA);
639081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSGD);
640081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_TLSLD);
641f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16);
642f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_LO);
643f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HI);
644f5539a356c55126b5d519d0594b424bdcdeab647Michael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_PPC64_REL16_HA);
645081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
646081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
647081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
648081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
649081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  case ELF::EM_S390:
650081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    switch (Type) {
651081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_NONE);
652081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_8);
653081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_12);
654081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_16);
655081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_32);
656081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32);
657081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT12);
658081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT32);
659081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32);
660081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_COPY);
661081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GLOB_DAT);
662081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_JMP_SLOT);
663081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_RELATIVE);
664081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF);
665081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPC);
666081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT16);
667081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16);
668081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC16DBL);
669081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT16DBL);
670081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC32DBL);
671081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT32DBL);
672081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPCDBL);
673081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_64);
674081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PC64);
675081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT64);
676081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLT64);
677081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTENT);
678081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF16);
679081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTOFF64);
680081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT12);
681081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT16);
682081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT32);
683081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT64);
684081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLTENT);
685081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF16);
686081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF32);
687081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_PLTOFF64);
688081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LOAD);
689081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GDCALL);
690081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDCALL);
691081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD32);
692081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GD64);
693081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE12);
694081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE32);
695081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE64);
696081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM32);
697081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDM64);
698081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE32);
699081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IE64);
700081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_IEENT);
701081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE32);
702081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LE64);
703081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO32);
704081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_LDO64);
705081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPMOD);
706081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_DTPOFF);
707081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_TPOFF);
708081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_20);
709081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOT20);
710081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_GOTPLT20);
711081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_TLS_GOTIE20);
712081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_390_IRELATIVE);
713081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    default:
714081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer      break;
715081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    }
716081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
71736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  case ELF::EM_SPARC:
71836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  case ELF::EM_SPARC32PLUS:
71936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  case ELF::EM_SPARCV9:
72036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    switch (Type) {
72136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_NONE);
72236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_8);
72336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_16);
72436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_32);
72536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP8);
72636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP16);
72736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP32);
72836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP30);
72936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP22);
73036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HI22);
73136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_22);
73236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_13);
73336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LO10);
73436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT10);
73536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT13);
73636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOT22);
73736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC10);
73836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC22);
73936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WPLT30);
74036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_COPY);
74136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GLOB_DAT);
74236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_JMP_SLOT);
74336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_RELATIVE);
74436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA32);
74536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT32);
74636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIPLT22);
74736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOPLT10);
74836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT32);
74936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT22);
75036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PCPLT10);
75136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_10);
75236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_11);
75336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_64);
75436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_OLO10);
75536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HH22);
75636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HM10);
75736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LM22);
75836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HH22);
75936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_HM10);
76036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PC_LM22);
76136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP16);
76236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_WDISP19);
76336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_7);
76436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_5);
76536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_6);
76636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_DISP64);
76736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_PLT64);
76836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_HIX22);
76936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_LOX10);
77036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_H44);
77136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_M44);
77236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_L44);
77336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_REGISTER);
77436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA64);
77536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_UA16);
77636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_HI22);
77736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_LO10);
77836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_ADD);
77936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_GD_CALL);
78036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_HI22);
78136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_LO10);
78236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_ADD);
78336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDM_CALL);
78436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_HIX22);
78536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_LOX10);
78636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LDO_ADD);
78736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_HI22);
78836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LO10);
78936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LD);
79036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_LDX);
79136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_IE_ADD);
79236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_HIX22);
79336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_LE_LOX10);
79436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD32);
79536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPMOD64);
79636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF32);
79736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_DTPOFF64);
79836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF32);
79936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_TLS_TPOFF64);
80036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_HIX22);
80136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_LOX22);
80236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_HIX22);
80336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP_LOX22);
80436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      LLVM_ELF_SWITCH_RELOC_TYPE_NAME(R_SPARC_GOTDATA_OP);
80536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    default:
80636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines      break;
80736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    }
80836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines    break;
809081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  default:
810081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer    break;
811081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  }
812081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer  return "Unknown";
813081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer}
814081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer
815081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer#undef LLVM_ELF_SWITCH_RELOC_TYPE_NAME
816081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer
817081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer} // end namespace object
818081a1941b595f6294e4ce678fd61ef56a2ceb51eMichael J. Spencer} // end namespace llvm
819