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:
@@ -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!!!
|
||||
|
||||
Reference in New Issue
Block a user