xref: /openbmc/linux/arch/sparc/lib/lshrdi3.S (revision 94cdda6b)
1#include <linux/linkage.h>
2
3ENTRY(__lshrdi3)
4	cmp	%o2, 0
5	be	3f
6	 mov	0x20, %g2
7
8	sub	%g2, %o2, %g2
9	cmp	%g2, 0
10	bg	1f
11	 srl	%o0, %o2, %o4
12
13	clr	%o4
14	neg	%g2
15	b	2f
16	 srl	%o0, %g2, %o5
171:
18	sll  %o0, %g2, %g3
19	srl  %o1, %o2, %g2
20	or  %g2, %g3, %o5
212:
22	mov  %o4, %o0
23	mov  %o5, %o1
243:
25	retl
26	 nop
27ENDPROC(__lshrdi3)
28