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>