--- gforth/arch/generic/machine.h 2002/08/28 17:50:28 1.18 +++ gforth/arch/generic/machine.h 2008/11/01 22:19:30 1.31 @@ -2,13 +2,13 @@ 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,2007,2008 Free Software Foundation, Inc. This file is part of Gforth. Gforth is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 + as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -17,14 +17,9 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. + along with this program; if not, see http://www.gnu.org/licenses/. */ -#ifndef THREADING_SCHEME -#define THREADING_SCHEME 6 -#endif - /* define SYSCALL */ #ifndef SYSCALL @@ -44,9 +39,13 @@ #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 */ + +#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 @@ -80,17 +79,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) emit_char(x) +#endif +#ifndef TYPE +# define TYPE(x, l) type_chars(x, l) +#endif +#endif +#define HAS_DCOMPS +#define HAS_XCONDS +#define HAS_STANDARDTHREADING #define RELINFOBITS 8