repo.or.cz
/
linux-2.6
/
openmoko-kernel
/
knife-kernel.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
mount options: fix devpts
[linux-2.6/openmoko-kernel/knife-kernel.git]
/
arch
/
sh
/
lib
/
div64.S
blob
5ee7334ea64ff7ff4e68a32f24a5161c8f195a71
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