Branch data Line data Source code
1 : : /* Returns a human readable description of an ELF header e_machine value.
2 : : Copyright (C) 2019 Red Hat, Inc.
3 : : This file is part of elfutils.
4 : :
5 : : This file is free software; you can redistribute it and/or modify
6 : : it under the terms of either
7 : :
8 : : * the GNU Lesser General Public License as published by the Free
9 : : Software Foundation; either version 3 of the License, or (at
10 : : your option) any later version
11 : :
12 : : or
13 : :
14 : : * the GNU General Public License as published by the Free
15 : : Software Foundation; either version 2 of the License, or (at
16 : : your option) any later version
17 : :
18 : : or both in parallel, as here.
19 : :
20 : : elfutils is distributed in the hope that it will be useful, but
21 : : WITHOUT ANY WARRANTY; without even the implied warranty of
22 : : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 : : General Public License for more details.
24 : :
25 : : You should have received copies of the GNU General Public License and
26 : : the GNU Lesser General Public License along with this program. If
27 : : not, see <http://www.gnu.org/licenses/>. */
28 : :
29 : : #ifdef HAVE_CONFIG_H
30 : : # include <config.h>
31 : : #endif
32 : :
33 : : #include "libdwelf.h"
34 : :
35 : :
36 : : const char *
37 : 556 : dwelf_elf_e_machine_string (int machine)
38 : : {
39 [ + + + + : 556 : switch (machine)
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
- + ]
40 : : {
41 : : case EM_NONE:
42 : : return "None";
43 : 2 : case EM_M32:
44 : 2 : return "WE32100";
45 : 2 : case EM_SPARC:
46 : 2 : return "SPARC";
47 : 34 : case EM_386:
48 : 34 : return "Intel 80386";
49 : 2 : case EM_68K:
50 : 2 : return "M68K";
51 : 2 : case EM_88K:
52 : 2 : return "M88K";
53 : 2 : case EM_IAMCU:
54 : 2 : return "Intel MCU";
55 : 2 : case EM_860:
56 : 2 : return "Intel 80860";
57 : : case EM_MIPS:
58 : : return "MIPS R3000";
59 : 2 : case EM_S370:
60 : 2 : return "IBM System/370";
61 : : case EM_MIPS_RS3_LE:
62 : : return "MIPS R3000";
63 : 2 : case EM_PARISC:
64 : 2 : return "HPPA";
65 : 2 : case EM_VPP500:
66 : 2 : return "Fujitsu VPP500";
67 : 2 : case EM_SPARC32PLUS:
68 : 2 : return "SPARC v8+";
69 : 2 : case EM_960:
70 : 2 : return "Intel 80960";
71 : 2 : case EM_PPC:
72 : 2 : return "PowerPC";
73 : 2 : case EM_PPC64:
74 : 2 : return "PowerPC64";
75 : 2 : case EM_S390:
76 : 2 : return "IBM S/390";
77 : 2 : case EM_SPU:
78 : 2 : return "IBM SPU/SPC";
79 : 2 : case EM_V800:
80 : 2 : return "NEC V800";
81 : 2 : case EM_FR20:
82 : 2 : return "Fujitsu FR20";
83 : 2 : case EM_RH32:
84 : 2 : return "TRW RH-32";
85 : 2 : case EM_RCE:
86 : 2 : return "Motorola RCE";
87 : 4 : case EM_ARM:
88 : 4 : return "ARM";
89 : 2 : case EM_FAKE_ALPHA:
90 : 2 : return "Digital Alpha";
91 : 2 : case EM_SH:
92 : 2 : return "SH";
93 : 2 : case EM_SPARCV9:
94 : 2 : return "SPARC v9";
95 : 2 : case EM_TRICORE:
96 : 2 : return "Siemens Tricore";
97 : 2 : case EM_ARC:
98 : 2 : return "ARC";
99 : 2 : case EM_H8_300:
100 : 2 : return "H8/300";
101 : 2 : case EM_H8_300H:
102 : 2 : return "H8/300H";
103 : 2 : case EM_H8S:
104 : 2 : return "H8S";
105 : 2 : case EM_H8_500:
106 : 2 : return "H8/500";
107 : 2 : case EM_IA_64:
108 : 2 : return "Intel IA-64";
109 : 2 : case EM_MIPS_X:
110 : 2 : return "Stanford MIPS-X";
111 : 2 : case EM_COLDFIRE:
112 : 2 : return "Motorola Coldfire";
113 : 2 : case EM_68HC12:
114 : 2 : return "Motorola M68HC12";
115 : 2 : case EM_MMA:
116 : 2 : return "Fujitsu MMA Multimedia Accelerator";
117 : 2 : case EM_PCP:
118 : 2 : return "Siemens PCP";
119 : 2 : case EM_NCPU:
120 : 2 : return "Sony nCPU embedded RISC";
121 : 2 : case EM_NDR1:
122 : 2 : return "Denso NDR1 microprocessor";
123 : 2 : case EM_STARCORE:
124 : 2 : return "Motorola Star*Core processor";
125 : 2 : case EM_ME16:
126 : 2 : return "Toyota ME16 processor";
127 : 2 : case EM_ST100:
128 : 2 : return "STMicroelectronic ST100";
129 : 2 : case EM_TINYJ:
130 : 2 : return "Advanced Logic Corporation Tinyj";
131 : 158 : case EM_X86_64:
132 : 158 : return "AMD x86-64";
133 : 2 : case EM_PDSP:
134 : 2 : return "Sony DSP Processor";
135 : 2 : case EM_PDP10:
136 : 2 : return "Digital PDP-10";
137 : 2 : case EM_PDP11:
138 : 2 : return "Digital PDP-11";
139 : 2 : case EM_FX66:
140 : 2 : return "Siemens FX66 microcontroller";
141 : 2 : case EM_ST9PLUS:
142 : 2 : return "STMicroelectronics ST9+";
143 : 2 : case EM_ST7:
144 : 2 : return "STMicroelectronics ST7";
145 : 2 : case EM_68HC16:
146 : 2 : return "Motorola MC68HC16 microcontroller";
147 : 2 : case EM_68HC11:
148 : 2 : return "Motorola MC68HC11 microcontroller";
149 : 2 : case EM_68HC08:
150 : 2 : return "Motorola MC68HC08 microcontroller";
151 : 2 : case EM_68HC05:
152 : 2 : return "Motorola MC68HC05 microcontroller";
153 : 2 : case EM_SVX:
154 : 2 : return "Silicon Graphics SVx";
155 : 2 : case EM_ST19:
156 : 2 : return "STMicroelectronics ST19";
157 : 2 : case EM_VAX:
158 : 2 : return "Digital VAX";
159 : 2 : case EM_CRIS:
160 : 2 : return "Axis Communications 32-bit embedded processor";
161 : 2 : case EM_JAVELIN:
162 : 2 : return "Infineon Technologies 32-bit embedded processor";
163 : 2 : case EM_FIREPATH:
164 : 2 : return "Element 14 64-bit DSP Processor";
165 : 2 : case EM_ZSP:
166 : 2 : return "LSI Logic 16-bit DSP Processor";
167 : 2 : case EM_MMIX:
168 : 2 : return "Donald Knuth's educational 64-bit processor";
169 : 2 : case EM_HUANY:
170 : 2 : return "Harvard University machine-independent object";
171 : 2 : case EM_PRISM:
172 : 2 : return "SiTera Prism";
173 : 2 : case EM_AVR:
174 : 2 : return "Atmel AVR 8-bit microcontroller";
175 : 2 : case EM_FR30:
176 : 2 : return "Fujitsu FR30";
177 : 2 : case EM_D10V:
178 : 2 : return "Mitsubishi D10V";
179 : 2 : case EM_D30V:
180 : 2 : return "Mitsubishi D30V";
181 : 2 : case EM_V850:
182 : 2 : return "NEC v850";
183 : 2 : case EM_M32R:
184 : 2 : return "Mitsubishi M32R";
185 : 2 : case EM_MN10300:
186 : 2 : return "Matsushita MN10300";
187 : 2 : case EM_MN10200:
188 : 2 : return "Matsushita MN10200";
189 : 2 : case EM_PJ:
190 : 2 : return "picoJava";
191 : 2 : case EM_OPENRISC:
192 : 2 : return "OpenRISC";
193 : 4 : case EM_ARC_COMPACT:
194 : 4 : return "ARC International ARCompact";
195 : 2 : case EM_XTENSA:
196 : 2 : return "Tensilica Xtensa Architecture";
197 : 2 : case EM_VIDEOCORE:
198 : 2 : return "Alphamosaic VideoCore";
199 : 2 : case EM_TMM_GPP:
200 : 2 : return "Thompson Multimedia General Purpose Processor";
201 : 2 : case EM_NS32K:
202 : 2 : return "National Semiconductor 32000";
203 : 2 : case EM_TPC:
204 : 2 : return "Tenor Network TPC";
205 : 2 : case EM_SNP1K:
206 : 2 : return "Trebia SNP 1000";
207 : 2 : case EM_ST200:
208 : 2 : return "STMicroelectronics ST200";
209 : 2 : case EM_IP2K:
210 : 2 : return "Ubicom IP2xxx";
211 : 2 : case EM_MAX:
212 : 2 : return "MAX processor";
213 : : case EM_CR:
214 : : return "National Semiconductor CompactRISC";
215 : 2 : case EM_F2MC16:
216 : 2 : return "Fujitsu F2MC16";
217 : 2 : case EM_MSP430:
218 : 2 : return "Texas Instruments msp430";
219 : 2 : case EM_BLACKFIN:
220 : 2 : return "Analog Devices Blackfin DSP";
221 : 2 : case EM_SE_C33:
222 : 2 : return "Seiko Epson S1C33";
223 : 2 : case EM_SEP:
224 : 2 : return "Sharp embedded microprocessor";
225 : 2 : case EM_ARCA:
226 : 2 : return "Arca RISC";
227 : 2 : case EM_UNICORE:
228 : 2 : return "Unicore";
229 : 2 : case EM_EXCESS:
230 : 2 : return "eXcess configurable CPU";
231 : 2 : case EM_DXP:
232 : 2 : return "Icera Semiconductor Deep Execution Processor";
233 : 2 : case EM_ALTERA_NIOS2:
234 : 2 : return "Altera Nios II";
235 : 2 : case EM_CRX:
236 : 2 : return "National Semiconductor CompactRISC CRX";
237 : 2 : case EM_XGATE:
238 : 2 : return "Motorola XGATE";
239 : 2 : case EM_C166:
240 : 2 : return "Infineon C16x/XC16x";
241 : 2 : case EM_M16C:
242 : 2 : return "Renesas M16C";
243 : 2 : case EM_DSPIC30F:
244 : 2 : return "Microchip Technology dsPIC30F";
245 : 2 : case EM_CE:
246 : 2 : return "Freescale Communication Engine RISC";
247 : 2 : case EM_M32C:
248 : 2 : return "Renesas M32C";
249 : 2 : case EM_TSK3000:
250 : 2 : return "Altium TSK3000";
251 : 2 : case EM_RS08:
252 : 2 : return "Freescale RS08";
253 : 2 : case EM_SHARC:
254 : 2 : return "Analog Devices SHARC";
255 : 2 : case EM_ECOG2:
256 : 2 : return "Cyan Technology eCOG2";
257 : 2 : case EM_SCORE7:
258 : 2 : return "Sunplus S+core7 RISC";
259 : 2 : case EM_DSP24:
260 : 2 : return "New Japan Radio (NJR) 24-bit DSP";
261 : 2 : case EM_VIDEOCORE3:
262 : 2 : return "Broadcom VideoCore III";
263 : 2 : case EM_LATTICEMICO32:
264 : 2 : return "RISC for Lattice FPGA";
265 : 2 : case EM_SE_C17:
266 : 2 : return "Seiko Epson C17";
267 : 2 : case EM_TI_C6000:
268 : 2 : return "Texas Instruments TMS320C6000 DSP";
269 : 2 : case EM_TI_C2000:
270 : 2 : return "Texas Instruments TMS320C2000 DSP";
271 : 2 : case EM_TI_C5500:
272 : 2 : return "Texas Instruments TMS320C55x DSP";
273 : 2 : case EM_TI_ARP32:
274 : 2 : return "Texas Instruments Application Specific RISC";
275 : 2 : case EM_TI_PRU:
276 : 2 : return "Texas Instruments Programmable Realtime Unit";
277 : 2 : case EM_MMDSP_PLUS:
278 : 2 : return "STMicroelectronics 64bit VLIW DSP";
279 : 2 : case EM_CYPRESS_M8C:
280 : 2 : return "Cypress M8C";
281 : 2 : case EM_R32C:
282 : 2 : return "Renesas R32C";
283 : 2 : case EM_TRIMEDIA:
284 : 2 : return "NXP Semiconductors TriMedia";
285 : 2 : case EM_QDSP6:
286 : 2 : return "QUALCOMM DSP6";
287 : 2 : case EM_8051:
288 : 2 : return "Intel 8051 and variants";
289 : 2 : case EM_STXP7X:
290 : 2 : return "STMicroelectronics STxP7x";
291 : 2 : case EM_NDS32:
292 : 2 : return "Andes Technology compact code size embedded RISC";
293 : 2 : case EM_ECOG1X:
294 : 2 : return "Cyan Technology eCOG1X";
295 : 2 : case EM_MAXQ30:
296 : 2 : return "Dallas Semiconductor MAXQ30";
297 : 2 : case EM_XIMO16:
298 : 2 : return "New Japan Radio (NJR) 16-bit DSP";
299 : 2 : case EM_MANIK:
300 : 2 : return "M2000 Reconfigurable RISC";
301 : 2 : case EM_CRAYNV2:
302 : 2 : return "Cray NV2 vector architecture";
303 : 2 : case EM_RX:
304 : 2 : return "Renesas RX";
305 : 2 : case EM_METAG:
306 : 2 : return "Imagination Technologies META";
307 : 2 : case EM_MCST_ELBRUS:
308 : 2 : return "MCST Elbrus";
309 : 2 : case EM_ECOG16:
310 : 2 : return "Cyan Technology eCOG16";
311 : : case EM_CR16:
312 : : return "National Semiconductor CompactRISC";
313 : 2 : case EM_ETPU:
314 : 2 : return "Freescale Extended Time Processing Unit";
315 : 2 : case EM_SLE9X:
316 : 2 : return "Infineon Technologies SLE9X";
317 : 2 : case EM_L10M:
318 : 2 : return "Intel L10M";
319 : 2 : case EM_K10M:
320 : 2 : return "Intel K10M";
321 : 2 : case EM_AARCH64:
322 : 2 : return "AARCH64";
323 : 2 : case EM_AVR32:
324 : 2 : return "Amtel AVR32";
325 : 2 : case EM_STM8:
326 : 2 : return "STMicroelectronics STM8";
327 : 2 : case EM_TILE64:
328 : 2 : return "Tilera TILE64";
329 : 2 : case EM_TILEPRO:
330 : 2 : return "Tilera TILEPro";
331 : 2 : case EM_MICROBLAZE:
332 : 2 : return "Xilinx MicroBlaze";
333 : 2 : case EM_CUDA:
334 : 2 : return "NVIDIA CUDA";
335 : 2 : case EM_TILEGX:
336 : 2 : return "Tilera TILE-Gx";
337 : 2 : case EM_CLOUDSHIELD:
338 : 2 : return "CloudShield";
339 : 2 : case EM_COREA_1ST:
340 : 2 : return "KIPO-KAIST Core-A 1st gen";
341 : 2 : case EM_COREA_2ND:
342 : 2 : return "KIPO-KAIST Core-A 2nd gen";
343 : 2 : case EM_ARCV2:
344 : 2 : return "Synopsys ARCv2 ISA";
345 : 2 : case EM_OPEN8:
346 : 2 : return "Open8 RISC";
347 : 2 : case EM_RL78:
348 : 2 : return "Renesas RL78";
349 : 2 : case EM_VIDEOCORE5:
350 : 2 : return "Broadcom VideoCore V";
351 : 2 : case EM_78KOR:
352 : 2 : return "Renesas 78KOR";
353 : 2 : case EM_56800EX:
354 : 2 : return "Freescale 56800EX DSC";
355 : 2 : case EM_BA1:
356 : 2 : return "Beyond BA1";
357 : 2 : case EM_BA2:
358 : 2 : return "Beyond BA2";
359 : 2 : case EM_XCORE:
360 : 2 : return "XMOS xCORE";
361 : 2 : case EM_MCHP_PIC:
362 : 2 : return "Microchip 8-bit PIC";
363 : 2 : case EM_INTELGT:
364 : 2 : return "Intel Graphics Technology";
365 : 2 : case EM_KM32:
366 : 2 : return "KM211 KM32";
367 : 2 : case EM_KMX32:
368 : 2 : return "KM211 KMX32";
369 : 2 : case EM_EMX16:
370 : 2 : return "KM211 KMX16";
371 : 2 : case EM_EMX8:
372 : 2 : return "KM211 KMX8";
373 : 2 : case EM_KVARC:
374 : 2 : return "KM211 KVARC";
375 : 2 : case EM_CDP:
376 : 2 : return "Paneve CDP";
377 : 2 : case EM_COGE:
378 : 2 : return "Cognitive Smart Memory Processor";
379 : 2 : case EM_COOL:
380 : 2 : return "Bluechip CoolEngine";
381 : 2 : case EM_NORC:
382 : 2 : return "Nanoradio Optimized RISC";
383 : 2 : case EM_CSR_KALIMBA:
384 : 2 : return "CSR Kalimba";
385 : 2 : case EM_Z80:
386 : 2 : return "Zilog Z80";
387 : 2 : case EM_VISIUM:
388 : 2 : return "CDS VISIUMcore";
389 : 2 : case EM_FT32:
390 : 2 : return "FTDI Chip FT32";
391 : 2 : case EM_MOXIE:
392 : 2 : return "Moxie";
393 : 2 : case EM_AMDGPU:
394 : 2 : return "AMD GPU";
395 : 2 : case EM_RISCV:
396 : 2 : return "RISC-V";
397 : 2 : case EM_BPF:
398 : 2 : return "BPF";
399 : 2 : case EM_CSKY:
400 : 2 : return "C-SKY";
401 : 2 : case EM_LOONGARCH:
402 : 2 : return "LoongArch";
403 : :
404 : 2 : case EM_ALPHA:
405 : 2 : return "Alpha";
406 : :
407 : 0 : default:
408 : 0 : return NULL;
409 : : }
410 : : }
|