1: /*
2: Copyright 1992 by the ANSI figForth Development Group
3:
4: This is a generic file for 32-bit machines with IEEE FP arithmetic (no VMS).
5: It only supports indirect threading.
6: */
7:
8: /* Cell and UCell must be the same size as a pointer */
9: typedef long Cell;
10: typedef unsigned long UCell;
11:
12: /* DCell and UDCell must be twice as large as Cell */
13: typedef long long DCell;
14: typedef unsigned long long UDCell;
15:
16: /* define this if IEEE singles and doubles are available as C data types */
17: #define IEEE_FP
18:
19: /* the IEEE types are used only for loading and storing */
20: /* the IEEE double precision type */
21: typedef double DFloat;
22: /* the IEEE single precision type */
23: typedef float SFloat;
24:
25: #ifndef USE_FTOS
26: #ifndef USE_NO_FTOS
27: /* keep top of FP stack in register. Since most processors have FP
28: registers and they are hardly used in gforth, this is usually a
29: good idea. The 88100 has no separate FP regs, but many general
30: purpose regs, so it should be ok */
31: #define USE_FTOS
32: #endif
33: #endif
34: /* I don't do the same for the data stack (i.e. USE_TOS), since this
35: loses on processors with few registers. USE_TOS might be defined in
36: the processor-specific files */
37:
38: #ifdef DIRECT_THREADED
39: /* If you want direct threading, write a .h file for your processor! */
40: /* We could put some stuff here that causes a compile error, but then
41: we could not use this file in the other machine.h files */
42: #endif
43:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>