--- gforth/arch/generic/machine.h 1998/07/05 20:50:02 1.2 +++ gforth/arch/generic/machine.h 1999/08/07 21:40:36 1.10 @@ -2,7 +2,7 @@ This is a generic file for 32-bit machines with IEEE FP arithmetic (no VMS). It only supports indirect threading. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995,1998 Free Software Foundation, Inc. This file is part of Gforth. @@ -21,14 +21,21 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* define this if IEEE singles and doubles are available as C data types */ -#define IEEE_FP +#ifndef THREADING_SCHEME +#define THREADING_SCHEME 6 +#endif + +#ifdef GFORTH_DEBUGGING +/* schedule the ip update after the rest of the primitive; + never mind speed */ +#undef THREADING_SCHEME +#ifdef DIRECT_THREADED +#define THREADING_SCHEME 10 +#else +#define THREADING_SCHEME 8 +#endif /* DIRECT_THREADED */ +#endif /* GFORTH_DEBUGGING */ -/* the IEEE types are used only for loading and storing */ -/* the IEEE double precision type */ -typedef double DFloat; -/* the IEEE single precision type */ -typedef float SFloat; /* define SYSCALL */ @@ -36,6 +43,10 @@ typedef float SFloat; #define SYSCALL #endif +#ifndef SYSSIGNALS +#define SYSSIGNALS +#endif + #ifndef USE_FTOS #ifndef USE_NO_FTOS /* keep top of FP stack in register. Since most processors have FP @@ -55,3 +66,40 @@ typedef float SFloat; we could not use this file in the other machine.h files */ #endif +/* Types: these types are used as Forth's internal types */ + +/* define this if IEEE singles and doubles are available as C data types */ +#define IEEE_FP + +/* the IEEE types are used only for loading and storing */ +/* the IEEE double precision type */ +typedef double DFloat; +/* the IEEE single precision type */ +typedef float SFloat; + +typedef CELL_TYPE Cell; +typedef unsigned CELL_TYPE UCell; +typedef Cell Bool; +typedef unsigned char Char; +typedef double Float; +typedef Char *Address; + +#if defined(DOUBLY_INDIRECT) +typedef void **Label; +#else /* !defined(DOUBLY_INDIRECT) */ +typedef void *Label; +#endif /* !defined(DOUBLY_INDIRECT) */ + +/* feature defines */ + +#define HAS_DCOMPS +#define HAS_FILE +#define HAS_FLOATING +#define HAS_GLOCALS +#define HAS_HASH +#define HAS_OS +#define HAS_XCONDS +#define HAS_STANDARDTHREADING +#define HAS_DEBUG + +#define RELINFOBITS 8