pkgsrc/devel/gmp/patches/patch-aa
adam 742cf4e2b5 Changes 5.1.0:
BUGS FIXED
* When reading a C++ number (like mpz_class) in an istream reaches the end
  of the stream, the eofbit is now set.

* The result sign of mpz_rootrem's remainder is now always correct.
* The mpz_remove function now handles negative divisors.
* Contains all fixes from release 5.0.5.

SPEEDUPS
* The n-factorial and n-over-k functions have been reimplemented for great
  speedups for small and large operands.
* New subquadratic algorithm for the Kronecker/Jacobi/Legendre symbol.
* Major speedup for ARM, in particular ARM Cortex-A9 and A15, thanks to broad
  assembly support.
* Significant speedup or POWER6 and POWER7 thanks to improved assembly.
* The performance under M$ Windows' 64-bit ABI has been greatly improved
  thanks to complete assembly support.
* Minor speed improvements of many functions and for many platforms.

FEATURES
* Many new CPUs recognised.
* New functions for multi-factorials, and primorial: mpz_2fac_ui,
  mpz_mfac_uiui and mpz_primorial_ui.
* The mpz_powm_sec function now uses side-channel silent division for
  converting into Montgomery residues.
* The fat binary mechanism is now more robust in its CPU recognition.

MISC
* Inclusion of assembly code is now controlled by the configure options
  --enable-assembly and --disable-assembly.  The "none" CPU targets is gone.
* In C++, the conversions mpq_class->mpz_class, mpf_class->mpz_class and
  mpf_class->mpq_class are now explicit.
* Includes "mini-gmp", a small, portable, but less efficient, implementation
  of a subset of GMP's mpn and mpz interfaces. Used in GMP bootstrap, but it
  can also be bundled with applications as a fallback when the real GMP
  library is unavailable.
* The ABIs under AIX are no longer called aix32 and aix64, but mode64 and 32.
  This is more consistent with other powerpc systems.
* The coverage of the testsuite has been improved, using the lcov tool.  See
  also http://gmplib.org/devel/lcov/.
* It is now possible to compile GMP using a C++ compiler.
* K&R C compilers are no longer supported.
* The BSD MP compatibility functions have been removed.
2013-01-31 20:30:25 +00:00

16 lines
557 B
Text

$NetBSD: patch-aa,v 1.12 2013/01/31 20:30:26 adam Exp $
--- longlong.h.orig 2006-12-08 17:56:28.000000000 -0800
+++ longlong.h
@@ -1031,8 +1031,10 @@ extern UWtype __MPN(udiv_qrnnd) _PROTO (
count is only an int. */
#define count_trailing_zeros(count, x) \
do { \
+ UDItype __cbtmp; \
ASSERT ((x) != 0); \
- __asm__ ("bsfq %1,%q0" : "=r" (count) : "rm" ((UDItype)(x))); \
+ __asm__ ("bsfq %1,%q0" : "=r" (__cbtmp) : "rm" ((UDItype)(x))); \
+ (count) = __cbtmp; \
} while (0)
#endif /* x86_64 */