diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-10-30 19:35:35 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-10-30 19:35:35 +0000 |
commit | 55eddb0f7a5dce5897c8f2128ba8cffb43531f0c (patch) | |
tree | 652c7450ca2e5fd88c9a5a7307998408153ac8e4 /gdb/ppc-tdep.h | |
parent | 7020f05c275a933720905bc7e4a2446175f28b0f (diff) | |
download | gdb-55eddb0f7a5dce5897c8f2128ba8cffb43531f0c.zip gdb-55eddb0f7a5dce5897c8f2128ba8cffb43531f0c.tar.gz gdb-55eddb0f7a5dce5897c8f2128ba8cffb43531f0c.tar.bz2 |
* 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 62f0e7e..52b172f 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) */ |