diff options
author | marcel <marcel@FreeBSD.org> | 2004-06-20 18:26:14 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2004-06-20 18:26:14 +0000 |
commit | ddb504ee412e85d02695ae9f3deef7f220b77beb (patch) | |
tree | a49f8af771ff0bf61cc4f75dc6b9537c0bd683e7 /contrib/gdb/gdb/ppc-tdep.h | |
parent | c6cc8e4a1eb2de942258fa7cd28b9c4f9e5c6277 (diff) | |
download | FreeBSD-src-ddb504ee412e85d02695ae9f3deef7f220b77beb.zip FreeBSD-src-ddb504ee412e85d02695ae9f3deef7f220b77beb.tar.gz |
Import of GDB version 6.1.1 (stripped; see FREEBSD-Xlist rev. 1.6).
Diffstat (limited to 'contrib/gdb/gdb/ppc-tdep.h')
-rw-r--r-- | contrib/gdb/gdb/ppc-tdep.h | 52 |
1 files changed, 48 insertions, 4 deletions
diff --git a/contrib/gdb/gdb/ppc-tdep.h b/contrib/gdb/gdb/ppc-tdep.h index 029f87c..1c1c9ef 100644 --- a/contrib/gdb/gdb/ppc-tdep.h +++ b/contrib/gdb/gdb/ppc-tdep.h @@ -1,5 +1,5 @@ /* Target-dependent code for GDB, the GNU debugger. - Copyright 2000 + Copyright 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GDB. @@ -22,8 +22,11 @@ #ifndef PPC_TDEP_H #define PPC_TDEP_H +struct gdbarch; struct frame_info; struct value; +struct regcache; +struct type; /* From ppc-linux-tdep.c... */ CORE_ADDR ppc_linux_frame_saved_pc (struct frame_info *fi); @@ -31,11 +34,42 @@ void ppc_linux_init_extra_frame_info (int fromleaf, struct frame_info *); int ppc_linux_frameless_function_invocation (struct frame_info *); void ppc_linux_frame_init_saved_regs (struct frame_info *); CORE_ADDR ppc_linux_frame_chain (struct frame_info *); -CORE_ADDR ppc_sysv_abi_push_arguments (int, struct value **, CORE_ADDR, int, - CORE_ADDR); +enum return_value_convention ppc_sysv_abi_return_value (struct gdbarch *gdbarch, + struct type *valtype, + struct regcache *regcache, + void *readbuf, + const void *writebuf); +enum return_value_convention ppc_sysv_abi_broken_return_value (struct gdbarch *gdbarch, + struct type *valtype, + struct regcache *regcache, + void *readbuf, + const void *writebuf); +CORE_ADDR ppc_sysv_abi_push_dummy_call (struct gdbarch *gdbarch, + CORE_ADDR func_addr, + struct regcache *regcache, + CORE_ADDR bp_addr, int nargs, + struct value **args, CORE_ADDR sp, + int struct_return, + CORE_ADDR struct_addr); +CORE_ADDR ppc64_sysv_abi_push_dummy_call (struct gdbarch *gdbarch, + CORE_ADDR func_addr, + struct regcache *regcache, + CORE_ADDR bp_addr, int nargs, + struct value **args, CORE_ADDR sp, + int struct_return, + CORE_ADDR struct_addr); +CORE_ADDR ppc64_sysv_abi_adjust_breakpoint_address (struct gdbarch *gdbarch, + CORE_ADDR bpaddr); int ppc_linux_memory_remove_breakpoint (CORE_ADDR addr, char *contents_cache); struct link_map_offsets *ppc_linux_svr4_fetch_link_map_offsets (void); +void ppc_linux_supply_gregset (char *buf); +void ppc_linux_supply_fpregset (char *buf); +enum return_value_convention ppc64_sysv_abi_return_value (struct gdbarch *gdbarch, + struct type *valtype, + struct regcache *regcache, + void *readbuf, + const void *writebuf); /* From rs6000-tdep.c... */ CORE_ADDR rs6000_frame_saved_pc (struct frame_info *fi); @@ -45,12 +79,16 @@ void rs6000_frame_init_saved_regs (struct frame_info *); CORE_ADDR rs6000_frame_chain (struct frame_info *); int altivec_register_p (int regno); + +/* Return non-zero when the architecture has an FPU (or at least when + the ABI is using the FPU). */ +int ppc_floating_point_unit_p (struct gdbarch *gdbarch); + /* Private data that this module attaches to struct gdbarch. */ struct gdbarch_tdep { int wordsize; /* size in bytes of fixed-point word */ - int osabi; /* OS / ABI from ELF header */ int *regoff; /* byte offsets in register arrays */ const struct reg *regs; /* from current variant */ int ppc_gp0_regnum; /* GPR register 0 */ @@ -61,9 +99,15 @@ struct gdbarch_tdep int ppc_lr_regnum; /* Link register */ int ppc_ctr_regnum; /* Count register */ int ppc_xer_regnum; /* Integer exception register */ + int ppc_fpscr_regnum; /* Floating point status and condition + register */ int ppc_mq_regnum; /* Multiply/Divide extension register */ int ppc_vr0_regnum; /* First AltiVec register */ int ppc_vrsave_regnum; /* Last AltiVec register */ + int ppc_ev0_regnum; /* First ev register */ + int ppc_ev31_regnum; /* Last ev register */ + int lr_frame_offset; /* Offset to ABI specific location where + link register is saved. */ }; #endif |