2000-03-24 J.T. Conklin <jtc@redback.com>
* i386/tm-nbsd.h (USE_STRUCT_CONVENTION): Define. * i386nbsd-nat.c (i386nbsd_use_struct_convention): New function. (fetch_core_registers): Read fp registers. (i386nbsd_core_fns, _initialize_i386nbsd_nat): Added.
This commit is contained in:
parent
c1790a9d97
commit
76a2220988
|
@ -1,3 +1,10 @@
|
||||||
|
2000-03-24 J.T. Conklin <jtc@redback.com>
|
||||||
|
|
||||||
|
* i386/tm-nbsd.h (USE_STRUCT_CONVENTION): Define.
|
||||||
|
* i386nbsd-nat.c (i386nbsd_use_struct_convention): New function.
|
||||||
|
(fetch_core_registers): Read fp registers.
|
||||||
|
(i386nbsd_core_fns, _initialize_i386nbsd_nat): Added.
|
||||||
|
|
||||||
2000-03-24 Jonathan Larmour <jlarmour@redhat.co.uk>
|
2000-03-24 Jonathan Larmour <jlarmour@redhat.co.uk>
|
||||||
|
|
||||||
* arm-tdep.c (thumb_skip_prologue): Take function end addr argument
|
* arm-tdep.c (thumb_skip_prologue): Take function end addr argument
|
||||||
|
|
|
@ -26,6 +26,11 @@
|
||||||
#include "i386/tm-i386bsd.h"
|
#include "i386/tm-i386bsd.h"
|
||||||
#include "tm-nbsd.h"
|
#include "tm-nbsd.h"
|
||||||
|
|
||||||
|
extern use_struct_convention_fn i386nbsd_use_struct_convention;
|
||||||
|
#define USE_STRUCT_CONVENTION(gcc_p, type) \
|
||||||
|
i386nbsd_use_struct_convention(gcc_p, type)
|
||||||
|
|
||||||
|
|
||||||
#define JB_ELEMENT_SIZE sizeof(int) /* jmp_buf[_JBLEN] is array of ints */
|
#define JB_ELEMENT_SIZE sizeof(int) /* jmp_buf[_JBLEN] is array of ints */
|
||||||
#define JB_PC 0 /* Setjmp()'s return PC saved here */
|
#define JB_PC 0 /* Setjmp()'s return PC saved here */
|
||||||
|
|
||||||
|
|
|
@ -148,11 +148,20 @@ store_inferior_registers (regno)
|
||||||
ptrace (PT_SETFPREGS, inferior_pid,
|
ptrace (PT_SETFPREGS, inferior_pid,
|
||||||
(PTRACE_ARG3_TYPE) &inferior_fpregisters, 0);
|
(PTRACE_ARG3_TYPE) &inferior_fpregisters, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
i386nbsd_use_struct_convention (int gcc_p, struct type *type)
|
||||||
|
{
|
||||||
|
return !(TYPE_LENGTH (type) == 1
|
||||||
|
|| TYPE_LENGTH (type) == 2
|
||||||
|
|| TYPE_LENGTH (type) == 4
|
||||||
|
|| TYPE_LENGTH (type) == 8);
|
||||||
|
}
|
||||||
|
|
||||||
struct md_core
|
struct md_core
|
||||||
{
|
{
|
||||||
struct reg intreg;
|
struct reg intreg;
|
||||||
struct fpreg freg;
|
struct env387 freg;
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -167,6 +176,43 @@ fetch_core_registers (core_reg_sect, core_reg_size, which, ignore)
|
||||||
/* integer registers */
|
/* integer registers */
|
||||||
memcpy (®isters[REGISTER_BYTE (0)], &core_reg->intreg,
|
memcpy (®isters[REGISTER_BYTE (0)], &core_reg->intreg,
|
||||||
sizeof (struct reg));
|
sizeof (struct reg));
|
||||||
|
|
||||||
/* floating point registers */
|
/* floating point registers */
|
||||||
/* XXX */
|
RF (FP0_REGNUM, core_reg->freg.regs[0]);
|
||||||
|
RF (FP0_REGNUM + 1, core_reg->freg.regs[1]);
|
||||||
|
RF (FP0_REGNUM + 2, core_reg->freg.regs[2]);
|
||||||
|
RF (FP0_REGNUM + 3, core_reg->freg.regs[3]);
|
||||||
|
RF (FP0_REGNUM + 4, core_reg->freg.regs[4]);
|
||||||
|
RF (FP0_REGNUM + 5, core_reg->freg.regs[5]);
|
||||||
|
RF (FP0_REGNUM + 6, core_reg->freg.regs[6]);
|
||||||
|
RF (FP0_REGNUM + 7, core_reg->freg.regs[7]);
|
||||||
|
|
||||||
|
RF (FCTRL_REGNUM, core_reg->freg.control);
|
||||||
|
RF (FSTAT_REGNUM, core_reg->freg.status);
|
||||||
|
RF (FTAG_REGNUM, core_reg->freg.tag);
|
||||||
|
RF (FCS_REGNUM, core_reg->freg.code_seg);
|
||||||
|
RF (FCOFF_REGNUM, core_reg->freg.eip);
|
||||||
|
RF (FDS_REGNUM, core_reg->freg.operand_seg);
|
||||||
|
RF (FDOFF_REGNUM, core_reg->freg.operand);
|
||||||
|
RF (FOP_REGNUM, core_reg->freg.opcode);
|
||||||
|
|
||||||
|
registers_fetched ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Register that we are able to handle i386nbsd core file formats.
|
||||||
|
FIXME: is this really bfd_target_unknown_flavour? */
|
||||||
|
|
||||||
|
static struct core_fns i386nbsd_core_fns =
|
||||||
|
{
|
||||||
|
bfd_target_unknown_flavour, /* core_flavour */
|
||||||
|
default_check_format, /* check_format */
|
||||||
|
default_core_sniffer, /* core_sniffer */
|
||||||
|
fetch_core_registers, /* core_read_registers */
|
||||||
|
NULL /* next */
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
_initialize_i386nbsd_nat ()
|
||||||
|
{
|
||||||
|
add_core_fns (&i386nbsd_core_fns);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue