diff options
Diffstat (limited to 'contrib/syslinux-4.02/com32/lib/libgcc/__ashldi3.S')
-rw-r--r-- | contrib/syslinux-4.02/com32/lib/libgcc/__ashldi3.S | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/syslinux-4.02/com32/lib/libgcc/__ashldi3.S b/contrib/syslinux-4.02/com32/lib/libgcc/__ashldi3.S new file mode 100644 index 0000000..f2cc11c --- /dev/null +++ b/contrib/syslinux-4.02/com32/lib/libgcc/__ashldi3.S @@ -0,0 +1,29 @@ +/* + * arch/i386/libgcc/__ashldi3.S + * + * 64-bit shl + */ + .text + .align 4 + .globl __ashldi3 + .type __ashldi3,@function +__ashldi3: +#ifndef REGPARM + movl 4(%esp),%eax + movl 8(%esp),%edx + movb 12(%esp),%cl +#endif + cmpb $32,%cl + jae 1f + + shldl %cl,%eax,%edx + shl %cl,%eax + ret + +1: + xorl %edx,%edx + shl %cl,%eax + xchgl %edx,%eax + ret + + .size __ashldi3,.-__ashldi3 |