Diff for /gforth/engine/engine.c between versions 1.80 and 1.83

version 1.80, 2005/07/31 20:27:41 version 1.83, 2005/08/06 17:11:44
Line 175  extern int gforth_memcmp(const char * s1 Line 175  extern int gforth_memcmp(const char * s1
 #ifndef speREG  #ifndef speREG
 #define speREG  #define speREG
 #endif  #endif
   #ifndef spfREG
   #define spfREG
   #endif
   #ifndef spgREG
   #define spgREG
   #endif
   #ifndef sphREG
   #define sphREG
   #endif
 #ifndef FTOSREG  #ifndef FTOSREG
 #define FTOSREG  #define FTOSREG
 #endif  #endif
Line 237  extern int gforth_memcmp(const char * s1 Line 246  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) H_##name: I_##name:  #define LABEL(name) H_##name: asm(""); 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 254  extern int gforth_memcmp(const char * s1 Line 263  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) H_##name: I_##name:  #define LABEL(name) H_##name: asm(""); I_##name:
 #else  #else
 #error illegal ENGINE value  #error illegal ENGINE value
 #endif /* ENGINE */  #endif /* ENGINE */
Line 297  Label *engine(Xt *ip0, Cell *sp0, Cell * Line 306  Label *engine(Xt *ip0, Cell *sp0, Cell *
   register Cell MAYBE_UNUSED spc spcREG;    register Cell MAYBE_UNUSED spc spcREG;
   register Cell MAYBE_UNUSED spd spdREG;    register Cell MAYBE_UNUSED spd spdREG;
   register Cell MAYBE_UNUSED spe speREG;    register Cell MAYBE_UNUSED spe speREG;
     register Cell MAYBE_UNUSED spf speREG;
     register Cell MAYBE_UNUSED spg speREG;
     register Cell MAYBE_UNUSED sph speREG;
   IF_fpTOS(register Float fpTOS FTOSREG;)    IF_fpTOS(register Float fpTOS FTOSREG;)
 #if defined(DOUBLY_INDIRECT)  #if defined(DOUBLY_INDIRECT)
   static Label *symbols;    static Label *symbols;
Line 358  Label *engine(Xt *ip0, Cell *sp0, Cell * Line 370  Label *engine(Xt *ip0, Cell *sp0, Cell *
     return symbols;      return symbols;
   }    }
   
 #if STACK_CACHE_DEFAULT>0  #if !(defined(GFORTH_DEBUGGING) || defined(INDIRECT_THREADED) || defined(DOUBLY_INDIRECT) || defined(VM_PROFILING))
   sp += STACK_CACHE_DEFAULT-1;    sp += STACK_CACHE_DEFAULT-1;
 #endif    /* some of those registers are dead, but its simpler to initialize them all */  spTOS = sp[0];
   
 #if STACK_CACHE_DEFAULT>0  
   spTOS = sp[0];  
 #endif  
 #if STACK_CACHE_DEFAULT>1  
   spb = sp[-1];    spb = sp[-1];
 #endif  
 #if STACK_CACHE_DEFAULT>2  
   spc = sp[-2];    spc = sp[-2];
 #endif  
 #if STACK_CACHE_DEFAULT>3  
   spd = sp[-3];    spd = sp[-3];
 #endif  
 #if STACK_CACHE_DEFAULT>4  
   spe = sp[-4];    spe = sp[-4];
     spf = sp[-5];
     spg = sp[-6];
     sph = sp[-7];
 #endif  #endif
   
   IF_fpTOS(fpTOS = fp[0]);    IF_fpTOS(fpTOS = fp[0]);

Removed from v.1.80  
changed lines
  Added in v.1.83


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