version 1.8, 2008/10/06 21:05:55
|
version 1.12, 2012/03/17 22:18:59
|
Line 1
|
Line 1
|
/* header file for libcc-generated C code |
/* header file for libcc-generated C code |
|
|
Copyright (C) 2006,2007 Free Software Foundation, Inc. |
Copyright (C) 2006,2007,2008 Free Software Foundation, Inc. |
|
|
This file is part of Gforth. |
This file is part of Gforth. |
|
|
Line 19
|
Line 19
|
*/ |
*/ |
|
|
#include <gforth/@PACKAGE_VERSION@/config.h> |
#include <gforth/@PACKAGE_VERSION@/config.h> |
|
#include <setjmp.h> |
|
|
#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) |
#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__) |
#undef HAS_BACKLINK |
#undef HAS_BACKLINK |
Line 33 typedef double Float;
|
Line 34 typedef double Float;
|
typedef unsigned Clongest UClongest; |
typedef unsigned Clongest UClongest; |
|
|
#ifdef HAS_BACKLINK |
#ifdef HAS_BACKLINK |
extern Cell *gforth_SP; |
extern __thread Cell *gforth_SP; |
extern Float *gforth_FP; |
extern __thread Float *gforth_FP; |
extern Cell *gforth_RP; |
extern __thread Cell *gforth_RP; |
extern char *gforth_LP; |
extern __thread char *gforth_LP; |
extern char *gforth_UP; |
extern __thread char *gforth_UP; |
extern void *gforth_engine(void *, Cell *, Cell *, Float *, char *, char *); |
extern void *gforth_engine(void *, Cell *, Cell *, Float *, char *); |
extern char *cstr(char *from, Cell size, int clear); |
extern char *cstr(char *from, Cell size); |
extern char *tilde_cstr(char *from, Cell size, int clear); |
extern char *tilde_cstr(char *from, Cell size); |
|
extern __thread jmp_buf throw_jmp_buf; |
#define GFORTH_ARGS void |
#define GFORTH_ARGS void |
#else |
#else |
#define gforth_SP *((Cell **)(gforth_pointers[0])) |
#define gforth_SP *((Cell **)(gforth_pointers(0))) |
#define gforth_FP *((Float **)(gforth_pointers[1])) |
#define gforth_FP *((Float **)(gforth_pointers(1))) |
#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 *(*)(Xt *, Cell *, Cell *, Float *, char *, char *))(((void **)(gforth_pointers[5])))) |
#define gforth_engine ((char *(*)(void *, Cell *, Cell *, Float *, char *))(((void **)(gforth_pointers(5))))) |
#define cstr ((char *(*)(char *, Cell, int))(((void **)(gforth_pointers[6])))) |
#define cstr ((char *(*)(char *, Cell))(((void **)(gforth_pointers(6))))) |
#define tilde_cstr ((char *(*)(char *, Cell, int))(((void **)(gforth_pointers[7])))) |
#define tilde_cstr ((char *(*)(char *, Cell))(((void **)(gforth_pointers(7))))) |
#define GFORTH_ARGS void ** gforth_pointers |
#define throw_jmp_buf *((jmp_buf*)(gforth_pointers(8))) |
|
#define GFORTH_ARGS void *(*gforth_pointers)(Cell) |
#endif |
#endif |
|
|
#define CELL_BITS (sizeof(Cell) * 8) |
#define CELL_BITS (sizeof(Cell) * 8) |