diff --git a/gnu/usr.bin/gdb/gdb/arch/ns32k/Makefile.inc b/gnu/usr.bin/gdb/gdb/arch/ns32k/Makefile.inc index 067fa7bb90e1..7f9388d6364f 100644 --- a/gnu/usr.bin/gdb/gdb/arch/ns32k/Makefile.inc +++ b/gnu/usr.bin/gdb/gdb/arch/ns32k/Makefile.inc @@ -1,4 +1,4 @@ -# $Id: Makefile.inc,v 1.2 1994/06/09 14:46:17 phil Exp $ +# $Id: Makefile.inc,v 1.3 1995/09/26 20:23:36 phil Exp $ -SRCS+= coredep.c ns32k-pinsn.c ns32k-tdep.c ns32k-nat.c +SRCS+= ns32k-pinsn.c ns32k-tdep.c ns32k-nat.c diff --git a/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-nat.c b/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-nat.c index d83f7a6857a7..046ff544fba0 100644 --- a/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-nat.c +++ b/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-nat.c @@ -17,16 +17,16 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: ns32k-nat.c,v 1.3 1995/08/29 08:03:29 phil Exp $ + $Id: ns32k-nat.c,v 1.4 1995/09/26 20:23:38 phil Exp $ */ #include #include #include +#include #include #include #include -#include #include "defs.h" #include "inferior.h" @@ -47,9 +47,9 @@ fetch_inferior_registers (regno) struct fpreg inferior_fpregisters; ptrace (PT_GETREGS, inferior_pid, - (PTRACE_ARG3_TYPE) &inferior_registers, 0); + (PTRACE_ARG3_TYPE) &inferior_registers, 0); ptrace (PT_GETFPREGS, inferior_pid, - (PTRACE_ARG3_TYPE) &inferior_fpregisters, 0); + (PTRACE_ARG3_TYPE) &inferior_fpregisters, 0); RF(R0_REGNUM + 0, inferior_registers.r_r0); RF(R0_REGNUM + 1, inferior_registers.r_r1); @@ -106,16 +106,87 @@ store_inferior_registers (regno) (PTRACE_ARG3_TYPE) &inferior_fpregisters, 0); } +/* XXX - Add this to machine/regs.h instead? */ +struct coreregs { + struct reg intreg; + struct fpreg freg; +}; + +/* Get registers from a core file. */ +void +fetch_core_registers (core_reg_sect, core_reg_size, which, ignore) + char *core_reg_sect; + unsigned core_reg_size; + int which; + unsigned int ignore; /* reg addr, unused in this version */ +{ + struct coreregs *core_reg; + + core_reg = (struct coreregs *)core_reg_sect; + + /* + * We have *all* registers + * in the first core section. + * Ignore which. + */ + + /* Integer registers */ + RF(R0_REGNUM + 0, core_reg->intreg.r_r0); + RF(R0_REGNUM + 1, core_reg->intreg.r_r1); + RF(R0_REGNUM + 2, core_reg->intreg.r_r2); + RF(R0_REGNUM + 3, core_reg->intreg.r_r3); + RF(R0_REGNUM + 4, core_reg->intreg.r_r4); + RF(R0_REGNUM + 5, core_reg->intreg.r_r5); + RF(R0_REGNUM + 6, core_reg->intreg.r_r6); + RF(R0_REGNUM + 7, core_reg->intreg.r_r7); + + RF(SP_REGNUM , core_reg->intreg.r_sp); + RF(FP_REGNUM , core_reg->intreg.r_fp); + RF(PC_REGNUM , core_reg->intreg.r_pc); + RF(PS_REGNUM , core_reg->intreg.r_psr); + + /* Floating point registers */ + RF(FPS_REGNUM , core_reg->freg.r_fsr); + RF(FP0_REGNUM +0, core_reg->freg.r_freg[0]); + RF(FP0_REGNUM +2, core_reg->freg.r_freg[2]); + RF(FP0_REGNUM +4, core_reg->freg.r_freg[4]); + RF(FP0_REGNUM +6, core_reg->freg.r_freg[6]); +} + void fetch_kcore_registers (pcb) struct pcb *pcb; { - return; + return; } void clear_regs() { - return; + double zero = 0.0; + int null = 0; + + /* Integer registers */ + RF(R0_REGNUM + 0, null); + RF(R0_REGNUM + 1, null); + RF(R0_REGNUM + 2, null); + RF(R0_REGNUM + 3, null); + RF(R0_REGNUM + 4, null); + RF(R0_REGNUM + 5, null); + RF(R0_REGNUM + 6, null); + RF(R0_REGNUM + 7, null); + + RF(SP_REGNUM , null); + RF(FP_REGNUM , null); + RF(PC_REGNUM , null); + RF(PS_REGNUM , null); + + /* Floating point registers */ + RF(FPS_REGNUM , zero); + RF(FP0_REGNUM +0, zero); + RF(FP0_REGNUM +2, zero); + RF(FP0_REGNUM +4, zero); + RF(FP0_REGNUM +6, zero); + return; } diff --git a/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-tdep.c b/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-tdep.c index aea0eda64df4..18f41e28e85d 100644 --- a/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-tdep.c +++ b/gnu/usr.bin/gdb/gdb/arch/ns32k/ns32k-tdep.c @@ -17,24 +17,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* - * HISTORY - * $Log: ns32k-tdep.c,v $ - * Revision 1.3 1995/08/29 08:03:31 phil - * Changes from Matthias Pfaller to get gdb to work. - * - * Revision 1.2 1994/05/24 23:58:24 phil - * Follow changes to sys/arch/pc532/include/reg.h. - * - * Revision 1.1 1994/04/28 17:11:31 phil - * Adding ns32k support. - * - * Revision 2.1.1.1 93/04/16 16:35:44 pds - * Added copyright notice and whist markers. - * [93/04/16 pds] - * - */ - /* @@@ isa_NAN should be in ieee generic float routines file */ /* Check for bad floats/doubles in P @@ -81,24 +63,3 @@ isa_NAN(p, len) } else return 1; } - -/* this table must line up with REGISTER_NAMES in tm-ns32k.h */ -static int regmap[] = -{ - REG_R0, REG_R1, REG_R2, REG_R3, REG_R4, REG_R5, REG_R6, REG_R7, - 0, 0, 0, 0, 0, 0, 0, 0, - REG_SP, REG_FP, REG_PC, REG_PSR, - 0, 0, 0, 0, 0 -}; - -/* blockend is the value of u.u_ar0, and points to the - place where r7 is stored. */ - -int -ns32k_register_u_addr (blockend, regnum) - int blockend; - int regnum; -{ - return (blockend + 4 * regmap[regnum]); -} - diff --git a/gnu/usr.bin/gdb/gdb/arch/ns32k/tm-umax.h b/gnu/usr.bin/gdb/gdb/arch/ns32k/tm-umax.h index f50bd2908288..45a4f61c195a 100644 --- a/gnu/usr.bin/gdb/gdb/arch/ns32k/tm-umax.h +++ b/gnu/usr.bin/gdb/gdb/arch/ns32k/tm-umax.h @@ -17,21 +17,6 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* - * HISTORY - * $Log: tm-umax.h,v $ - * Revision 1.2 1995/08/29 08:03:32 phil - * Changes from Matthias Pfaller to get gdb to work. - * - * Revision 1.1 1994/04/28 17:11:32 phil - * Adding ns32k support. - * - * Revision 4.8.1.1 93/04/16 15:38:43 pds - * Mach 3.0 fixes. (jtv@hut.fi) - * [93/02/09 14:36:37 pds] - * - * [93/02/09 pds] - */ #define TARGET_BYTE_ORDER LITTLE_ENDIAN