summaryrefslogtreecommitdiff
path: root/com32/lib/libgcc/__lshrdi3.S
blob: 6e521ace2cd3c1a68173bc7d7536d97065bc968a (plain)
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