On Sun, Feb 8, 2015 at 6:42 PM, erik quanstrom wrote: > > On Sun, Feb 8, 2015 at 6:27 PM, erik quanstrom > > wrote: > > > am i reading the intel docs wrong, or is 6l missing a valid > instruction? > > > memmove5: doasm: notfound from=12 to=92 (47) CMOVQNE DX,(DI)> > > > Go's liblink (which is derived from [5869]l) and cmd/6a support this > > instruction. > does it support it with exactly that register combination? > No. I just realized you want conditional move from DX to (DI). It's an illegal combination. The intel document only lists three forms for CMOVNE: CMOVNE r16, r/m16 // CMOVWNE CMOVNE r32, r/m32 // CMOVLNE CMOVNE r64, r/m64 // CMOVQNE All of them are conditionally moving from reg/mem to a register. (Also note the description "These instructions can move 16-bit, 32-bit or 64-bit values from memory to a general-purpose register or from one general-purpose register to another.")