changeset 114:e821b6fde0e4

Allow jmp/jsr to follow pc-relative addresses in disassembler
author Mike Pavone <pavone@retrodev.com>
date Fri, 28 Dec 2012 19:21:05 -0800
parents d260996eea55
children 11d72e471104
files dis.c
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/dis.c	Fri Dec 28 17:59:41 2012 -0800
+++ b/dis.c	Fri Dec 28 19:21:05 2012 -0800
@@ -106,12 +106,20 @@
 					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);
 				}
 			}
 		}