Diff for /gforth/engine/engine.c between versions 1.107 and 1.112

version 1.107, 2008/01/13 22:13:08 version 1.112, 2010/10/10 14:09:34
Line 1 Line 1
 /* Gforth virtual machine (aka inner interpreter)  /* Gforth virtual machine (aka inner interpreter)
   
   Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007 Free Software Foundation, Inc.    Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc.
   
   This file is part of Gforth.    This file is part of Gforth.
   
Line 44 Line 44
 #include <unistd.h>  #include <unistd.h>
 #include <pwd.h>  #include <pwd.h>
 #include <dirent.h>  #include <dirent.h>
   #ifdef HAVE_WCHAR_H
 #include <wchar.h>  #include <wchar.h>
   #endif
 #include <sys/resource.h>  #include <sys/resource.h>
 #ifdef HAVE_FNMATCH_H  #ifdef HAVE_FNMATCH_H
 #include <fnmatch.h>  #include <fnmatch.h>
Line 70 Line 72
 #include <callback.h>  #include <callback.h>
 #endif  #endif
   
 #ifdef HAS_LIBFFI  
 #include <ffi.h>  
 #endif  
   
 #ifndef SEEK_SET  #ifndef SEEK_SET
 /* should be defined in stdio.h, but some systems don't have it */  /* should be defined in stdio.h, but some systems don't have it */
 #define SEEK_SET 0  #define SEEK_SET 0
Line 344  Label *gforth_engine(Xt *ip0, Cell *sp0, Line 342  Label *gforth_engine(Xt *ip0, Cell *sp0,
   long long llrv;    long long llrv;
   void * prv;    void * prv;
 #endif  #endif
 #ifdef HAS_LIBFFI  
   extern void * gforth_ritem;  
   extern void ** gforth_clist;  
   extern void ffi_callback(ffi_cif * cif, void * resp, void ** args, Xt * ip);  
 #endif  
   register Address up UPREG = gforth_UP;    register Address up UPREG = gforth_UP;
 #if !defined(GFORTH_DEBUGGING)  #if !defined(GFORTH_DEBUGGING)
   register Cell MAYBE_UNUSED spTOS TOSREG;    register Cell MAYBE_UNUSED spTOS TOSREG;
Line 356  Label *gforth_engine(Xt *ip0, Cell *sp0, Line 349  Label *gforth_engine(Xt *ip0, Cell *sp0,
   register Cell MAYBE_UNUSED spc spcREG;    register Cell MAYBE_UNUSED spc spcREG;
   register Cell MAYBE_UNUSED spd spdREG;    register Cell MAYBE_UNUSED spd spdREG;
   register Cell MAYBE_UNUSED spe speREG;    register Cell MAYBE_UNUSED spe speREG;
   register Cell MAYBE_UNUSED spf speREG;    register Cell MAYBE_UNUSED spf spfREG;
   register Cell MAYBE_UNUSED spg speREG;    register Cell MAYBE_UNUSED spg spgREG;
   register Cell MAYBE_UNUSED sph speREG;    register Cell MAYBE_UNUSED sph sphREG;
   IF_fpTOS(register Float fpTOS FTOSREG;)    IF_fpTOS(register Float fpTOS FTOSREG;)
 #endif /* !defined(GFORTH_DEBUGGING) */  #endif /* !defined(GFORTH_DEBUGGING) */
 #if defined(DOUBLY_INDIRECT)  #if defined(DOUBLY_INDIRECT)
Line 413  Label *gforth_engine(Xt *ip0, Cell *sp0, Line 406  Label *gforth_engine(Xt *ip0, Cell *sp0,
   
     symbols = (Label *)(malloc(MAX_SYMBOLS*sizeof(Cell)+CODE_OFFSET)+code_offset);      symbols = (Label *)(malloc(MAX_SYMBOLS*sizeof(Cell)+CODE_OFFSET)+code_offset);
     xts = (Label *)(malloc(MAX_SYMBOLS*sizeof(Cell)+XT_OFFSET)+xt_offset);      xts = (Label *)(malloc(MAX_SYMBOLS*sizeof(Cell)+XT_OFFSET)+xt_offset);
     for (i=0; i<DOESJUMP+1; i++)      for (i=0; i<DOER_MAX+1; i++)
       xts[i] = symbols[i] = (Label)routines[i];        xts[i] = symbols[i] = (Label)routines[i];
     for (; routines[i]!=0; i++) {      for (; routines[i]!=0; i++) {
       if (i>=MAX_SYMBOLS) {        if (i>=MAX_SYMBOLS) {

Removed from v.1.107  
changed lines
  Added in v.1.112


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>