diff options
author | Daniel Jacobowitz <dan@debian.org> | 2007-10-30 19:35:35 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2007-10-30 19:35:35 +0000 |
commit | 347416c0bb945c288a37f7803e3950430b15f02a (patch) | |
tree | 12c2d7457350dd7b80799a2d9dc66f7b07c83635 /gdb/ppc-tdep.h | |
parent | a29c1db7022acd2e940fd0893d48b316742adea2 (diff) | |
download | gdb-347416c0bb945c288a37f7803e3950430b15f02a.tar.gz |
* ppc-sysv-tdep.c (ppc_sysv_abi_push_dummy_call): Check the selected
soft float and vector ABIs. Support the generic vector ABI for
AltiVec types.
(do_ppc_sysv_return_value): Likewise. Correct argument types and
casts.
(ppc64_sysv_abi_push_dummy_call): Assert that floating point is
supported.
* ppc-tdep.h (enum powerpc_vector_abi): New.
(struct gdbarch_tdep): Add soft_float and vector_abi.
* rs6000-tdep.c (setpowerpccmdlist, showpowerpccmdlist)
(powerpc_soft_float_global, powerpc_vector_strings)
(powerpc_vector_abi_global, powerpc_vector_abi_string): New.
(rs6000_gdbarch_init): Check for soft-float and vector ABI markings.
(set_powerpc_command, show_powerpc_command, powerpc_set_soft_float)
(powerpc_set_vector_abi): New.
(_initialize_rs6000_tdep): Register "set powerpc" and "show powerpc"
commands.
* Makefile.in (elf_ppc_h): New.
(rs6000-tdep.o): Update.
* gdb.texinfo (PowerPC): Document "set powerpc vector-abi" and "set
powerpc soft-float".
* gdb.arch/altivec-abi.exp: Run multiple times for GCC on GNU/Linux.
Test "set powerpc vector-abi". Skip auto-detection tests for old
toolchains.
Diffstat (limited to 'gdb/ppc-tdep.h')
-rw-r--r-- | gdb/ppc-tdep.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/gdb/ppc-tdep.h b/gdb/ppc-tdep.h index 62f0e7e1663..52b172f3864 100644 --- a/gdb/ppc-tdep.h +++ b/gdb/ppc-tdep.h @@ -157,9 +157,24 @@ extern void ppc_collect_vrregset (const struct regset *regset, /* Private data that this module attaches to struct gdbarch. */ +/* Vector ABI used by the inferior. */ +enum powerpc_vector_abi +{ + POWERPC_VEC_AUTO, + POWERPC_VEC_GENERIC, + POWERPC_VEC_ALTIVEC, + POWERPC_VEC_SPE, + POWERPC_VEC_LAST +}; + struct gdbarch_tdep { - int wordsize; /* size in bytes of fixed-point word */ + int wordsize; /* Size in bytes of fixed-point word. */ + int soft_float; /* Avoid FP registers for arguments? */ + + /* How to pass vector arguments. Never set to AUTO or LAST. */ + enum powerpc_vector_abi vector_abi; + int ppc_gp0_regnum; /* GPR register 0 */ int ppc_toc_regnum; /* TOC register */ int ppc_ps_regnum; /* Processor (or machine) status (%msr) */ |