/*
 * ashrdi3.S:	The filesystem code creates all kinds of references to
 *              this little routine on the sparc with gcc.
 *
 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
 */

	.text
	.align	4
	.globl __ashrdi3
__ashrdi3:
	tst	%o2
	be	3f
	 or	%g0, 32, %g2

	sub	%g2, %o2, %g2

	tst	%g2
	bg	1f
	 sra	%o0, %o2, %o4

	sra	%o0, 31, %o4
	sub	%g0, %g2, %g2
	ba	2f
	 sra	%o0, %g2, %o5

1:
	sll	%o0, %g2, %g3
	srl	%o1, %o2, %g2
	or	%g2, %g3, %o5
2:
	or	%g0, %o4, %o0
	or	%g0, %o5, %o1
3:
	jmpl	%o7 + 8, %g0
	 nop
