Mercurial > repos > blastem
changeset 298:170722e80fc0
Fix handling of instructions that combine an IX/IY displacement with another prefix in test generator
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Wed, 08 May 2013 22:45:29 -0700 |
parents | 147e31983730 |
children | 42e1a986f2d0 |
files | ztestgen.c |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ztestgen.c Wed May 08 22:43:31 2013 -0700 +++ b/ztestgen.c Wed May 08 22:45:29 2013 -0700 @@ -226,8 +226,13 @@ } //copy instruction - memcpy(cur, instbuf, instlen); - cur += instlen; + if (instlen == 3) { + memcpy(cur, instbuf, 2); + cur += 2; + } else { + memcpy(cur, instbuf, instlen); + cur += instlen; + } //immed/displacement byte(s) if (addr_mode == Z80_IX_DISPLACE || addr_mode == Z80_IY_DISPLACE) { @@ -244,6 +249,9 @@ if (inst->reg == Z80_USE_IMMED && inst->op != Z80_BIT && inst->op != Z80_RES && inst->op != Z80_SET) { *(cur++) = inst->immed & 0xFF; } + if (instlen == 3) { + *(cur++) = instbuf[2]; + } for (char * cur = disbuf; *cur != 0; cur++) { if (*cur == ',' || *cur == ' ') {