1 | /* SPDX-License-Identifier: GPL-2.0 */ |
---|---|
2 | #include <linux/export.h> |
3 | #include <linux/linkage.h> |
4 | |
5 | ENTRY(__lshrdi3) |
6 | cmp %o2, 0 |
7 | be 3f |
8 | mov 0x20, %g2 |
9 | |
10 | sub %g2, %o2, %g2 |
11 | cmp %g2, 0 |
12 | bg 1f |
13 | srl %o0, %o2, %o4 |
14 | |
15 | clr %o4 |
16 | neg %g2 |
17 | b 2f |
18 | srl %o0, %g2, %o5 |
19 | 1: |
20 | sll %o0, %g2, %g3 |
21 | srl %o1, %o2, %g2 |
22 | or %g2, %g3, %o5 |
23 | 2: |
24 | mov %o4, %o0 |
25 | mov %o5, %o1 |
26 | 3: |
27 | retl |
28 | nop |
29 | ENDPROC(__lshrdi3) |
30 | EXPORT_SYMBOL(__lshrdi3) |
31 |