[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

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