changeset 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 22e357678fad
files dis.c
diffstat 1 files changed, 4 insertions(+), 4 deletions(-) [+]
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 {