1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#include <linux/linkage.h> ENTRY(__lshrdi3) cmp %o2, 0 be 3f mov 0x20, %g2 sub %g2, %o2, %g2 cmp %g2, 0 bg 1f srl %o0, %o2, %o4 clr %o4 neg %g2 b 2f srl %o0, %g2, %o5 1: sll %o0, %g2, %g3 srl %o1, %o2, %g2 or %g2, %g3, %o5 2: mov %o4, %o0 mov %o5, %o1 3: retl nop ENDPROC(__lshrdi3)