OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [arch/] [sh/] [lib/] [div64.S] - Rev 1275

Go to most recent revision | Compare with Previous | Blame | View Log

/*      
 * unsigned long long __xdiv64_32(unsigned long long n, unsigned long d); 
 */

#include <linux/linkage.h>

.text
ENTRY(__xdiv64_32)
#ifdef  __LITTLE_ENDIAN__
        mov     r4, r0
        mov     r5, r1
#else
        mov     r4, r1
        mov     r5, r0
#endif
        cmp/hs  r6, r1
        bf.s    1f
        mov     #0, r2

        mov     r1, r2
        mov     #0, r3
        div0u
        .rept   32
        rotcl   r2
        div1    r6, r3
        .endr
        rotcl   r2
        mul.l   r6, r2
        sts     macl, r3
        sub     r3, r1
1:
        div0u
        .rept   32
        rotcl   r0
        div1    r6, r1
        .endr
#ifdef  __LITTLE_ENDIAN__
        mov     r2, r1
        rts
        rotcl   r0
#else
        rotcl   r0
        mov     r0, r1
        rts
        mov     r2, r0
#endif

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.