1/* 2 * ashrdi3.S: The filesystem code creates all kinds of references to 3 * this little routine on the sparc with gcc. 4 * 5 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 6 */ 7 8#include <linux/linkage.h> 9#include <asm/export.h> 10 11 .text 12ENTRY(__ashrdi3) 13 tst %o2 14 be 3f 15 or %g0, 32, %g2 16 17 sub %g2, %o2, %g2 18 19 tst %g2 20 bg 1f 21 sra %o0, %o2, %o4 22 23 sra %o0, 31, %o4 24 sub %g0, %g2, %g2 25 ba 2f 26 sra %o0, %g2, %o5 27 281: 29 sll %o0, %g2, %g3 30 srl %o1, %o2, %g2 31 or %g2, %g3, %o5 322: 33 or %g0, %o4, %o0 34 or %g0, %o5, %o1 353: 36 jmpl %o7 + 8, %g0 37 nop 38ENDPROC(__ashrdi3) 39EXPORT_SYMBOL(__ashrdi3) 40