GNU Linux-libre 4.14.290-gnu1
[releases.git] / arch / sparc / lib / lshrdi3.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <linux/linkage.h>
3 #include <asm/export.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)