Mercurial > repos > blastem
changeset 97:c7185fd840fc
Fix address register indexed addressing (probably)
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 27 Dec 2012 21:32:00 -0800 |
parents | f894f85cf39d |
children | 104e257fb93c |
files | m68k_to_x86.c |
diffstat | 1 files changed, 14 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/m68k_to_x86.c Thu Dec 27 21:23:55 2012 -0800 +++ b/m68k_to_x86.c Thu Dec 27 21:32:00 2012 -0800 @@ -224,6 +224,20 @@ if (inst->src.params.regs.displacement) { out = add_ir(out, inst->src.params.regs.displacement, SCRATCH1, SZ_D); } + switch (inst->extra.size) + { + case OPSIZE_BYTE: + out = call(out, (char *)m68k_read_byte_scratch1); + break; + case OPSIZE_WORD: + out = call(out, (char *)m68k_read_word_scratch1); + break; + case OPSIZE_LONG: + out = call(out, (char *)m68k_read_long_scratch1); + break; + } + ea->mode = MODE_REG_DIRECT; + ea->base = SCRATCH1; break; case MODE_PC_DISPLACE: out = cycles(out, BUS);