#ifndef PPC_TDEP_H
#define PPC_TDEP_H
struct gdbarch;
struct frame_info;
struct value;
struct regcache;
struct type;
CORE_ADDR ppc_linux_frame_saved_pc (struct frame_info *fi);
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 *);
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_darwin_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_darwin_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 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);
enum return_value_convention ppc64_darwin_abi_return_value (struct gdbarch *gdbarch,
struct type *valtype,
struct regcache *regcache,
void *readbuf,
const void *writebuf);
enum return_value_convention ppc_darwin_abi_return_value (struct gdbarch *gdbarch,
struct type *valtype,
struct regcache *regcache,
void *readbuf,
const void *writebuf);
int ppc64_sysv_abi_use_struct_convention (int gcc_p, struct type *value_type);
void ppc64_sysv_abi_extract_return_value (struct type *valtype,
struct regcache *regbuf,
void *valbuf);
void ppc64_sysv_abi_store_return_value (struct type *valtype,
struct regcache *regbuf,
const void *valbuf);
CORE_ADDR rs6000_frame_saved_pc (struct frame_info *fi);
void rs6000_init_extra_frame_info (int fromleaf, struct frame_info *);
int rs6000_frameless_function_invocation (struct frame_info *);
void rs6000_frame_init_saved_regs (struct frame_info *);
CORE_ADDR rs6000_frame_chain (struct frame_info *);
int altivec_register_p (int regno);
void rs6000_pop_frame (void);
void rs6000_info_powerpc_command (char *args, int from_tty);
extern struct cmd_list_element *info_powerpc_cmdlist;
CORE_ADDR rs6000_fetch_pointer_argument (struct frame_info *frame, int argi, struct type *type);
CORE_ADDR ppc_sysv_abi_push_arguments (int, struct value **,
CORE_ADDR, int, CORE_ADDR);
CORE_ADDR ppc_darwin_abi_push_arguments (int, struct value **,
CORE_ADDR, int, CORE_ADDR);
int ppc_floating_point_unit_p (struct gdbarch *gdbarch);
struct gdbarch_tdep
{
int wordsize;
int *regoff;
const struct reg *regs;
int ppc_gp0_regnum;
int ppc_gplast_regnum;
int ppc_toc_regnum;
int ppc_ps_regnum;
int ppc_cr_regnum;
int ppc_lr_regnum;
int ppc_ctr_regnum;
int ppc_xer_regnum;
int ppc_fpscr_regnum;
int ppc_mq_regnum;
int ppc_vr0_regnum;
int ppc_vrsave_regnum;
int ppc_ev0_regnum;
int ppc_ev31_regnum;
int lr_frame_offset;
};
#endif