[gforth] / gforth / engine / main.c  

gforth: gforth/engine/main.c

Diff for /gforth/engine/main.c between version 1.58 and 1.59

version 1.58, Sat Jan 26 17:30:34 2002 UTC version 1.59, Sun Feb 10 14:02:25 2002 UTC
Line 476 
Line 476 
         break;          break;
       }        }
     }      }
       pi->length = prim_len;
     /* fprintf(stderr,"checking primitive %d: memcmp(%p, %p, %d)\n",      /* fprintf(stderr,"checking primitive %d: memcmp(%p, %p, %d)\n",
        i, symbols1[i], symbols2[i], prim_len);*/         i, symbols1[i], symbols2[i], prim_len);*/
     if (memcmp(symbols1[i],symbols2[i],prim_len)!=0) {      if (memcmp(symbols1[i],symbols2[i],prim_len)!=0) {
Line 484 
Line 485 
                 i, symbols1[i], symbols2[i], prim_len);                  i, symbols1[i], symbols2[i], prim_len);
     } else {      } else {
       pi->start = symbols1[i];        pi->start = symbols1[i];
       pi->length = prim_len;  
       if (debug)        if (debug)
         fprintf(stderr,"Primitive %d relocatable: start %p, length %ld, super_end %d\n",          fprintf(stderr,"Primitive %d relocatable: start %p, length %ld, super_end %d\n",
                 i, pi->start, pi->length, pi->super_end);                  i, pi->start, pi->length, pi->super_end);
Line 502 
Line 502 
   } else    } else
     return prim-((Label)xts)+((Label)vm_prims);      return prim-((Label)xts)+((Label)vm_prims);
 #else /* !defined(DOUBLY_INDIRECT) */  #else /* !defined(DOUBLY_INDIRECT) */
 #ifdef IND_JUMP_LENGTH  #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 532 
Line 532 
 #endif /* !defined(DOUBLY_INDIRECT) */  #endif /* !defined(DOUBLY_INDIRECT) */
 }  }
   
   #ifdef PRINT_SUPER_LENGTHS
   Cell prim_length(Cell prim)
   {
     return priminfos[prim+DOESJUMP+1].length;
   }
   #endif
   
 Address loader(FILE *imagefile, char* filename)  Address loader(FILE *imagefile, char* filename)
 /* returns the address of the image proper (after the preamble) */  /* returns the address of the image proper (after the preamble) */
 {  {
Line 563 
Line 570 
   vm_prims = engine(0,0,0,0,0);    vm_prims = engine(0,0,0,0,0);
   check_prims(vm_prims);    check_prims(vm_prims);
 #ifndef DOUBLY_INDIRECT  #ifndef DOUBLY_INDIRECT
   #ifdef PRINT_SUPER_LENGTHS
     print_super_lengths();
   #endif
   check_sum = checksum(vm_prims);    check_sum = checksum(vm_prims);
 #else /* defined(DOUBLY_INDIRECT) */  #else /* defined(DOUBLY_INDIRECT) */
   check_sum = (UCell)vm_prims;    check_sum = (UCell)vm_prims;


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

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help