summaryrefslogtreecommitdiff
path: root/otherlibs/num/bng_ppc.c
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2006-05-31 08:16:34 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2006-05-31 08:16:34 +0000
commitd9be4fee6af0646b153cf0cc562b632f67ceca58 (patch)
treec0634a5d96c084ad6acd0de8f73281539935d016 /otherlibs/num/bng_ppc.c
parent0b0804968f90e9b3cef55a614c777ba7f7d65a47 (diff)
downloadocaml-d9be4fee6af0646b153cf0cc562b632f67ceca58.tar.gz
Portage PowerPC 64 bits
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7430 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/num/bng_ppc.c')
-rw-r--r--otherlibs/num/bng_ppc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/otherlibs/num/bng_ppc.c b/otherlibs/num/bng_ppc.c
index d0e33a2f25..32d573cd0f 100644
--- a/otherlibs/num/bng_ppc.c
+++ b/otherlibs/num/bng_ppc.c
@@ -79,8 +79,16 @@
: "=&r" (res), "=&r" (carryaccu) \
: "r" (arg1), "r" (arg2), "r" (arg3), "1" (carryaccu))
+#ifdef __ppc64__
+#define BngMult(resh,resl,arg1,arg2) \
+ asm("mulld %0, %2, %3 \n\t" \
+ "mulhdu %1, %2, %3" \
+ : "=&r" (resl), "=r" (resh) \
+ : "r" (arg1), "r" (arg2))
+#else
#define BngMult(resh,resl,arg1,arg2) \
asm("mullw %0, %2, %3 \n\t" \
"mulhwu %1, %2, %3" \
: "=&r" (resl), "=r" (resh) \
: "r" (arg1), "r" (arg2))
+#endif \ No newline at end of file