c++ patch

Torbjorn Granlund tege at swox.com
Mon May 22 17:03:18 CEST 2006

Marc Glisse <marc.glisse at normalesup.org> writes:

  > For SPARC, since there aren't any very useful 64-bit integer
  > operations, the 32-bit ABI isn't terribly much slower than the 64-bit
  > ABI.  We use floating-point operations anyway.
  > But the 64-bit ABI is currently about 50% faster anyway.
  >  (and I know you are not a huge fan of sparc...)
  > Indeed.  I am more into fast and cheap computers, than expensive and
  > slow.  :-)
  I hope someone at Sun has read all the comments in the sparc32 and
  sparc64 subdirectories of gmp/mpn (and maybe someone will update it for
  more recent hardware).
What are the problems wrt recent hardware?

I know the ultrasparc T1 isn't too happy with the floating-point
addmul_1 and addmul_2, but I doubt anything else would be much faster.

The current code runs OK on ultrasparc 1-4, I think.

  > As for using 64-bit operations internally under a 32-bit ABI, that's
  > not usually allowed, and if allowed it is inconvenient.
  I just meant that the 64-bit type called long in 64-bit is probably the
  same that is called long long in 32-bit mode. But that may be completely
  unrelated to what gmp uses, and I may be saying something stupid...

The type is one thing, the available instructions is another.
And then we have alignment, and other factors.

All-in-all, a 32-bit ABI is generally a lot slowed for GMP than
a 64-bit ABI.  That's true even if you could use long long.


More information about the gmp-bugs mailing list