/* Target-dependent code for HP PA-RISC BSD's.
- Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
- Free Software Foundation, Inc.
+ Copyright (C) 2004-2014 Free Software Foundation, Inc.
This file is part of GDB.
#include "hppa-tdep.h"
#include "hppabsd-tdep.h"
+#include "dwarf2-frame.h"
#include "solib-svr4.h"
static CORE_ADDR
/* If the address is in the .plt section, then the real function
hasn't yet been fixed up by the linker so we cannot determine the
Global Pointer for that function. */
- if (in_plt_section (faddr, NULL))
+ if (in_plt_section (faddr))
return 0;
faddr_sec = find_pc_section (faddr);
}
\f
+static void
+hppabsd_dwarf2_frame_init_reg (struct gdbarch *gdbarch, int regnum,
+ struct dwarf2_frame_state_reg *reg,
+ struct frame_info *this_frame)
+{
+ if (regnum == HPPA_PCOQ_HEAD_REGNUM)
+ reg->how = DWARF2_FRAME_REG_RA;
+ else if (regnum == HPPA_SP_REGNUM)
+ reg->how = DWARF2_FRAME_REG_CFA;
+}
+
void
hppabsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
/* OpenBSD and NetBSD use SVR4-style shared libraries. */
set_solib_svr4_fetch_link_map_offsets
(gdbarch, svr4_ilp32_fetch_link_map_offsets);
+
+ /* Hook in the DWARF CFI frame unwinder. */
+ dwarf2_frame_set_init_reg (gdbarch, hppabsd_dwarf2_frame_init_reg);
+ dwarf2_append_unwinders (gdbarch);
}