Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame^] | 1 | /* $Id: lshrdi3.S,v 1.1 1999/03/21 06:37:45 davem Exp $ */ |
2 | |||||
3 | .globl __lshrdi3 | ||||
4 | __lshrdi3: | ||||
5 | cmp %o2, 0 | ||||
6 | be 3f | ||||
7 | mov 0x20, %g2 | ||||
8 | |||||
9 | sub %g2, %o2, %g2 | ||||
10 | cmp %g2, 0 | ||||
11 | bg 1f | ||||
12 | srl %o0, %o2, %o4 | ||||
13 | |||||
14 | clr %o4 | ||||
15 | neg %g2 | ||||
16 | b 2f | ||||
17 | srl %o0, %g2, %o5 | ||||
18 | 1: | ||||
19 | sll %o0, %g2, %g3 | ||||
20 | srl %o1, %o2, %g2 | ||||
21 | or %g2, %g3, %o5 | ||||
22 | 2: | ||||
23 | mov %o4, %o0 | ||||
24 | mov %o5, %o1 | ||||
25 | 3: | ||||
26 | retl | ||||
27 | nop |