]>
Commit | Line | Data |
---|---|---|
88278ca2 | 1 | /* |
1da177e4 LT |
2 | * ashrdi3.S: The filesystem code creates all kinds of references to |
3 | * this little routine on the sparc with gcc. | |
4 | * | |
5 | * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) | |
6 | */ | |
7 | ||
8695c37d | 8 | #include <linux/linkage.h> |
d3867f04 | 9 | #include <asm/export.h> |
8695c37d | 10 | |
1da177e4 | 11 | .text |
8695c37d | 12 | ENTRY(__ashrdi3) |
1da177e4 LT |
13 | tst %o2 |
14 | be 3f | |
15 | or %g0, 32, %g2 | |
16 | ||
17 | sub %g2, %o2, %g2 | |
18 | ||
19 | tst %g2 | |
20 | bg 1f | |
21 | sra %o0, %o2, %o4 | |
22 | ||
23 | sra %o0, 31, %o4 | |
24 | sub %g0, %g2, %g2 | |
25 | ba 2f | |
26 | sra %o0, %g2, %o5 | |
27 | ||
28 | 1: | |
29 | sll %o0, %g2, %g3 | |
30 | srl %o1, %o2, %g2 | |
31 | or %g2, %g3, %o5 | |
32 | 2: | |
33 | or %g0, %o4, %o0 | |
34 | or %g0, %o5, %o1 | |
35 | 3: | |
36 | jmpl %o7 + 8, %g0 | |
37 | nop | |
8695c37d | 38 | ENDPROC(__ashrdi3) |
d3867f04 | 39 | EXPORT_SYMBOL(__ashrdi3) |