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

Annotation of sys/arch/hppa/spmath/md.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: md.h,v 1.7 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: /* @(#)md.h: Revision: 1.8.88.1 Date: 93/12/07 15:06:33 */
        !            16:
        !            17: #include <sys/cdefs.h>
        !            18:
        !            19: /*****************************************************************
        !            20:  * Muliply/Divide SFU Internal State                             *
        !            21:  *****************************************************************/
        !            22: struct mdsfu_register {
        !            23:     int rslt_hi,
        !            24:        rslt_lo,
        !            25:        ovflow;
        !            26:     };
        !            27:
        !            28: #define result_hi result->rslt_hi
        !            29: #define result_lo result->rslt_lo
        !            30: #define overflow result->ovflow
        !            31:
        !            32: /*
        !            33:  *  Constants
        !            34:  */
        !            35:
        !            36: #undef FALSE
        !            37: #define FALSE 0
        !            38:
        !            39: #undef TRUE
        !            40: #define TRUE (!FALSE)
        !            41:
        !            42: #undef NIL
        !            43: #define NIL 0
        !            44:
        !            45: #define WORD_LEN 32
        !            46: #define BIT0 1<<31
        !            47: #define BIT28 0x8
        !            48: #define BIT29 0x4
        !            49: #define BIT30 0x2
        !            50: #define BIT31 0x1
        !            51:
        !            52:        /* Simply copy the arguments to the emulated copies of the registers */
        !            53: #define        mdrr(reg1,reg2,result)  {result_hi = reg1;result_lo = reg2;}
        !            54:
        !            55: /*
        !            56:  *  Structures
        !            57:  */
        !            58:
        !            59: struct md_state {
        !            60:        int resulthi,   /* high word of result */
        !            61:            resultlo;   /* low word of result */
        !            62: };
        !            63:
        !            64: void divsfm(int, int, struct mdsfu_register *);
        !            65: void divsfr(int, int, struct mdsfu_register *);
        !            66: void divsim(int, int, struct mdsfu_register *);
        !            67: void divsir(int, int, struct mdsfu_register *);
        !            68:
        !            69: void divu(int, int, int, struct mdsfu_register *);
        !            70: void divufr(unsigned int, unsigned int, struct mdsfu_register *);
        !            71: void divuir(unsigned int, unsigned int, struct mdsfu_register *);
        !            72:
        !            73: void mpyaccs(int, int, struct mdsfu_register *);
        !            74: void mpyaccu(unsigned int, unsigned int, struct mdsfu_register *);
        !            75: void mpys(int, int, struct mdsfu_register *);
        !            76: void mpyscv(int, int, struct mdsfu_register *);
        !            77: void mpyu(unsigned int, unsigned int, struct mdsfu_register *);
        !            78: void mpyucv(unsigned int, unsigned int, struct mdsfu_register *);
        !            79:
        !            80: int s_xmpy(int *, int *, struct mdsfu_register *);
        !            81: int u_xmpy(int *, int *, struct mdsfu_register *);

CVSweb