mirror of
git://git.gnupg.org/gnupg.git
synced 2024-11-12 21:58:50 +01:00
* longlong.h: Added PowerPC 64 bit code from GPM-4.1.2 but didn't
enabled it yet.
This commit is contained in:
parent
cc1e739560
commit
5c5c4b51ba
@ -1,3 +1,8 @@
|
|||||||
|
2003-10-20 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* longlong.h: Added PowerPC 64 bit code from GPM-4.1.2 but didn't
|
||||||
|
enabled it yet.
|
||||||
|
|
||||||
2003-05-21 David Shaw <dshaw@jabberwocky.com>
|
2003-05-21 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* mpicoder.c, mpi-inline.h, mpi-inv.c, mpiutil.c, mpih-div.c,
|
* mpicoder.c, mpi-inline.h, mpi-inv.c, mpiutil.c, mpih-div.c,
|
||||||
|
@ -5,16 +5,16 @@ Copyright (C) 1991, 1992, 1993, 1994, 1996, 1998,
|
|||||||
2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
2000, 2001, 2002, 2003 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is free software; you can redistribute it and/or modify
|
This file is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Library General Public License as published by
|
it under the terms of the GNU Lesser General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License, or (at your
|
the Free Software Foundation; either version 2.1 of the License, or (at your
|
||||||
option) any later version.
|
option) any later version.
|
||||||
|
|
||||||
This file is distributed in the hope that it will be useful, but
|
This file is distributed in the hope that it will be useful, but
|
||||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
|
||||||
License for more details.
|
License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU Library General Public License
|
You should have received a copy of the GNU Lesser General Public License
|
||||||
along with this file; see the file COPYING.LIB. If not, write to
|
along with this file; see the file COPYING.LIB. If not, write to
|
||||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
|
||||||
MA 02111-1307, USA. */
|
MA 02111-1307, USA. */
|
||||||
@ -921,6 +921,63 @@ extern USItype __udiv_qrnnd ();
|
|||||||
#endif
|
#endif
|
||||||
#endif /* Power architecture variants. */
|
#endif /* Power architecture variants. */
|
||||||
|
|
||||||
|
/* Powerpc 64 bit support taken from gmp-4.1.2. */
|
||||||
|
/* We should test _IBMR2 here when we add assembly support for the system
|
||||||
|
vendor compilers. */
|
||||||
|
#if 0 /* Not yet enabled becuase we don't have hardware for a test. */
|
||||||
|
#if (defined (_ARCH_PPC) || defined (__powerpc__)) && W_TYPE_SIZE == 64
|
||||||
|
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
|
||||||
|
do { \
|
||||||
|
if (__builtin_constant_p (bh) && (bh) == 0) \
|
||||||
|
__asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \
|
||||||
|
: "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
|
||||||
|
else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
|
||||||
|
__asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \
|
||||||
|
: "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
|
||||||
|
else \
|
||||||
|
__asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \
|
||||||
|
: "=r" (sh), "=&r" (sl) \
|
||||||
|
: "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \
|
||||||
|
} while (0)
|
||||||
|
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
|
||||||
|
do { \
|
||||||
|
if (__builtin_constant_p (ah) && (ah) == 0) \
|
||||||
|
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \
|
||||||
|
: "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
|
||||||
|
else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0) \
|
||||||
|
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \
|
||||||
|
: "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
|
||||||
|
else if (__builtin_constant_p (bh) && (bh) == 0) \
|
||||||
|
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \
|
||||||
|
: "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
|
||||||
|
else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
|
||||||
|
__asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \
|
||||||
|
: "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
|
||||||
|
else \
|
||||||
|
__asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \
|
||||||
|
: "=r" (sh), "=&r" (sl) \
|
||||||
|
: "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \
|
||||||
|
} while (0)
|
||||||
|
#define count_leading_zeros(count, x) \
|
||||||
|
__asm__ ("cntlzd %0,%1" : "=r" (count) : "r" (x))
|
||||||
|
#define COUNT_LEADING_ZEROS_0 64
|
||||||
|
#define umul_ppmm(ph, pl, m0, m1) \
|
||||||
|
do { \
|
||||||
|
UDItype __m0 = (m0), __m1 = (m1); \
|
||||||
|
__asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
|
||||||
|
(pl) = __m0 * __m1; \
|
||||||
|
} while (0)
|
||||||
|
#define UMUL_TIME 15
|
||||||
|
#define smul_ppmm(ph, pl, m0, m1) \
|
||||||
|
do { \
|
||||||
|
DItype __m0 = (m0), __m1 = (m1); \
|
||||||
|
__asm__ ("mulhd %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
|
||||||
|
(pl) = __m0 * __m1; \
|
||||||
|
} while (0)
|
||||||
|
#define SMUL_TIME 14 /* ??? */
|
||||||
|
#define UDIV_TIME 120 /* ??? */
|
||||||
|
#endif /* 64-bit PowerPC. */
|
||||||
|
#endif /* if 0 */
|
||||||
|
|
||||||
/***************************************
|
/***************************************
|
||||||
************** PYR ******************
|
************** PYR ******************
|
||||||
|
Loading…
Reference in New Issue
Block a user