[BACK]Return to asmalpha.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / asm

Annotation of OpenXM_contrib2/asir2000/asm/asmalpha.c, Revision 1.2

1.2     ! noro        1: /* $OpenXM: OpenXM_contrib2/asir2000/asm/asmalpha.c,v 1.1.1.1 1999/12/03 07:39:06 noro Exp $ */
1.1       noro        2: #if defined(__alpha)
                      3: typedef unsigned long UL;
1.2     ! noro        4: #elif defined(mips) || defined(hpux) || defined(powerpc)
1.1       noro        5: typedef unsigned long long UL;
                      6: #endif
                      7:
                      8: #include "base.h"
                      9:
                     10: unsigned int dm(a1,a2,u)
                     11: unsigned int a1,a2,*u;
                     12: {
                     13:        UL t;
                     14:
                     15:        t = (UL)a1*(UL)a2;
                     16:        *u = t>>32;
                     17:        return (unsigned int)(t&0xffffffff);
                     18: }
                     19:
                     20: unsigned int dma(a1,a2,a3,u)
                     21: unsigned int a1,a2,a3,*u;
                     22: {
                     23:        UL t;
                     24:
                     25:        t = ((UL)a1*(UL)a2)+(UL)a3;
                     26:        *u = t>>32;
                     27:        return (unsigned int)(t&0xffffffff);
                     28: }
                     29:
                     30: unsigned int dma2(a1,a2,a3,a4,u)
                     31: unsigned int a1,a2,a3,a4,*u;
                     32: {
                     33:        UL t;
                     34:
                     35:        t = (UL)a1*(UL)a2+(UL)a3+(UL)a4;
                     36:        *u = t>>32;
                     37:        return (unsigned int)(t&0xffffffff);
                     38: }
                     39:
                     40: unsigned int dmb(base,a1,a2,u)
                     41: unsigned int base,a1,a2,*u;
                     42: {
                     43:        UL t;
                     44:
                     45:        t = (UL)a1*(UL)a2;
                     46:        *u = t/(UL)base;
1.2     ! noro       47:        return (unsigned int)(t-(UL)base*(UL)(*u));
1.1       noro       48: }
                     49:
                     50: unsigned int dmab(base,a1,a2,a3,u)
                     51: unsigned int base,a1,a2,a3,*u;
                     52: {
                     53:        UL t;
                     54:
                     55:        t = (UL)a1*(UL)a2+(UL)a3;
                     56:        *u = t/(UL)base;
1.2     ! noro       57:        return (unsigned int)(t-(UL)base*(UL)(*u));
1.1       noro       58: }
                     59:
                     60: unsigned int dmar(a1,a2,a3,d)
                     61: unsigned int a1,a2,a3,d;
                     62: {
                     63:        UL t;
                     64:
                     65:        t = (UL)a1*(UL)a2+(UL)a3;
                     66:        return (unsigned int)(t%(UL)d);
                     67: }
                     68:
                     69: unsigned int dsab(base,a1,a2,u)
                     70: unsigned int base,a1,a2,*u;
                     71: {
                     72:        UL t;
                     73:
                     74:        t = (((UL)a1)<<32)+(UL)a2;
                     75:        *u = t/(UL)base;
1.2     ! noro       76:        return (unsigned int)(t-(UL)base*(UL)(*u));
1.1       noro       77: }
                     78:
                     79: unsigned int dqr(a,b,qp)
                     80: unsigned int a,b,*qp;
                     81: {
                     82:        *qp = a/b;
                     83:        return a - b * (*qp);
                     84: }

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