diff options
author | Michael Pavone <pavone@retrodev.com> | 2014-10-12 19:02:47 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2014-10-12 19:02:47 -0700 |
commit | 821106e3e1946d0016f02cfeaf4f2c3ca7200ddb (patch) | |
tree | 44d00a35ecc8b0186f73d4722b667bb490e8aada /dis.c | |
parent | fc252737d7e366c5eccbbc08dc028b6adcb7d793 (diff) |
Fix logic for automatic label generation.
Diffstat (limited to 'dis.c')
-rw-r--r-- | dis.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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 @@ void reference(uint32_t address) { 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 @@ uint8_t is_visited(uint32_t address) 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 { |