--- gforth/engine/threaded.h 1999/05/04 12:51:35 1.4 +++ gforth/engine/threaded.h 2000/12/16 17:19:41 1.8 @@ -1,6 +1,6 @@ /* 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. @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License 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 @@ -91,7 +91,9 @@ */ -/* 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 # define CFA_NEXT @@ -246,9 +248,9 @@ # define SET_IP(p) ({ip=(p); next_cfa=*ip; NEXT_P0;}) # define NEXT_INST (next_cfa) # define INC_IP(const_inc) ({next_cfa=IP[const_inc]; ip+=(const_inc);}) -# define DEF_CA Label ca; -# define NEXT_P1 ({ca=next_cfa; cfa=next_cfa; ip++; next_cfa=*ip;}) -# define NEXT_P2 ({goto *ca;}) +# define DEF_CA +# define NEXT_P1 ({cfa=next_cfa; ip++; next_cfa=*ip;}) +# define NEXT_P2 ({goto *cfa;}) # define EXEC(XT) ({cfa=(XT); goto *cfa;}) # define MORE_VARS Xt next_cfa; #endif