version 1.14, 2012/03/23 21:19:54
|
version 1.16, 2012/07/23 13:27:48
|
Line 28
|
Line 28
|
#endif |
#endif |
|
|
typedef CELL_TYPE Cell; |
typedef CELL_TYPE Cell; |
|
typedef unsigned char Char; |
typedef double Float; |
typedef double Float; |
|
typedef Char *Address; |
|
typedef void **Xt; |
|
|
#define Clongest long long |
#define Clongest long long |
typedef unsigned Clongest UClongest; |
typedef unsigned Clongest UClongest; |
|
|
|
typedef struct { |
|
Cell next_task; |
|
Cell prev_task; |
|
Cell save_task; |
|
Cell* sp0; |
|
Cell* rp0; |
|
Float* fp0; |
|
Address lp0; |
|
Xt *throw_entry; |
|
} user_area; |
|
|
#ifdef HAS_BACKLINK |
#ifdef HAS_BACKLINK |
extern __thread Cell *gforth_SP; |
extern __thread Cell *gforth_SP; |
extern __thread Float *gforth_FP; |
extern __thread Float *gforth_FP; |
extern __thread Cell *gforth_RP; |
extern __thread Cell *gforth_RP; |
extern __thread char *gforth_LP; |
extern __thread char *gforth_LP; |
extern __thread char *gforth_UP; |
extern __thread char *gforth_UP; |
extern void *gforth_engine(void *, Cell *, Cell *, Float *, char *); |
extern void *gforth_engine(void *); |
extern char *cstr(char *from, Cell size); |
extern char *cstr(char *from, Cell size); |
extern char *tilde_cstr(char *from, Cell size); |
extern char *tilde_cstr(char *from, Cell size); |
extern __thread jmp_buf *throw_jmp_handler; |
extern __thread jmp_buf *throw_jmp_handler; |
|
extern user_area* gforth_stacks(); |
#define GFORTH_ARGS void |
#define GFORTH_ARGS void |
#else |
#else |
#define gforth_SP *((Cell **)(gforth_pointers(0))) |
#define gforth_SP *((Cell **)(gforth_pointers(0))) |
Line 50 extern __thread jmp_buf *throw_jmp_handl
|
Line 65 extern __thread jmp_buf *throw_jmp_handl
|
#define gforth_LP *((char **)(gforth_pointers(2))) |
#define gforth_LP *((char **)(gforth_pointers(2))) |
#define gforth_RP *((Cell **)(gforth_pointers(3))) |
#define gforth_RP *((Cell **)(gforth_pointers(3))) |
#define gforth_UP *((char **)(gforth_pointers(4))) |
#define gforth_UP *((char **)(gforth_pointers(4))) |
#define gforth_engine ((char *(*)(void *, Cell *, Cell *, Float *, char *))(((void **)(gforth_pointers(5))))) |
#define gforth_engine ((char *(*)(void *))gforth_pointers(5)) |
#define cstr ((char *(*)(char *, Cell))(((void **)(gforth_pointers(6))))) |
#define cstr ((char *(*)(char *, Cell))gforth_pointers(6)) |
#define tilde_cstr ((char *(*)(char *, Cell))(((void **)(gforth_pointers(7))))) |
#define tilde_cstr ((char *(*)(char *, Cell))gforth_pointers(7)) |
#define throw_jmp_handler *((jmp_buf**)(gforth_pointers(8))) |
#define throw_jmp_handler *((jmp_buf**)(gforth_pointers(8))) |
|
#define gforth_stacks ((user_area *(*)())gforth_pointers(9)) |
#define GFORTH_ARGS void *(*gforth_pointers)(Cell) |
#define GFORTH_ARGS void *(*gforth_pointers)(Cell) |
#endif |
#endif |
|
|