2003-09-17 Andrew Cagney <cagney@redhat.com>

* ppcnbsd-tdep.c (ppcnbsd_use_struct_convention): New function.
	(ppcnbsd_init_abi): Set "use_struct_convention" to
	"ppcnbsd_use_struct_convention".
This commit is contained in:
Andrew Cagney 2003-09-17 20:10:48 +00:00
parent 8ff944f699
commit 957e27ac30
2 changed files with 24 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2003-09-17 Andrew Cagney <cagney@redhat.com>
* ppcnbsd-tdep.c (ppcnbsd_use_struct_convention): New function.
(ppcnbsd_init_abi): Set "use_struct_convention" to
"ppcnbsd_use_struct_convention".
2003-09-17 Mark Kettenis <kettenis@gnu.org>
* gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Add comment.

View File

@ -204,12 +204,30 @@ ppcnbsd_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
return (nbsd_pc_in_sigtramp (pc, func_name));
}
/* NetBSD is confused. It appears that 1.5 was using the correct SVr4
convention but, 1.6 switched to the below broken convention. For
the moment use the broken convention. Ulgh!. */
static int
ppcnbsd_use_struct_convention (int gcc_p, struct type *value_type)
{
if ((TYPE_LENGTH (value_type) == 16 || TYPE_LENGTH (value_type) == 8)
&& TYPE_VECTOR (value_type))
return 0;
return !(TYPE_LENGTH (value_type) == 1
|| TYPE_LENGTH (value_type) == 2
|| TYPE_LENGTH (value_type) == 4
|| TYPE_LENGTH (value_type) == 8);
}
static void
ppcnbsd_init_abi (struct gdbarch_info info,
struct gdbarch *gdbarch)
{
set_gdbarch_pc_in_sigtramp (gdbarch, ppcnbsd_pc_in_sigtramp);
set_gdbarch_use_struct_convention (gdbarch, ppcnbsd_use_struct_convention);
set_solib_svr4_fetch_link_map_offsets (gdbarch,
nbsd_ilp32_solib_svr4_fetch_link_map_offsets);
}