1 // SPDX-License-Identifier: GPL-2.0 2 // Copyright (C) 2019 Hangzhou C-SKY Microsystems co.,ltd. 3 // Mapping of DWARF debug register numbers into register names. 4 5 #include <stddef.h> 6 #include <dwarf-regs.h> 7 8 #if defined(__CSKYABIV2__) 9 #define CSKY_MAX_REGS 73 10 const char *csky_dwarf_regs_table[CSKY_MAX_REGS] = { 11 /* r0 ~ r8 */ 12 "%a0", "%a1", "%a2", "%a3", "%regs0", "%regs1", "%regs2", "%regs3", 13 /* r9 ~ r15 */ 14 "%regs4", "%regs5", "%regs6", "%regs7", "%regs8", "%regs9", "%sp", 15 "%lr", 16 /* r16 ~ r23 */ 17 "%exregs0", "%exregs1", "%exregs2", "%exregs3", "%exregs4", 18 "%exregs5", "%exregs6", "%exregs7", 19 /* r24 ~ r31 */ 20 "%exregs8", "%exregs9", "%exregs10", "%exregs11", "%exregs12", 21 "%exregs13", "%exregs14", "%tls", 22 "%pc", NULL, NULL, NULL, "%hi", "%lo", NULL, NULL, 23 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 24 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 25 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 26 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 27 "%epc", 28 }; 29 #else 30 #define CSKY_MAX_REGS 57 31 const char *csky_dwarf_regs_table[CSKY_MAX_REGS] = { 32 /* r0 ~ r8 */ 33 "%sp", "%regs9", "%a0", "%a1", "%a2", "%a3", "%regs0", "%regs1", 34 /* r9 ~ r15 */ 35 "%regs2", "%regs3", "%regs4", "%regs5", "%regs6", "%regs7", "%regs8", 36 "%lr", 37 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 38 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 39 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 40 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 41 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 42 "%epc", 43 }; 44 #endif 45 46 const char *get_arch_regstr(unsigned int n) 47 { 48 return (n < CSKY_MAX_REGS) ? csky_dwarf_regs_table[n] : NULL; 49 } 50