Mercurial > repos > blastem
changeset 300:9adc1dce39bf
Fix IX/IY register selection when the direction bit is set
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 08 May 2013 22:49:50 -0700 |
parents | 42e1a986f2d0 |
children | 6e15509a1257 |
files | z80_to_x86.c |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/z80_to_x86.c Wed May 08 22:46:03 2013 -0700 +++ b/z80_to_x86.c Wed May 08 22:49:50 2013 -0700 @@ -187,7 +187,7 @@ break; case Z80_IX_DISPLACE: case Z80_IY_DISPLACE: - reg = opts->regs[inst->addr_mode == Z80_IX_DISPLACE ? Z80_IX : Z80_IY]; + reg = opts->regs[(inst->addr_mode & 0x1F) == Z80_IX_DISPLACE ? Z80_IX : Z80_IY]; dst = mov_rr(dst, reg, areg, SZ_W); dst = add_ir(dst, inst->ea_reg, areg, SZ_W); size = z80_size(inst); @@ -212,7 +212,7 @@ ea->mode = MODE_UNUSED; break; default: - fprintf(stderr, "Unrecognized Z80 addressing mode %d\n", inst->addr_mode); + fprintf(stderr, "Unrecognized Z80 addressing mode %d\n", inst->addr_mode & 0x1F); exit(1); } return dst;