--- gforth/engine/engine.c 2006/03/11 23:05:09 1.90 +++ gforth/engine/engine.c 2007/03/04 22:39:37 1.97 @@ -1,6 +1,6 @@ /* Gforth virtual machine (aka inner interpreter) - Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005 Free Software Foundation, Inc. + Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006 Free Software Foundation, Inc. This file is part of Gforth. @@ -54,7 +54,7 @@ #include "fnmatch.h" #endif #else -#include "systypes.h" +/* #include */ #endif #if defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) /* what else? */ @@ -98,6 +98,20 @@ extern int gforth_memcmp(const char * s1 #define NEWLINE '\n' +/* These two flags control whether divisions are checked by software. + The CHECK_DIVISION_SW is for those cases where the event is a + division by zero or overflow on the C level, and might be reported + by hardware; we might check forr that in autoconf and set the + switch appropriately, but currently don't. The CHECK_DIVISION flag + is for the other cases. */ +#ifdef GFORTH_DEBUGGING +#define CHECK_DIVISION_SW 1 +#define CHECK_DIVISION 1 +#else +#define CHECK_DIVISION_SW 0 +#define CHECK_DIVISION 0 +#endif + /* conversion on fetch */ #define vm_Cell2f(_cell,_x) ((_x)=(Bool)(_cell)) @@ -345,6 +359,11 @@ Label *gforth_engine(Xt *ip0, Cell *sp0, #include PRIM_LAB_I #undef INST_ADDR }; +#ifdef INCLUDE_IMAGE +#define INST_ADDR(name) ((Label)&&I_##name) +#include "image.i" +#undef INST_ADDR +#endif #ifdef CPU_DEP2 CPU_DEP2 #endif