Diff for /gforth/Attic/engine.c between versions 1.2 and 1.3

version 1.2, 1994/04/20 17:12:00 version 1.3, 1994/05/03 19:10:34
Line 53  typedef struct F83Name { Line 53  typedef struct F83Name {
 #endif  #endif
 #define NEXT_P1 ({cfa = *ip++; NEXT1_P1;})  #define NEXT_P1 ({cfa = *ip++; NEXT1_P1;})
   
 #define NEXT1 ({NEXT1_P1; NEXT1_P2;})  #define NEXT1 ({Label ca; NEXT1_P1; NEXT1_P2;})
 #define NEXT ({NEXT_P1; NEXT1_P2;})  #define NEXT ({Label ca; NEXT_P1; NEXT1_P2;})
   
 #ifdef USE_TOS  #ifdef USE_TOS
 #define IF_TOS(x) x  #define IF_TOS(x) x
Line 75  typedef struct F83Name { Line 75  typedef struct F83Name {
 int emitcounter;  int emitcounter;
 #define NULLC '\0'  #define NULLC '\0'
   
 #define cstr(to, from, size)\  #define cstr(to,from,size)\
         {       memcpy(to, from, size);\          {       memcpy(to,from,size);\
                 to[size]=NULLC;}                  to[size]=NULLC;}
 #define NEWLINE '\n'  #define NEWLINE '\n'
   
Line 98  Label *engine(Xt *ip, Cell *sp, Cell *rp Line 98  Label *engine(Xt *ip, Cell *sp, Cell *rp
 #include "prim_labels.i"  #include "prim_labels.i"
   };    };
 #ifndef DIRECT_THREADED  #ifndef DIRECT_THREADED
   Label ca;  /*  Label ca; */
 #endif  #endif
   IF_TOS(register Cell TOS;)    IF_TOS(register Cell TOS;)
   IF_FTOS(Float FTOS;)    IF_FTOS(Float FTOS;)
Line 129  Label *engine(Xt *ip, Cell *sp, Cell *rp Line 129  Label *engine(Xt *ip, Cell *sp, Cell *rp
      problems with code fields employing calls and delay slots       problems with code fields employing calls and delay slots
   */    */
   {    {
       Label ca;
     Xt *current_ip = (Xt *)PFA1(cfa);      Xt *current_ip = (Xt *)PFA1(cfa);
     cfa = *current_ip;      cfa = *current_ip;
     NEXT1_P1;      NEXT1_P1;
     *--rp = (Cell)ip;      *--rp = (Cell)ip;
     ip = current_ip+1;      ip = current_ip+1;
       NEXT1_P2;
   }    }
   NEXT1_P2;  
       
  docon:   docon:
 #ifdef DEBUG  #ifdef DEBUG

Removed from v.1.2  
changed lines
  Added in v.1.3


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