Diff for /gforth/Attic/threading.h between versions 1.4 and 1.5

version 1.4, 1996/02/19 18:57:27 version 1.5, 1997/03/04 17:49:56
Line 95 Line 95
 #  define CFA_NEXT  #  define CFA_NEXT
 #endif  #endif
   
   #ifdef DOUBLY_INDIRECT
   #  define NEXT_P0       ({cfa=*ip;})
   #  define IP            (ip)
   #  define NEXT_INST     (cfa)
   #  define INC_IP(const_inc)     ({cfa=IP[const_inc]; ip+=(const_inc);})
   #  define DEF_CA        Label ca;
   #  define NEXT_P1       ({ip++; ca=**cfa;})
   #  define NEXT_P2       ({goto *ca;})
   #  define EXEC(XT)      ({DEF_CA cfa=(XT); ca=**cfa; goto *ca;})
   #  define NEXT1_P1 ({ca = **cfa;})
   #  define NEXT1_P2 ({goto *ca;})
   
   #else /* !defined(DOUBLY_INDIRECT) */
   
 #if defined(DIRECT_THREADED) && defined(AUTO_INCREMENT)\  #if defined(DIRECT_THREADED) && defined(AUTO_INCREMENT)\
     && defined(LONG_LATENCY) && defined(CFA_NEXT)      && defined(LONG_LATENCY) && defined(CFA_NEXT)
 #warning scheme 1  #warning scheme 1
Line 309 Line 323
 #  define EXEC(XT)      ({DEF_CA cfa=(XT); ca=*cfa; goto *ca;})  #  define EXEC(XT)      ({DEF_CA cfa=(XT); ca=*cfa; goto *ca;})
 #endif  #endif
   
 #define NEXT ({DEF_CA NEXT_P1; NEXT_P2;})  
   
 #if defined(CISC_NEXT) && !defined(LONG_LATENCY)  #if defined(CISC_NEXT) && !defined(LONG_LATENCY)
 # define NEXT1_P1  # define NEXT1_P1
 # ifdef DIRECT_THREADED  # ifdef DIRECT_THREADED
Line 318 Line 330
 # else  # else
 #  define NEXT1_P2 ({goto **cfa;})  #  define NEXT1_P2 ({goto **cfa;})
 # endif /* DIRECT_THREADED */  # endif /* DIRECT_THREADED */
 #else /* defined(CISC_NEXT) && !defined(LONG_LATENCY) */  #else /* !defined(CISC_NEXT) || defined(LONG_LATENCY) */
 # ifdef DIRECT_THREADED  # ifdef DIRECT_THREADED
 #  define NEXT1_P1  #  define NEXT1_P1
 #  define NEXT1_P2 ({goto *cfa;})  #  define NEXT1_P2 ({goto *cfa;})
 # else /* DIRECT_THREADED */  # else /* !DIRECT_THREADED */
 #  define NEXT1_P1 ({ca = *cfa;})  #  define NEXT1_P1 ({ca = *cfa;})
 #  define NEXT1_P2 ({goto *ca;})  #  define NEXT1_P2 ({goto *ca;})
 # endif /* DIRECT_THREADED */  # endif /* !DIRECT_THREADED */
 #endif  #endif /* !defined(CISC_NEXT) || defined(LONG_LATENCY) */
   
   #endif /* !defined(DOUBLY_INDIRECT) */
   
   #define NEXT ({DEF_CA NEXT_P1; NEXT_P2;})
   

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


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