From: Kevin Buettner Date: Fri, 12 Apr 2002 17:12:24 +0000 (+0000) Subject: From Jimi X : X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2ea5f656d72f0457f59fd540874bd2cad0687b1f;p=binutils-gdb.git From Jimi X : * rs6000-tdep.c (rs6000_gdbarch_init): Use rs6000_* methods for 64-bit SysV ABI. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9bd83cc1fc6..86df853c8a4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2002-04-12 Kevin Buettner + + From Jimi X : + * rs6000-tdep.c (rs6000_gdbarch_init): Use rs6000_* methods for + 64-bit SysV ABI. + 2002-04-12 Kevin Buettner From Jimi X : diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index 70683af25c6..e0f07bcd611 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -2658,7 +2658,14 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_extract_return_value (gdbarch, rs6000_extract_return_value); - if (sysv_abi) + /* Note: kevinb/2002-04-12: I'm not convinced that rs6000_push_arguments() + is correct for the SysV ABI when the wordsize is 8, but I'm also + fairly certain that ppc_sysv_abi_push_arguments() will give even + worse results since it only works for 32-bit code. So, for the moment, + we're better off calling rs6000_push_arguments() since it works for + 64-bit code. At some point in the future, this matter needs to be + revisited. */ + if (sysv_abi && wordsize == 4) set_gdbarch_push_arguments (gdbarch, ppc_sysv_abi_push_arguments); else set_gdbarch_push_arguments (gdbarch, rs6000_push_arguments); @@ -2699,7 +2706,9 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) } set_gdbarch_frame_chain_valid (gdbarch, file_frame_chain_valid); - if (osabi == ELFOSABI_LINUX) + /* Note: kevinb/2002-04-12: See note above regarding *_push_arguments(). + The same remarks hold for the methods below. */ + if (osabi == ELFOSABI_LINUX && wordsize == 4) { set_gdbarch_frameless_function_invocation (gdbarch, ppc_linux_frameless_function_invocation);