summaryrefslogtreecommitdiffstats
path: root/contrib/syslinux-4.02/com32/lib/libgcc/__lshrdi3.S
blob: eee3aacb97c5546490e204bddf4ca36319e1e6d0 (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/__lshrdi3.S
 *
 * 64-bit shr
 */
	.text
	.align 4
	.globl __lshrdi3
	.type __lshrdi3,@function
__lshrdi3:
#ifndef REGPARM
	movl  4(%esp),%eax
	movl  8(%esp),%edx
	movb  12(%esp),%cl
#endif
	cmpb  $32,%cl
	jae   1f

	shrdl %cl,%edx,%eax
	shrl  %cl,%edx
	ret

1:
	shrl  %cl,%edx
	xorl  %eax,%eax
	xchgl %edx,%eax
	ret

	.size __lshrdi3,.-__lshrdi3