gmp failures on Solaris/x86
tege at swox.com
Wed Jun 21 17:44:45 CEST 2006
Darrel Hankerson <hankedr at auburn.edu> writes:
Sorry, I stupidly assumed Sun's assembler was correct without looking
at context. I'm new to amd64, and didn't realize movd is used for
both 32-bit and 64-bit register moves.
Of all the messyness of the x86 ISA, move instructions are worst.
It appears that only "movdq" (or .byte) is accepted by Sun's as (Sun
Compiler Common 10 s10_73 11/23/2004). This seems wrong to me from
the AMD docs, but it generates the correct code. Unfortunately gas
2.15 (delivered with Solaris 10) complains:
Error: suffix or operands invalid for `movd'
I don't know which form is most logical.
Supposedly, the movd instructions can be used for moving from memory
too. How 32-bit and 64-bit load operations are distinguished by gas,
is beyond me.
I guess we have to implement one more m4 macro for x86, to work around
More information about the gmp-bugs