Track branches with 24 bit absolute addresses too.

Also, fix bug in generating duplicate labels after reading in labels file
This commit is contained in:
2011-02-13 15:29:15 +00:00
parent 20b7191ecf
commit d3ce23424e

View File

@@ -63,7 +63,7 @@ if (open LABELS, "<input.labels") {
$addr = hex $addr;
$labels{$addr} = $name;
if ($name =~ /^L(\d+)$/) {
$labelnum = $1 + 1 if ($labelnum >= $1);
$labelnum = $1 + 1 if ($1 >= $labelnum);
}
}
}
@@ -1550,7 +1550,12 @@ sub read_operand_addr24
my $addr = $byte1;
$addr += $byte2 << 8;
$addr += $byte3 << 16;
set_operand(sprintf("0x%.6x", $addr));
if ($branch) {
set_operand(sprintf("%s", get_label($addr)));
add_comment(sprintf("0x%.6x", $addr));
} else {
set_operand(sprintf("0x%.6x", $addr));
}
}
## ASSUMPTION: This is always the last operand!!!