NetBSD-5.0.2/lib/libcrypto/arch/x86_64/md5-x86_64.S

.text
.align 16

.globl md5_block_asm_data_order
.type md5_block_asm_data_order,@function
md5_block_asm_data_order:
	pushq	%rbp
	pushq	%rbx
	pushq	%r12
	pushq	%r14
	pushq	%r15




	movq	%rdi,%rbp
	shlq	$6,%rdx
	leaq	(%rsi,%rdx,1),%rdi
	movl	0(%rbp),%eax
	movl	4(%rbp),%ebx
	movl	8(%rbp),%ecx
	movl	12(%rbp),%edx







	cmpq	%rdi,%rsi
	je	.Lend				


.Lloop:
	movl	%eax,%r8d
	movl	%ebx,%r9d
	movl	%ecx,%r14d
	movl	%edx,%r15d
	movl	0(%rsi),%r10d
	movl	%edx,%r11d
	xorl	%ecx,%r11d
	leal	3614090360(%rax,%r10,1),%eax
	andl	%ebx,%r11d
	xorl	%edx,%r11d
	movl	4(%rsi),%r10d
	addl	%r11d,%eax
	roll	$7,%eax
	movl	%ecx,%r11d
	addl	%ebx,%eax
	xorl	%ebx,%r11d
	leal	3905402710(%rdx,%r10,1),%edx
	andl	%eax,%r11d
	xorl	%ecx,%r11d
	movl	8(%rsi),%r10d
	addl	%r11d,%edx
	roll	$12,%edx
	movl	%ebx,%r11d
	addl	%eax,%edx
	xorl	%eax,%r11d
	leal	606105819(%rcx,%r10,1),%ecx
	andl	%edx,%r11d
	xorl	%ebx,%r11d
	movl	12(%rsi),%r10d
	addl	%r11d,%ecx
	roll	$17,%ecx
	movl	%eax,%r11d
	addl	%edx,%ecx
	xorl	%edx,%r11d
	leal	3250441966(%rbx,%r10,1),%ebx
	andl	%ecx,%r11d
	xorl	%eax,%r11d
	movl	16(%rsi),%r10d
	addl	%r11d,%ebx
	roll	$22,%ebx
	movl	%edx,%r11d
	addl	%ecx,%ebx
	xorl	%ecx,%r11d
	leal	4118548399(%rax,%r10,1),%eax
	andl	%ebx,%r11d
	xorl	%edx,%r11d
	movl	20(%rsi),%r10d
	addl	%r11d,%eax
	roll	$7,%eax
	movl	%ecx,%r11d
	addl	%ebx,%eax
	xorl	%ebx,%r11d
	leal	1200080426(%rdx,%r10,1),%edx
	andl	%eax,%r11d
	xorl	%ecx,%r11d
	movl	24(%rsi),%r10d
	addl	%r11d,%edx
	roll	$12,%edx
	movl	%ebx,%r11d
	addl	%eax,%edx
	xorl	%eax,%r11d
	leal	2821735955(%rcx,%r10,1),%ecx
	andl	%edx,%r11d
	xorl	%ebx,%r11d
	movl	28(%rsi),%r10d
	addl	%r11d,%ecx
	roll	$17,%ecx
	movl	%eax,%r11d
	addl	%edx,%ecx
	xorl	%edx,%r11d
	leal	4249261313(%rbx,%r10,1),%ebx
	andl	%ecx,%r11d
	xorl	%eax,%r11d
	movl	32(%rsi),%r10d
	addl	%r11d,%ebx
	roll	$22,%ebx
	movl	%edx,%r11d
	addl	%ecx,%ebx
	xorl	%ecx,%r11d
	leal	1770035416(%rax,%r10,1),%eax
	andl	%ebx,%r11d
	xorl	%edx,%r11d
	movl	36(%rsi),%r10d
	addl	%r11d,%eax
	roll	$7,%eax
	movl	%ecx,%r11d
	addl	%ebx,%eax
	xorl	%ebx,%r11d
	leal	2336552879(%rdx,%r10,1),%edx
	andl	%eax,%r11d
	xorl	%ecx,%r11d
	movl	40(%rsi),%r10d
	addl	%r11d,%edx
	roll	$12,%edx
	movl	%ebx,%r11d
	addl	%eax,%edx
	xorl	%eax,%r11d
	leal	4294925233(%rcx,%r10,1),%ecx
	andl	%edx,%r11d
	xorl	%ebx,%r11d
	movl	44(%rsi),%r10d
	addl	%r11d,%ecx
	roll	$17,%ecx
	movl	%eax,%r11d
	addl	%edx,%ecx
	xorl	%edx,%r11d
	leal	2304563134(%rbx,%r10,1),%ebx
	andl	%ecx,%r11d
	xorl	%eax,%r11d
	movl	48(%rsi),%r10d
	addl	%r11d,%ebx
	roll	$22,%ebx
	movl	%edx,%r11d
	addl	%ecx,%ebx
	xorl	%ecx,%r11d
	leal	1804603682(%rax,%r10,1),%eax
	andl	%ebx,%r11d
	xorl	%edx,%r11d
	movl	52(%rsi),%r10d
	addl	%r11d,%eax
	roll	$7,%eax
	movl	%ecx,%r11d
	addl	%ebx,%eax
	xorl	%ebx,%r11d
	leal	4254626195(%rdx,%r10,1),%edx
	andl	%eax,%r11d
	xorl	%ecx,%r11d
	movl	56(%rsi),%r10d
	addl	%r11d,%edx
	roll	$12,%edx
	movl	%ebx,%r11d
	addl	%eax,%edx
	xorl	%eax,%r11d
	leal	2792965006(%rcx,%r10,1),%ecx
	andl	%edx,%r11d
	xorl	%ebx,%r11d
	movl	60(%rsi),%r10d
	addl	%r11d,%ecx
	roll	$17,%ecx
	movl	%eax,%r11d
	addl	%edx,%ecx
	xorl	%edx,%r11d
	leal	1236535329(%rbx,%r10,1),%ebx
	andl	%ecx,%r11d
	xorl	%eax,%r11d
	movl	0(%rsi),%r10d
	addl	%r11d,%ebx
	roll	$22,%ebx
	movl	%edx,%r11d
	addl	%ecx,%ebx
	movl	4(%rsi),%r10d
	movl	%edx,%r11d
	movl	%edx,%r12d
	notl	%r11d
	leal	4129170786(%rax,%r10,1),%eax
	andl	%ebx,%r12d
	andl	%ecx,%r11d
	movl	24(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ecx,%r11d
	addl	%r12d,%eax
	movl	%ecx,%r12d
	roll	$5,%eax
	addl	%ebx,%eax
	notl	%r11d
	leal	3225465664(%rdx,%r10,1),%edx
	andl	%eax,%r12d
	andl	%ebx,%r11d
	movl	44(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ebx,%r11d
	addl	%r12d,%edx
	movl	%ebx,%r12d
	roll	$9,%edx
	addl	%eax,%edx
	notl	%r11d
	leal	643717713(%rcx,%r10,1),%ecx
	andl	%edx,%r12d
	andl	%eax,%r11d
	movl	0(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%eax,%r11d
	addl	%r12d,%ecx
	movl	%eax,%r12d
	roll	$14,%ecx
	addl	%edx,%ecx
	notl	%r11d
	leal	3921069994(%rbx,%r10,1),%ebx
	andl	%ecx,%r12d
	andl	%edx,%r11d
	movl	20(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%edx,%r11d
	addl	%r12d,%ebx
	movl	%edx,%r12d
	roll	$20,%ebx
	addl	%ecx,%ebx
	notl	%r11d
	leal	3593408605(%rax,%r10,1),%eax
	andl	%ebx,%r12d
	andl	%ecx,%r11d
	movl	40(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ecx,%r11d
	addl	%r12d,%eax
	movl	%ecx,%r12d
	roll	$5,%eax
	addl	%ebx,%eax
	notl	%r11d
	leal	38016083(%rdx,%r10,1),%edx
	andl	%eax,%r12d
	andl	%ebx,%r11d
	movl	60(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ebx,%r11d
	addl	%r12d,%edx
	movl	%ebx,%r12d
	roll	$9,%edx
	addl	%eax,%edx
	notl	%r11d
	leal	3634488961(%rcx,%r10,1),%ecx
	andl	%edx,%r12d
	andl	%eax,%r11d
	movl	16(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%eax,%r11d
	addl	%r12d,%ecx
	movl	%eax,%r12d
	roll	$14,%ecx
	addl	%edx,%ecx
	notl	%r11d
	leal	3889429448(%rbx,%r10,1),%ebx
	andl	%ecx,%r12d
	andl	%edx,%r11d
	movl	36(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%edx,%r11d
	addl	%r12d,%ebx
	movl	%edx,%r12d
	roll	$20,%ebx
	addl	%ecx,%ebx
	notl	%r11d
	leal	568446438(%rax,%r10,1),%eax
	andl	%ebx,%r12d
	andl	%ecx,%r11d
	movl	56(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ecx,%r11d
	addl	%r12d,%eax
	movl	%ecx,%r12d
	roll	$5,%eax
	addl	%ebx,%eax
	notl	%r11d
	leal	3275163606(%rdx,%r10,1),%edx
	andl	%eax,%r12d
	andl	%ebx,%r11d
	movl	12(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ebx,%r11d
	addl	%r12d,%edx
	movl	%ebx,%r12d
	roll	$9,%edx
	addl	%eax,%edx
	notl	%r11d
	leal	4107603335(%rcx,%r10,1),%ecx
	andl	%edx,%r12d
	andl	%eax,%r11d
	movl	32(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%eax,%r11d
	addl	%r12d,%ecx
	movl	%eax,%r12d
	roll	$14,%ecx
	addl	%edx,%ecx
	notl	%r11d
	leal	1163531501(%rbx,%r10,1),%ebx
	andl	%ecx,%r12d
	andl	%edx,%r11d
	movl	52(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%edx,%r11d
	addl	%r12d,%ebx
	movl	%edx,%r12d
	roll	$20,%ebx
	addl	%ecx,%ebx
	notl	%r11d
	leal	2850285829(%rax,%r10,1),%eax
	andl	%ebx,%r12d
	andl	%ecx,%r11d
	movl	8(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ecx,%r11d
	addl	%r12d,%eax
	movl	%ecx,%r12d
	roll	$5,%eax
	addl	%ebx,%eax
	notl	%r11d
	leal	4243563512(%rdx,%r10,1),%edx
	andl	%eax,%r12d
	andl	%ebx,%r11d
	movl	28(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%ebx,%r11d
	addl	%r12d,%edx
	movl	%ebx,%r12d
	roll	$9,%edx
	addl	%eax,%edx
	notl	%r11d
	leal	1735328473(%rcx,%r10,1),%ecx
	andl	%edx,%r12d
	andl	%eax,%r11d
	movl	48(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%eax,%r11d
	addl	%r12d,%ecx
	movl	%eax,%r12d
	roll	$14,%ecx
	addl	%edx,%ecx
	notl	%r11d
	leal	2368359562(%rbx,%r10,1),%ebx
	andl	%ecx,%r12d
	andl	%edx,%r11d
	movl	0(%rsi),%r10d
	orl	%r11d,%r12d
	movl	%edx,%r11d
	addl	%r12d,%ebx
	movl	%edx,%r12d
	roll	$20,%ebx
	addl	%ecx,%ebx
	movl	20(%rsi),%r10d
	movl	%ecx,%r11d
	leal	4294588738(%rax,%r10,1),%eax
	movl	32(%rsi),%r10d
	xorl	%edx,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%eax
	roll	$4,%eax
	movl	%ebx,%r11d
	addl	%ebx,%eax
	leal	2272392833(%rdx,%r10,1),%edx
	movl	44(%rsi),%r10d
	xorl	%ecx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%edx
	roll	$11,%edx
	movl	%eax,%r11d
	addl	%eax,%edx
	leal	1839030562(%rcx,%r10,1),%ecx
	movl	56(%rsi),%r10d
	xorl	%ebx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ecx
	roll	$16,%ecx
	movl	%edx,%r11d
	addl	%edx,%ecx
	leal	4259657740(%rbx,%r10,1),%ebx
	movl	4(%rsi),%r10d
	xorl	%eax,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%ebx
	roll	$23,%ebx
	movl	%ecx,%r11d
	addl	%ecx,%ebx
	leal	2763975236(%rax,%r10,1),%eax
	movl	16(%rsi),%r10d
	xorl	%edx,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%eax
	roll	$4,%eax
	movl	%ebx,%r11d
	addl	%ebx,%eax
	leal	1272893353(%rdx,%r10,1),%edx
	movl	28(%rsi),%r10d
	xorl	%ecx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%edx
	roll	$11,%edx
	movl	%eax,%r11d
	addl	%eax,%edx
	leal	4139469664(%rcx,%r10,1),%ecx
	movl	40(%rsi),%r10d
	xorl	%ebx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ecx
	roll	$16,%ecx
	movl	%edx,%r11d
	addl	%edx,%ecx
	leal	3200236656(%rbx,%r10,1),%ebx
	movl	52(%rsi),%r10d
	xorl	%eax,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%ebx
	roll	$23,%ebx
	movl	%ecx,%r11d
	addl	%ecx,%ebx
	leal	681279174(%rax,%r10,1),%eax
	movl	0(%rsi),%r10d
	xorl	%edx,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%eax
	roll	$4,%eax
	movl	%ebx,%r11d
	addl	%ebx,%eax
	leal	3936430074(%rdx,%r10,1),%edx
	movl	12(%rsi),%r10d
	xorl	%ecx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%edx
	roll	$11,%edx
	movl	%eax,%r11d
	addl	%eax,%edx
	leal	3572445317(%rcx,%r10,1),%ecx
	movl	24(%rsi),%r10d
	xorl	%ebx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ecx
	roll	$16,%ecx
	movl	%edx,%r11d
	addl	%edx,%ecx
	leal	76029189(%rbx,%r10,1),%ebx
	movl	36(%rsi),%r10d
	xorl	%eax,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%ebx
	roll	$23,%ebx
	movl	%ecx,%r11d
	addl	%ecx,%ebx
	leal	3654602809(%rax,%r10,1),%eax
	movl	48(%rsi),%r10d
	xorl	%edx,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%eax
	roll	$4,%eax
	movl	%ebx,%r11d
	addl	%ebx,%eax
	leal	3873151461(%rdx,%r10,1),%edx
	movl	60(%rsi),%r10d
	xorl	%ecx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%edx
	roll	$11,%edx
	movl	%eax,%r11d
	addl	%eax,%edx
	leal	530742520(%rcx,%r10,1),%ecx
	movl	8(%rsi),%r10d
	xorl	%ebx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ecx
	roll	$16,%ecx
	movl	%edx,%r11d
	addl	%edx,%ecx
	leal	3299628645(%rbx,%r10,1),%ebx
	movl	0(%rsi),%r10d
	xorl	%eax,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%ebx
	roll	$23,%ebx
	movl	%ecx,%r11d
	addl	%ecx,%ebx
	movl	0(%rsi),%r10d
	movl	$4294967295,%r11d
	xorl	%edx,%r11d
	leal	4096336452(%rax,%r10,1),%eax
	orl	%ebx,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%eax
	movl	28(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$6,%eax
	xorl	%ecx,%r11d
	addl	%ebx,%eax
	leal	1126891415(%rdx,%r10,1),%edx
	orl	%eax,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%edx
	movl	56(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$10,%edx
	xorl	%ebx,%r11d
	addl	%eax,%edx
	leal	2878612391(%rcx,%r10,1),%ecx
	orl	%edx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%ecx
	movl	20(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$15,%ecx
	xorl	%eax,%r11d
	addl	%edx,%ecx
	leal	4237533241(%rbx,%r10,1),%ebx
	orl	%ecx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ebx
	movl	48(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$21,%ebx
	xorl	%edx,%r11d
	addl	%ecx,%ebx
	leal	1700485571(%rax,%r10,1),%eax
	orl	%ebx,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%eax
	movl	12(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$6,%eax
	xorl	%ecx,%r11d
	addl	%ebx,%eax
	leal	2399980690(%rdx,%r10,1),%edx
	orl	%eax,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%edx
	movl	40(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$10,%edx
	xorl	%ebx,%r11d
	addl	%eax,%edx
	leal	4293915773(%rcx,%r10,1),%ecx
	orl	%edx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%ecx
	movl	4(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$15,%ecx
	xorl	%eax,%r11d
	addl	%edx,%ecx
	leal	2240044497(%rbx,%r10,1),%ebx
	orl	%ecx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ebx
	movl	32(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$21,%ebx
	xorl	%edx,%r11d
	addl	%ecx,%ebx
	leal	1873313359(%rax,%r10,1),%eax
	orl	%ebx,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%eax
	movl	60(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$6,%eax
	xorl	%ecx,%r11d
	addl	%ebx,%eax
	leal	4264355552(%rdx,%r10,1),%edx
	orl	%eax,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%edx
	movl	24(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$10,%edx
	xorl	%ebx,%r11d
	addl	%eax,%edx
	leal	2734768916(%rcx,%r10,1),%ecx
	orl	%edx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%ecx
	movl	52(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$15,%ecx
	xorl	%eax,%r11d
	addl	%edx,%ecx
	leal	1309151649(%rbx,%r10,1),%ebx
	orl	%ecx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ebx
	movl	16(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$21,%ebx
	xorl	%edx,%r11d
	addl	%ecx,%ebx
	leal	4149444226(%rax,%r10,1),%eax
	orl	%ebx,%r11d
	xorl	%ecx,%r11d
	addl	%r11d,%eax
	movl	44(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$6,%eax
	xorl	%ecx,%r11d
	addl	%ebx,%eax
	leal	3174756917(%rdx,%r10,1),%edx
	orl	%eax,%r11d
	xorl	%ebx,%r11d
	addl	%r11d,%edx
	movl	8(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$10,%edx
	xorl	%ebx,%r11d
	addl	%eax,%edx
	leal	718787259(%rcx,%r10,1),%ecx
	orl	%edx,%r11d
	xorl	%eax,%r11d
	addl	%r11d,%ecx
	movl	36(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$15,%ecx
	xorl	%eax,%r11d
	addl	%edx,%ecx
	leal	3951481745(%rbx,%r10,1),%ebx
	orl	%ecx,%r11d
	xorl	%edx,%r11d
	addl	%r11d,%ebx
	movl	0(%rsi),%r10d
	movl	$4294967295,%r11d
	roll	$21,%ebx
	xorl	%edx,%r11d
	addl	%ecx,%ebx

	addl	%r8d,%eax
	addl	%r9d,%ebx
	addl	%r14d,%ecx
	addl	%r15d,%edx


	addq	$64,%rsi
	cmpq	%rdi,%rsi
	jb	.Lloop				


.Lend:
	movl	%eax,0(%rbp)
	movl	%ebx,4(%rbp)
	movl	%ecx,8(%rbp)
	movl	%edx,12(%rbp)

	popq	%r15
	popq	%r14
	popq	%r12
	popq	%rbx
	popq	%rbp
	.byte	0xf3,0xc3
.size md5_block_asm_data_order,.-md5_block_asm_data_order