[Ada] Add support for subprogram renamings
[deliverable/binutils-gdb.git] / gdb / alphafbsd-tdep.c
index 08d38629e10e589cb760ca01b4f117ac5e30acc1..d2cdd33c4da2526f939f1d988aafd63b3fabcb62 100644 (file)
@@ -1,12 +1,12 @@
 /* Target-dependent code for FreeBSD/alpha.
 
-   Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2001-2015 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -15,9 +15,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
 #include "value.h"
@@ -27,7 +25,7 @@
 #include "solib-svr4.h"
 
 static int
-alphafbsd_use_struct_convention (int gcc_p, struct type *type)
+alphafbsd_return_in_memory (struct type *type)
 {
   enum type_code code;
   int i;
@@ -66,24 +64,25 @@ CORE_ADDR alphafbsd_sigtramp_start = 0x11ffff68;
 CORE_ADDR alphafbsd_sigtramp_end = 0x11ffffe0;
 
 static int
-alphafbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
+alphafbsd_pc_in_sigtramp (struct gdbarch *gdbarch,
+                         CORE_ADDR pc, const char *func_name)
 {
   return (pc >= alphafbsd_sigtramp_start && pc < alphafbsd_sigtramp_end);
 }
 
 static LONGEST
-alphafbsd_sigtramp_offset (CORE_ADDR pc)
+alphafbsd_sigtramp_offset (struct gdbarch *gdbarch, CORE_ADDR pc)
 {
   return pc - alphafbsd_sigtramp_start;
 }
 
-/* Assuming NEXT_FRAME is for a frame following a BSD sigtramp
-   routine, return the address of the associated sigcontext structure.  */
+/* Assuming THIS_FRAME is the frame of a BSD sigtramp routine,
+   return the address of the associated sigcontext structure.  */
 
 static CORE_ADDR
-alphafbsd_sigcontext_addr (struct frame_info *next_frame)
+alphafbsd_sigcontext_addr (struct frame_info *this_frame)
 {
-  return frame_unwind_register_unsigned (next_frame, ALPHA_SP_REGNUM) + 24;
+  return get_frame_register_unsigned (this_frame, ALPHA_SP_REGNUM) + 24;
 }
 
 /* FreeBSD 5.0-RELEASE or later.  */
@@ -94,6 +93,11 @@ alphafbsd_init_abi (struct gdbarch_info info,
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
+  /* FIXME: Should activate generic FreeBSD support here with
+     fbsd_init_abi(), but this requires a valid
+     'iterate_over_regset_sections' gdbarch method and
+     'collect_regset' functions for each regset.  */
+
   /* Hook into the DWARF CFI frame unwinder.  */
   alpha_dwarf2_init_abi (info, gdbarch);
 
@@ -104,12 +108,10 @@ alphafbsd_init_abi (struct gdbarch_info info,
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_lp64_fetch_link_map_offsets);
 
-  set_gdbarch_deprecated_use_struct_convention
-    (gdbarch, alphafbsd_use_struct_convention);
-
   tdep->dynamic_sigtramp_offset = alphafbsd_sigtramp_offset;
   tdep->sigcontext_addr = alphafbsd_sigcontext_addr;
   tdep->pc_in_sigtramp = alphafbsd_pc_in_sigtramp;
+  tdep->return_in_memory = alphafbsd_return_in_memory;
   tdep->sc_pc_offset = 288;
   tdep->sc_regs_offset = 24;
   tdep->sc_fpregs_offset = 320;
This page took 0.02512 seconds and 4 git commands to generate.