From 821106e3e1946d0016f02cfeaf4f2c3ca7200ddb Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Sun, 12 Oct 2014 19:02:47 -0700 Subject: Fix logic for automatic label generation. --- dis.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'dis.c') diff --git a/dis.c b/dis.c index 06521dd..edd555f 100644 --- a/dis.c +++ b/dis.c @@ -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 { -- cgit v1.2.3