repo.or.cz
/
cris-mirror.git
/
blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
log
|
graphiclog1
|
graphiclog2
|
commit
|
commitdiff
|
tree
|
refs
|
edit
|
fork
blame
|
history
|
raw
|
HEAD
Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[cris-mirror.git]
/
arch
/
sh
/
lib
/
div64.S
blob
4a9a966e71b0e7871536a68c36e0cc3c44000e4d
1
/* SPDX-License-Identifier: GPL-2.0 */
2
/*
3
* unsigned long __xdiv64_32(unsigned long long n, unsigned long d);
4
*/
5
6
#include <linux/linkage.h>
7
8
.text
9
ENTRY(__xdiv64_32)
10
#ifdef CONFIG_CPU_LITTLE_ENDIAN
11
mov r4, r0
12
mov r5, r1
13
#else
14
mov r4, r1
15
mov r5, r0
16
#endif
17
cmp/hs r6, r1
18
bf.s 1f
19
mov #0, r2
20
21
mov r1, r2
22
mov #0, r3
23
div0u
24
.rept 32
25
rotcl r2
26
div1 r6, r3
27
.endr
28
rotcl r2
29
mul.l r6, r2
30
sts macl, r3
31
sub r3, r1
32
1:
33
div0u
34
.rept 32
35
rotcl r0
36
div1 r6, r1
37
.endr
38
#ifdef CONFIG_CPU_LITTLE_ENDIAN
39
mov r2, r1
40
rts
41
rotcl r0
42
#else
43
rotcl r0
44
mov r0, r1
45
rts
46
mov r2, r0
47
#endif