Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[deliverable/linux.git] / arch / sh / lib / div64.S
CommitLineData
1da177e4 1/*
04c7d957 2 * unsigned long __xdiv64_32(unsigned long long n, unsigned long d);
1da177e4
LT
3 */
4
5#include <linux/linkage.h>
6
7.text
8ENTRY(__xdiv64_32)
04c7d957 9#ifdef CONFIG_CPU_LITTLE_ENDIAN
1da177e4
LT
10 mov r4, r0
11 mov r5, r1
12#else
13 mov r4, r1
14 mov r5, r0
15#endif
16 cmp/hs r6, r1
17 bf.s 1f
18 mov #0, r2
19
20 mov r1, r2
21 mov #0, r3
22 div0u
23 .rept 32
24 rotcl r2
25 div1 r6, r3
26 .endr
27 rotcl r2
28 mul.l r6, r2
29 sts macl, r3
30 sub r3, r1
311:
32 div0u
33 .rept 32
34 rotcl r0
35 div1 r6, r1
36 .endr
04c7d957 37#ifdef CONFIG_CPU_LITTLE_ENDIAN
1da177e4
LT
38 mov r2, r1
39 rts
40 rotcl r0
41#else
42 rotcl r0
43 mov r0, r1
44 rts
45 mov r2, r0
46#endif
This page took 0.824867 seconds and 5 git commands to generate.