summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Stelling <blubb@gentoo.org>2004-11-28 11:13:49 +0000
committerSimon Stelling <blubb@gentoo.org>2004-11-28 11:13:49 +0000
commit04c5d267d48a46123ad66e6f79fc1c62d5b2ac40 (patch)
tree7ad1df38dc450472aa89e59dc88e16462697a50d /dev-libs/gmp/files
parentFix bug #72654 arising from Spanky's DESTDIR... (diff)
downloadhistorical-04c5d267d48a46123ad66e6f79fc1c62d5b2ac40.tar.gz
historical-04c5d267d48a46123ad66e6f79fc1c62d5b2ac40.tar.bz2
historical-04c5d267d48a46123ad66e6f79fc1c62d5b2ac40.zip
#66780
Diffstat (limited to 'dev-libs/gmp/files')
-rw-r--r--dev-libs/gmp/files/amd64.patch30
1 files changed, 30 insertions, 0 deletions
diff --git a/dev-libs/gmp/files/amd64.patch b/dev-libs/gmp/files/amd64.patch
new file mode 100644
index 000000000000..a07d72c691bf
--- /dev/null
+++ b/dev-libs/gmp/files/amd64.patch
@@ -0,0 +1,30 @@
+--- gmp-impl.h 22 Apr 2004 23:59:53 -0000 1.281.2.12
++++ gmp-impl.h 29 Sep 2004 19:22:23 -0000
+@@ -2188,14 +2188,24 @@
+ there's an even number. */
+
+ #if defined (__GNUC__) && ! defined (NO_ASM) && HAVE_HOST_CPU_FAMILY_x86
++/* Some clever GCC maintainer decided to change the meaning of the q register
++ flag with GCC version 3.1. He added a Q flag with the old meaning at the
++ same time. This forces us to use a conditional on GCC version. */
++#if __GMP_GNUC_PREREQ (3,1)
++#define __GMP_qm "=Qm"
++#define __GMP_q "=Q"
++#else
++#define __GMP_qm "=qm"
++#define __GMP_q "=q"
++#endif
+ #define ULONG_PARITY(p, n) \
+ do { \
+ char __p; \
+ unsigned long __n = (n); \
+ __n ^= (__n >> 16); \
+- asm ("xorb %h1, %b1\n" \
+- "setpo %0\n" \
+- : "=qm" (__p), "=q" (__n) \
++ asm ("xorb %h1, %b1\n\t" \
++ "setpo %0" \
++ : __GMP_qm (__p), __GMP_q (__n)\
+ : "1" (__n)); \
+ (p) = __p; \
+ } while (0)