summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux-4.02/com32/lib/libgcc/__ashldi3.S
blob: f2cc11cb3345f1b51f2af02b9c713b1c8ef2a6cd (plain) (blame)
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
28
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