Mercurial > repos > blastem
diff dis.c @ 635:6992a1b07714
Fix logic for automatic label generation.
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 12 Oct 2014 19:02:47 -0700 |
parents | 4a6ec64acd79 |
children | e263e1ac6038 |
line wrap: on
line diff
--- 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 {