[gforth] / gforth / engine / main.c  

gforth: gforth/engine/main.c

Diff for /gforth/engine/main.c between version 1.76 and 1.77

version 1.76, Fri Dec 13 21:20:40 2002 UTC version 1.77, Fri Dec 13 21:59:39 2002 UTC
Line 432 
Line 432 
   return((int)(Cell)engine(ip0,sp0,rp0,fp0,lp0));    return((int)(Cell)engine(ip0,sp0,rp0,fp0,lp0));
 }  }
   
   
 #ifndef INCLUDE_IMAGE  #ifndef INCLUDE_IMAGE
 void print_sizes(Cell sizebyte)  void print_sizes(Cell sizebyte)
      /* print size information */       /* print size information */
Line 467 
Line 466 
   
 int compare_priminfo_length(PrimInfo **a, PrimInfo **b)  int compare_priminfo_length(PrimInfo **a, PrimInfo **b)
 {  {
   return (*a)->length - (*b)->length;    Cell diff = (*a)->length - (*b)->length;
     if (diff)
       return diff;
     else /* break ties by start address; thus the decompiler produces
             the earliest primitive with the same code (e.g. noop instead
             of (char) and @ instead of >code-address */
       return (*b)->start - (*a)->start;
 }  }
   
 #endif /* defined(NO_DYNAMIC) */  #endif /* defined(NO_DYNAMIC) */
Line 658 
Line 663 
   return code;    return code;
 #else /* !defined(NO_DYNAMIC) */  #else /* !defined(NO_DYNAMIC) */
   Cell i;    Cell i;
     struct code_block_list *p;
   
     /* first, check if we are in code at all */
     for (p = code_block_list;; p = p->next) {
       if (p == NULL)
         return code;
       if (code >= p->block && code < p->block+p->size)
         break;
     }
   /* reverse order because NOOP might match other prims */    /* reverse order because NOOP might match other prims */
   for (i=npriminfos-1; i>DOESJUMP; i--) {    for (i=npriminfos-1; i>DOESJUMP; i--) {
     PrimInfo *pi=decomp_prims[i];      PrimInfo *pi=decomp_prims[i];


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

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help