[NLUUG]   Welcome to ftp.nluug.nl
Current directory: /pub/os/NetBSD/NetBSD-current/src/external/lgpl3/gmp/dist/mpn/s390_32/
 
Current bandwidth utilization 1995.31 Mbit/s
Bandwidth utilization bar
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.

Icon  Name                                                           Last modified      Size  
[DIR] Parent Directory - [DIR] CVS/ 17-Dec-2022 22:27 - [DIR] esame/ 27-Sep-2020 05:01 - [TXT] README 29-Nov-2013 08:49 899 [TXT] addmul_1.asm 23-Aug-2017 05:01 2.4K [TXT] copyd.asm 23-Aug-2017 05:01 2.9K [TXT] copyi.asm 23-Aug-2017 05:01 1.8K [TXT] gmp-mparam.h 23-Aug-2017 05:01 5.8K [TXT] logops_n.asm 23-Aug-2017 05:01 5.4K [TXT] lshift.asm 23-Aug-2017 05:01 2.7K [TXT] lshiftc.asm 23-Aug-2017 05:01 2.9K [TXT] mul_1.asm 23-Aug-2017 05:01 2.2K [TXT] rshift.asm 23-Aug-2017 05:01 2.5K [TXT] 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!