--- gforth/arch/generic/machine.h 2001/04/30 13:46:58 1.16 +++ gforth/arch/generic/machine.h 2007/03/31 12:58:07 1.26 @@ -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,1998,1999 Free Software Foundation, Inc. + Copyright (C) 1995,1998,1999,2003 Free Software Foundation, Inc. This file is part of Gforth. @@ -21,22 +21,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. */ -#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 */ - - /* define SYSCALL */ #ifndef SYSCALL @@ -56,14 +40,18 @@ #define USE_FTOS #endif #endif -/* I don't do the same for the data stack (i.e. USE_TOS), since this - loses on processors with few registers. USE_TOS might be defined in - the processor-specific files */ - -#ifdef DIRECT_THREADED -/* If you want direct threading, write a .h file for your processor! */ -/* We could put some stuff here that causes a compile error, but then - we could not use this file in the other machine.h files */ + +#ifndef USE_TOS +#ifndef USE_NO_TOS +/* keep top of data stack in register. Usually a good idea unless registers are very scarce */ +#define USE_TOS +#endif +#endif + +#ifndef INDIRECT_THREADED +#ifndef DIRECT_THREADED +#define DIRECT_THREADED +#endif #endif /* Types: these types are used as Forth's internal types */ @@ -92,17 +80,35 @@ typedef void *Label; /* feature defines, these setting should be identical to the ones in machpc.fs */ -#define HAS_DCOMPS +#ifndef STANDALONE +#warning hosted system #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 HAS_GLOCALS +#define HAS_HASH #ifndef HAS_PEEPHOLE #define HAS_PEEPHOLE #endif +#else +#warning standalone system +#undef HAS_FILE +#undef HAS_FLOATING +#undef HAS_OS +#undef HAS_DEBUG +#undef HAS_GLOCALS +#undef HAS_HASH +#define HAS_F83HEADERSTRING +#ifndef PUTC +# define PUTC(x) putc(x, stdout) +#endif +#ifndef TYPE +# define TYPE(x, l) fwrite(x, l, 1, stdout) +#endif +#endif +#define HAS_DCOMPS +#define HAS_XCONDS +#define HAS_STANDARDTHREADING #define RELINFOBITS 8