gmp failures on Solaris/x86

Torbjorn Granlund 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
this.

-- 
Torbjörn


More information about the gmp-bugs mailing list