1 /*-
2  * Copyright (c) 2009-2015 Kai Wang
3  * Copyright (c) 2016 The FreeBSD Foundation
4  * All rights reserved.
5  *
6  * Portions of this software were developed by Ed Maste under sponsorship
7  * of the FreeBSD Foundation.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28  * SUCH DAMAGE.
29  */
30 
31 #include <libelftc.h>
32 #include <stdio.h>
33 
34 const char *
35 elftc_reloc_type_str(unsigned int mach, unsigned int type)
36 {
37 	static char s_type[32];
38 
39 	switch(mach) {
40 	case EM_386:
41 	case EM_IAMCU:
42 		switch(type) {
43 		case 0: return "R_386_NONE";
44 		case 1: return "R_386_32";
45 		case 2: return "R_386_PC32";
46 		case 3: return "R_386_GOT32";
47 		case 4: return "R_386_PLT32";
48 		case 5: return "R_386_COPY";
49 		case 6: return "R_386_GLOB_DAT";
50 		case 7: return "R_386_JUMP_SLOT";
51 		case 8: return "R_386_RELATIVE";
52 		case 9: return "R_386_GOTOFF";
53 		case 10: return "R_386_GOTPC";
54 		case 11: return "R_386_32PLT"; /* Not in psabi */
55 		case 14: return "R_386_TLS_TPOFF";
56 		case 15: return "R_386_TLS_IE";
57 		case 16: return "R_386_TLS_GOTIE";
58 		case 17: return "R_386_TLS_LE";
59 		case 18: return "R_386_TLS_GD";
60 		case 19: return "R_386_TLS_LDM";
61 		case 20: return "R_386_16";
62 		case 21: return "R_386_PC16";
63 		case 22: return "R_386_8";
64 		case 23: return "R_386_PC8";
65 		case 24: return "R_386_TLS_GD_32";
66 		case 25: return "R_386_TLS_GD_PUSH";
67 		case 26: return "R_386_TLS_GD_CALL";
68 		case 27: return "R_386_TLS_GD_POP";
69 		case 28: return "R_386_TLS_LDM_32";
70 		case 29: return "R_386_TLS_LDM_PUSH";
71 		case 30: return "R_386_TLS_LDM_CALL";
72 		case 31: return "R_386_TLS_LDM_POP";
73 		case 32: return "R_386_TLS_LDO_32";
74 		case 33: return "R_386_TLS_IE_32";
75 		case 34: return "R_386_TLS_LE_32";
76 		case 35: return "R_386_TLS_DTPMOD32";
77 		case 36: return "R_386_TLS_DTPOFF32";
78 		case 37: return "R_386_TLS_TPOFF32";
79 		case 38: return "R_386_SIZE32";
80 		case 39: return "R_386_TLS_GOTDESC";
81 		case 40: return "R_386_TLS_DESC_CALL";
82 		case 41: return "R_386_TLS_DESC";
83 		case 42: return "R_386_IRELATIVE";
84 		case 43: return "R_386_GOT32X";
85 		}
86 		break;
87 	case EM_AARCH64:
88 		switch(type) {
89 		case 0: return "R_AARCH64_NONE";
90 		case 257: return "R_AARCH64_ABS64";
91 		case 258: return "R_AARCH64_ABS32";
92 		case 259: return "R_AARCH64_ABS16";
93 		case 260: return "R_AARCH64_PREL64";
94 		case 261: return "R_AARCH64_PREL32";
95 		case 262: return "R_AARCH64_PREL16";
96 		case 263: return "R_AARCH64_MOVW_UABS_G0";
97 		case 264: return "R_AARCH64_MOVW_UABS_G0_NC";
98 		case 265: return "R_AARCH64_MOVW_UABS_G1";
99 		case 266: return "R_AARCH64_MOVW_UABS_G1_NC";
100 		case 267: return "R_AARCH64_MOVW_UABS_G2";
101 		case 268: return "R_AARCH64_MOVW_UABS_G2_NC";
102 		case 269: return "R_AARCH64_MOVW_UABS_G3";
103 		case 270: return "R_AARCH64_MOVW_SABS_G0";
104 		case 271: return "R_AARCH64_MOVW_SABS_G1";
105 		case 272: return "R_AARCH64_MOVW_SABS_G2";
106 		case 273: return "R_AARCH64_LD_PREL_LO19";
107 		case 274: return "R_AARCH64_ADR_PREL_LO21";
108 		case 275: return "R_AARCH64_ADR_PREL_PG_HI21";
109 		case 276: return "R_AARCH64_ADR_PREL_PG_HI21_NC";
110 		case 277: return "R_AARCH64_ADD_ABS_LO12_NC";
111 		case 278: return "R_AARCH64_LDST8_ABS_LO12_NC";
112 		case 279: return "R_AARCH64_TSTBR14";
113 		case 280: return "R_AARCH64_CONDBR19";
114 		case 282: return "R_AARCH64_JUMP26";
115 		case 283: return "R_AARCH64_CALL26";
116 		case 284: return "R_AARCH64_LDST16_ABS_LO12_NC";
117 		case 285: return "R_AARCH64_LDST32_ABS_LO12_NC";
118 		case 286: return "R_AARCH64_LDST64_ABS_LO12_NC";
119 		case 287: return "R_AARCH64_MOVW_PREL_G0";
120 		case 288: return "R_AARCH64_MOVW_PREL_G0_NC";
121 		case 289: return "R_AARCH64_MOVW_PREL_G1";
122 		case 290: return "R_AARCH64_MOVW_PREL_G1_NC";
123 		case 291: return "R_AARCH64_MOVW_PREL_G2";
124 		case 292: return "R_AARCH64_MOVW_PREL_G2_NC";
125 		case 293: return "R_AARCH64_MOVW_PREL_G3";
126 		case 299: return "R_AARCH64_LDST128_ABS_LO12_NC";
127 		case 300: return "R_AARCH64_MOVW_GOTOFF_G0";
128 		case 301: return "R_AARCH64_MOVW_GOTOFF_G0_NC";
129 		case 302: return "R_AARCH64_MOVW_GOTOFF_G1";
130 		case 303: return "R_AARCH64_MOVW_GOTOFF_G1_NC";
131 		case 304: return "R_AARCH64_MOVW_GOTOFF_G2";
132 		case 305: return "R_AARCH64_MOVW_GOTOFF_G2_NC";
133 		case 306: return "R_AARCH64_MOVW_GOTOFF_G3";
134 		case 307: return "R_AARCH64_GOTREL64";
135 		case 308: return "R_AARCH64_GOTREL32";
136 		case 309: return "R_AARCH64_GOT_LD_PREL19";
137 		case 310: return "R_AARCH64_LD64_GOTOFF_LO15";
138 		case 311: return "R_AARCH64_ADR_GOT_PAGE";
139 		case 312: return "R_AARCH64_LD64_GOT_LO12_NC";
140 		case 313: return "R_AARCH64_LD64_GOTPAGE_LO15";
141 		case 560: return "R_AARCH64_TLSDESC_LD_PREL19";
142 		case 561: return "R_AARCH64_TLSDESC_ADR_PREL21";
143 		case 562: return "R_AARCH64_TLSDESC_ADR_PAGE21";
144 		case 563: return "R_AARCH64_TLSDESC_LD64_LO12";
145 		case 564: return "R_AARCH64_TLSDESC_ADD_LO12";
146 		case 565: return "R_AARCH64_TLSDESC_OFF_G1";
147 		case 566: return "R_AARCH64_TLSDESC_OFF_G0_NC";
148 		case 567: return "R_AARCH64_TLSDESC_LDR";
149 		case 568: return "R_AARCH64_TLSDESC_ADD";
150 		case 569: return "R_AARCH64_TLSDESC_CALL";
151 		case 1024: return "R_AARCH64_COPY";
152 		case 1025: return "R_AARCH64_GLOB_DAT";
153 		case 1026: return "R_AARCH64_JUMP_SLOT";
154 		case 1027: return "R_AARCH64_RELATIVE";
155 		case 1028: return "R_AARCH64_TLS_DTPREL64";
156 		case 1029: return "R_AARCH64_TLS_DTPMOD64";
157 		case 1030: return "R_AARCH64_TLS_TPREL64";
158 		case 1031: return "R_AARCH64_TLSDESC";
159 		case 1032: return "R_AARCH64_IRELATIVE";
160 		}
161 		break;
162 	case EM_ARM:
163 		switch(type) {
164 		case 0: return "R_ARM_NONE";
165 		case 1: return "R_ARM_PC24"; /* Deprecated */
166 		case 2: return "R_ARM_ABS32";
167 		case 3: return "R_ARM_REL32";
168 		case 4: return "R_ARM_LDR_PC_G0"; /* Also R_ARM_PC13 */
169 		case 5: return "R_ARM_ABS16";
170 		case 6: return "R_ARM_ABS12";
171 		case 7: return "R_ARM_THM_ABS5";
172 		case 8: return "R_ARM_ABS8";
173 		case 9: return "R_ARM_SBREL32";
174 		case 10: return "R_ARM_THM_CALL"; /* Also R_ARM_THM_PC22 */
175 		case 11: return "R_ARM_THM_PC8";
176 		case 12: return "R_ARM_BREL_ADJ"; /* Also R_ARM_AMP_VCALL9 */
177 		case 13: return "R_ARM_TLS_DESC"; /* Also R_ARM_SWI24 */
178 		case 14: return "R_ARM_THM_SWI8"; /* Obsolete */
179 		case 15: return "R_ARM_XPC25"; /* Obsolete */
180 		case 16: return "R_ARM_THM_XPC22"; /* Obsolete */
181 		case 17: return "R_ARM_TLS_DTPMOD32";
182 		case 18: return "R_ARM_TLS_DTPOFF32";
183 		case 19: return "R_ARM_TLS_TPOFF32";
184 		case 20: return "R_ARM_COPY";
185 		case 21: return "R_ARM_GLOB_DAT";
186 		case 22: return "R_ARM_JUMP_SLOT";
187 		case 23: return "R_ARM_RELATIVE";
188 		case 24: return "R_ARM_GOTOFF32"; /* Also R_ARM_GOTOFF */
189 		case 25: return "R_ARM_BASE_PREL"; /* GNU R_ARM_GOTPC */
190 		case 26: return "R_ARM_GOT_BREL"; /* GNU R_ARM_GOT32 */
191 		case 27: return "R_ARM_PLT32"; /* Deprecated */
192 		case 28: return "R_ARM_CALL";
193 		case 29: return "R_ARM_JUMP24";
194 		case 30: return "R_ARM_THM_JUMP24";
195 		case 31: return "R_ARM_BASE_ABS";
196 		case 32: return "R_ARM_ALU_PCREL_7_0"; /* Obsolete */
197 		case 33: return "R_ARM_ALU_PCREL_15_8"; /* Obsolete */
198 		case 34: return "R_ARM_ALU_PCREL_23_15"; /* Obsolete */
199 		case 35: return "R_ARM_LDR_SBREL_11_0_NC"; /* Deprecated */
200 		case 36: return "R_ARM_ALU_SBREL_19_12_NC"; /* Deprecated */
201 		case 37: return "R_ARM_ALU_SBREL_27_20_CK"; /* Deprecated */
202 		case 38: return "R_ARM_TARGET1";
203 		case 39: return "R_ARM_SBREL31"; /* Deprecated. */
204 		case 40: return "R_ARM_V4BX";
205 		case 41: return "R_ARM_TARGET2";
206 		case 42: return "R_ARM_PREL31";
207 		case 43: return "R_ARM_MOVW_ABS_NC";
208 		case 44: return "R_ARM_MOVT_ABS";
209 		case 45: return "R_ARM_MOVW_PREL_NC";
210 		case 46: return "R_ARM_MOVT_PREL";
211 		case 47: return "R_ARM_THM_MOVW_ABS_NC";
212 		case 48: return "R_ARM_THM_MOVT_ABS";
213 		case 49: return "R_ARM_THM_MOVW_PREL_NC";
214 		case 50: return "R_ARM_THM_MOVT_PREL";
215 		case 51: return "R_ARM_THM_JUMP19";
216 		case 52: return "R_ARM_THM_JUMP6";
217 		case 53: return "R_ARM_THM_ALU_PREL_11_0";
218 		case 54: return "R_ARM_THM_PC12";
219 		case 55: return "R_ARM_ABS32_NOI";
220 		case 56: return "R_ARM_REL32_NOI";
221 		case 57: return "R_ARM_ALU_PC_G0_NC";
222 		case 58: return "R_ARM_ALU_PC_G0";
223 		case 59: return "R_ARM_ALU_PC_G1_NC";
224 		case 60: return "R_ARM_ALU_PC_G1";
225 		case 61: return "R_ARM_ALU_PC_G2";
226 		case 62: return "R_ARM_LDR_PC_G1";
227 		case 63: return "R_ARM_LDR_PC_G2";
228 		case 64: return "R_ARM_LDRS_PC_G0";
229 		case 65: return "R_ARM_LDRS_PC_G1";
230 		case 66: return "R_ARM_LDRS_PC_G2";
231 		case 67: return "R_ARM_LDC_PC_G0";
232 		case 68: return "R_ARM_LDC_PC_G1";
233 		case 69: return "R_ARM_LDC_PC_G2";
234 		case 70: return "R_ARM_ALU_SB_G0_NC";
235 		case 71: return "R_ARM_ALU_SB_G0";
236 		case 72: return "R_ARM_ALU_SB_G1_NC";
237 		case 73: return "R_ARM_ALU_SB_G1";
238 		case 74: return "R_ARM_ALU_SB_G2";
239 		case 75: return "R_ARM_LDR_SB_G0";
240 		case 76: return "R_ARM_LDR_SB_G1";
241 		case 77: return "R_ARM_LDR_SB_G2";
242 		case 78: return "R_ARM_LDRS_SB_G0";
243 		case 79: return "R_ARM_LDRS_SB_G1";
244 		case 80: return "R_ARM_LDRS_SB_G2";
245 		case 81: return "R_ARM_LDC_SB_G0";
246 		case 82: return "R_ARM_LDC_SB_G1";
247 		case 83: return "R_ARM_LDC_SB_G2";
248 		case 84: return "R_ARM_MOVW_BREL_NC";
249 		case 85: return "R_ARM_MOVT_BREL";
250 		case 86: return "R_ARM_MOVW_BREL";
251 		case 87: return "R_ARM_THM_MOVW_BREL_NC";
252 		case 88: return "R_ARM_THM_MOVT_BREL";
253 		case 89: return "R_ARM_THM_MOVW_BREL";
254 		case 90: return "R_ARM_TLS_GOTDESC";
255 		case 91: return "R_ARM_TLS_CALL";
256 		case 92: return "R_ARM_TLS_DESCSEQ";
257 		case 93: return "R_ARM_THM_TLS_CALL";
258 		case 94: return "R_ARM_PLT32_ABS";
259 		case 95: return "R_ARM_GOT_ABS";
260 		case 96: return "R_ARM_GOT_PREL";
261 		case 97: return "R_ARM_GOT_BREL12";
262 		case 98: return "R_ARM_GOTOFF12";
263 		case 99: return "R_ARM_GOTRELAX";
264 		case 100: return "R_ARM_GNU_VTENTRY";
265 		case 101: return "R_ARM_GNU_VTINHERIT";
266 		case 102: return "R_ARM_THM_JUMP11"; /* Also R_ARM_THM_PC11 */
267 		case 103: return "R_ARM_THM_JUMP8"; /* Also R_ARM_THM_PC9 */
268 		case 104: return "R_ARM_TLS_GD32";
269 		case 105: return "R_ARM_TLS_LDM32";
270 		case 106: return "R_ARM_TLS_LDO32";
271 		case 107: return "R_ARM_TLS_IE32";
272 		case 108: return "R_ARM_TLS_LE32";
273 		case 109: return "R_ARM_TLS_LDO12";
274 		case 110: return "R_ARM_TLS_LE12";
275 		case 111: return "R_ARM_TLS_IE12GP";
276 		/* 112-127 R_ARM_PRIVATE_<n> */
277 		case 128: return "R_ARM_ME_TOO"; /* Obsolete */
278 		case 129: return "R_ARM_THM_TLS_DESCSEQ16";
279 		case 130: return "R_ARM_THM_TLS_DESCSEQ32";
280 		case 131: return "R_ARM_THM_GOT_BREL12";
281 		case 132: return "R_ARM_THM_ALU_ABS_G0_NC";
282 		case 133: return "R_ARM_THM_ALU_ABS_G1_NC";
283 		case 134: return "R_ARM_THM_ALU_ABS_G2_NC";
284 		case 135: return "R_ARM_THM_ALU_ABS_G3";
285 		/* 136-159 Reserved for future allocation. */
286 		case 160: return "R_ARM_IRELATIVE";
287 		/* 161-255 Reserved for future allocation. */
288 		case 249: return "R_ARM_RXPC25";
289 		case 250: return "R_ARM_RSBREL32";
290 		case 251: return "R_ARM_THM_RPC22";
291 		case 252: return "R_ARM_RREL32";
292 		case 253: return "R_ARM_RABS32";
293 		case 254: return "R_ARM_RPC24";
294 		case 255: return "R_ARM_RBASE";
295 		}
296 		break;
297 	case EM_IA_64:
298 		switch(type) {
299 		case 0: return "R_IA_64_NONE";
300 		case 33: return "R_IA_64_IMM14";
301 		case 34: return "R_IA_64_IMM22";
302 		case 35: return "R_IA_64_IMM64";
303 		case 36: return "R_IA_64_DIR32MSB";
304 		case 37: return "R_IA_64_DIR32LSB";
305 		case 38: return "R_IA_64_DIR64MSB";
306 		case 39: return "R_IA_64_DIR64LSB";
307 		case 42: return "R_IA_64_GPREL22";
308 		case 43: return "R_IA_64_GPREL64I";
309 		case 44: return "R_IA_64_GPREL32MSB";
310 		case 45: return "R_IA_64_GPREL32LSB";
311 		case 46: return "R_IA_64_GPREL64MSB";
312 		case 47: return "R_IA_64_GPREL64LSB";
313 		case 50: return "R_IA_64_LTOFF22";
314 		case 51: return "R_IA_64_LTOFF64I";
315 		case 58: return "R_IA_64_PLTOFF22";
316 		case 59: return "R_IA_64_PLTOFF64I";
317 		case 62: return "R_IA_64_PLTOFF64MSB";
318 		case 63: return "R_IA_64_PLTOFF64LSB";
319 		case 67: return "R_IA_64_FPTR64I";
320 		case 68: return "R_IA_64_FPTR32MSB";
321 		case 69: return "R_IA_64_FPTR32LSB";
322 		case 70: return "R_IA_64_FPTR64MSB";
323 		case 71: return "R_IA_64_FPTR64LSB";
324 		case 72: return "R_IA_64_PCREL60B";
325 		case 73: return "R_IA_64_PCREL21B";
326 		case 74: return "R_IA_64_PCREL21M";
327 		case 75: return "R_IA_64_PCREL21F";
328 		case 76: return "R_IA_64_PCREL32MSB";
329 		case 77: return "R_IA_64_PCREL32LSB";
330 		case 78: return "R_IA_64_PCREL64MSB";
331 		case 79: return "R_IA_64_PCREL64LSB";
332 		case 82: return "R_IA_64_LTOFF_FPTR22";
333 		case 83: return "R_IA_64_LTOFF_FPTR64I";
334 		case 84: return "R_IA_64_LTOFF_FPTR32MSB";
335 		case 85: return "R_IA_64_LTOFF_FPTR32LSB";
336 		case 86: return "R_IA_64_LTOFF_FPTR64MSB";
337 		case 87: return "R_IA_64_LTOFF_FPTR64LSB";
338 		case 92: return "R_IA_64_SEGREL32MSB";
339 		case 93: return "R_IA_64_SEGREL32LSB";
340 		case 94: return "R_IA_64_SEGREL64MSB";
341 		case 95: return "R_IA_64_SEGREL64LSB";
342 		case 100: return "R_IA_64_SECREL32MSB";
343 		case 101: return "R_IA_64_SECREL32LSB";
344 		case 102: return "R_IA_64_SECREL64MSB";
345 		case 103: return "R_IA_64_SECREL64LSB";
346 		case 108: return "R_IA_64_REL32MSB";
347 		case 109: return "R_IA_64_REL32LSB";
348 		case 110: return "R_IA_64_REL64MSB";
349 		case 111: return "R_IA_64_REL64LSB";
350 		case 116: return "R_IA_64_LTV32MSB";
351 		case 117: return "R_IA_64_LTV32LSB";
352 		case 118: return "R_IA_64_LTV64MSB";
353 		case 119: return "R_IA_64_LTV64LSB";
354 		case 121: return "R_IA_64_PCREL21BI";
355 		case 122: return "R_IA_64_PCREL22";
356 		case 123: return "R_IA_64_PCREL64I";
357 		case 128: return "R_IA_64_IPLTMSB";
358 		case 129: return "R_IA_64_IPLTLSB";
359 		case 133: return "R_IA_64_SUB";
360 		case 134: return "R_IA_64_LTOFF22X";
361 		case 135: return "R_IA_64_LDXMOV";
362 		case 145: return "R_IA_64_TPREL14";
363 		case 146: return "R_IA_64_TPREL22";
364 		case 147: return "R_IA_64_TPREL64I";
365 		case 150: return "R_IA_64_TPREL64MSB";
366 		case 151: return "R_IA_64_TPREL64LSB";
367 		case 154: return "R_IA_64_LTOFF_TPREL22";
368 		case 166: return "R_IA_64_DTPMOD64MSB";
369 		case 167: return "R_IA_64_DTPMOD64LSB";
370 		case 170: return "R_IA_64_LTOFF_DTPMOD22";
371 		case 177: return "R_IA_64_DTPREL14";
372 		case 178: return "R_IA_64_DTPREL22";
373 		case 179: return "R_IA_64_DTPREL64I";
374 		case 180: return "R_IA_64_DTPREL32MSB";
375 		case 181: return "R_IA_64_DTPREL32LSB";
376 		case 182: return "R_IA_64_DTPREL64MSB";
377 		case 183: return "R_IA_64_DTPREL64LSB";
378 		case 186: return "R_IA_64_LTOFF_DTPREL22";
379 		}
380 		break;
381 	case EM_MIPS:
382 		switch(type) {
383 		case 0: return "R_MIPS_NONE";
384 		case 1: return "R_MIPS_16";
385 		case 2: return "R_MIPS_32";
386 		case 3: return "R_MIPS_REL32";
387 		case 4: return "R_MIPS_26";
388 		case 5: return "R_MIPS_HI16";
389 		case 6: return "R_MIPS_LO16";
390 		case 7: return "R_MIPS_GPREL16";
391 		case 8: return "R_MIPS_LITERAL";
392 		case 9: return "R_MIPS_GOT16";
393 		case 10: return "R_MIPS_PC16";
394 		case 11: return "R_MIPS_CALL16";
395 		case 12: return "R_MIPS_GPREL32";
396 		case 16: return "R_MIPS_SHIFT5";
397 		case 17: return "R_MIPS_SHIFT6";
398 		case 18: return "R_MIPS_64";
399 		case 19: return "R_MIPS_GOT_DISP";
400 		case 20: return "R_MIPS_GOT_PAGE";
401 		case 21: return "R_MIPS_GOT_OFST";
402 		case 22: return "R_MIPS_GOT_HI16";
403 		case 23: return "R_MIPS_GOT_LO16";
404 		case 24: return "R_MIPS_SUB";
405 		case 28: return "R_MIPS_HIGHER";
406 		case 29: return "R_MIPS_HIGHEST";
407 		case 30: return "R_MIPS_CALLHI16";
408 		case 31: return "R_MIPS_CALLLO16";
409 		case 37: return "R_MIPS_JALR";
410 		case 38: return "R_MIPS_TLS_DTPMOD32";
411 		case 39: return "R_MIPS_TLS_DTPREL32";
412 		case 40: return "R_MIPS_TLS_DTPMOD64";
413 		case 41: return "R_MIPS_TLS_DTPREL64";
414 		case 42: return "R_MIPS_TLS_GD";
415 		case 43: return "R_MIPS_TLS_LDM";
416 		case 44: return "R_MIPS_TLS_DTPREL_HI16";
417 		case 45: return "R_MIPS_TLS_DTPREL_LO16";
418 		case 46: return "R_MIPS_TLS_GOTTPREL";
419 		case 47: return "R_MIPS_TLS_TPREL32";
420 		case 48: return "R_MIPS_TLS_TPREL64";
421 		case 49: return "R_MIPS_TLS_TPREL_HI16";
422 		case 50: return "R_MIPS_TLS_TPREL_LO16";
423 		}
424 		break;
425 	case EM_PPC:
426 		switch(type) {
427 		case 0: return "R_PPC_NONE";
428 		case 1: return "R_PPC_ADDR32";
429 		case 2: return "R_PPC_ADDR24";
430 		case 3: return "R_PPC_ADDR16";
431 		case 4: return "R_PPC_ADDR16_LO";
432 		case 5: return "R_PPC_ADDR16_HI";
433 		case 6: return "R_PPC_ADDR16_HA";
434 		case 7: return "R_PPC_ADDR14";
435 		case 8: return "R_PPC_ADDR14_BRTAKEN";
436 		case 9: return "R_PPC_ADDR14_BRNTAKEN";
437 		case 10: return "R_PPC_REL24";
438 		case 11: return "R_PPC_REL14";
439 		case 12: return "R_PPC_REL14_BRTAKEN";
440 		case 13: return "R_PPC_REL14_BRNTAKEN";
441 		case 14: return "R_PPC_GOT16";
442 		case 15: return "R_PPC_GOT16_LO";
443 		case 16: return "R_PPC_GOT16_HI";
444 		case 17: return "R_PPC_GOT16_HA";
445 		case 18: return "R_PPC_PLTREL24";
446 		case 19: return "R_PPC_COPY";
447 		case 20: return "R_PPC_GLOB_DAT";
448 		case 21: return "R_PPC_JMP_SLOT";
449 		case 22: return "R_PPC_RELATIVE";
450 		case 23: return "R_PPC_LOCAL24PC";
451 		case 24: return "R_PPC_UADDR32";
452 		case 25: return "R_PPC_UADDR16";
453 		case 26: return "R_PPC_REL32";
454 		case 27: return "R_PPC_PLT32";
455 		case 28: return "R_PPC_PLTREL32";
456 		case 29: return "R_PPC_PLT16_LO";
457 		case 30: return "R_PPC_PLT16_HI";
458 		case 31: return "R_PPC_PLT16_HA";
459 		case 32: return "R_PPC_SDAREL16";
460 		case 33: return "R_PPC_SECTOFF";
461 		case 34: return "R_PPC_SECTOFF_LO";
462 		case 35: return "R_PPC_SECTOFF_HI";
463 		case 36: return "R_PPC_SECTOFF_HA";
464 		case 67: return "R_PPC_TLS";
465 		case 68: return "R_PPC_DTPMOD32";
466 		case 69: return "R_PPC_TPREL16";
467 		case 70: return "R_PPC_TPREL16_LO";
468 		case 71: return "R_PPC_TPREL16_HI";
469 		case 72: return "R_PPC_TPREL16_HA";
470 		case 73: return "R_PPC_TPREL32";
471 		case 74: return "R_PPC_DTPREL16";
472 		case 75: return "R_PPC_DTPREL16_LO";
473 		case 76: return "R_PPC_DTPREL16_HI";
474 		case 77: return "R_PPC_DTPREL16_HA";
475 		case 78: return "R_PPC_DTPREL32";
476 		case 79: return "R_PPC_GOT_TLSGD16";
477 		case 80: return "R_PPC_GOT_TLSGD16_LO";
478 		case 81: return "R_PPC_GOT_TLSGD16_HI";
479 		case 82: return "R_PPC_GOT_TLSGD16_HA";
480 		case 83: return "R_PPC_GOT_TLSLD16";
481 		case 84: return "R_PPC_GOT_TLSLD16_LO";
482 		case 85: return "R_PPC_GOT_TLSLD16_HI";
483 		case 86: return "R_PPC_GOT_TLSLD16_HA";
484 		case 87: return "R_PPC_GOT_TPREL16";
485 		case 88: return "R_PPC_GOT_TPREL16_LO";
486 		case 89: return "R_PPC_GOT_TPREL16_HI";
487 		case 90: return "R_PPC_GOT_TPREL16_HA";
488 		case 101: return "R_PPC_EMB_NADDR32";
489 		case 102: return "R_PPC_EMB_NADDR16";
490 		case 103: return "R_PPC_EMB_NADDR16_LO";
491 		case 104: return "R_PPC_EMB_NADDR16_HI";
492 		case 105: return "R_PPC_EMB_NADDR16_HA";
493 		case 106: return "R_PPC_EMB_SDAI16";
494 		case 107: return "R_PPC_EMB_SDA2I16";
495 		case 108: return "R_PPC_EMB_SDA2REL";
496 		case 109: return "R_PPC_EMB_SDA21";
497 		case 110: return "R_PPC_EMB_MRKREF";
498 		case 111: return "R_PPC_EMB_RELSEC16";
499 		case 112: return "R_PPC_EMB_RELST_LO";
500 		case 113: return "R_PPC_EMB_RELST_HI";
501 		case 114: return "R_PPC_EMB_RELST_HA";
502 		case 115: return "R_PPC_EMB_BIT_FLD";
503 		case 116: return "R_PPC_EMB_RELSDA";
504 		}
505 		break;
506 	case EM_PPC64:
507 		switch(type) {
508 		case 0: return "R_PPC64_NONE";
509 		case 1: return "R_PPC64_ADDR32";
510 		case 2: return "R_PPC64_ADDR24";
511 		case 3: return "R_PPC64_ADDR16";
512 		case 4: return "R_PPC64_ADDR16_LO";
513 		case 5: return "R_PPC64_ADDR16_HI";
514 		case 6: return "R_PPC64_ADDR16_HA";
515 		case 7: return "R_PPC64_ADDR14";
516 		case 8: return "R_PPC64_ADDR14_BRTAKEN";
517 		case 9: return "R_PPC64_ADDR14_BRNTAKEN";
518 		case 10: return "R_PPC64_REL24";
519 		case 11: return "R_PPC64_REL14";
520 		case 12: return "R_PPC64_REL14_BRTAKEN";
521 		case 13: return "R_PPC64_REL14_BRNTAKEN";
522 		case 14: return "R_PPC64_GOT16";
523 		case 15: return "R_PPC64_GOT16_LO";
524 		case 16: return "R_PPC64_GOT16_HI";
525 		case 17: return "R_PPC64_GOT16_HA";
526 		case 19: return "R_PPC64_COPY";
527 		case 20: return "R_PPC64_GLOB_DAT";
528 		case 21: return "R_PPC64_JMP_SLOT";
529 		case 22: return "R_PPC64_RELATIVE";
530 		case 24: return "R_PPC64_UADDR32";
531 		case 25: return "R_PPC64_UADDR16";
532 		case 26: return "R_PPC64_REL32";
533 		case 27: return "R_PPC64_PLT32";
534 		case 28: return "R_PPC64_PLTREL32";
535 		case 29: return "R_PPC64_PLT16_LO";
536 		case 30: return "R_PPC64_PLT16_HI";
537 		case 31: return "R_PPC64_PLT16_HA";
538 		case 33: return "R_PPC64_SECTOFF";
539 		case 34: return "R_PPC64_SECTOFF_LO";
540 		case 35: return "R_PPC64_SECTOFF_HI";
541 		case 36: return "R_PPC64_SECTOFF_HA";
542 		case 37: return "R_PPC64_ADDR30";
543 		case 38: return "R_PPC64_ADDR64";
544 		case 39: return "R_PPC64_ADDR16_HIGHER";
545 		case 40: return "R_PPC64_ADDR16_HIGHERA";
546 		case 41: return "R_PPC64_ADDR16_HIGHEST";
547 		case 42: return "R_PPC64_ADDR16_HIGHESTA";
548 		case 43: return "R_PPC64_UADDR64";
549 		case 44: return "R_PPC64_REL64";
550 		case 45: return "R_PPC64_PLT64";
551 		case 46: return "R_PPC64_PLTREL64";
552 		case 47: return "R_PPC64_TOC16";
553 		case 48: return "R_PPC64_TOC16_LO";
554 		case 49: return "R_PPC64_TOC16_HI";
555 		case 50: return "R_PPC64_TOC16_HA";
556 		case 51: return "R_PPC64_TOC";
557 		case 52: return "R_PPC64_PLTGOT16";
558 		case 53: return "R_PPC64_PLTGOT16_LO";
559 		case 54: return "R_PPC64_PLTGOT16_HI";
560 		case 55: return "R_PPC64_PLTGOT16_HA";
561 		case 56: return "R_PPC64_ADDR16_DS";
562 		case 57: return "R_PPC64_ADDR16_LO_DS";
563 		case 58: return "R_PPC64_GOT16_DS";
564 		case 59: return "R_PPC64_GOT16_LO_DS";
565 		case 60: return "R_PPC64_PLT16_LO_DS";
566 		case 61: return "R_PPC64_SECTOFF_DS";
567 		case 62: return "R_PPC64_SECTOFF_LO_DS";
568 		case 63: return "R_PPC64_TOC16_DS";
569 		case 64: return "R_PPC64_TOC16_LO_DS";
570 		case 65: return "R_PPC64_PLTGOT16_DS";
571 		case 66: return "R_PPC64_PLTGOT16_LO_DS";
572 		case 67: return "R_PPC64_TLS";
573 		case 68: return "R_PPC64_DTPMOD64";
574 		case 69: return "R_PPC64_TPREL16";
575 		case 70: return "R_PPC64_TPREL16_LO";
576 		case 71: return "R_PPC64_TPREL16_HI";
577 		case 72: return "R_PPC64_TPREL16_HA";
578 		case 73: return "R_PPC64_TPREL64";
579 		case 74: return "R_PPC64_DTPREL16";
580 		case 75: return "R_PPC64_DTPREL16_LO";
581 		case 76: return "R_PPC64_DTPREL16_HI";
582 		case 77: return "R_PPC64_DTPREL16_HA";
583 		case 78: return "R_PPC64_DTPREL64";
584 		case 79: return "R_PPC64_GOT_TLSGD16";
585 		case 80: return "R_PPC64_GOT_TLSGD16_LO";
586 		case 81: return "R_PPC64_GOT_TLSGD16_HI";
587 		case 82: return "R_PPC64_GOT_TLSGD16_HA";
588 		case 83: return "R_PPC64_GOT_TLSLD16";
589 		case 84: return "R_PPC64_GOT_TLSLD16_LO";
590 		case 85: return "R_PPC64_GOT_TLSLD16_HI";
591 		case 86: return "R_PPC64_GOT_TLSLD16_HA";
592 		case 87: return "R_PPC64_GOT_TPREL16_DS";
593 		case 88: return "R_PPC64_GOT_TPREL16_LO_DS";
594 		case 89: return "R_PPC64_GOT_TPREL16_HI";
595 		case 90: return "R_PPC64_GOT_TPREL16_HA";
596 		case 91: return "R_PPC64_GOT_DTPREL16_DS";
597 		case 92: return "R_PPC64_GOT_DTPREL16_LO_DS";
598 		case 93: return "R_PPC64_GOT_DTPREL16_HI";
599 		case 94: return "R_PPC64_GOT_DTPREL16_HA";
600 		case 95: return "R_PPC64_TPREL16_DS";
601 		case 96: return "R_PPC64_TPREL16_LO_DS";
602 		case 97: return "R_PPC64_TPREL16_HIGHER";
603 		case 98: return "R_PPC64_TPREL16_HIGHERA";
604 		case 99: return "R_PPC64_TPREL16_HIGHEST";
605 		case 100: return "R_PPC64_TPREL16_HIGHESTA";
606 		case 101: return "R_PPC64_DTPREL16_DS";
607 		case 102: return "R_PPC64_DTPREL16_LO_DS";
608 		case 103: return "R_PPC64_DTPREL16_HIGHER";
609 		case 104: return "R_PPC64_DTPREL16_HIGHERA";
610 		case 105: return "R_PPC64_DTPREL16_HIGHEST";
611 		case 106: return "R_PPC64_DTPREL16_HIGHESTA";
612 		case 107: return "R_PPC64_TLSGD";
613 		case 108: return "R_PPC64_TLSLD";
614 		case 249: return "R_PPC64_REL16";
615 		case 250: return "R_PPC64_REL16_LO";
616 		case 251: return "R_PPC64_REL16_HI";
617 		case 252: return "R_PPC64_REL16_HA";
618 		}
619 		break;
620 	case EM_RISCV:
621 		switch(type) {
622 		case 0: return "R_RISCV_NONE";
623 		case 1: return "R_RISCV_32";
624 		case 2: return "R_RISCV_64";
625 		case 3: return "R_RISCV_RELATIVE";
626 		case 4: return "R_RISCV_COPY";
627 		case 5: return "R_RISCV_JUMP_SLOT";
628 		case 6: return "R_RISCV_TLS_DTPMOD32";
629 		case 7: return "R_RISCV_TLS_DTPMOD64";
630 		case 8: return "R_RISCV_TLS_DTPREL32";
631 		case 9: return "R_RISCV_TLS_DTPREL64";
632 		case 10: return "R_RISCV_TLS_TPREL32";
633 		case 11: return "R_RISCV_TLS_TPREL64";
634 		case 16: return "R_RISCV_BRANCH";
635 		case 17: return "R_RISCV_JAL";
636 		case 18: return "R_RISCV_CALL";
637 		case 19: return "R_RISCV_CALL_PLT";
638 		case 20: return "R_RISCV_GOT_HI20";
639 		case 21: return "R_RISCV_TLS_GOT_HI20";
640 		case 22: return "R_RISCV_TLS_GD_HI20";
641 		case 23: return "R_RISCV_PCREL_HI20";
642 		case 24: return "R_RISCV_PCREL_LO12_I";
643 		case 25: return "R_RISCV_PCREL_LO12_S";
644 		case 26: return "R_RISCV_HI20";
645 		case 27: return "R_RISCV_LO12_I";
646 		case 28: return "R_RISCV_LO12_S";
647 		case 29: return "R_RISCV_TPREL_HI20";
648 		case 30: return "R_RISCV_TPREL_LO12_I";
649 		case 31: return "R_RISCV_TPREL_LO12_S";
650 		case 32: return "R_RISCV_TPREL_ADD";
651 		case 33: return "R_RISCV_ADD8";
652 		case 34: return "R_RISCV_ADD16";
653 		case 35: return "R_RISCV_ADD32";
654 		case 36: return "R_RISCV_ADD64";
655 		case 37: return "R_RISCV_SUB8";
656 		case 38: return "R_RISCV_SUB16";
657 		case 39: return "R_RISCV_SUB32";
658 		case 40: return "R_RISCV_SUB64";
659 		case 43: return "R_RISCV_ALIGN";
660 		case 44: return "R_RISCV_RVC_BRANCH";
661 		case 45: return "R_RISCV_RVC_JUMP";
662 		case 46: return "R_RISCV_RVC_LUI";
663 		case 51: return "R_RISCV_RELAX";
664 		case 52: return "R_RISCV_SUB6";
665 		case 53: return "R_RISCV_SET6";
666 		case 54: return "R_RISCV_SET8";
667 		case 55: return "R_RISCV_SET16";
668 		case 56: return "R_RISCV_SET32";
669 		case 57: return "R_RISCV_32_PCREL";
670 		case 58: return "R_RISCV_IRELATIVE";
671 		}
672 		break;
673 	case EM_S390:
674 		switch (type) {
675 		case 0: return "R_390_NONE";
676 		case 1: return "R_390_8";
677 		case 2: return "R_390_12";
678 		case 3: return "R_390_16";
679 		case 4: return "R_390_32";
680 		case 5: return "R_390_PC32";
681 		case 6: return "R_390_GOT12";
682 		case 7: return "R_390_GOT32";
683 		case 8: return "R_390_PLT32";
684 		case 9: return "R_390_COPY";
685 		case 10: return "R_390_GLOB_DAT";
686 		case 11: return "R_390_JMP_SLOT";
687 		case 12: return "R_390_RELATIVE";
688 		case 13: return "R_390_GOTOFF";
689 		case 14: return "R_390_GOTPC";
690 		case 15: return "R_390_GOT16";
691 		case 16: return "R_390_PC16";
692 		case 17: return "R_390_PC16DBL";
693 		case 18: return "R_390_PLT16DBL";
694 		case 19: return "R_390_PC32DBL";
695 		case 20: return "R_390_PLT32DBL";
696 		case 21: return "R_390_GOTPCDBL";
697 		case 22: return "R_390_64";
698 		case 23: return "R_390_PC64";
699 		case 24: return "R_390_GOT64";
700 		case 25: return "R_390_PLT64";
701 		case 26: return "R_390_GOTENT";
702 		}
703 		break;
704 	case EM_SPARC:
705 	case EM_SPARCV9:
706 		switch(type) {
707 		case 0: return "R_SPARC_NONE";
708 		case 1: return "R_SPARC_8";
709 		case 2: return "R_SPARC_16";
710 		case 3: return "R_SPARC_32";
711 		case 4: return "R_SPARC_DISP8";
712 		case 5: return "R_SPARC_DISP16";
713 		case 6: return "R_SPARC_DISP32";
714 		case 7: return "R_SPARC_WDISP30";
715 		case 8: return "R_SPARC_WDISP22";
716 		case 9: return "R_SPARC_HI22";
717 		case 10: return "R_SPARC_22";
718 		case 11: return "R_SPARC_13";
719 		case 12: return "R_SPARC_LO10";
720 		case 13: return "R_SPARC_GOT10";
721 		case 14: return "R_SPARC_GOT13";
722 		case 15: return "R_SPARC_GOT22";
723 		case 16: return "R_SPARC_PC10";
724 		case 17: return "R_SPARC_PC22";
725 		case 18: return "R_SPARC_WPLT30";
726 		case 19: return "R_SPARC_COPY";
727 		case 20: return "R_SPARC_GLOB_DAT";
728 		case 21: return "R_SPARC_JMP_SLOT";
729 		case 22: return "R_SPARC_RELATIVE";
730 		case 23: return "R_SPARC_UA32";
731 		case 24: return "R_SPARC_PLT32";
732 		case 25: return "R_SPARC_HIPLT22";
733 		case 26: return "R_SPARC_LOPLT10";
734 		case 27: return "R_SPARC_PCPLT32";
735 		case 28: return "R_SPARC_PCPLT22";
736 		case 29: return "R_SPARC_PCPLT10";
737 		case 30: return "R_SPARC_10";
738 		case 31: return "R_SPARC_11";
739 		case 32: return "R_SPARC_64";
740 		case 33: return "R_SPARC_OLO10";
741 		case 34: return "R_SPARC_HH22";
742 		case 35: return "R_SPARC_HM10";
743 		case 36: return "R_SPARC_LM22";
744 		case 37: return "R_SPARC_PC_HH22";
745 		case 38: return "R_SPARC_PC_HM10";
746 		case 39: return "R_SPARC_PC_LM22";
747 		case 40: return "R_SPARC_WDISP16";
748 		case 41: return "R_SPARC_WDISP19";
749 		case 42: return "R_SPARC_GLOB_JMP";
750 		case 43: return "R_SPARC_7";
751 		case 44: return "R_SPARC_5";
752 		case 45: return "R_SPARC_6";
753 		case 46: return "R_SPARC_DISP64";
754 		case 47: return "R_SPARC_PLT64";
755 		case 48: return "R_SPARC_HIX22";
756 		case 49: return "R_SPARC_LOX10";
757 		case 50: return "R_SPARC_H44";
758 		case 51: return "R_SPARC_M44";
759 		case 52: return "R_SPARC_L44";
760 		case 53: return "R_SPARC_REGISTER";
761 		case 54: return "R_SPARC_UA64";
762 		case 55: return "R_SPARC_UA16";
763 		case 56: return "R_SPARC_TLS_GD_HI22";
764 		case 57: return "R_SPARC_TLS_GD_LO10";
765 		case 58: return "R_SPARC_TLS_GD_ADD";
766 		case 59: return "R_SPARC_TLS_GD_CALL";
767 		case 60: return "R_SPARC_TLS_LDM_HI22";
768 		case 61: return "R_SPARC_TLS_LDM_LO10";
769 		case 62: return "R_SPARC_TLS_LDM_ADD";
770 		case 63: return "R_SPARC_TLS_LDM_CALL";
771 		case 64: return "R_SPARC_TLS_LDO_HIX22";
772 		case 65: return "R_SPARC_TLS_LDO_LOX10";
773 		case 66: return "R_SPARC_TLS_LDO_ADD";
774 		case 67: return "R_SPARC_TLS_IE_HI22";
775 		case 68: return "R_SPARC_TLS_IE_LO10";
776 		case 69: return "R_SPARC_TLS_IE_LD";
777 		case 70: return "R_SPARC_TLS_IE_LDX";
778 		case 71: return "R_SPARC_TLS_IE_ADD";
779 		case 72: return "R_SPARC_TLS_LE_HIX22";
780 		case 73: return "R_SPARC_TLS_LE_LOX10";
781 		case 74: return "R_SPARC_TLS_DTPMOD32";
782 		case 75: return "R_SPARC_TLS_DTPMOD64";
783 		case 76: return "R_SPARC_TLS_DTPOFF32";
784 		case 77: return "R_SPARC_TLS_DTPOFF64";
785 		case 78: return "R_SPARC_TLS_TPOFF32";
786 		case 79: return "R_SPARC_TLS_TPOFF64";
787 		}
788 		break;
789 	case EM_X86_64:
790 		switch(type) {
791 		case 0: return "R_X86_64_NONE";
792 		case 1: return "R_X86_64_64";
793 		case 2: return "R_X86_64_PC32";
794 		case 3: return "R_X86_64_GOT32";
795 		case 4: return "R_X86_64_PLT32";
796 		case 5: return "R_X86_64_COPY";
797 		case 6: return "R_X86_64_GLOB_DAT";
798 		case 7: return "R_X86_64_JUMP_SLOT";
799 		case 8: return "R_X86_64_RELATIVE";
800 		case 9: return "R_X86_64_GOTPCREL";
801 		case 10: return "R_X86_64_32";
802 		case 11: return "R_X86_64_32S";
803 		case 12: return "R_X86_64_16";
804 		case 13: return "R_X86_64_PC16";
805 		case 14: return "R_X86_64_8";
806 		case 15: return "R_X86_64_PC8";
807 		case 16: return "R_X86_64_DTPMOD64";
808 		case 17: return "R_X86_64_DTPOFF64";
809 		case 18: return "R_X86_64_TPOFF64";
810 		case 19: return "R_X86_64_TLSGD";
811 		case 20: return "R_X86_64_TLSLD";
812 		case 21: return "R_X86_64_DTPOFF32";
813 		case 22: return "R_X86_64_GOTTPOFF";
814 		case 23: return "R_X86_64_TPOFF32";
815 		case 24: return "R_X86_64_PC64";
816 		case 25: return "R_X86_64_GOTOFF64";
817 		case 26: return "R_X86_64_GOTPC32";
818 		case 27: return "R_X86_64_GOT64";
819 		case 28: return "R_X86_64_GOTPCREL64";
820 		case 29: return "R_X86_64_GOTPC64";
821 		case 30: return "R_X86_64_GOTPLT64";
822 		case 31: return "R_X86_64_PLTOFF64";
823 		case 32: return "R_X86_64_SIZE32";
824 		case 33: return "R_X86_64_SIZE64";
825 		case 34: return "R_X86_64_GOTPC32_TLSDESC";
826 		case 35: return "R_X86_64_TLSDESC_CALL";
827 		case 36: return "R_X86_64_TLSDESC";
828 		case 37: return "R_X86_64_IRELATIVE";
829 		case 38: return "R_X86_64_RELATIVE64";
830 		case 41: return "R_X86_64_GOTPCRELX";
831 		case 42: return "R_X86_64_REX_GOTPCRELX";
832 		}
833 		break;
834 	}
835 
836 	snprintf(s_type, sizeof(s_type), "<unknown: %#x>", type);
837 	return (s_type);
838 }
839