X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fsh-tdep.h;h=3188b0b8c0fa5b8eb6a321a03f2ff5e86726d440;hb=6665660a411ead049daa85cac5c629d637e22044;hp=7ea452e3830bd6db48e5c15e20ee96e61695661f;hpb=9b254dd1ce46c19dde1dde5b8d1e22e862dfacce;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h index 7ea452e383..3188b0b8c0 100644 --- a/gdb/sh-tdep.h +++ b/gdb/sh-tdep.h @@ -1,6 +1,5 @@ /* Target-specific definition for a Renesas Super-H. - Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -20,9 +19,9 @@ #ifndef SH_TDEP_H #define SH_TDEP_H -/* Contributed by Steve Chamberlain sac@cygnus.com */ +/* Contributed by Steve Chamberlain sac@cygnus.com. */ -/* Registers for all SH variants. Used also by sh3-rom.c. */ +/* Registers for all SH variants. Used also by sh3-rom.c. */ enum { R0_REGNUM = 0, @@ -30,6 +29,7 @@ enum ARG0_REGNUM = 4, ARGLAST_REGNUM = 7, FP_REGNUM = 14, + PC_REGNUM = 16, PR_REGNUM = 17, GBR_REGNUM = 18, VBR_REGNUM = 19, @@ -82,7 +82,35 @@ enum FV_LAST_REGNUM = 79 }; -extern gdbarch_init_ftype sh64_gdbarch_init; -extern void sh64_show_regs (struct frame_info *); +/* This structure describes a register in a core-file. */ +struct sh_corefile_regmap +{ + int regnum; + unsigned int offset; +}; +struct gdbarch_tdep +{ + /* Non-NULL when debugging from a core file. Provides the offset + where each general-purpose register is stored inside the associated + core file section. */ + struct sh_corefile_regmap *core_gregmap; + int sizeof_gregset; + /* Non-NULL when debugging from a core file and when FP registers are + available. Provides the offset where each FP register is stored + inside the associated core file section. */ + struct sh_corefile_regmap *core_fpregmap; + int sizeof_fpregset; + /* ISA-specific data types. */ + struct type *sh_littlebyte_bigword_type; +}; + +extern const struct regset sh_corefile_gregset; + +void sh_corefile_supply_regset (const struct regset *regset, + struct regcache *regcache, + int regnum, const void *regs, size_t len); +void sh_corefile_collect_regset (const struct regset *regset, + const struct regcache *regcache, + int regnum, void *regs, size_t len); #endif /* SH_TDEP_H */