--- gforth/Attic/sparc.h 1994/11/29 16:22:49 1.2 +++ gforth/Attic/sparc.h 1994/12/12 17:10:51 1.3 @@ -1,30 +1,12 @@ /* - $Id: sparc.h,v 1.2 1994/11/29 16:22:49 pazsan Exp $ + $Id: sparc.h,v 1.3 1994/12/12 17:10:51 anton Exp $ Copyright 1992 by the ANSI figForth Development Group - This is the machine-specific part for a SPARC running SunOS + This is the machine-specific part for a SPARC */ - -/* Cell and UCell must be the same size as a pointer */ -typedef long Cell; -typedef unsigned long UCell; - -/* DCell and UDCell must be twice as large as Cell */ -typedef long long DCell; -typedef unsigned long long UDCell; - -/* 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; - -/* define this if the least-significant byte is at the largets address */ -#define BIG_ENDIAN +/* direct threading is probably faster on the SPARC, but has it been + tested? Therefore, DIRECT_THREADED is not defined */ #ifdef DIRECT_THREADED /* PFA gives the parameter field address corresponding to a cfa */ @@ -42,7 +24,6 @@ typedef float SFloat; unsigned _ca = (unsigned)(ca); \ _cfa[0] = 0x8000000|((_ca+4-(unsigned)_cfa)>>2) /* CALL ca */ \ _cfa[1] = *(long *)_ca; /* delay slot */}) -#endif /* this is the point where the does code starts if label points to the * jump dodoes */ @@ -56,17 +37,4 @@ typedef float SFloat; #define MAKE_DOESJUMP(addr) ({long *_addr = (long *)(addr); \ _addr[0] = 0x8000000|((((unsigned)&&dodoes)+4-((unsigned)_addr))>>2) /* CALL dodoes */ \ _addr[1] = *(long *)&&dodoes; /* delay slot */}) - -/* OS dependences */ - -#define SEEK_SET 0 - -#define memmove(a,b,c) ({ if((long)(a)<(long)(b)) memcpy(a,b,c); \ - else \ - { int i; \ - for(i=(c)-1; i>=0; i--) \ - (char*)a[i]=(char*)b[i]; \ - } \ - }) -#define strtoul(a,b,c) strtol(a,b,c) - +#endif