rizin/librz/arch/isa/arm/arm_dwarf_regnum_table.h
wargio d47ceedbd3 Merge rz_asm and rz_analysis into one library but keep deprecated apis.
The tms320c64x has been merged into tms320.
2024-03-07 18:38:49 +08:00

276 lines
5.1 KiB
C

// SPDX-FileCopyrightText: 2012-2020 houndthe <cgkajm@gmail.com>
// SPDX-FileCopyrightText: 2024 Billow <billow.fun@gmail.com>
// SPDX-License-Identifier: LGPL-3.0-only
/// 4.1 https://github.com/ARM-software/abi-aa/blob/2982a9f3b512a5bfdc9e3fea5d3b298f9165c36b/aadwarf32/aadwarf32.rst
static const char *map_dwarf_reg_to_arm32(ut32 reg_num) {
switch (reg_num) {
KASE(0, r0);
KASE(1, r1);
KASE(2, r2);
KASE(3, r3);
KASE(4, r4);
KASE(5, r5);
KASE(6, r6);
KASE(7, r7);
KASE(8, r8);
KASE(9, r9);
KASE(10, r10);
KASE(11, r11);
KASE(12, r12);
KASE(13, r13);
KASE(14, r14);
KASE(15, r15);
/*16-63 None*/
KASE(64, s0);
KASE(65, s1);
KASE(66, s2);
KASE(67, s3);
KASE(68, s4);
KASE(69, s5);
KASE(70, s6);
KASE(71, s7);
KASE(72, s8);
KASE(73, s9);
KASE(74, s10);
KASE(75, s11);
KASE(76, s12);
KASE(77, s13);
KASE(78, s14);
KASE(79, s15);
KASE(80, s16);
KASE(81, s17);
KASE(82, s18);
KASE(83, s19);
KASE(84, s20);
KASE(85, s21);
KASE(86, s22);
KASE(87, s23);
KASE(88, s24);
KASE(89, s25);
KASE(90, s26);
KASE(91, s27);
KASE(92, s28);
KASE(93, s29);
KASE(94, s30);
KASE(95, s31);
KASE(96, f0);
KASE(97, f1);
KASE(98, f2);
KASE(99, f3);
KASE(100, f4);
KASE(101, f5);
KASE(102, f6);
KASE(103, f7);
KASE(104, wCGR0);
KASE(105, wCGR1);
KASE(106, wCGR2);
KASE(107, wCGR3);
KASE(108, wCGR4);
KASE(109, wCGR5);
KASE(110, wCGR6);
KASE(111, wCGR7);
KASE(112, wR0);
KASE(113, wR1);
KASE(114, wR2);
KASE(115, wR3);
KASE(116, wR4);
KASE(117, wR5);
KASE(118, wR6);
KASE(119, wR7);
KASE(120, wR8);
KASE(121, wR9);
KASE(122, wR10);
KASE(123, wR11);
KASE(124, wR12);
KASE(125, wR13);
KASE(126, wR14);
KASE(127, wR15);
KASE(128, SPSR);
KASE(129, SPSR_FIQ);
KASE(130, SPSR_IRQ);
KASE(131, SPSR_ABT);
KASE(132, SPSR_UND);
KASE(133, SPSR_SVC);
/*134-142 None*/
KASE(143, RA_AUTH_CODE);
KASE(144, R8_USR);
KASE(145, R9_USR);
KASE(146, R10_USR);
KASE(147, R11_USR);
KASE(148, R12_USR);
KASE(149, R13_USR);
KASE(150, R14_USR);
KASE(151, R8_FIQ);
KASE(152, R9_FIQ);
KASE(153, R10_FIQ);
KASE(154, R11_FIQ);
KASE(155, R12_FIQ);
KASE(156, R13_FIQ);
KASE(157, R14_FIQ);
KASE(158, R13_IRQ);
KASE(159, R14_IRQ);
KASE(160, R13_ABT);
KASE(161, R14_ABT);
KASE(162, R13_UND);
KASE(163, R14_UND);
KASE(164, R13_SVC);
KASE(165, R14_SVC);
/*166-191 None*/
KASE(192, wC0);
KASE(193, wC1);
KASE(194, wC2);
KASE(195, wC3);
KASE(196, wC4);
KASE(197, wC5);
KASE(198, wC6);
KASE(199, wC7);
/*288-319 None*/
KASE(320, TPIDRURO);
KASE(321, TPIDRURW);
KASE(322, TPIDPR);
KASE(323, HTPIDPR);
/*324-8191 None*/
case 8192: return "Vendor co-processor";
default:
rz_warn_if_reached();
return "unsupported_reg";
}
}
/// 4.1 https://github.com/ARM-software/abi-aa/blob/2982a9f3b512a5bfdc9e3fea5d3b298f9165c36b/aadwarf64/aadwarf64.rst
static const char *map_dwarf_reg_to_arm64(ut32 reg_num) {
switch (reg_num) {
KASE(0, X0);
KASE(1, X1);
KASE(2, X2);
KASE(3, X3);
KASE(4, X4);
KASE(5, X5);
KASE(6, X6);
KASE(7, X7);
KASE(8, X8);
KASE(9, X9);
KASE(10, X10);
KASE(11, X11);
KASE(12, X12);
KASE(13, X13);
KASE(14, X14);
KASE(15, X15);
KASE(16, X16);
KASE(17, X17);
KASE(18, X18);
KASE(19, X19);
KASE(20, X20);
KASE(21, X21);
KASE(22, X22);
KASE(23, X23);
KASE(24, X24);
KASE(25, X25);
KASE(26, X26);
KASE(27, X27);
KASE(28, X28);
KASE(29, X29);
KASE(30, X30);
KASE(31, SP);
KASE(32, PC);
KASE(33, ELR_mode);
KASE(34, RA_SIGN_STATE);
KASE(35, TPIDRRO_ELO);
KASE(36, TPIDR_ELO);
KASE(37, TPIDR_EL1);
KASE(38, TPIDR_EL2);
KASE(39, TPIDR_EL3);
case 40:
case 41:
case 42:
case 43:
case 44:
KASE(45, Reserved);
KASE(46, VG);
KASE(47, FFR);
KASE(48, P0);
KASE(49, P1);
KASE(50, P2);
KASE(51, P3);
KASE(52, P4);
KASE(53, P5);
KASE(54, P6);
KASE(55, P7);
KASE(56, P8);
KASE(57, P9);
KASE(58, P10);
KASE(59, P11);
KASE(60, P12);
KASE(61, P13);
KASE(62, P14);
KASE(63, P15);
KASE(64, V0);
KASE(65, V1);
KASE(66, V2);
KASE(67, V3);
KASE(68, V4);
KASE(69, V5);
KASE(70, V6);
KASE(71, V7);
KASE(72, V8);
KASE(73, V9);
KASE(74, V10);
KASE(75, V11);
KASE(76, V12);
KASE(77, V13);
KASE(78, V14);
KASE(79, V15);
KASE(80, V16);
KASE(81, V17);
KASE(82, V18);
KASE(83, V19);
KASE(84, V20);
KASE(85, V21);
KASE(86, V22);
KASE(87, V23);
KASE(88, V24);
KASE(89, V25);
KASE(90, V26);
KASE(91, V27);
KASE(92, V28);
KASE(93, V29);
KASE(94, V30);
KASE(95, V31);
KASE(96, Z0);
KASE(97, Z1);
KASE(98, Z2);
KASE(99, Z3);
KASE(100, Z4);
KASE(101, Z5);
KASE(102, Z6);
KASE(103, Z7);
KASE(104, Z8);
KASE(105, Z9);
KASE(106, Z10);
KASE(107, Z11);
KASE(108, Z12);
KASE(109, Z13);
KASE(110, Z14);
KASE(111, Z15);
KASE(112, Z16);
KASE(113, Z17);
KASE(114, Z18);
KASE(115, Z19);
KASE(116, Z20);
KASE(117, Z21);
KASE(118, Z22);
KASE(119, Z23);
KASE(120, Z24);
KASE(121, Z25);
KASE(122, Z26);
KASE(123, Z27);
KASE(124, Z28);
KASE(125, Z29);
KASE(126, Z30);
KASE(127, Z31);
default:
rz_warn_if_reached();
return "unsupported_reg";
}
}