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

Annotation of OpenXM_contrib2/asir2000/asm/sparc.c-cc, Revision 1.1.1.1

1.1       noro        1: /* OpenXM */
                      2: addpadic(mod,n,n1,n2)
                      3: register int mod;
                      4: int n;
                      5: register int *n1,*n2;
                      6: {
                      7:        register int i,carry,tmp;
                      8:
                      9:        for ( i = 0, carry = 0; i < n; i++,n1++,n2++ ) {
                     10:                asm("   ld      [%i2],%o0       ");
                     11:                asm("   ld      [%i3],%l7       ");
                     12:                asm("   add     %o0,%l7,%l7     ");
                     13:                asm("   add     %l7,%i4,%l7     ");
                     14:                asm("   mov     %i0,%o1 ");
                     15:                asm("   call    .udr,2  ");
                     16:                asm("   mov     %l7,%o0 ");
                     17:
                     18:                asm("   mov     %o1,%i4 ");
                     19:                asm("   st      %o0,[%i3]       ");
                     20:                /*
                     21:                tmp = *n1 + *n2 + carry;
                     22:                carry = tmp / mod;
                     23:                *n2 = tmp - ( carry * mod );
                     24:                */
                     25:        }
                     26: }

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