|  | /* $Id: ashrdi3.S,v 1.4 1999/11/19 04:11:49 davem Exp $ | 
|  | * 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 |