[BACK]Return to mpyaccs.c CVS log [TXT][DIR] Up to [local] / sys / arch / hppa / spmath

Annotation of sys/arch/hppa/spmath/mpyaccs.c, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: mpyaccs.c,v 1.6 2003/04/10 17:27:58 mickey Exp $      */
        !             2: /*
        !             3:   (c) Copyright 1986 HEWLETT-PACKARD COMPANY
        !             4:   To anyone who acknowledges that this file is provided "AS IS"
        !             5:   without any express or implied warranty:
        !             6:       permission to use, copy, modify, and distribute this file
        !             7:   for any purpose is hereby granted without fee, provided that
        !             8:   the above copyright notice and this notice appears in all
        !             9:   copies, and that the name of Hewlett-Packard Company not be
        !            10:   used in advertising or publicity pertaining to distribution
        !            11:   of the software without specific, written prior permission.
        !            12:   Hewlett-Packard Company makes no representations about the
        !            13:   suitability of this software for any purpose.
        !            14: */
        !            15: /* @(#)mpyaccs.c: Revision: 1.6.88.1 Date: 93/12/07 15:06:39 */
        !            16:
        !            17: #include "md.h"
        !            18:
        !            19: void
        !            20: mpyaccs(opnd1,opnd2,result)
        !            21:        int opnd1, opnd2;
        !            22:        struct mdsfu_register *result;
        !            23: {
        !            24:        struct mdsfu_register temp;
        !            25:        int carry, sign;
        !            26:
        !            27:        s_xmpy(&opnd1,&opnd2,&temp);
        !            28:
        !            29:        /* get result of low word add, and check for carry out */
        !            30:        if ((result_lo += (unsigned)temp.rslt_lo) < (unsigned)temp.rslt_lo)
        !            31:                carry = 1;
        !            32:        else
        !            33:                carry = 0;
        !            34:
        !            35:        /* get result of high word add, and determine overflow status */
        !            36:        sign = result_hi ^ temp.rslt_hi;
        !            37:        result_hi += temp.rslt_hi + carry;
        !            38:        if (sign >= 0 && (temp.rslt_hi ^ result_hi) < 0)
        !            39:                overflow = TRUE;
        !            40: }

CVSweb