Diff for /gforth/engine/main.c between versions 1.60 and 1.61

version 1.60, 2002/03/22 10:41:39 version 1.61, 2002/03/22 20:36:26
Line 498  void check_prims(Label symbols1[]) Line 498  void check_prims(Label symbols1[])
   
 Label compile_prim(Label prim)  Label compile_prim(Label prim)
 {  {
 #ifdef DOUBLY_INDIRECT  #if defined(DOUBLY_INDIRECT)
   if (prim<((Label)(xts+DOESJUMP)) || prim>((Label)(xts+npriminfos))) {    if (prim<((Label)(xts+DOESJUMP)) || prim>((Label)(xts+npriminfos))) {
     fprintf(stderr,"compile_prim encountered xt %p\n", prim);      fprintf(stderr,"compile_prim encountered xt %p\n", prim);
     return prim;      return prim;
   } else    } else
     return prim-((Label)xts)+((Label)vm_prims);      return prim-((Label)xts)+((Label)vm_prims);
 #else /* !defined(DOUBLY_INDIRECT) */  #elif defined(IND_JUMP_LENGTH) && !defined(VM_PROFILING) && !defined(INDIRECT_THREADED)
 #if defined(IND_JUMP_LENGTH) && !defined(VM_PROFILING)  
   unsigned i;    unsigned i;
   Address old_code_here=code_here;    Address old_code_here=code_here;
   static Address last_jump=0;    static Address last_jump=0;
Line 528  Label compile_prim(Label prim) Line 527  Label compile_prim(Label prim)
   code_here += priminfos[i].length;    code_here += priminfos[i].length;
   last_jump = (priminfos[i].super_end) ? 0 : (prim+priminfos[i].length);    last_jump = (priminfos[i].super_end) ? 0 : (prim+priminfos[i].length);
   return (Label)old_code_here;    return (Label)old_code_here;
 #else  #else /* !defined(DOUBLY_INDIRECT), no code replication */
   #if !defined(INDIRECT_THREADED)
   prim = *(Xt)prim;    prim = *(Xt)prim;
   return prim;  
 #endif  #endif
     return prim;
 #endif /* !defined(DOUBLY_INDIRECT) */  #endif /* !defined(DOUBLY_INDIRECT) */
 }  }
   

Removed from v.1.60  
changed lines
  Added in v.1.61


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