Diff for /gforth/vmgen-ex/profile.c between versions 1.3 and 1.5

version 1.3, 2002/06/02 15:46:17 version 1.5, 2003/02/01 14:28:08
Line 29 Line 29
 #define HASH_SIZE (1<<20)  #define HASH_SIZE (1<<20)
 #define hash(p) ((((Cell)(p))/sizeof(Inst))&(HASH_SIZE-1))  #define hash(p) ((((Cell)(p))/sizeof(Inst))&(HASH_SIZE-1))
   
   #ifdef __GNUC__
   typedef long long long_long;
   #else
   typedef long long_long;
   #endif
   
 typedef struct block_count {  typedef struct block_count {
   struct block_count *next; /* next in hash table */    struct block_count *next; /* next in hash table */
   struct block_count *fallthrough; /* the block that this one falls    struct block_count *fallthrough; /* the block that this one falls
                                        through to without SUPER_END */                                         through to without SUPER_END */
   Inst *ip;    Inst *ip;
   long long count;    long_long count;
   char **insts;    char **insts;
   size_t ninsts;    size_t ninsts;
 } block_count;  } block_count;
Line 63  block_count *block_insert(Inst *ip) Line 69  block_count *block_insert(Inst *ip)
   new->next = blocks[hash(ip)];    new->next = blocks[hash(ip)];
   new->fallthrough = NULL;    new->fallthrough = NULL;
   new->ip = ip;    new->ip = ip;
   new->count = 0LL;    new->count = (long_long)0;
   new->insts = malloc(0);    new->insts = malloc(1);
   assert(new->insts != NULL);    assert(new->insts != NULL);
   new->ninsts = 0;    new->ninsts = 0;
   blocks[hash(ip)] = new;    blocks[hash(ip)] = new;

Removed from v.1.3  
changed lines
  Added in v.1.5


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