Diff for /gforth/engine/engine.c between versions 1.77 and 1.78

version 1.77, 2005/01/22 22:16:59 version 1.78, 2005/01/23 09:55:12
Line 228  extern int gforth_memcmp(const char * s1 Line 228  extern int gforth_memcmp(const char * s1
 /* normal engine */  /* normal engine */
 #define VARIANT(v)      (v)  #define VARIANT(v)      (v)
 #define JUMP(target)    goto I_noop  #define JUMP(target)    goto I_noop
 #define LABEL(name) I_##name:  #define LABEL(name) H_##name: I_##name:
   
 #elif ENGINE==2  #elif ENGINE==2
 /* variant with padding between VM instructions for finding out  /* variant with padding between VM instructions for finding out
Line 236  extern int gforth_memcmp(const char * s1 Line 236  extern int gforth_memcmp(const char * s1
 #define engine engine2  #define engine engine2
 #define VARIANT(v)      (v)  #define VARIANT(v)      (v)
 #define JUMP(target)    goto I_noop  #define JUMP(target)    goto I_noop
 #define LABEL(name) SKIP16; I_##name:  #define LABEL(name) H_##name: SKIP16; I_##name:
 #define IN_ENGINE2  #define IN_ENGINE2
   
 #elif ENGINE==3  #elif ENGINE==3
Line 245  extern int gforth_memcmp(const char * s1 Line 245  extern int gforth_memcmp(const char * s1
 #define engine engine3  #define engine engine3
 #define VARIANT(v)      ((v)^0xffffffff)  #define VARIANT(v)      ((v)^0xffffffff)
 #define JUMP(target)    goto K_lit  #define JUMP(target)    goto K_lit
 #define LABEL(name) I_##name:  #define LABEL(name) H_##name: I_##name:
 #else  #else
 #error illegal ENGINE value  #error illegal ENGINE value
 #endif /* ENGINE */  #endif /* ENGINE */
Line 307  Label *engine(Xt *ip0, Cell *sp0, Cell * Line 307  Label *engine(Xt *ip0, Cell *sp0, Cell *
 #undef INST_ADDR  #undef INST_ADDR
     (Label)&&after_last,      (Label)&&after_last,
     (Label)&&before_goto,      (Label)&&before_goto,
     (Label)&&after_goto      (Label)&&after_goto,
   /* just mention the H_ labels, so the SKIP16s are not optimized away */
   #define INST_ADDR(name) ((Label)&&H_##name)
   #include PRIM_LAB_I
   #undef INST_ADDR
   };    };
 #ifdef CPU_DEP2  #ifdef CPU_DEP2
   CPU_DEP2    CPU_DEP2
Line 358  Label *engine(Xt *ip0, Cell *sp0, Cell * Line 362  Label *engine(Xt *ip0, Cell *sp0, Cell *
   CPU_DEP3    CPU_DEP3
 #endif  #endif
   
   before_goto:  
   goto *real_ca;  
   after_goto:  
   
 #include PRIM_I  #include PRIM_I
   after_last: return (Label *)0;    after_last: return (Label *)0;
   /*needed only to get the length of the last primitive */    /*needed only to get the length of the last primitive */
   
     before_goto:
     goto *real_ca;
     after_goto:
     return (Label *)0;
 }  }

Removed from v.1.77  
changed lines
  Added in v.1.78


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