summaryrefslogtreecommitdiff
path: root/libebl/ebldwarftoregno.c
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2013-12-03 14:06:47 +0100
committerJan Kratochvil <jan.kratochvil@redhat.com>2013-12-03 14:06:47 +0100
commit4516ce4755a598fc14ed62839d9160a27079b656 (patch)
tree3f47ef9dde9fb690f59a1ee6b707809a85736206 /libebl/ebldwarftoregno.c
parent47f231a51308e70a24ad087c6d0bc5d934483b50 (diff)
downloadelfutils-4516ce4755a598fc14ed62839d9160a27079b656.tar.gz
unwinder: ppc and ppc64jankratochvil/ppc64bidir-unwindppc
backends/ 2013-11-10 Jan Kratochvil <jan.kratochvil@redhat.com> unwinder: ppc and ppc64 * Makefile.am (ppc_SRCS, ppc64_SRCS): Add ppc_initreg.c. * ppc64_init.c (ppc64_init): Initialize also frame_nregs, set_initial_registers_tid and dwarf_to_regno. * ppc_corenote.c (PRSTATUS_REGSET_ITEMS) <nip>: Set PC_REGISTER. * ppc_init.c (ppc64_init): Initialize also frame_nregs, set_initial_registers_tid and dwarf_to_regno. * ppc_initreg.c: New file. libdwfl/ 2013-11-10 Jan Kratochvil <jan.kratochvil@redhat.com> unwinder: ppc and ppc64 * frame_unwind.c (__libdwfl_frame_reg_get, __libdwfl_frame_reg_set): Call ebl_dwarf_to_regno. * linux-core-attach.c (core_set_initial_registers): Implement pc_register support. * linux-pid-attach.c (pid_thread_state_registers_cb): Implement FIRSTREG -1. libebl/ 2013-11-10 Jan Kratochvil <jan.kratochvil@redhat.com> unwinder: ppc and ppc64 * Makefile.am (gen_SOURCES): Add ebldwarftoregno.c. * ebl-hooks.h (dwarf_to_regno): New. * ebldwarftoregno.c: New file. * libebl.h (Ebl_Core_Item): New field pc_register. (ebl_tid_registers_t): Add FIRSTREG -1 to the comment. (ebl_dwarf_to_regno): New. tests/ 2013-11-10 Jan Kratochvil <jan.kratochvil@redhat.com> * Makefile.am (TESTS): Add run-backtrace-core-ppc64.sh and run-backtrace-core-ppc.sh. (EXTRA_DIST): Add backtrace.ppc.core.bz2, backtrace.ppc.exec.bz2, backtrace.ppc64.core.bz2, backtrace.ppc64.exec.bz2, run-backtrace-core-ppc64.sh and run-backtrace-core-ppc.sh. * backtrace.ppc.core.bz2: New file. * backtrace.ppc.exec.bz2: New file. * backtrace.ppc64.core.bz2: New file. * backtrace.ppc64.exec.bz2: New file. * run-backtrace-core-ppc.sh: New file. * run-backtrace-core-ppc64.sh: New file. Signed-off-by: Jan Kratochvil <jan.kratochvil@redhat.com>
Diffstat (limited to 'libebl/ebldwarftoregno.c')
-rw-r--r--libebl/ebldwarftoregno.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/libebl/ebldwarftoregno.c b/libebl/ebldwarftoregno.c
new file mode 100644
index 00000000..8fb85401
--- /dev/null
+++ b/libebl/ebldwarftoregno.c
@@ -0,0 +1,41 @@
+/* Convert *REGNO as is in DWARF to a lower range.
+ Copyright (C) 2013 Red Hat, Inc.
+ This file is part of elfutils.
+
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of either
+
+ * the GNU Lesser General Public License as published by the Free
+ Software Foundation; either version 3 of the License, or (at
+ your option) any later version
+
+ or
+
+ * the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at
+ your option) any later version
+
+ or both in parallel, as here.
+
+ elfutils is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received copies of the GNU General Public License and
+ the GNU Lesser General Public License along with this program. If
+ not, see <http://www.gnu.org/licenses/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <libeblP.h>
+
+bool
+ebl_dwarf_to_regno (Ebl *ebl, unsigned *regno)
+{
+ if (ebl == NULL)
+ return false;
+ return ebl->dwarf_to_regno == NULL ? true : ebl->dwarf_to_regno (ebl, regno);
+}