From f18f61486c979c1955bab5549ef05a985d45fc05 Mon Sep 17 00:00:00 2001 From: Mike Pavone Date: Fri, 28 Dec 2012 19:21:05 -0800 Subject: Allow jmp/jsr to follow pc-relative addresses in disassembler --- dis.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'dis.c') diff --git a/dis.c b/dis.c index c6357d8..e99b332 100644 --- a/dis.c +++ b/dis.c @@ -106,12 +106,20 @@ int main(int argc, char ** argv) if (is_visited(address)) { break; } + } else if (instbuf.src.addr_mode = MODE_PC_DISPLACE) { + address = instbuf.src.params.regs.displacement + instbuf.address + 2; + encoded = filebuf + address/2; + if (is_visited(address)) { + break; + } } else { break; } } else if(instbuf.op == M68K_JSR) { if (instbuf.src.addr_mode == MODE_ABSOLUTE || instbuf.src.addr_mode == MODE_ABSOLUTE_SHORT) { def = defer(instbuf.src.params.immed, def); + } else if (instbuf.src.addr_mode = MODE_PC_DISPLACE) { + def = defer(instbuf.src.params.regs.displacement + instbuf.address + 2, def); } } } -- cgit v1.2.3