xref: /openbmc/linux/arch/sparc/lib/lshrdi3.S (revision 6dfcd296)
1#include <linux/linkage.h>
2#include <asm/export.h>
3
4ENTRY(__lshrdi3)
5	cmp	%o2, 0
6	be	3f
7	 mov	0x20, %g2
8
9	sub	%g2, %o2, %g2
10	cmp	%g2, 0
11	bg	1f
12	 srl	%o0, %o2, %o4
13
14	clr	%o4
15	neg	%g2
16	b	2f
17	 srl	%o0, %g2, %o5
181:
19	sll  %o0, %g2, %g3
20	srl  %o1, %o2, %g2
21	or  %g2, %g3, %o5
222:
23	mov  %o4, %o0
24	mov  %o5, %o1
253:
26	retl
27	 nop
28ENDPROC(__lshrdi3)
29EXPORT_SYMBOL(__lshrdi3)
30