Annotation of OpenXM_contrib2/asir2000/asm/asmalpha.c, Revision 1.1
1.1 ! noro 1: /* $OpenXM: OpenXM/src/asir99/asm/asmalpha.c,v 1.1.1.1 1999/11/10 08:12:25 noro Exp $ */
! 2: #if defined(__alpha)
! 3: typedef unsigned long UL;
! 4: #elif defined(mips) || defined(hpux)
! 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;
! 47: return (unsigned int)(t%(UL)base);
! 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;
! 57: return (unsigned int)(t%(UL)base);
! 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;
! 76: return (unsigned int)(t%(UL)base);
! 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>