0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <linux/linkage.h>
0010 #include <asm/export.h>
0011
0012 .text
0013 ENTRY(__ashldi3)
0014 cmp %o2, 0
0015 be 9f
0016 mov 0x20, %g2
0017
0018 sub %g2, %o2, %g2
0019 cmp %g2, 0
0020 bg 7f
0021 sll %o0, %o2, %g3
0022
0023 neg %g2
0024 clr %o5
0025 b 8f
0026 sll %o1, %g2, %o4
0027 7:
0028 srl %o1, %g2, %g2
0029 sll %o1, %o2, %o5
0030 or %g3, %g2, %o4
0031 8:
0032 mov %o4, %o0
0033 mov %o5, %o1
0034 9:
0035 retl
0036 nop
0037 ENDPROC(__ashldi3)
0038 EXPORT_SYMBOL(__ashldi3)