Diff for /gforth/engine/engine.c between versions 1.106 and 1.110

version 1.106, 2008/01/13 21:50:26 version 1.110, 2008/10/15 15:27:33
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 317  Label *gforth_engine(Xt *ip0, Cell *sp0, Line 315  Label *gforth_engine(Xt *ip0, Cell *sp0,
    returns array of machine code labels (for use in a loader), if ip==NULL     returns array of machine code labels (for use in a loader), if ip==NULL
 */  */
 {  {
 #ifndef GFORTH_DEBUGGING  #if defined(GFORTH_DEBUGGING)
   #if defined(GLOBALS_NONRELOC)
     register saved_regs *saved_regs_p TOSREG = saved_regs_p0;
   #endif /* defined(GLOBALS_NONRELOC) */
   #else /* !defined(GFORTH_DEBUGGING) */
   register Cell *rp RPREG;    register Cell *rp RPREG;
 #endif  #endif /* !defined(GFORTH_DEBUGGING) */
 #ifndef NO_IP  #ifndef NO_IP
   register Xt *ip IPREG = ip0;    register Xt *ip IPREG = ip0;
 #endif  #endif
Line 340  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)
   register Cell MAYBE_UNUSED spTOS TOSREG;    register Cell MAYBE_UNUSED spTOS TOSREG;
   register Cell MAYBE_UNUSED spb spbREG;    register Cell MAYBE_UNUSED spb spbREG;
   register Cell MAYBE_UNUSED spc spcREG;    register Cell MAYBE_UNUSED spc spcREG;
Line 355  Label *gforth_engine(Xt *ip0, Cell *sp0, Line 353  Label *gforth_engine(Xt *ip0, Cell *sp0,
   register Cell MAYBE_UNUSED spg speREG;    register Cell MAYBE_UNUSED spg speREG;
   register Cell MAYBE_UNUSED sph speREG;    register Cell MAYBE_UNUSED sph speREG;
   IF_fpTOS(register Float fpTOS FTOSREG;)    IF_fpTOS(register Float fpTOS FTOSREG;)
   #endif /* !defined(GFORTH_DEBUGGING) */
 #if defined(DOUBLY_INDIRECT)  #if defined(DOUBLY_INDIRECT)
   static Label *symbols;    static Label *symbols;
   static void *routines[]= {    static void *routines[]= {

Removed from v.1.106  
changed lines
  Added in v.1.110


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