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