1999-04-16 09:35:26 +08:00
|
|
|
|
#ifndef I960_SIM_H
|
|
|
|
|
#define I960_SIM_H
|
|
|
|
|
|
|
|
|
|
/* gdb register numbers */
|
|
|
|
|
/* Copied from gdb/config/i960/tc-i960.h. */
|
|
|
|
|
#define PCW_REGNUM 32 /* process control word */
|
|
|
|
|
#define ACW_REGNUM 33 /* arithmetic control word */
|
|
|
|
|
#define TCW_REGNUM 34 /* trace control word */
|
|
|
|
|
#define IP_REGNUM 35 /* instruction pointer */
|
|
|
|
|
#define FP0_REGNUM 36 /* First floating point register */
|
|
|
|
|
/* Some registers have more than one name */
|
|
|
|
|
#define PC_REGNUM IP_REGNUM /* GDB refers to ip as the Program Counter */
|
1999-04-27 02:34:20 +08:00
|
|
|
|
|
|
|
|
|
SI a_i960_h_gr_get (SIM_CPU *, UINT);
|
|
|
|
|
void a_i960_h_gr_set (SIM_CPU *, UINT, SI);
|
|
|
|
|
IADDR a_i960_h_pc_get (SIM_CPU *);
|
|
|
|
|
void a_i960_h_pc_set (SIM_CPU *, IADDR);
|
1999-04-16 09:35:26 +08:00
|
|
|
|
|
|
|
|
|
#define GETTWI GETTSI
|
|
|
|
|
#define SETTWI SETTSI
|
|
|
|
|
|
|
|
|
|
/* Exception, Interrupt, and Trap addresses */
|
|
|
|
|
/* ??? Hack for traps.c. */
|
|
|
|
|
#define EIT_TRAP_BASE_ADDR 0x40
|
|
|
|
|
|
|
|
|
|
/* Special purpose traps. */
|
|
|
|
|
/* ??? Hack for traps.c. */
|
|
|
|
|
#define TRAP_SYSCALL 0
|
|
|
|
|
#define TRAP_BREAKPOINT 1
|
|
|
|
|
|
|
|
|
|
/* Cache Purge Control (only exists on early versions of chips) */
|
|
|
|
|
/* ??? Hack for devices.c. */
|
|
|
|
|
#define MSPR_ADDR 0xfffffff7
|
|
|
|
|
#define MSPR_PURGE 1
|
|
|
|
|
|
|
|
|
|
/* Cache Control Register */
|
|
|
|
|
/* ??? Hack for devices.c. */
|
|
|
|
|
#define MCCR_ADDR 0xffffffff
|
|
|
|
|
#define MCCR_CP 0x80
|
|
|
|
|
|
|
|
|
|
/* Start address and length of all device support. */
|
|
|
|
|
/* ??? Hack for sim-if.c. */
|
|
|
|
|
#define I960_DEVICE_ADDR 0xff000000
|
|
|
|
|
#define I960_DEVICE_LEN 0x00ffffff
|
|
|
|
|
|
|
|
|
|
/* sim_core_attach device argument. */
|
|
|
|
|
/* ??? Hack for sim-if.c. */
|
|
|
|
|
extern device i960_devices;
|
|
|
|
|
|
|
|
|
|
/* FIXME: Temporary, until device support ready. */
|
|
|
|
|
/* ??? Hack for devices.c. */
|
|
|
|
|
struct _device { int foo; };
|
|
|
|
|
|
|
|
|
|
#endif I960_SIM_H
|