changeset 412:00d5a2b532f4

Fix movem with pc displacement or pc indexed source
author Mike Pavone <pavone@retrodev.com>
date Wed, 19 Jun 2013 00:40:13 -0700
parents baf4688901f2
children 36fbbced25c2
files 68kinst.c
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/68kinst.c	Wed Jun 19 00:25:09 2013 -0700
+++ b/68kinst.c	Wed Jun 19 00:40:13 2013 -0700
@@ -501,6 +501,10 @@
 							decoded->op = M68K_INVALID;
 							return start+1;
 						}
+						if (decoded->src.addr_mode == MODE_PC_DISPLACE || decoded->src.addr_mode == MODE_PC_INDEX_DISP8) {
+							//adjust displacement to account for extra instruction word
+							decoded->src.params.regs.displacement += 2;
+						}
 					} else {
 						decoded->src.addr_mode = MODE_REG;
 						decoded->src.params.immed = *(++istream);