Diff for /gforth/engine/threaded.h between versions 1.4 and 1.9

version 1.4, 1999/05/04 12:51:35 version 1.9, 2000/12/24 15:54:18
Line 1 Line 1
 /* This file defines a number of threading schemes.  /* This file defines a number of threading schemes.
   
   Copyright (C) 1995, 1996,1997 Free Software Foundation, Inc.    Copyright (C) 1995, 1996,1997,1999 Free Software Foundation, Inc.
   
   This file is part of Gforth.    This file is part of Gforth.
   
Line 16 Line 16
   
   You should have received a copy of the GNU General Public License    You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software    along with this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
   
   This files defines macros for threading. Many sets of macros are    This files defines macros for threading. Many sets of macros are
Line 91 Line 91
   
 */  */
   
 /* CFA_NEXT: a more appropriate name would be CFA_LIVE, i.e., cfa is live after NEXT */  /* CFA_NEXT: if NEXT uses cfa, you have to #define CFA_NEXT, to get
    * cfa declared in engine.
    */
   
 #ifdef DOUBLY_INDIRECT  #ifdef DOUBLY_INDIRECT
 #  define CFA_NEXT  #  define CFA_NEXT
Line 246 Line 248
 #  define SET_IP(p)     ({ip=(p); next_cfa=*ip; NEXT_P0;})  #  define SET_IP(p)     ({ip=(p); next_cfa=*ip; NEXT_P0;})
 #  define NEXT_INST     (next_cfa)  #  define NEXT_INST     (next_cfa)
 #  define INC_IP(const_inc)     ({next_cfa=IP[const_inc]; ip+=(const_inc);})  #  define INC_IP(const_inc)     ({next_cfa=IP[const_inc]; ip+=(const_inc);})
 #  define DEF_CA        Label ca;  #  define DEF_CA        
 #  define NEXT_P1       ({ca=next_cfa; cfa=next_cfa; ip++; next_cfa=*ip;})  #  define NEXT_P1       ({cfa=next_cfa; ip++; next_cfa=*ip;})
 #  define NEXT_P2       ({goto *ca;})  #  define NEXT_P2       ({goto *cfa;})
 #  define EXEC(XT)      ({cfa=(XT); goto *cfa;})  #  define EXEC(XT)      ({cfa=(XT); goto *cfa;})
 #  define MORE_VARS     Xt next_cfa;  #  define MORE_VARS     Xt next_cfa;
 #endif  #endif
Line 391 Line 393
 #endif /* !defined(DOUBLY_INDIRECT) */  #endif /* !defined(DOUBLY_INDIRECT) */
   
 #define NEXT ({DEF_CA NEXT_P1; NEXT_P2;})  #define NEXT ({DEF_CA NEXT_P1; NEXT_P2;})
   #define ipTOS NEXT_INST

Removed from v.1.4  
changed lines
  Added in v.1.9


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