xref: /openbmc/linux/arch/sparc/lib/lshrdi3.S (revision 4cdb71b6)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
2*4cdb71b6SMasahiro Yamada#include <linux/export.h>
38695c37dSDavid S. Miller#include <linux/linkage.h>
41da177e4SLinus Torvalds
58695c37dSDavid S. MillerENTRY(__lshrdi3)
61da177e4SLinus Torvalds	cmp	%o2, 0
71da177e4SLinus Torvalds	be	3f
81da177e4SLinus Torvalds	 mov	0x20, %g2
91da177e4SLinus Torvalds
101da177e4SLinus Torvalds	sub	%g2, %o2, %g2
111da177e4SLinus Torvalds	cmp	%g2, 0
121da177e4SLinus Torvalds	bg	1f
131da177e4SLinus Torvalds	 srl	%o0, %o2, %o4
141da177e4SLinus Torvalds
151da177e4SLinus Torvalds	clr	%o4
161da177e4SLinus Torvalds	neg	%g2
171da177e4SLinus Torvalds	b	2f
181da177e4SLinus Torvalds	 srl	%o0, %g2, %o5
191da177e4SLinus Torvalds1:
201da177e4SLinus Torvalds	sll  %o0, %g2, %g3
211da177e4SLinus Torvalds	srl  %o1, %o2, %g2
221da177e4SLinus Torvalds	or  %g2, %g3, %o5
231da177e4SLinus Torvalds2:
241da177e4SLinus Torvalds	mov  %o4, %o0
251da177e4SLinus Torvalds	mov  %o5, %o1
261da177e4SLinus Torvalds3:
271da177e4SLinus Torvalds	retl
281da177e4SLinus Torvalds	 nop
298695c37dSDavid S. MillerENDPROC(__lshrdi3)
30d3867f04SAl ViroEXPORT_SYMBOL(__lshrdi3)
31