# HG changeset patch # User Mike Pavone # Date 1368078329 25200 # Node ID 170722e80fc010c2152b54da958765ee9f7a7faa # Parent 147e3198373043ce17b532e01cc9f9d5caa31039 Fix handling of instructions that combine an IX/IY displacement with another prefix in test generator diff -r 147e31983730 -r 170722e80fc0 ztestgen.c --- 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 == ' ') {