[BACK]Return to README CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / mpn / s390

Annotation of OpenXM_contrib/gmp/mpn/s390/README, Revision 1.1

1.1     ! ohara       1: All current (2001) S/390 and z/Architecture machines are single-issue,
        !             2: but some newer machines have a deep pipeline.  Software-pipelining is
        !             3: therefore beneficial.
        !             4:
        !             5: * mpn_add_n, mpn_sub_n: Use code along the lines below.  Two-way unrolling
        !             6:   would be adequate.
        !             7:
        !             8:   mp_limb_t
        !             9:   mpn_add_n (mp_ptr rp, mp_srcptr up, mp_srcptr vp, mp_size_t n)
        !            10:   {
        !            11:     mp_limb_t a, b, r, cy;
        !            12:     mp_size_t i;
        !            13:     mp_limb_t mm = -1;
        !            14:
        !            15:     cy = 0;
        !            16:     up += n;
        !            17:     vp += n;
        !            18:     rp += n;
        !            19:     i = -n;
        !            20:     do
        !            21:       {
        !            22:        a = up[i];
        !            23:        b = vp[i];
        !            24:        r = a + b + cy;
        !            25:        rp[i] = r;
        !            26:        cy = (((a & b) | ((a | b) & (r ^ mm)))) >> 31;
        !            27:        i++;
        !            28:       }
        !            29:     while (i < 0);
        !            30:     return cy;
        !            31:   }
        !            32:
        !            33: * mpn_lshift, mpn_rshift: Use SLDL/SRDL, and two-way unrolling.
        !            34:
        !            35: * mpn_mul_1, mpn_addmul_1, mpn_submul_1: For machines with just signed
        !            36:   multiply (MR), use two loops, similar to the corresponding VAX or
        !            37:   POWER functions.  Handle carry like for mpn_add_n.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>