Diff for /gforth/engine/engine.c between versions 1.99 and 1.100

version 1.99, 2007/03/18 21:46:17 version 1.100, 2007/03/19 12:54:41
Line 275  extern int gforth_memcmp(const char * s1 Line 275  extern int gforth_memcmp(const char * s1
 #define VARIANT(v)      (v)  #define VARIANT(v)      (v)
 #define JUMP(target)    goto I_noop  #define JUMP(target)    goto I_noop
 #define LABEL(name) H_##name: asm(""); I_##name:  #define LABEL(name) H_##name: asm(""); I_##name:
   #define LABEL3(name) J_##name: asm("");
   
 #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 283  extern int gforth_memcmp(const char * s1 Line 284  extern int gforth_memcmp(const char * s1
 #define VARIANT(v)      (v)  #define VARIANT(v)      (v)
 #define JUMP(target)    goto I_noop  #define JUMP(target)    goto I_noop
 #define LABEL(name) H_##name: SKIP16; I_##name:  #define LABEL(name) H_##name: SKIP16; I_##name:
   /* the SKIP16 after LABEL3 is there, because the ARM gcc may place
      some constants after the final branch, and may refer to them from
      the code before label3.  Since we don't copy the constants, we have
      to make sure that such code is recognized as non-relocatable. */
   #define LABEL3(name) J_##name: SKIP16;
   
 #elif ENGINE==3  #elif ENGINE==3
 /* variant with different immediate arguments for finding out  /* variant with different immediate arguments for finding out
Line 291  extern int gforth_memcmp(const char * s1 Line 297  extern int gforth_memcmp(const char * s1
 #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) H_##name: asm(""); I_##name:  #define LABEL(name) H_##name: asm(""); I_##name:
   #define LABEL3(name) J_##name: asm("");
 #else  #else
 #error illegal ENGINE value  #error illegal ENGINE value
 #endif /* ENGINE */  #endif /* ENGINE */
   
 /* the asm(""); is there to get a stop compiled on Itanium */  /* the asm(""); is there to get a stop compiled on Itanium */
 #define LABEL2(name) K_##name: asm("");  #define LABEL2(name) K_##name: asm("");
 #define LABEL3(name) J_##name: asm("");  
   
 Label *gforth_engine(Xt *ip0, Cell *sp0, Cell *rp0, Float *fp0, Address lp0)  Label *gforth_engine(Xt *ip0, Cell *sp0, Cell *rp0, Float *fp0, Address lp0)
 /* executes code at ip, if ip!=NULL  /* executes code at ip, if ip!=NULL

Removed from v.1.99  
changed lines
  Added in v.1.100


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