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