* run.c: #include <signal.h>.
(main): Abort if program got SIGILL.
+Mon Mar 11 09:53:25 1996 Doug Evans <dje@charmed.cygnus.com>
+
+ * compile.c (sim_resume): Watch for calls to abort.
+ * run.c: #include <signal.h>.
+ (main): Abort if program got SIGILL.
+
+Wed Feb 21 12:15:00 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * configure: Regenerate with autoconf 2.7.
+
+Thu Jan 4 11:52:53 1996 Doug Evans <dje@canuck.cygnus.com>
+
+ * inst.h (MPOWER,MSIZE): Deleted.
+ (H8300{,H}_MSIZE): Define.
+ * compile.c (memory_size): New static global.
+ (init_pointers): Set memory size from one of H8300{,H}_MSIZE.
+ (sim_write,sim_read): Use memory_size.
+
+Fri Oct 13 15:03:19 1995 steve chamberlain <sac@slash.cygnus.com>
+
+ * compile.c (sim_set_callbacks): New.
+
+Tue Oct 10 11:11:26 1995 Fred Fish <fnf@cygnus.com>
+
+ * Makefile.in (BISON): Remove macro.
+
+Wed Sep 20 13:35:02 1995 Ian Lance Taylor <ian@cygnus.com>
+
+ * Makefile.in (maintainer-clean): New synonym for realclean.
+
Fri Sep 8 12:18:53 1995 Ian Lance Taylor <ian@cygnus.com>
* Makefile.in (install): Don't install in $(tooldir).
* AND FITNESS FOR A PARTICULAR PURPOSE.
*/
+#include "config.h"
+
#include <signal.h>
-#ifndef WIN32
-#include <sys/times.h>
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
#endif
#include <sys/param.h>
#include "ansidecl.h"
-#include "sysdep.h"
+#include "callback.h"
#include "remote-sim.h"
#include "bfd.h"
int h8300hmode = 0;
+static int memory_size;
+
static int
get_now ()
{
#ifndef WIN32
- struct tms b;
-
return time (0);
#endif
return 0;
init = 1;
littleendian.i = 1;
- cpu.memory = (unsigned char *) calloc (sizeof (char), MSIZE);
- cpu.cache_idx = (unsigned short *) calloc (sizeof (short), MSIZE);
+ if (h8300hmode)
+ memory_size = H8300H_MSIZE;
+ else
+ memory_size = H8300_MSIZE;
+ cpu.memory = (unsigned char *) calloc (sizeof (char), memory_size);
+ cpu.cache_idx = (unsigned short *) calloc (sizeof (short), memory_size);
+
+ /* `msize' must be a power of two */
+ if ((memory_size & (memory_size - 1)) != 0)
+ abort ();
+ cpu.mask = memory_size - 1;
- cpu.mask = (1 << MPOWER) - 1;
for (i = 0; i < 9; i++)
{
cpu.regs[i] = 0;
cpu.exception = SIGILL;
goto end;
case O (O_SLEEP, SB):
+ if ((short) cpu.regs[0] == -255)
+ cpu.exception = SIGILL;
+ else
+ cpu.exception = SIGTRAP;
+ goto end;
case O (O_BPT, SB):
cpu.exception = SIGTRAP;
goto end;
int i;
init_pointers ();
- if (addr < 0 || addr + size > MSIZE)
+ if (addr < 0 || addr + size > memory_size)
return 0;
for (i = 0; i < size; i++)
{
int size;
{
init_pointers ();
- if (addr < 0 || addr + size > MSIZE)
+ if (addr < 0 || addr + size > memory_size)
return 0;
memcpy (buffer, cpu.memory + addr, size);
return size;
{
cpu.pc = start_address;
}
+
+void
+sim_do_command (cmd)
+ char *cmd;
+{
+ printf_filtered ("This simulator does not accept any commands.\n");
+}
+
+
+
+void
+sim_set_callbacks (ptr)
+struct host_callback_struct *ptr;
+{
+
+}
+
#include <varargs.h>
#include <stdio.h>
+#include <signal.h>
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
int verbose = 0;
int trace = 0;
char *name = "";
+ int sigrc;
+ enum sim_stop reason;
while ((i = getopt (ac, av, "c:htv")) != EOF)
switch (i)
sim_resume(0,0);
if (verbose)
sim_info (verbose - 1);
+ sim_stop_reason (&reason, &sigrc);
+ /* FIXME: this test is insufficient but we can't do much
+ about it until sim_stop_reason is cleaned up. */
+ if (sigrc == SIGILL)
+ abort ();
return 0;
}
}