Welcome to ftp.nluug.nl Current directory: /NetBSD/NetBSD-current/src/external/lgpl3/gmp/dist/mpn/s390_32/ |
|
Contents of README:All current (2001) S/390 and z/Architecture machines are single-issue, but some newer machines have a deep pipeline. Software-pipelining is therefore beneficial. * mpn_add_n, mpn_sub_n: Use code along the lines below. Two-way unrolling would be adequate. mp_limb_t mpn_add_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n) { mp_limb_t a, b, r, cy; mp_size_t i; mp_limb_t mm = -1; cy = 0; up += n; vp += n; rp += n; i = -n; do { a = up[i]; b = vp[i]; r = a + b + cy; rp[i] = r; cy = (((a & b) | ((a | b) & (r ^ mm)))) >> 31; i++; } while (i < 0); return cy; } * mpn_lshift, mpn_rshift: Use SLDL/SRDL, and two-way unrolling. * mpn_mul_1, mpn_addmul_1, mpn_submul_1: For machines with just signed multiply (MR), use two loops, similar to the corresponding VAX or POWER functions. Handle carry like for mpn_add_n. |
Name Last modified Size
Parent Directory - CVS/ 17-Dec-2022 22:27 - esame/ 27-Sep-2020 05:01 - README 29-Nov-2013 08:49 899 addmul_1.asm 23-Aug-2017 05:01 2.4K copyd.asm 23-Aug-2017 05:01 2.9K copyi.asm 23-Aug-2017 05:01 1.8K gmp-mparam.h 23-Aug-2017 05:01 5.8K logops_n.asm 23-Aug-2017 05:01 5.4K lshift.asm 23-Aug-2017 05:01 2.7K lshiftc.asm 23-Aug-2017 05:01 2.9K mul_1.asm 23-Aug-2017 05:01 2.2K rshift.asm 23-Aug-2017 05:01 2.5K submul_1.asm 23-Aug-2017 05:01 2.5K
NLUUG - Open Systems. Open Standards
Become a member
and get discounts on conferences and more, see the NLUUG website!