diff options
author | gdb-2.8.1 <gdb@fsf.org> | 1988-12-16 00:00:00 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2012-06-03 15:36:31 +0100 |
commit | bb7592f01006b09c846831a9fb9c306307ba34f6 (patch) | |
tree | 83e99233f937d7a06eee7c627543288feb125929 /gdb/core.c | |
parent | 3bf57d210832b28e9361990830eb722a619f031b (diff) | |
download | binutils-bb7592f01006b09c846831a9fb9c306307ba34f6.zip binutils-bb7592f01006b09c846831a9fb9c306307ba34f6.tar.gz binutils-bb7592f01006b09c846831a9fb9c306307ba34f6.tar.bz2 |
gdb-2.8.1
Diffstat (limited to 'gdb/core.c')
-rw-r--r-- | gdb/core.c | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -201,6 +201,7 @@ core_file_command (filename, from_tty) data_offset = sizeof corestr; stack_offset = sizeof corestr + corestr.c_dsize; +#if defined(sun2) || defined(sun3) bcopy (&corestr.c_regs, registers, 16 * 4); *(int *)®isters[REGISTER_BYTE (PS_REGNUM)] = corestr.c_regs.r_ps; *(int *)®isters[REGISTER_BYTE (PC_REGNUM)] = corestr.c_regs.r_pc; @@ -210,6 +211,26 @@ core_file_command (filename, from_tty) bcopy (&corestr.c_fpstatus.fps_control, ®isters[REGISTER_BYTE (FPC_REGNUM)], sizeof corestr.c_fpstatus - sizeof corestr.c_fpstatus.fps_regs); +#endif +#if defined(sun4) + /* G0 *always* holds 0. */ + *(int *)®isters[REGISTER_BYTE (0)] = 0; + /* The globals and output registers. I don't know where + to get the locals and input registers from the core file. */ + bcopy (&corestr.c_regs.r_g1, registers, 15 * 4); + *(int *)®isters[REGISTER_BYTE (PS_REGNUM)] = corestr.c_regs.r_ps; + *(int *)®isters[REGISTER_BYTE (PC_REGNUM)] = corestr.c_regs.r_pc; + *(int *)®isters[REGISTER_BYTE (NPC_REGNUM)] = corestr.c_regs.r_npc; + *(int *)®isters[REGISTER_BYTE (Y_REGNUM)] = corestr.c_regs.r_y; + bcopy (corestr.c_fpu.fpu_regs, + ®isters[REGISTER_BYTE (FP0_REGNUM)], + sizeof corestr.c_fpu.fpu_regs); +#ifdef FPU + bcopy (&corestr.c_fpu.fpu_fsr, + ®isters[REGISTER_BYTE (FPS_REGNUM)], + sizeof (FPU_FSR_TYPE)); +#endif +#endif bcopy (&corestr.c_aouthdr, &core_aouthdr, sizeof (struct exec)); |