summaryrefslogtreecommitdiff
path: root/gmp-h.in
diff options
context:
space:
mode:
authorKevin Ryde <user42@zip.com.au>2001-07-10 01:12:16 +0200
committerKevin Ryde <user42@zip.com.au>2001-07-10 01:12:16 +0200
commit9abbe78cba46ac7adc58cd53f7d438cf2eeb4a0e (patch)
tree9b380e27933ede32ebe4ad2ab0efc211d64fa3d9 /gmp-h.in
parent7f404329fa751a1c8364dd3b19cd27d9bac984ba (diff)
downloadgmp-9abbe78cba46ac7adc58cd53f7d438cf2eeb4a0e.tar.gz
* gmp-h.in (__GMPN_ADD_1): Avoid a bug in egcs 2.91.66.
Diffstat (limited to 'gmp-h.in')
-rw-r--r--gmp-h.in15
1 files changed, 9 insertions, 6 deletions
diff --git a/gmp-h.in b/gmp-h.in
index 3e122e5a0..2ae97bc16 100644
--- a/gmp-h.in
+++ b/gmp-h.in
@@ -1493,6 +1493,9 @@ mpf_size (mpf_srcptr f)
\
} while (0)
+/* The initializers for __dst etc here avoid a bug in egcs 2.91.66 19990314
+ on redhat 6.1, which shows up in tests/mpn/t-aors_1.c check_add_1() as
+ the size parameter to the asm block getting instead the src pointer. */
#define __GMPN_ADD_1(cout, dst, src, size, n) \
do { \
/* ASSERT ((size) >= 1); */ \
@@ -1510,9 +1513,9 @@ mpf_size (mpf_srcptr f)
} \
else \
{ \
- mp_ptr __dst; \
- mp_srcptr __src; \
- mp_size_t __size; \
+ mp_ptr __dst = (dst); \
+ mp_srcptr __src = (src); \
+ mp_size_t __size = (size); \
\
__asm__ __volatile__ \
(__GMP_ASM_L(top) ":\n" \
@@ -1530,9 +1533,9 @@ mpf_size (mpf_srcptr f)
"=&r" (__dst), \
"=&r" (__src), \
"=&rm" (__size) \
- : "1" (dst), \
- "2" (src), \
- "3" (size), \
+ : "1" (__dst), \
+ "2" (__src), \
+ "3" (__size), \
"0" (n) \
: "memory"); \
\