On Sun, Feb 8, 2015 at 6:42 PM, erik quanstrom <[email protected]>
wrote:

> > On Sun, Feb 8, 2015 at 6:27 PM, erik quanstrom <[email protected]>
> > 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.")

Reply via email to