Greg Hartman | 76d05dc | 2016-11-23 15:51:27 -0800 | [diff] [blame] | 1 | /* |
2 | * arch/i386/libgcc/__ashldi3.S | ||||
3 | * | ||||
4 | * 64-bit shl | ||||
5 | */ | ||||
6 | .text | ||||
7 | .align 4 | ||||
8 | .globl __ashldi3 | ||||
9 | .type __ashldi3,@function | ||||
10 | __ashldi3: | ||||
11 | #ifndef REGPARM | ||||
12 | movl 4(%esp),%eax | ||||
13 | movl 8(%esp),%edx | ||||
14 | movb 12(%esp),%cl | ||||
15 | #endif | ||||
16 | cmpb $32,%cl | ||||
17 | jae 1f | ||||
18 | |||||
19 | shldl %cl,%eax,%edx | ||||
20 | shl %cl,%eax | ||||
21 | ret | ||||
22 | |||||
23 | 1: | ||||
24 | xorl %edx,%edx | ||||
25 | shl %cl,%eax | ||||
26 | xchgl %edx,%eax | ||||
27 | ret | ||||
28 | |||||
29 | .size __ashldi3,.-__ashldi3 |