diff options
author | Matt Fleming <matt@console-pimps.org> | 2010-07-10 11:10:39 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2010-07-12 10:25:10 -0400 |
commit | 0dd9ac63ce26ec87b080ca9c3e6efed33c23ace6 (patch) | |
tree | 5eeb48758ee738a09a06b0e3ea9511885b967ae4 /tools | |
parent | 8bd0e1be25c43a9fbd33a8de06449088879d527a (diff) |
perf tools: Add DWARF register lookup for SH
Implement get_arch_regstr() for SH so that, given a DWARF register number, the
corresponding symbolic name of that register can be looked up.
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Ian Munsie <imunsie@au.ibm.com>
LKML-Reference: <e55812819ad18c2ceca5651ac7698a2af46180d7.1278774279.git.matt@console-pimps.org>
Signed-off-by: Matt Fleming <matt@console-pimps.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/arch/sh/Makefile | 4 | ||||
-rw-r--r-- | tools/perf/arch/sh/util/dwarf-regs.c | 55 |
2 files changed, 59 insertions, 0 deletions
diff --git a/tools/perf/arch/sh/Makefile b/tools/perf/arch/sh/Makefile new file mode 100644 index 000000000000..15130b50dfe3 --- /dev/null +++ b/tools/perf/arch/sh/Makefile | |||
@@ -0,0 +1,4 @@ | |||
1 | ifndef NO_DWARF | ||
2 | PERF_HAVE_DWARF_REGS := 1 | ||
3 | LIB_OBJS += $(OUTPUT)arch/$(ARCH)/util/dwarf-regs.o | ||
4 | endif | ||
diff --git a/tools/perf/arch/sh/util/dwarf-regs.c b/tools/perf/arch/sh/util/dwarf-regs.c new file mode 100644 index 000000000000..a11edb007a6c --- /dev/null +++ b/tools/perf/arch/sh/util/dwarf-regs.c | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * Mapping of DWARF debug register numbers into register names. | ||
3 | * | ||
4 | * Copyright (C) 2010 Matt Fleming <matt@console-pimps.org> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
19 | * | ||
20 | */ | ||
21 | |||
22 | #include <libio.h> | ||
23 | #include <dwarf-regs.h> | ||
24 | |||
25 | /* | ||
26 | * Generic dwarf analysis helpers | ||
27 | */ | ||
28 | |||
29 | #define SH_MAX_REGS 18 | ||
30 | const char *sh_regs_table[SH_MAX_REGS] = { | ||
31 | "r0", | ||
32 | "r1", | ||
33 | "r2", | ||
34 | "r3", | ||
35 | "r4", | ||
36 | "r5", | ||
37 | "r6", | ||
38 | "r7", | ||
39 | "r8", | ||
40 | "r9", | ||
41 | "r10", | ||
42 | "r11", | ||
43 | "r12", | ||
44 | "r13", | ||
45 | "r14", | ||
46 | "r15", | ||
47 | "pc", | ||
48 | "pr", | ||
49 | }; | ||
50 | |||
51 | /* Return architecture dependent register string (for kprobe-tracer) */ | ||
52 | const char *get_arch_regstr(unsigned int n) | ||
53 | { | ||
54 | return (n <= SH_MAX_REGS) ? sh_regs_table[n] : NULL; | ||
55 | } | ||