Merge remote-tracking branch 'regulator/topic/lp872x' into regulator-next
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / sh / lib / div64.S
1 /*
2 * unsigned long __xdiv64_32(unsigned long long n, unsigned long d);
3 */
4
5 #include <linux/linkage.h>
6
7 .text
8 ENTRY(__xdiv64_32)
9 #ifdef CONFIG_CPU_LITTLE_ENDIAN
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
31 1:
32 div0u
33 .rept 32
34 rotcl r0
35 div1 r6, r1
36 .endr
37 #ifdef CONFIG_CPU_LITTLE_ENDIAN
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