diff options
author | Mike Pavone <pavone@retrodev.com> | 2012-12-28 19:21:05 -0800 |
---|---|---|
committer | Mike Pavone <pavone@retrodev.com> | 2012-12-28 19:21:05 -0800 |
commit | f18f61486c979c1955bab5549ef05a985d45fc05 (patch) | |
tree | 3cce90915859075d93196941f48991e18142998a /dis.c | |
parent | e9348e64584c3fdc88bc6de533216f09b679126d (diff) |
Allow jmp/jsr to follow pc-relative addresses in disassembler
Diffstat (limited to 'dis.c')
-rw-r--r-- | dis.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -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); } } } |