diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-07-21 12:28:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-07-21 12:28:50 -0400 |
commit | 95977d0ef23ee37990ce8704dfd6c61eab02a548 (patch) | |
tree | d3bb7133f8f51f8e48c0c74ee28c14deb45fedbe /tools/perf | |
parent | a4ce96ac356e7024a7724ade9d18ba1bdf3c5c06 (diff) | |
parent | f8324e20f8289dffc646d64366332e05eaacab25 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
math-emu: correct test for downshifting fraction in _FP_FROM_INT()
perf: Add DWARF register lookup for sparc
MAINTAINERS: Add SBUS driver path to sparc entry.
drivers/sbus: Remove unnecessary casts of private_data
sparc: remove homegrown L1_CACHE_ALIGN macro
sparc64: fix the build error due to smp_kgdb_capture_client()
sparc64: Fix maybe_change_configuration() PCR setting.
arch/sparc/kernel: Eliminate what looks like a NULL pointer dereference
sparc64: Update defconfig.
sunsu: Fix use after free in su_remove().
sunserial: Don't call add_preferred_console() when console= is specified.
sparc32: Kill none_mask, it's bogus.
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/arch/sparc/Makefile | 4 | ||||
-rw-r--r-- | tools/perf/arch/sparc/util/dwarf-regs.c | 43 |
2 files changed, 47 insertions, 0 deletions
diff --git a/tools/perf/arch/sparc/Makefile b/tools/perf/arch/sparc/Makefile new file mode 100644 index 000000000000..15130b50dfe3 --- /dev/null +++ b/tools/perf/arch/sparc/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/sparc/util/dwarf-regs.c b/tools/perf/arch/sparc/util/dwarf-regs.c new file mode 100644 index 000000000000..0ab88483720c --- /dev/null +++ b/tools/perf/arch/sparc/util/dwarf-regs.c | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * Mapping of DWARF debug register numbers into register names. | ||
3 | * | ||
4 | * Copyright (C) 2010 David S. Miller <davem@davemloft.net> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version | ||
9 | * 2 of the License, or (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #include <libio.h> | ||
13 | #include <dwarf-regs.h> | ||
14 | |||
15 | #define SPARC_MAX_REGS 96 | ||
16 | |||
17 | const char *sparc_regs_table[SPARC_MAX_REGS] = { | ||
18 | "%g0", "%g1", "%g2", "%g3", "%g4", "%g5", "%g6", "%g7", | ||
19 | "%o0", "%o1", "%o2", "%o3", "%o4", "%o5", "%sp", "%o7", | ||
20 | "%l0", "%l1", "%l2", "%l3", "%l4", "%l5", "%l6", "%l7", | ||
21 | "%i0", "%i1", "%i2", "%i3", "%i4", "%i5", "%fp", "%i7", | ||
22 | "%f0", "%f1", "%f2", "%f3", "%f4", "%f5", "%f6", "%f7", | ||
23 | "%f8", "%f9", "%f10", "%f11", "%f12", "%f13", "%f14", "%f15", | ||
24 | "%f16", "%f17", "%f18", "%f19", "%f20", "%f21", "%f22", "%f23", | ||
25 | "%f24", "%f25", "%f26", "%f27", "%f28", "%f29", "%f30", "%f31", | ||
26 | "%f32", "%f33", "%f34", "%f35", "%f36", "%f37", "%f38", "%f39", | ||
27 | "%f40", "%f41", "%f42", "%f43", "%f44", "%f45", "%f46", "%f47", | ||
28 | "%f48", "%f49", "%f50", "%f51", "%f52", "%f53", "%f54", "%f55", | ||
29 | "%f56", "%f57", "%f58", "%f59", "%f60", "%f61", "%f62", "%f63", | ||
30 | }; | ||
31 | |||
32 | /** | ||
33 | * get_arch_regstr() - lookup register name from it's DWARF register number | ||
34 | * @n: the DWARF register number | ||
35 | * | ||
36 | * get_arch_regstr() returns the name of the register in struct | ||
37 | * regdwarfnum_table from it's DWARF register number. If the register is not | ||
38 | * found in the table, this returns NULL; | ||
39 | */ | ||
40 | const char *get_arch_regstr(unsigned int n) | ||
41 | { | ||
42 | return (n <= SPARC_MAX_REGS) ? sparc_regs_table[n] : NULL; | ||
43 | } | ||