]>
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 DM |
8 | #include <linux/linkage.h> |
9 | ||
1da177e4 | 10 | .text |
8695c37d | 11 | ENTRY(__ashrdi3) |
1da177e4 LT |
12 | tst %o2 |
13 | be 3f | |
14 | or %g0, 32, %g2 | |
15 | ||
16 | sub %g2, %o2, %g2 | |
17 | ||
18 | tst %g2 | |
19 | bg 1f | |
20 | sra %o0, %o2, %o4 | |
21 | ||
22 | sra %o0, 31, %o4 | |
23 | sub %g0, %g2, %g2 | |
24 | ba 2f | |
25 | sra %o0, %g2, %o5 | |
26 | ||
27 | 1: | |
28 | sll %o0, %g2, %g3 | |
29 | srl %o1, %o2, %g2 | |
30 | or %g2, %g3, %o5 | |
31 | 2: | |
32 | or %g0, %o4, %o0 | |
33 | or %g0, %o5, %o1 | |
34 | 3: | |
35 | jmpl %o7 + 8, %g0 | |
36 | nop | |
8695c37d | 37 | ENDPROC(__ashrdi3) |