summaryrefslogtreecommitdiff
path: root/longlong.h
diff options
context:
space:
mode:
authortege <tege@gmplib.org>2001-09-20 20:56:14 +0200
committertege <tege@gmplib.org>2001-09-20 20:56:14 +0200
commitbb78150378b7ee83dfa2a351eb39aa823473cc4e (patch)
treefe0d2f051e49257774f1fd374a9565a1308a985e /longlong.h
parentf449802477338ec6a0d0ea399645d7d91e163bf0 (diff)
downloadgmp-bb78150378b7ee83dfa2a351eb39aa823473cc4e.tar.gz
Rewrite __i370__ smul_ppmm; enable also for __s390__.
Diffstat (limited to 'longlong.h')
-rw-r--r--longlong.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/longlong.h b/longlong.h
index e0a64d236..2d04e1004 100644
--- a/longlong.h
+++ b/longlong.h
@@ -521,15 +521,15 @@ extern UWtype __MPN(udiv_qrnnd) _PROTO ((UWtype *, UWtype, UWtype, UWtype));
} while (0)
#endif /* hppa */
-#if (defined (__i370__) || defined (__mvs__)) && W_TYPE_SIZE == 32
+#if (defined (__i370__) || defined (__s390__) || defined (__mvs__)) && W_TYPE_SIZE == 32
#define smul_ppmm(xh, xl, m0, m1) \
do { \
union {DItype __ll; \
struct {USItype __h, __l;} __i; \
} __x; \
- __asm__ ("mr %0,%3" \
- : "=r" (__x.__i.__h), "=r" (__x.__i.__l) \
- : "%1" (m0), "r" (m1)); \
+ __asm__ ("lr %N0,%1\n\tmr %0,%2" \
+ : "=&r" (__x.__ll) \
+ : "r" (m0), "r" (m1)); \
(xh) = __x.__i.__h; (xl) = __x.__i.__l; \
} while (0)
#define sdiv_qrnnd(q, r, n1, n0, d) \