movdqa/movdqu amd64 glitches
Peter Johnson
peter at tortall.net
Thu Feb 5 00:29:16 PST 2004
Thanks for the bug report!
You're correct, the prefix ordering was incorrect. Originally we
implemented the SSE2 instructions according to Intel's thinking: don't
treat the first byte of those instructions as a prefix. It turns out that
AMD64 treats them just like other legacy prefixes, which come before the
REX byte. We had to add a new field to handle this to the x86_bytecode
structure (as well as in x86id.re).
In any case, it's fixed in CVS, and the fix will be in the next release.
Thanks,
Peter Johnson
On Tue, 3 Feb 2004, Henryk Richter wrote:
> I attempted to use the extended xmm8-xmm15 registers for move operations
> but yasm generates the wrong instruction byte order.
>
> example:
>
> movdqa xmm10, xmm1 ; assembles to 44 66 0f 6f d1 (rexX movdqa
> xmm2,xmm1)
>
> while gnu as outputs 66 44 0f 6f d1 correctly.
>
> I didn't find the swapping flag in x86.re, so I'm kindly asking here
> for a hint.
>
More information about the bug-yasm
mailing list