xref: /openbmc/linux/tools/perf/arch/sh/util/dwarf-regs.c (revision 0dd9ac63ce26ec87b080ca9c3e6efed33c23ace6)
1*0dd9ac63SMatt Fleming /*
2*0dd9ac63SMatt Fleming  * Mapping of DWARF debug register numbers into register names.
3*0dd9ac63SMatt Fleming  *
4*0dd9ac63SMatt Fleming  * Copyright (C) 2010 Matt Fleming <matt@console-pimps.org>
5*0dd9ac63SMatt Fleming  *
6*0dd9ac63SMatt Fleming  * This program is free software; you can redistribute it and/or modify
7*0dd9ac63SMatt Fleming  * it under the terms of the GNU General Public License as published by
8*0dd9ac63SMatt Fleming  * the Free Software Foundation; either version 2 of the License, or
9*0dd9ac63SMatt Fleming  * (at your option) any later version.
10*0dd9ac63SMatt Fleming  *
11*0dd9ac63SMatt Fleming  * This program is distributed in the hope that it will be useful,
12*0dd9ac63SMatt Fleming  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*0dd9ac63SMatt Fleming  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*0dd9ac63SMatt Fleming  * GNU General Public License for more details.
15*0dd9ac63SMatt Fleming  *
16*0dd9ac63SMatt Fleming  * You should have received a copy of the GNU General Public License
17*0dd9ac63SMatt Fleming  * along with this program; if not, write to the Free Software
18*0dd9ac63SMatt Fleming  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19*0dd9ac63SMatt Fleming  *
20*0dd9ac63SMatt Fleming  */
21*0dd9ac63SMatt Fleming 
22*0dd9ac63SMatt Fleming #include <libio.h>
23*0dd9ac63SMatt Fleming #include <dwarf-regs.h>
24*0dd9ac63SMatt Fleming 
25*0dd9ac63SMatt Fleming /*
26*0dd9ac63SMatt Fleming  * Generic dwarf analysis helpers
27*0dd9ac63SMatt Fleming  */
28*0dd9ac63SMatt Fleming 
29*0dd9ac63SMatt Fleming #define SH_MAX_REGS 18
30*0dd9ac63SMatt Fleming const char *sh_regs_table[SH_MAX_REGS] = {
31*0dd9ac63SMatt Fleming 	"r0",
32*0dd9ac63SMatt Fleming 	"r1",
33*0dd9ac63SMatt Fleming 	"r2",
34*0dd9ac63SMatt Fleming 	"r3",
35*0dd9ac63SMatt Fleming 	"r4",
36*0dd9ac63SMatt Fleming 	"r5",
37*0dd9ac63SMatt Fleming 	"r6",
38*0dd9ac63SMatt Fleming 	"r7",
39*0dd9ac63SMatt Fleming 	"r8",
40*0dd9ac63SMatt Fleming 	"r9",
41*0dd9ac63SMatt Fleming 	"r10",
42*0dd9ac63SMatt Fleming 	"r11",
43*0dd9ac63SMatt Fleming 	"r12",
44*0dd9ac63SMatt Fleming 	"r13",
45*0dd9ac63SMatt Fleming 	"r14",
46*0dd9ac63SMatt Fleming 	"r15",
47*0dd9ac63SMatt Fleming 	"pc",
48*0dd9ac63SMatt Fleming 	"pr",
49*0dd9ac63SMatt Fleming };
50*0dd9ac63SMatt Fleming 
51*0dd9ac63SMatt Fleming /* Return architecture dependent register string (for kprobe-tracer) */
52*0dd9ac63SMatt Fleming const char *get_arch_regstr(unsigned int n)
53*0dd9ac63SMatt Fleming {
54*0dd9ac63SMatt Fleming 	return (n <= SH_MAX_REGS) ? sh_regs_table[n] : NULL;
55*0dd9ac63SMatt Fleming }
56