mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2024-12-25 15:41:05 +00:00
1129 lines
21 KiB
ArmAsm
1129 lines
21 KiB
ArmAsm
# This file is generated from a similarly-named Perl script in the BoringSSL
|
|
# source tree. Do not edit by hand.
|
|
|
|
#if defined(__i386__)
|
|
#if defined(BORINGSSL_PREFIX)
|
|
#include <boringssl_prefix_symbols_asm.h>
|
|
#endif
|
|
.text
|
|
.LONE_mont:
|
|
.long 1,0,0,-1,-1,-1,-2,0
|
|
.hidden _ecp_nistz256_div_by_2
|
|
.type _ecp_nistz256_div_by_2,@function
|
|
.align 16
|
|
_ecp_nistz256_div_by_2:
|
|
movl (%esi),%ebp
|
|
xorl %edx,%edx
|
|
movl 4(%esi),%ebx
|
|
movl %ebp,%eax
|
|
andl $1,%ebp
|
|
movl 8(%esi),%ecx
|
|
subl %ebp,%edx
|
|
addl %edx,%eax
|
|
adcl %edx,%ebx
|
|
movl %eax,(%edi)
|
|
adcl %edx,%ecx
|
|
movl %ebx,4(%edi)
|
|
movl %ecx,8(%edi)
|
|
movl 12(%esi),%eax
|
|
movl 16(%esi),%ebx
|
|
adcl $0,%eax
|
|
movl 20(%esi),%ecx
|
|
adcl $0,%ebx
|
|
movl %eax,12(%edi)
|
|
adcl $0,%ecx
|
|
movl %ebx,16(%edi)
|
|
movl %ecx,20(%edi)
|
|
movl 24(%esi),%eax
|
|
movl 28(%esi),%ebx
|
|
adcl %ebp,%eax
|
|
adcl %edx,%ebx
|
|
movl %eax,24(%edi)
|
|
sbbl %esi,%esi
|
|
movl %ebx,28(%edi)
|
|
movl (%edi),%eax
|
|
movl 4(%edi),%ebx
|
|
movl 8(%edi),%ecx
|
|
movl 12(%edi),%edx
|
|
shrl $1,%eax
|
|
movl %ebx,%ebp
|
|
shll $31,%ebx
|
|
orl %ebx,%eax
|
|
shrl $1,%ebp
|
|
movl %ecx,%ebx
|
|
shll $31,%ecx
|
|
movl %eax,(%edi)
|
|
orl %ecx,%ebp
|
|
movl 16(%edi),%eax
|
|
shrl $1,%ebx
|
|
movl %edx,%ecx
|
|
shll $31,%edx
|
|
movl %ebp,4(%edi)
|
|
orl %edx,%ebx
|
|
movl 20(%edi),%ebp
|
|
shrl $1,%ecx
|
|
movl %eax,%edx
|
|
shll $31,%eax
|
|
movl %ebx,8(%edi)
|
|
orl %eax,%ecx
|
|
movl 24(%edi),%ebx
|
|
shrl $1,%edx
|
|
movl %ebp,%eax
|
|
shll $31,%ebp
|
|
movl %ecx,12(%edi)
|
|
orl %ebp,%edx
|
|
movl 28(%edi),%ecx
|
|
shrl $1,%eax
|
|
movl %ebx,%ebp
|
|
shll $31,%ebx
|
|
movl %edx,16(%edi)
|
|
orl %ebx,%eax
|
|
shrl $1,%ebp
|
|
movl %ecx,%ebx
|
|
shll $31,%ecx
|
|
movl %eax,20(%edi)
|
|
orl %ecx,%ebp
|
|
shrl $1,%ebx
|
|
shll $31,%esi
|
|
movl %ebp,24(%edi)
|
|
orl %esi,%ebx
|
|
movl %ebx,28(%edi)
|
|
ret
|
|
.size _ecp_nistz256_div_by_2,.-_ecp_nistz256_div_by_2
|
|
.globl GFp_nistz256_add
|
|
.hidden GFp_nistz256_add
|
|
.type GFp_nistz256_add,@function
|
|
.align 16
|
|
GFp_nistz256_add:
|
|
.L_GFp_nistz256_add_begin:
|
|
pushl %ebp
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
movl 24(%esp),%esi
|
|
movl 28(%esp),%ebp
|
|
movl 20(%esp),%edi
|
|
call _ecp_nistz256_add
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size GFp_nistz256_add,.-.L_GFp_nistz256_add_begin
|
|
.hidden _ecp_nistz256_add
|
|
.type _ecp_nistz256_add,@function
|
|
.align 16
|
|
_ecp_nistz256_add:
|
|
movl (%esi),%eax
|
|
movl 4(%esi),%ebx
|
|
movl 8(%esi),%ecx
|
|
addl (%ebp),%eax
|
|
movl 12(%esi),%edx
|
|
adcl 4(%ebp),%ebx
|
|
movl %eax,(%edi)
|
|
adcl 8(%ebp),%ecx
|
|
movl %ebx,4(%edi)
|
|
adcl 12(%ebp),%edx
|
|
movl %ecx,8(%edi)
|
|
movl %edx,12(%edi)
|
|
movl 16(%esi),%eax
|
|
movl 20(%esi),%ebx
|
|
movl 24(%esi),%ecx
|
|
adcl 16(%ebp),%eax
|
|
movl 28(%esi),%edx
|
|
adcl 20(%ebp),%ebx
|
|
movl %eax,16(%edi)
|
|
adcl 24(%ebp),%ecx
|
|
movl %ebx,20(%edi)
|
|
movl $0,%esi
|
|
adcl 28(%ebp),%edx
|
|
movl %ecx,24(%edi)
|
|
adcl $0,%esi
|
|
movl %edx,28(%edi)
|
|
movl (%edi),%eax
|
|
movl 4(%edi),%ebx
|
|
movl 8(%edi),%ecx
|
|
subl $-1,%eax
|
|
movl 12(%edi),%edx
|
|
sbbl $-1,%ebx
|
|
movl 16(%edi),%eax
|
|
sbbl $-1,%ecx
|
|
movl 20(%edi),%ebx
|
|
sbbl $0,%edx
|
|
movl 24(%edi),%ecx
|
|
sbbl $0,%eax
|
|
movl 28(%edi),%edx
|
|
sbbl $0,%ebx
|
|
sbbl $1,%ecx
|
|
sbbl $-1,%edx
|
|
sbbl $0,%esi
|
|
notl %esi
|
|
movl (%edi),%eax
|
|
movl %esi,%ebp
|
|
movl 4(%edi),%ebx
|
|
shrl $31,%ebp
|
|
movl 8(%edi),%ecx
|
|
subl %esi,%eax
|
|
movl 12(%edi),%edx
|
|
sbbl %esi,%ebx
|
|
movl %eax,(%edi)
|
|
sbbl %esi,%ecx
|
|
movl %ebx,4(%edi)
|
|
sbbl $0,%edx
|
|
movl %ecx,8(%edi)
|
|
movl %edx,12(%edi)
|
|
movl 16(%edi),%eax
|
|
movl 20(%edi),%ebx
|
|
movl 24(%edi),%ecx
|
|
sbbl $0,%eax
|
|
movl 28(%edi),%edx
|
|
sbbl $0,%ebx
|
|
movl %eax,16(%edi)
|
|
sbbl %ebp,%ecx
|
|
movl %ebx,20(%edi)
|
|
sbbl %esi,%edx
|
|
movl %ecx,24(%edi)
|
|
movl %edx,28(%edi)
|
|
ret
|
|
.size _ecp_nistz256_add,.-_ecp_nistz256_add
|
|
.hidden _ecp_nistz256_sub
|
|
.type _ecp_nistz256_sub,@function
|
|
.align 16
|
|
_ecp_nistz256_sub:
|
|
movl (%esi),%eax
|
|
movl 4(%esi),%ebx
|
|
movl 8(%esi),%ecx
|
|
subl (%ebp),%eax
|
|
movl 12(%esi),%edx
|
|
sbbl 4(%ebp),%ebx
|
|
movl %eax,(%edi)
|
|
sbbl 8(%ebp),%ecx
|
|
movl %ebx,4(%edi)
|
|
sbbl 12(%ebp),%edx
|
|
movl %ecx,8(%edi)
|
|
movl %edx,12(%edi)
|
|
movl 16(%esi),%eax
|
|
movl 20(%esi),%ebx
|
|
movl 24(%esi),%ecx
|
|
sbbl 16(%ebp),%eax
|
|
movl 28(%esi),%edx
|
|
sbbl 20(%ebp),%ebx
|
|
sbbl 24(%ebp),%ecx
|
|
movl %eax,16(%edi)
|
|
sbbl 28(%ebp),%edx
|
|
movl %ebx,20(%edi)
|
|
sbbl %esi,%esi
|
|
movl %ecx,24(%edi)
|
|
movl %edx,28(%edi)
|
|
movl (%edi),%eax
|
|
movl %esi,%ebp
|
|
movl 4(%edi),%ebx
|
|
shrl $31,%ebp
|
|
movl 8(%edi),%ecx
|
|
addl %esi,%eax
|
|
movl 12(%edi),%edx
|
|
adcl %esi,%ebx
|
|
movl %eax,(%edi)
|
|
adcl %esi,%ecx
|
|
movl %ebx,4(%edi)
|
|
adcl $0,%edx
|
|
movl %ecx,8(%edi)
|
|
movl %edx,12(%edi)
|
|
movl 16(%edi),%eax
|
|
movl 20(%edi),%ebx
|
|
movl 24(%edi),%ecx
|
|
adcl $0,%eax
|
|
movl 28(%edi),%edx
|
|
adcl $0,%ebx
|
|
movl %eax,16(%edi)
|
|
adcl %ebp,%ecx
|
|
movl %ebx,20(%edi)
|
|
adcl %esi,%edx
|
|
movl %ecx,24(%edi)
|
|
movl %edx,28(%edi)
|
|
ret
|
|
.size _ecp_nistz256_sub,.-_ecp_nistz256_sub
|
|
.globl GFp_nistz256_neg
|
|
.hidden GFp_nistz256_neg
|
|
.type GFp_nistz256_neg,@function
|
|
.align 16
|
|
GFp_nistz256_neg:
|
|
.L_GFp_nistz256_neg_begin:
|
|
pushl %ebp
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
movl 24(%esp),%ebp
|
|
movl 20(%esp),%edi
|
|
xorl %eax,%eax
|
|
subl $32,%esp
|
|
movl %eax,(%esp)
|
|
movl %esp,%esi
|
|
movl %eax,4(%esp)
|
|
movl %eax,8(%esp)
|
|
movl %eax,12(%esp)
|
|
movl %eax,16(%esp)
|
|
movl %eax,20(%esp)
|
|
movl %eax,24(%esp)
|
|
movl %eax,28(%esp)
|
|
call _ecp_nistz256_sub
|
|
addl $32,%esp
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size GFp_nistz256_neg,.-.L_GFp_nistz256_neg_begin
|
|
.hidden _picup_eax
|
|
.type _picup_eax,@function
|
|
.align 16
|
|
_picup_eax:
|
|
movl (%esp),%eax
|
|
ret
|
|
.size _picup_eax,.-_picup_eax
|
|
.globl GFp_nistz256_mul_mont
|
|
.hidden GFp_nistz256_mul_mont
|
|
.type GFp_nistz256_mul_mont,@function
|
|
.align 16
|
|
GFp_nistz256_mul_mont:
|
|
.L_GFp_nistz256_mul_mont_begin:
|
|
pushl %ebp
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
movl 24(%esp),%esi
|
|
movl 28(%esp),%ebp
|
|
call _picup_eax
|
|
.L000pic:
|
|
leal GFp_ia32cap_P-.L000pic(%eax),%eax
|
|
movl (%eax),%eax
|
|
movl 20(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size GFp_nistz256_mul_mont,.-.L_GFp_nistz256_mul_mont_begin
|
|
.hidden _ecp_nistz256_mul_mont
|
|
.type _ecp_nistz256_mul_mont,@function
|
|
.align 16
|
|
_ecp_nistz256_mul_mont:
|
|
movl %esp,%edx
|
|
subl $256,%esp
|
|
movd (%ebp),%xmm7
|
|
leal 4(%ebp),%ebp
|
|
pcmpeqd %xmm6,%xmm6
|
|
psrlq $48,%xmm6
|
|
pshuflw $220,%xmm7,%xmm7
|
|
andl $-64,%esp
|
|
pshufd $220,%xmm7,%xmm7
|
|
leal 128(%esp),%ebx
|
|
movd (%esi),%xmm0
|
|
pshufd $204,%xmm0,%xmm0
|
|
movd 4(%esi),%xmm1
|
|
movdqa %xmm0,(%ebx)
|
|
pmuludq %xmm7,%xmm0
|
|
movd 8(%esi),%xmm2
|
|
pshufd $204,%xmm1,%xmm1
|
|
movdqa %xmm1,16(%ebx)
|
|
pmuludq %xmm7,%xmm1
|
|
movq %xmm0,%xmm4
|
|
pslldq $6,%xmm4
|
|
paddq %xmm0,%xmm4
|
|
movdqa %xmm4,%xmm5
|
|
psrldq $10,%xmm4
|
|
pand %xmm6,%xmm5
|
|
movd 12(%esi),%xmm3
|
|
pshufd $204,%xmm2,%xmm2
|
|
movdqa %xmm2,32(%ebx)
|
|
pmuludq %xmm7,%xmm2
|
|
paddq %xmm4,%xmm1
|
|
movdqa %xmm1,(%esp)
|
|
movd 16(%esi),%xmm0
|
|
pshufd $204,%xmm3,%xmm3
|
|
movdqa %xmm3,48(%ebx)
|
|
pmuludq %xmm7,%xmm3
|
|
movdqa %xmm2,16(%esp)
|
|
movd 20(%esi),%xmm1
|
|
pshufd $204,%xmm0,%xmm0
|
|
movdqa %xmm0,64(%ebx)
|
|
pmuludq %xmm7,%xmm0
|
|
paddq %xmm5,%xmm3
|
|
movdqa %xmm3,32(%esp)
|
|
movd 24(%esi),%xmm2
|
|
pshufd $204,%xmm1,%xmm1
|
|
movdqa %xmm1,80(%ebx)
|
|
pmuludq %xmm7,%xmm1
|
|
movdqa %xmm0,48(%esp)
|
|
pshufd $177,%xmm5,%xmm4
|
|
movd 28(%esi),%xmm3
|
|
pshufd $204,%xmm2,%xmm2
|
|
movdqa %xmm2,96(%ebx)
|
|
pmuludq %xmm7,%xmm2
|
|
movdqa %xmm1,64(%esp)
|
|
psubq %xmm5,%xmm4
|
|
movd (%ebp),%xmm0
|
|
pshufd $204,%xmm3,%xmm3
|
|
movdqa %xmm3,112(%ebx)
|
|
pmuludq %xmm7,%xmm3
|
|
pshuflw $220,%xmm0,%xmm7
|
|
movdqa (%ebx),%xmm0
|
|
pshufd $220,%xmm7,%xmm7
|
|
movl $6,%ecx
|
|
leal 4(%ebp),%ebp
|
|
jmp .L001madd_sse2
|
|
.align 16
|
|
.L001madd_sse2:
|
|
paddq %xmm5,%xmm2
|
|
paddq %xmm4,%xmm3
|
|
movdqa 16(%ebx),%xmm1
|
|
pmuludq %xmm7,%xmm0
|
|
movdqa %xmm2,80(%esp)
|
|
movdqa 32(%ebx),%xmm2
|
|
pmuludq %xmm7,%xmm1
|
|
movdqa %xmm3,96(%esp)
|
|
paddq (%esp),%xmm0
|
|
movdqa 48(%ebx),%xmm3
|
|
pmuludq %xmm7,%xmm2
|
|
movq %xmm0,%xmm4
|
|
pslldq $6,%xmm4
|
|
paddq 16(%esp),%xmm1
|
|
paddq %xmm0,%xmm4
|
|
movdqa %xmm4,%xmm5
|
|
psrldq $10,%xmm4
|
|
movdqa 64(%ebx),%xmm0
|
|
pmuludq %xmm7,%xmm3
|
|
paddq %xmm4,%xmm1
|
|
paddq 32(%esp),%xmm2
|
|
movdqa %xmm1,(%esp)
|
|
movdqa 80(%ebx),%xmm1
|
|
pmuludq %xmm7,%xmm0
|
|
paddq 48(%esp),%xmm3
|
|
movdqa %xmm2,16(%esp)
|
|
pand %xmm6,%xmm5
|
|
movdqa 96(%ebx),%xmm2
|
|
pmuludq %xmm7,%xmm1
|
|
paddq %xmm5,%xmm3
|
|
paddq 64(%esp),%xmm0
|
|
movdqa %xmm3,32(%esp)
|
|
pshufd $177,%xmm5,%xmm4
|
|
movdqa %xmm7,%xmm3
|
|
pmuludq %xmm7,%xmm2
|
|
movd (%ebp),%xmm7
|
|
leal 4(%ebp),%ebp
|
|
paddq 80(%esp),%xmm1
|
|
psubq %xmm5,%xmm4
|
|
movdqa %xmm0,48(%esp)
|
|
pshuflw $220,%xmm7,%xmm7
|
|
pmuludq 112(%ebx),%xmm3
|
|
pshufd $220,%xmm7,%xmm7
|
|
movdqa (%ebx),%xmm0
|
|
movdqa %xmm1,64(%esp)
|
|
paddq 96(%esp),%xmm2
|
|
decl %ecx
|
|
jnz .L001madd_sse2
|
|
paddq %xmm5,%xmm2
|
|
paddq %xmm4,%xmm3
|
|
movdqa 16(%ebx),%xmm1
|
|
pmuludq %xmm7,%xmm0
|
|
movdqa %xmm2,80(%esp)
|
|
movdqa 32(%ebx),%xmm2
|
|
pmuludq %xmm7,%xmm1
|
|
movdqa %xmm3,96(%esp)
|
|
paddq (%esp),%xmm0
|
|
movdqa 48(%ebx),%xmm3
|
|
pmuludq %xmm7,%xmm2
|
|
movq %xmm0,%xmm4
|
|
pslldq $6,%xmm4
|
|
paddq 16(%esp),%xmm1
|
|
paddq %xmm0,%xmm4
|
|
movdqa %xmm4,%xmm5
|
|
psrldq $10,%xmm4
|
|
movdqa 64(%ebx),%xmm0
|
|
pmuludq %xmm7,%xmm3
|
|
paddq %xmm4,%xmm1
|
|
paddq 32(%esp),%xmm2
|
|
movdqa %xmm1,(%esp)
|
|
movdqa 80(%ebx),%xmm1
|
|
pmuludq %xmm7,%xmm0
|
|
paddq 48(%esp),%xmm3
|
|
movdqa %xmm2,16(%esp)
|
|
pand %xmm6,%xmm5
|
|
movdqa 96(%ebx),%xmm2
|
|
pmuludq %xmm7,%xmm1
|
|
paddq %xmm5,%xmm3
|
|
paddq 64(%esp),%xmm0
|
|
movdqa %xmm3,32(%esp)
|
|
pshufd $177,%xmm5,%xmm4
|
|
movdqa 112(%ebx),%xmm3
|
|
pmuludq %xmm7,%xmm2
|
|
paddq 80(%esp),%xmm1
|
|
psubq %xmm5,%xmm4
|
|
movdqa %xmm0,48(%esp)
|
|
pmuludq %xmm7,%xmm3
|
|
pcmpeqd %xmm7,%xmm7
|
|
movdqa (%esp),%xmm0
|
|
pslldq $8,%xmm7
|
|
movdqa %xmm1,64(%esp)
|
|
paddq 96(%esp),%xmm2
|
|
paddq %xmm5,%xmm2
|
|
paddq %xmm4,%xmm3
|
|
movdqa %xmm2,80(%esp)
|
|
movdqa %xmm3,96(%esp)
|
|
movdqa 16(%esp),%xmm1
|
|
movdqa 32(%esp),%xmm2
|
|
movdqa 48(%esp),%xmm3
|
|
movq %xmm0,%xmm4
|
|
pand %xmm7,%xmm0
|
|
xorl %ebp,%ebp
|
|
pslldq $6,%xmm4
|
|
movq %xmm1,%xmm5
|
|
paddq %xmm4,%xmm0
|
|
pand %xmm7,%xmm1
|
|
psrldq $6,%xmm0
|
|
movd %xmm0,%eax
|
|
psrldq $4,%xmm0
|
|
paddq %xmm0,%xmm5
|
|
movdqa 64(%esp),%xmm0
|
|
subl $-1,%eax
|
|
pslldq $6,%xmm5
|
|
movq %xmm2,%xmm4
|
|
paddq %xmm5,%xmm1
|
|
pand %xmm7,%xmm2
|
|
psrldq $6,%xmm1
|
|
movl %eax,(%edi)
|
|
movd %xmm1,%eax
|
|
psrldq $4,%xmm1
|
|
paddq %xmm1,%xmm4
|
|
movdqa 80(%esp),%xmm1
|
|
sbbl $-1,%eax
|
|
pslldq $6,%xmm4
|
|
movq %xmm3,%xmm5
|
|
paddq %xmm4,%xmm2
|
|
pand %xmm7,%xmm3
|
|
psrldq $6,%xmm2
|
|
movl %eax,4(%edi)
|
|
movd %xmm2,%eax
|
|
psrldq $4,%xmm2
|
|
paddq %xmm2,%xmm5
|
|
movdqa 96(%esp),%xmm2
|
|
sbbl $-1,%eax
|
|
pslldq $6,%xmm5
|
|
movq %xmm0,%xmm4
|
|
paddq %xmm5,%xmm3
|
|
pand %xmm7,%xmm0
|
|
psrldq $6,%xmm3
|
|
movl %eax,8(%edi)
|
|
movd %xmm3,%eax
|
|
psrldq $4,%xmm3
|
|
paddq %xmm3,%xmm4
|
|
sbbl $0,%eax
|
|
pslldq $6,%xmm4
|
|
movq %xmm1,%xmm5
|
|
paddq %xmm4,%xmm0
|
|
pand %xmm7,%xmm1
|
|
psrldq $6,%xmm0
|
|
movl %eax,12(%edi)
|
|
movd %xmm0,%eax
|
|
psrldq $4,%xmm0
|
|
paddq %xmm0,%xmm5
|
|
sbbl $0,%eax
|
|
pslldq $6,%xmm5
|
|
movq %xmm2,%xmm4
|
|
paddq %xmm5,%xmm1
|
|
pand %xmm7,%xmm2
|
|
psrldq $6,%xmm1
|
|
movd %xmm1,%ebx
|
|
psrldq $4,%xmm1
|
|
movl %edx,%esp
|
|
paddq %xmm1,%xmm4
|
|
pslldq $6,%xmm4
|
|
paddq %xmm4,%xmm2
|
|
psrldq $6,%xmm2
|
|
movd %xmm2,%ecx
|
|
psrldq $4,%xmm2
|
|
sbbl $0,%ebx
|
|
movd %xmm2,%edx
|
|
pextrw $2,%xmm2,%esi
|
|
sbbl $1,%ecx
|
|
sbbl $-1,%edx
|
|
sbbl $0,%esi
|
|
subl %esi,%ebp
|
|
addl %esi,(%edi)
|
|
adcl %esi,4(%edi)
|
|
adcl %esi,8(%edi)
|
|
adcl $0,12(%edi)
|
|
adcl $0,%eax
|
|
adcl $0,%ebx
|
|
movl %eax,16(%edi)
|
|
adcl %ebp,%ecx
|
|
movl %ebx,20(%edi)
|
|
adcl %esi,%edx
|
|
movl %ecx,24(%edi)
|
|
movl %edx,28(%edi)
|
|
ret
|
|
.size _ecp_nistz256_mul_mont,.-_ecp_nistz256_mul_mont
|
|
.globl GFp_nistz256_point_double
|
|
.hidden GFp_nistz256_point_double
|
|
.type GFp_nistz256_point_double,@function
|
|
.align 16
|
|
GFp_nistz256_point_double:
|
|
.L_GFp_nistz256_point_double_begin:
|
|
pushl %ebp
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
movl 24(%esp),%esi
|
|
subl $164,%esp
|
|
call _picup_eax
|
|
.L002pic:
|
|
leal GFp_ia32cap_P-.L002pic(%eax),%edx
|
|
movl (%edx),%ebp
|
|
.Lpoint_double_shortcut:
|
|
movl (%esi),%eax
|
|
movl 4(%esi),%ebx
|
|
movl 8(%esi),%ecx
|
|
movl 12(%esi),%edx
|
|
movl %eax,96(%esp)
|
|
movl %ebx,100(%esp)
|
|
movl %ecx,104(%esp)
|
|
movl %edx,108(%esp)
|
|
movl 16(%esi),%eax
|
|
movl 20(%esi),%ebx
|
|
movl 24(%esi),%ecx
|
|
movl 28(%esi),%edx
|
|
movl %eax,112(%esp)
|
|
movl %ebx,116(%esp)
|
|
movl %ecx,120(%esp)
|
|
movl %edx,124(%esp)
|
|
movl %ebp,160(%esp)
|
|
leal 32(%esi),%ebp
|
|
leal 32(%esi),%esi
|
|
leal (%esp),%edi
|
|
call _ecp_nistz256_add
|
|
movl 160(%esp),%eax
|
|
movl $64,%esi
|
|
addl 188(%esp),%esi
|
|
leal 64(%esp),%edi
|
|
movl %esi,%ebp
|
|
call _ecp_nistz256_mul_mont
|
|
movl 160(%esp),%eax
|
|
leal (%esp),%esi
|
|
leal (%esp),%ebp
|
|
leal (%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 160(%esp),%eax
|
|
movl 188(%esp),%ebp
|
|
leal 32(%ebp),%esi
|
|
leal 64(%ebp),%ebp
|
|
leal 128(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
leal 96(%esp),%esi
|
|
leal 64(%esp),%ebp
|
|
leal 32(%esp),%edi
|
|
call _ecp_nistz256_add
|
|
movl $64,%edi
|
|
leal 128(%esp),%esi
|
|
leal 128(%esp),%ebp
|
|
addl 184(%esp),%edi
|
|
call _ecp_nistz256_add
|
|
leal 96(%esp),%esi
|
|
leal 64(%esp),%ebp
|
|
leal 64(%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
movl 160(%esp),%eax
|
|
leal (%esp),%esi
|
|
leal (%esp),%ebp
|
|
leal 128(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 160(%esp),%eax
|
|
leal 32(%esp),%esi
|
|
leal 64(%esp),%ebp
|
|
leal 32(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl $32,%edi
|
|
leal 128(%esp),%esi
|
|
addl 184(%esp),%edi
|
|
call _ecp_nistz256_div_by_2
|
|
leal 32(%esp),%esi
|
|
leal 32(%esp),%ebp
|
|
leal 128(%esp),%edi
|
|
call _ecp_nistz256_add
|
|
movl 160(%esp),%eax
|
|
leal 96(%esp),%esi
|
|
leal (%esp),%ebp
|
|
leal (%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
leal 128(%esp),%esi
|
|
leal 32(%esp),%ebp
|
|
leal 32(%esp),%edi
|
|
call _ecp_nistz256_add
|
|
leal (%esp),%esi
|
|
leal (%esp),%ebp
|
|
leal 128(%esp),%edi
|
|
call _ecp_nistz256_add
|
|
movl 160(%esp),%eax
|
|
leal 32(%esp),%esi
|
|
leal 32(%esp),%ebp
|
|
movl 184(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl %edi,%esi
|
|
leal 128(%esp),%ebp
|
|
call _ecp_nistz256_sub
|
|
leal (%esp),%esi
|
|
movl %edi,%ebp
|
|
leal (%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
movl 160(%esp),%eax
|
|
movl %edi,%esi
|
|
leal 32(%esp),%ebp
|
|
call _ecp_nistz256_mul_mont
|
|
movl $32,%ebp
|
|
leal (%esp),%esi
|
|
addl 184(%esp),%ebp
|
|
movl %ebp,%edi
|
|
call _ecp_nistz256_sub
|
|
addl $164,%esp
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size GFp_nistz256_point_double,.-.L_GFp_nistz256_point_double_begin
|
|
.globl GFp_nistz256_point_add_affine
|
|
.hidden GFp_nistz256_point_add_affine
|
|
.type GFp_nistz256_point_add_affine,@function
|
|
.align 16
|
|
GFp_nistz256_point_add_affine:
|
|
.L_GFp_nistz256_point_add_affine_begin:
|
|
pushl %ebp
|
|
pushl %ebx
|
|
pushl %esi
|
|
pushl %edi
|
|
movl 24(%esp),%esi
|
|
subl $492,%esp
|
|
call _picup_eax
|
|
.L003pic:
|
|
leal GFp_ia32cap_P-.L003pic(%eax),%edx
|
|
movl (%edx),%ebp
|
|
leal 96(%esp),%edi
|
|
movl (%esi),%eax
|
|
movl 4(%esi),%ebx
|
|
movl 8(%esi),%ecx
|
|
movl 12(%esi),%edx
|
|
movl %eax,(%edi)
|
|
movl %ebp,488(%esp)
|
|
movl %ebx,4(%edi)
|
|
movl %ecx,8(%edi)
|
|
movl %edx,12(%edi)
|
|
movl 16(%esi),%eax
|
|
movl 20(%esi),%ebx
|
|
movl 24(%esi),%ecx
|
|
movl 28(%esi),%edx
|
|
movl %eax,16(%edi)
|
|
movl %ebx,20(%edi)
|
|
movl %ecx,24(%edi)
|
|
movl %edx,28(%edi)
|
|
movl 32(%esi),%eax
|
|
movl 36(%esi),%ebx
|
|
movl 40(%esi),%ecx
|
|
movl 44(%esi),%edx
|
|
movl %eax,32(%edi)
|
|
movl %ebx,36(%edi)
|
|
movl %ecx,40(%edi)
|
|
movl %edx,44(%edi)
|
|
movl 48(%esi),%eax
|
|
movl 52(%esi),%ebx
|
|
movl 56(%esi),%ecx
|
|
movl 60(%esi),%edx
|
|
movl %eax,48(%edi)
|
|
movl %ebx,52(%edi)
|
|
movl %ecx,56(%edi)
|
|
movl %edx,60(%edi)
|
|
movl 64(%esi),%eax
|
|
movl 68(%esi),%ebx
|
|
movl 72(%esi),%ecx
|
|
movl 76(%esi),%edx
|
|
movl %eax,64(%edi)
|
|
movl %eax,%ebp
|
|
movl %ebx,68(%edi)
|
|
orl %ebx,%ebp
|
|
movl %ecx,72(%edi)
|
|
orl %ecx,%ebp
|
|
movl %edx,76(%edi)
|
|
orl %edx,%ebp
|
|
movl 80(%esi),%eax
|
|
movl 84(%esi),%ebx
|
|
movl 88(%esi),%ecx
|
|
movl 92(%esi),%edx
|
|
movl %eax,80(%edi)
|
|
orl %eax,%ebp
|
|
movl %ebx,84(%edi)
|
|
orl %ebx,%ebp
|
|
movl %ecx,88(%edi)
|
|
orl %ecx,%ebp
|
|
movl %edx,92(%edi)
|
|
orl %edx,%ebp
|
|
xorl %eax,%eax
|
|
movl 520(%esp),%esi
|
|
subl %ebp,%eax
|
|
orl %eax,%ebp
|
|
sarl $31,%ebp
|
|
movl %ebp,480(%esp)
|
|
leal 192(%esp),%edi
|
|
movl (%esi),%eax
|
|
movl 4(%esi),%ebx
|
|
movl 8(%esi),%ecx
|
|
movl 12(%esi),%edx
|
|
movl %eax,(%edi)
|
|
movl %eax,%ebp
|
|
movl %ebx,4(%edi)
|
|
orl %ebx,%ebp
|
|
movl %ecx,8(%edi)
|
|
orl %ecx,%ebp
|
|
movl %edx,12(%edi)
|
|
orl %edx,%ebp
|
|
movl 16(%esi),%eax
|
|
movl 20(%esi),%ebx
|
|
movl 24(%esi),%ecx
|
|
movl 28(%esi),%edx
|
|
movl %eax,16(%edi)
|
|
orl %eax,%ebp
|
|
movl %ebx,20(%edi)
|
|
orl %ebx,%ebp
|
|
movl %ecx,24(%edi)
|
|
orl %ecx,%ebp
|
|
movl %edx,28(%edi)
|
|
orl %edx,%ebp
|
|
movl 32(%esi),%eax
|
|
movl 36(%esi),%ebx
|
|
movl 40(%esi),%ecx
|
|
movl 44(%esi),%edx
|
|
movl %eax,32(%edi)
|
|
orl %eax,%ebp
|
|
movl %ebx,36(%edi)
|
|
orl %ebx,%ebp
|
|
movl %ecx,40(%edi)
|
|
orl %ecx,%ebp
|
|
movl %edx,44(%edi)
|
|
orl %edx,%ebp
|
|
movl 48(%esi),%eax
|
|
movl 52(%esi),%ebx
|
|
movl 56(%esi),%ecx
|
|
movl 60(%esi),%edx
|
|
movl %eax,48(%edi)
|
|
orl %eax,%ebp
|
|
movl %ebx,52(%edi)
|
|
orl %ebx,%ebp
|
|
movl %ecx,56(%edi)
|
|
orl %ecx,%ebp
|
|
movl %edx,60(%edi)
|
|
orl %edx,%ebp
|
|
xorl %ebx,%ebx
|
|
movl 488(%esp),%eax
|
|
subl %ebp,%ebx
|
|
leal 160(%esp),%esi
|
|
orl %ebp,%ebx
|
|
leal 160(%esp),%ebp
|
|
sarl $31,%ebx
|
|
leal 288(%esp),%edi
|
|
movl %ebx,484(%esp)
|
|
call _ecp_nistz256_mul_mont
|
|
movl 488(%esp),%eax
|
|
leal 192(%esp),%esi
|
|
movl %edi,%ebp
|
|
leal 256(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 488(%esp),%eax
|
|
leal 160(%esp),%esi
|
|
leal 288(%esp),%ebp
|
|
leal 288(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
leal 256(%esp),%esi
|
|
leal 96(%esp),%ebp
|
|
leal 320(%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
movl 488(%esp),%eax
|
|
leal 224(%esp),%esi
|
|
leal 288(%esp),%ebp
|
|
leal 288(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 488(%esp),%eax
|
|
leal 160(%esp),%esi
|
|
leal 320(%esp),%ebp
|
|
leal 64(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
leal 288(%esp),%esi
|
|
leal 128(%esp),%ebp
|
|
leal 352(%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
movl 488(%esp),%eax
|
|
leal 320(%esp),%esi
|
|
leal 320(%esp),%ebp
|
|
leal 384(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 488(%esp),%eax
|
|
leal 352(%esp),%esi
|
|
leal 352(%esp),%ebp
|
|
leal 448(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 488(%esp),%eax
|
|
leal 96(%esp),%esi
|
|
leal 384(%esp),%ebp
|
|
leal 256(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 488(%esp),%eax
|
|
leal 320(%esp),%esi
|
|
leal 384(%esp),%ebp
|
|
leal 416(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
leal 256(%esp),%esi
|
|
leal 256(%esp),%ebp
|
|
leal 384(%esp),%edi
|
|
call _ecp_nistz256_add
|
|
leal 448(%esp),%esi
|
|
leal 384(%esp),%ebp
|
|
leal (%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
leal (%esp),%esi
|
|
leal 416(%esp),%ebp
|
|
leal (%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
leal 256(%esp),%esi
|
|
leal (%esp),%ebp
|
|
leal 32(%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
movl 488(%esp),%eax
|
|
leal 416(%esp),%esi
|
|
leal 128(%esp),%ebp
|
|
leal 288(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
movl 488(%esp),%eax
|
|
leal 352(%esp),%esi
|
|
leal 32(%esp),%ebp
|
|
leal 32(%esp),%edi
|
|
call _ecp_nistz256_mul_mont
|
|
leal 32(%esp),%esi
|
|
leal 288(%esp),%ebp
|
|
leal 32(%esp),%edi
|
|
call _ecp_nistz256_sub
|
|
movl 480(%esp),%ebp
|
|
movl 484(%esp),%esi
|
|
movl 512(%esp),%edi
|
|
movl %ebp,%edx
|
|
notl %ebp
|
|
andl %esi,%edx
|
|
andl %esi,%ebp
|
|
notl %esi
|
|
movl %edx,%eax
|
|
andl 64(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl $1,%ebx
|
|
movl %esi,%ecx
|
|
andl 160(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,64(%edi)
|
|
movl %edx,%eax
|
|
andl 68(%esp),%eax
|
|
movl %esi,%ecx
|
|
andl 164(%esp),%ecx
|
|
orl %ecx,%eax
|
|
movl %eax,68(%edi)
|
|
movl %edx,%eax
|
|
andl 72(%esp),%eax
|
|
movl %esi,%ecx
|
|
andl 168(%esp),%ecx
|
|
orl %ecx,%eax
|
|
movl %eax,72(%edi)
|
|
movl %edx,%eax
|
|
andl 76(%esp),%eax
|
|
movl %esi,%ecx
|
|
andl 172(%esp),%ecx
|
|
orl %ebp,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,76(%edi)
|
|
movl %edx,%eax
|
|
andl 80(%esp),%eax
|
|
movl %esi,%ecx
|
|
andl 176(%esp),%ecx
|
|
orl %ebp,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,80(%edi)
|
|
movl %edx,%eax
|
|
andl 84(%esp),%eax
|
|
movl %esi,%ecx
|
|
andl 180(%esp),%ecx
|
|
orl %ebp,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,84(%edi)
|
|
movl %edx,%eax
|
|
andl 88(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl $-2,%ebx
|
|
movl %esi,%ecx
|
|
andl 184(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,88(%edi)
|
|
movl %edx,%eax
|
|
andl 92(%esp),%eax
|
|
movl %esi,%ecx
|
|
andl 188(%esp),%ecx
|
|
orl %ecx,%eax
|
|
movl %eax,92(%edi)
|
|
movl %edx,%eax
|
|
andl (%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 192(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 96(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,(%edi)
|
|
movl %edx,%eax
|
|
andl 4(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 196(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 100(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,4(%edi)
|
|
movl %edx,%eax
|
|
andl 8(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 200(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 104(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,8(%edi)
|
|
movl %edx,%eax
|
|
andl 12(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 204(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 108(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,12(%edi)
|
|
movl %edx,%eax
|
|
andl 16(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 208(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 112(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,16(%edi)
|
|
movl %edx,%eax
|
|
andl 20(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 212(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 116(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,20(%edi)
|
|
movl %edx,%eax
|
|
andl 24(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 216(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 120(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,24(%edi)
|
|
movl %edx,%eax
|
|
andl 28(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 220(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 124(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,28(%edi)
|
|
movl %edx,%eax
|
|
andl 32(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 224(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 128(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,32(%edi)
|
|
movl %edx,%eax
|
|
andl 36(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 228(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 132(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,36(%edi)
|
|
movl %edx,%eax
|
|
andl 40(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 232(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 136(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,40(%edi)
|
|
movl %edx,%eax
|
|
andl 44(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 236(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 140(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,44(%edi)
|
|
movl %edx,%eax
|
|
andl 48(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 240(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 144(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,48(%edi)
|
|
movl %edx,%eax
|
|
andl 52(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 244(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 148(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,52(%edi)
|
|
movl %edx,%eax
|
|
andl 56(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 248(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 152(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,56(%edi)
|
|
movl %edx,%eax
|
|
andl 60(%esp),%eax
|
|
movl %ebp,%ebx
|
|
andl 252(%esp),%ebx
|
|
movl %esi,%ecx
|
|
andl 156(%esp),%ecx
|
|
orl %ebx,%eax
|
|
orl %ecx,%eax
|
|
movl %eax,60(%edi)
|
|
addl $492,%esp
|
|
popl %edi
|
|
popl %esi
|
|
popl %ebx
|
|
popl %ebp
|
|
ret
|
|
.size GFp_nistz256_point_add_affine,.-.L_GFp_nistz256_point_add_affine_begin
|
|
#endif
|
|
.section .note.GNU-stack,"",@progbits
|