|  | // This file is generated from a similarly-named Perl script in the BoringSSL | 
|  | // source tree. Do not edit by hand. | 
|  |  | 
|  | #include <openssl/asm_base.h> | 
|  |  | 
|  | #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) | 
|  | .text | 
|  | .globl	_bn_mul_add_words | 
|  | .private_extern	_bn_mul_add_words | 
|  | .align	4 | 
|  | _bn_mul_add_words: | 
|  | L_bn_mul_add_words_begin: | 
|  | movl	4(%esp),%eax | 
|  | movl	8(%esp),%edx | 
|  | movl	12(%esp),%ecx | 
|  | movd	16(%esp),%mm0 | 
|  | pxor	%mm1,%mm1 | 
|  | jmp	L000maw_sse2_entry | 
|  | .align	4,0x90 | 
|  | L001maw_sse2_unrolled: | 
|  | movd	(%eax),%mm3 | 
|  | paddq	%mm3,%mm1 | 
|  | movd	(%edx),%mm2 | 
|  | pmuludq	%mm0,%mm2 | 
|  | movd	4(%edx),%mm4 | 
|  | pmuludq	%mm0,%mm4 | 
|  | movd	8(%edx),%mm6 | 
|  | pmuludq	%mm0,%mm6 | 
|  | movd	12(%edx),%mm7 | 
|  | pmuludq	%mm0,%mm7 | 
|  | paddq	%mm2,%mm1 | 
|  | movd	4(%eax),%mm3 | 
|  | paddq	%mm4,%mm3 | 
|  | movd	8(%eax),%mm5 | 
|  | paddq	%mm6,%mm5 | 
|  | movd	12(%eax),%mm4 | 
|  | paddq	%mm4,%mm7 | 
|  | movd	%mm1,(%eax) | 
|  | movd	16(%edx),%mm2 | 
|  | pmuludq	%mm0,%mm2 | 
|  | psrlq	$32,%mm1 | 
|  | movd	20(%edx),%mm4 | 
|  | pmuludq	%mm0,%mm4 | 
|  | paddq	%mm3,%mm1 | 
|  | movd	24(%edx),%mm6 | 
|  | pmuludq	%mm0,%mm6 | 
|  | movd	%mm1,4(%eax) | 
|  | psrlq	$32,%mm1 | 
|  | movd	28(%edx),%mm3 | 
|  | addl	$32,%edx | 
|  | pmuludq	%mm0,%mm3 | 
|  | paddq	%mm5,%mm1 | 
|  | movd	16(%eax),%mm5 | 
|  | paddq	%mm5,%mm2 | 
|  | movd	%mm1,8(%eax) | 
|  | psrlq	$32,%mm1 | 
|  | paddq	%mm7,%mm1 | 
|  | movd	20(%eax),%mm5 | 
|  | paddq	%mm5,%mm4 | 
|  | movd	%mm1,12(%eax) | 
|  | psrlq	$32,%mm1 | 
|  | paddq	%mm2,%mm1 | 
|  | movd	24(%eax),%mm5 | 
|  | paddq	%mm5,%mm6 | 
|  | movd	%mm1,16(%eax) | 
|  | psrlq	$32,%mm1 | 
|  | paddq	%mm4,%mm1 | 
|  | movd	28(%eax),%mm5 | 
|  | paddq	%mm5,%mm3 | 
|  | movd	%mm1,20(%eax) | 
|  | psrlq	$32,%mm1 | 
|  | paddq	%mm6,%mm1 | 
|  | movd	%mm1,24(%eax) | 
|  | psrlq	$32,%mm1 | 
|  | paddq	%mm3,%mm1 | 
|  | movd	%mm1,28(%eax) | 
|  | leal	32(%eax),%eax | 
|  | psrlq	$32,%mm1 | 
|  | subl	$8,%ecx | 
|  | jz	L002maw_sse2_exit | 
|  | L000maw_sse2_entry: | 
|  | testl	$4294967288,%ecx | 
|  | jnz	L001maw_sse2_unrolled | 
|  | .align	2,0x90 | 
|  | L003maw_sse2_loop: | 
|  | movd	(%edx),%mm2 | 
|  | movd	(%eax),%mm3 | 
|  | pmuludq	%mm0,%mm2 | 
|  | leal	4(%edx),%edx | 
|  | paddq	%mm3,%mm1 | 
|  | paddq	%mm2,%mm1 | 
|  | movd	%mm1,(%eax) | 
|  | subl	$1,%ecx | 
|  | psrlq	$32,%mm1 | 
|  | leal	4(%eax),%eax | 
|  | jnz	L003maw_sse2_loop | 
|  | L002maw_sse2_exit: | 
|  | movd	%mm1,%eax | 
|  | emms | 
|  | ret | 
|  | popl	%edi | 
|  | popl	%esi | 
|  | popl	%ebx | 
|  | popl	%ebp | 
|  | ret | 
|  | .globl	_bn_mul_words | 
|  | .private_extern	_bn_mul_words | 
|  | .align	4 | 
|  | _bn_mul_words: | 
|  | L_bn_mul_words_begin: | 
|  | movl	4(%esp),%eax | 
|  | movl	8(%esp),%edx | 
|  | movl	12(%esp),%ecx | 
|  | movd	16(%esp),%mm0 | 
|  | pxor	%mm1,%mm1 | 
|  | .align	4,0x90 | 
|  | L004mw_sse2_loop: | 
|  | movd	(%edx),%mm2 | 
|  | pmuludq	%mm0,%mm2 | 
|  | leal	4(%edx),%edx | 
|  | paddq	%mm2,%mm1 | 
|  | movd	%mm1,(%eax) | 
|  | subl	$1,%ecx | 
|  | psrlq	$32,%mm1 | 
|  | leal	4(%eax),%eax | 
|  | jnz	L004mw_sse2_loop | 
|  | movd	%mm1,%eax | 
|  | emms | 
|  | ret | 
|  | popl	%edi | 
|  | popl	%esi | 
|  | popl	%ebx | 
|  | popl	%ebp | 
|  | ret | 
|  | .globl	_bn_sqr_words | 
|  | .private_extern	_bn_sqr_words | 
|  | .align	4 | 
|  | _bn_sqr_words: | 
|  | L_bn_sqr_words_begin: | 
|  | movl	4(%esp),%eax | 
|  | movl	8(%esp),%edx | 
|  | movl	12(%esp),%ecx | 
|  | .align	4,0x90 | 
|  | L005sqr_sse2_loop: | 
|  | movd	(%edx),%mm0 | 
|  | pmuludq	%mm0,%mm0 | 
|  | leal	4(%edx),%edx | 
|  | movq	%mm0,(%eax) | 
|  | subl	$1,%ecx | 
|  | leal	8(%eax),%eax | 
|  | jnz	L005sqr_sse2_loop | 
|  | emms | 
|  | ret | 
|  | popl	%edi | 
|  | popl	%esi | 
|  | popl	%ebx | 
|  | popl	%ebp | 
|  | ret | 
|  | .globl	_bn_div_words | 
|  | .private_extern	_bn_div_words | 
|  | .align	4 | 
|  | _bn_div_words: | 
|  | L_bn_div_words_begin: | 
|  | movl	4(%esp),%edx | 
|  | movl	8(%esp),%eax | 
|  | movl	12(%esp),%ecx | 
|  | divl	%ecx | 
|  | ret | 
|  | .globl	_bn_add_words | 
|  | .private_extern	_bn_add_words | 
|  | .align	4 | 
|  | _bn_add_words: | 
|  | L_bn_add_words_begin: | 
|  | pushl	%ebp | 
|  | pushl	%ebx | 
|  | pushl	%esi | 
|  | pushl	%edi | 
|  |  | 
|  | movl	20(%esp),%ebx | 
|  | movl	24(%esp),%esi | 
|  | movl	28(%esp),%edi | 
|  | movl	32(%esp),%ebp | 
|  | xorl	%eax,%eax | 
|  | andl	$4294967288,%ebp | 
|  | jz	L006aw_finish | 
|  | L007aw_loop: | 
|  | # Round 0 | 
|  | movl	(%esi),%ecx | 
|  | movl	(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,(%ebx) | 
|  | # Round 1 | 
|  | movl	4(%esi),%ecx | 
|  | movl	4(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,4(%ebx) | 
|  | # Round 2 | 
|  | movl	8(%esi),%ecx | 
|  | movl	8(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,8(%ebx) | 
|  | # Round 3 | 
|  | movl	12(%esi),%ecx | 
|  | movl	12(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,12(%ebx) | 
|  | # Round 4 | 
|  | movl	16(%esi),%ecx | 
|  | movl	16(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,16(%ebx) | 
|  | # Round 5 | 
|  | movl	20(%esi),%ecx | 
|  | movl	20(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,20(%ebx) | 
|  | # Round 6 | 
|  | movl	24(%esi),%ecx | 
|  | movl	24(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,24(%ebx) | 
|  | # Round 7 | 
|  | movl	28(%esi),%ecx | 
|  | movl	28(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,28(%ebx) | 
|  |  | 
|  | addl	$32,%esi | 
|  | addl	$32,%edi | 
|  | addl	$32,%ebx | 
|  | subl	$8,%ebp | 
|  | jnz	L007aw_loop | 
|  | L006aw_finish: | 
|  | movl	32(%esp),%ebp | 
|  | andl	$7,%ebp | 
|  | jz	L008aw_end | 
|  | # Tail Round 0 | 
|  | movl	(%esi),%ecx | 
|  | movl	(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,(%ebx) | 
|  | jz	L008aw_end | 
|  | # Tail Round 1 | 
|  | movl	4(%esi),%ecx | 
|  | movl	4(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,4(%ebx) | 
|  | jz	L008aw_end | 
|  | # Tail Round 2 | 
|  | movl	8(%esi),%ecx | 
|  | movl	8(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,8(%ebx) | 
|  | jz	L008aw_end | 
|  | # Tail Round 3 | 
|  | movl	12(%esi),%ecx | 
|  | movl	12(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,12(%ebx) | 
|  | jz	L008aw_end | 
|  | # Tail Round 4 | 
|  | movl	16(%esi),%ecx | 
|  | movl	16(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,16(%ebx) | 
|  | jz	L008aw_end | 
|  | # Tail Round 5 | 
|  | movl	20(%esi),%ecx | 
|  | movl	20(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,20(%ebx) | 
|  | jz	L008aw_end | 
|  | # Tail Round 6 | 
|  | movl	24(%esi),%ecx | 
|  | movl	24(%edi),%edx | 
|  | addl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | addl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,24(%ebx) | 
|  | L008aw_end: | 
|  | popl	%edi | 
|  | popl	%esi | 
|  | popl	%ebx | 
|  | popl	%ebp | 
|  | ret | 
|  | .globl	_bn_sub_words | 
|  | .private_extern	_bn_sub_words | 
|  | .align	4 | 
|  | _bn_sub_words: | 
|  | L_bn_sub_words_begin: | 
|  | pushl	%ebp | 
|  | pushl	%ebx | 
|  | pushl	%esi | 
|  | pushl	%edi | 
|  |  | 
|  | movl	20(%esp),%ebx | 
|  | movl	24(%esp),%esi | 
|  | movl	28(%esp),%edi | 
|  | movl	32(%esp),%ebp | 
|  | xorl	%eax,%eax | 
|  | andl	$4294967288,%ebp | 
|  | jz	L009aw_finish | 
|  | L010aw_loop: | 
|  | # Round 0 | 
|  | movl	(%esi),%ecx | 
|  | movl	(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,(%ebx) | 
|  | # Round 1 | 
|  | movl	4(%esi),%ecx | 
|  | movl	4(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,4(%ebx) | 
|  | # Round 2 | 
|  | movl	8(%esi),%ecx | 
|  | movl	8(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,8(%ebx) | 
|  | # Round 3 | 
|  | movl	12(%esi),%ecx | 
|  | movl	12(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,12(%ebx) | 
|  | # Round 4 | 
|  | movl	16(%esi),%ecx | 
|  | movl	16(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,16(%ebx) | 
|  | # Round 5 | 
|  | movl	20(%esi),%ecx | 
|  | movl	20(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,20(%ebx) | 
|  | # Round 6 | 
|  | movl	24(%esi),%ecx | 
|  | movl	24(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,24(%ebx) | 
|  | # Round 7 | 
|  | movl	28(%esi),%ecx | 
|  | movl	28(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,28(%ebx) | 
|  |  | 
|  | addl	$32,%esi | 
|  | addl	$32,%edi | 
|  | addl	$32,%ebx | 
|  | subl	$8,%ebp | 
|  | jnz	L010aw_loop | 
|  | L009aw_finish: | 
|  | movl	32(%esp),%ebp | 
|  | andl	$7,%ebp | 
|  | jz	L011aw_end | 
|  | # Tail Round 0 | 
|  | movl	(%esi),%ecx | 
|  | movl	(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,(%ebx) | 
|  | jz	L011aw_end | 
|  | # Tail Round 1 | 
|  | movl	4(%esi),%ecx | 
|  | movl	4(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,4(%ebx) | 
|  | jz	L011aw_end | 
|  | # Tail Round 2 | 
|  | movl	8(%esi),%ecx | 
|  | movl	8(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,8(%ebx) | 
|  | jz	L011aw_end | 
|  | # Tail Round 3 | 
|  | movl	12(%esi),%ecx | 
|  | movl	12(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,12(%ebx) | 
|  | jz	L011aw_end | 
|  | # Tail Round 4 | 
|  | movl	16(%esi),%ecx | 
|  | movl	16(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,16(%ebx) | 
|  | jz	L011aw_end | 
|  | # Tail Round 5 | 
|  | movl	20(%esi),%ecx | 
|  | movl	20(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | decl	%ebp | 
|  | movl	%ecx,20(%ebx) | 
|  | jz	L011aw_end | 
|  | # Tail Round 6 | 
|  | movl	24(%esi),%ecx | 
|  | movl	24(%edi),%edx | 
|  | subl	%eax,%ecx | 
|  | movl	$0,%eax | 
|  | adcl	%eax,%eax | 
|  | subl	%edx,%ecx | 
|  | adcl	$0,%eax | 
|  | movl	%ecx,24(%ebx) | 
|  | L011aw_end: | 
|  | popl	%edi | 
|  | popl	%esi | 
|  | popl	%ebx | 
|  | popl	%ebp | 
|  | ret | 
|  | #endif  // !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86) && defined(__APPLE__) |