Mercurial > repos > blastem
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);