[gforth] / gforth / Attic / threading.h  

gforth: gforth/Attic/threading.h

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

version 1.4, Mon Feb 19 18:57:27 1996 UTC version 1.5, Tue Mar 4 17:49:56 1997 UTC
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;})
   


Generate output suitable for use with a patch program
Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help