diff options
| -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 | } | ||
