Skip to content

Commit 8d52acc

Browse files
authored
Merge pull request #2065 from stefanrueger/disassemble-symbols
No longer use register names in I/O space for ldi operands
2 parents ab1ae79 + 158a2a7 commit 8d52acc

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/disasm.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -922,8 +922,11 @@ static const char *get_ldi_name(int op1, int op2, Op_context *oxp) {
922922
if((s = find_symbol(*c, addr*awidth)))
923923
break;
924924
if(s && s->name) { // Label matches the address loaded into register pair
925-
s->used = 1;
926-
return str_ccprintf("%s%s(%s)", awidth == 2? "pm_": "", ra & 1? "hi8": "lo8", s->name);
925+
// Don't use register names in I/O space as ldi label names
926+
if(s->type != 'M' || (uint16_t) addr >= 64 + cx->dis_io_offset) {
927+
s->used = 1;
928+
return str_ccprintf("%s%s(%s)", awidth == 2? "pm_": "", ra & 1? "hi8": "lo8", s->name);
929+
}
927930
}
928931
if((ra | 1) == 31 && oxp->is_lpm && addr >= cx->dis_start && addr < cx->dis_end) {
929932
if(cx->dis_pass == 1)

0 commit comments

Comments
 (0)