[gforth] / gforth / engine / main.c  

gforth: gforth/engine/main.c

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

version 1.60, Fri Mar 22 10:41:39 2002 UTC version 1.61, Fri Mar 22 20:36:26 2002 UTC
Line 498 
Line 498 
   
 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 
Line 527 
   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) */
 }  }
   


Generate output suitable for use with a patch program
Legend:
Removed from v.1.60  
changed lines
  Added in v.1.61

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help