* rs6000-tdep.c (e500_store_return_value): Delete function.
(e500_extract_return_value): Delete function.
(rs6000_gdbarch_init): When SYSV, set "extract_return_value" and
"restore_return_value" to "ppc_sysv_abi_extract_return_value" and
"ppc_sysv_abi_restore_return_value" where applicable.
* ppc-tdep.h: (ppc_sysv_abi_store_return_value): Declare.
(ppc_sysv_abi_extract_return_value): Declare.
(ppc_sysv_abi_broken_store_return_value): Declare.
(ppc_sysv_abi_broken_extract_return_value): Declare.
(ppc_sysv_abi_broken_use_struct_convention:) Delete declaration.
* ppc-sysv-tdep.c (return_value_convention): Move definition to
start of file.
(do_ppc_sysv_return_value): New function.
(ppc_sysv_abi_extract_return_value): New function.
(ppc_sysv_abi_store_return_value): New function.
(ppc_sysv_abi_broken_extract_return_value): New function.
(ppc_sysv_abi_broken_store_return_value): New function.
(ppc_sysv_abi_use_struct_convention): Call
do_ppc_sysv_return_value.
* Makefile.in (ppc-sysv-tdep.o): Add $(gdb_assert_h).
* rs6000-tdep.c (rs6000_gdbarch_init): When 64 bit SysV ABI, set
push_dummy_call to ppc64_sysv_abi_push_dummy_call.
* ppc-sysv-tdep.c: Include "gdb_assert.h".
(ppc64_sysv_abi_push_dummy_call): New function.
(ppc64_sysv_abi_broken_push_dummy_call): New function.
* ppc-tdep.h (ppc64_sysv_abi_push_dummy_call): Declare.
(ppc64_sysv_abi_broken_push_dummy_call): Declare.
* rs6000-tdep.c (rs6000_gdbarch_init): When the 64 bit SysV ABI,
set extract_return_value, store_return_value and
use_struct_convention to ppc64_sysv_abi_extract_return_value,
ppc64_sysv_abi_store_return_value and
ppc64_sysv_abi_use_struct_convention.
* ppc-tdep.h (ppc64_sysv_abi_extract_return_value): Declare.
(ppc64_sysv_abi_store_return_value): Declare.
(ppc64_sysv_abi_use_struct_convention): Declare.
* ppc-sysv-tdep.c (enum return_value_convention): Define.
(ppc64_sysv_abi_extract_return_value): New function.
(ppc64_sysv_abi_store_return_value): New function.
(ppc64_sysv_abi_use_struct_convention): New function.
(ppc64_sysv_abi_return_value): New function.
GDB_OSABI_UNINITIALIZED.
* gdbarch.sh: Add osabi to struct gdbarch and to struct
gdbarch_info. Include "osabi.h" in gdbarch.c. Check osabi
in gdbarch_list_lookup_by_info and in gdbarch_update_p.
* gdbarch.c: Regenerated.
* gdbarch.h: Regenerated.
* osabi.c (gdbarch_lookup_osabi): Return GDB_OSABI_UNINITIALIZED if
there's no BFD.
(gdbarch_init_osabi): Remove osabi argument; use info.osabi.
* osabi.h (enum gdb_osabi): Move to defs.h.
(gdbarch_init_osabi): Update prototype.
* defs.h (enum gdb_osabi): Moved here.
* Makefile.in: Update dependencies.
Plus updates to alpha, arm, hppa, i386, mips, ns32k, ppc, sh, sparc, and vax
ports to match.
* ppc-tdep.h (struct gdbarch_tdep): Add ev registers.
* rs6000-tdep.c (rs6000_register_virtual_type): Return 64 bit
vector type for ev registers.
(e500_pseudo_register_read): New function.
(e500_pseudo_register_write): New function.
(e500_dwarf2_reg_to_regnum): New function.
(PPC_UISA_NOFP_SPRS): New macro.
(PPC_EV_REGS): New macro.
(PPC_GPRS_PSEUDO_REGS): New macro.
(registers_e500): New register set for e500.
(variants): Add e500 variant.
(rs6000_gdbarch_init): Move setting of pc, sp, fp regnums to
before setting architectural dependent variations. Initialize ev
registers numbers. Add case for e500 architecture. Set the
number of pseudo registers.
* ppc-linux-tdep.c (ppc_sysv_abi_use_struct_convention): New
function.
* ppc-tdep.h (ppc_sysv_abi_use_struct_convention): Export.
* rs6000-tdep.c (rs6000_gdbarch_init): Use different
structure returning convention for SYSV ABI case, but not
for GNU/Linux, FreeBSD, or NetBSD.