# HG changeset patch # User Michael Pavone # Date 1413165767 25200 # Node ID 6992a1b0771468f27cb9566e03c027f6ee9e0535 # Parent 4a6ec64acd79874b31779f15dfd99f4cf600c9b9 Fix logic for automatic label generation. diff -r 4a6ec64acd79 -r 6992a1b07714 dis.c --- a/dis.c Sat Oct 11 22:18:49 2014 -0700 +++ b/dis.c Sun Oct 12 19:02:47 2014 -0700 @@ -11,7 +11,7 @@ #include "tern.h" uint8_t visited[(16*1024*1024)/16]; -uint8_t label[(16*1024*1024)/8]; +uint16_t label[(16*1024*1024)/8]; void visit(uint32_t address) { @@ -23,7 +23,7 @@ { address &= 0xFFFFFF; //printf("referenced: %X\n", address); - label[address/16] |= 1 << (address % 8); + label[address/16] |= 1 << (address % 16); } uint8_t is_visited(uint32_t address) @@ -32,10 +32,10 @@ return visited[address/16] & (1 << ((address / 2) % 8)); } -uint8_t is_label(uint32_t address) +uint16_t is_label(uint32_t address) { address &= 0xFFFFFF; - return label[address/16] & (1 << (address % 8)); + return label[address/16] & (1 << (address % 16)); } typedef struct {