projects
/
linux-2.4.21-pre4.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
import of ftp.dlink.com/GPL/DSMG-600_reB/ppclinux.tar.gz
[linux-2.4.21-pre4.git]
/
include
/
asm-s390
/
div64.h
1
#ifndef __S390_DIV64
2
#define __S390_DIV64
3
4
/* for do_div "base" needs to be smaller than 2^31-1 */
5
6
#define do_div(n, base) ({ \
7
unsigned long long __n = (n); \
8
unsigned long __r; \
9
\
10
asm (" slr 0,0\n" \
11
" l 1,%1\n" \
12
" srdl 0,1\n" \
13
" dr 0,%2\n" \
14
" alr 1,1\n" \
15
" alr 0,0\n" \
16
" lhi 2,1\n" \
17
" n 2,%1\n" \
18
" alr 0,2\n" \
19
" clr 0,%2\n" \
20
" jl 0f\n" \
21
" slr 0,%2\n" \
22
" ahi 1,1\n" \
23
"0: st 1,%1\n" \
24
" l 1,4+%1\n" \
25
" srdl 0,1\n" \
26
" dr 0,%2\n" \
27
" alr 1,1\n" \
28
" alr 0,0\n" \
29
" lhi 2,1\n" \
30
" n 2,4+%1\n" \
31
" alr 0,2\n" \
32
" clr 0,%2\n" \
33
" jl 1f\n" \
34
" slr 0,%2\n" \
35
" ahi 1,1\n" \
36
"1: st 1,4+%1\n" \
37
" lr %0,0" \
38
: "=d" (__r), "+m" (__n) \
39
: "d" (base) : "0", "1", "2", "cc" ); \
40
(n) = (__n); \
41
__r; \
42
})
43
44
#endif