mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-01-08 14:02:47 +00:00
411 lines
7.5 KiB
ArmAsm
411 lines
7.5 KiB
ArmAsm
|
.text
|
||
|
.p2align 5
|
||
|
.globl _crypto_scalarmult_curve25519_athlon_mult
|
||
|
.globl crypto_scalarmult_curve25519_athlon_mult
|
||
|
_crypto_scalarmult_curve25519_athlon_mult:
|
||
|
crypto_scalarmult_curve25519_athlon_mult:
|
||
|
mov %esp,%eax
|
||
|
and $31,%eax
|
||
|
add $32,%eax
|
||
|
sub %eax,%esp
|
||
|
movl %ebp,0(%esp)
|
||
|
movl 4(%esp,%eax),%ecx
|
||
|
movl 8(%esp,%eax),%edx
|
||
|
movl 12(%esp,%eax),%ebp
|
||
|
fldl 72(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 0(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 8(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 0(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 16(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 8(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 24(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 16(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 32(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 24(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 8(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 40(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 32(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 16(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 48(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 40(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 24(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 56(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 48(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 32(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 64(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 56(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 40(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 16(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 48(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 64(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha230
|
||
|
fadd %st(4),%st(0)
|
||
|
fldl 24(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 56(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 72(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha230
|
||
|
fldl 32(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 24(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 64(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fxch %st(1)
|
||
|
fadd %st(0),%st(4)
|
||
|
fldl 40(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 32(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fsubrp %st(0),%st(5)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha255
|
||
|
fadd %st(4),%st(0)
|
||
|
fldl 48(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 40(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 72(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha255
|
||
|
fldl 56(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 32(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 48(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 64(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fxch %st(1)
|
||
|
fadd %st(0),%st(4)
|
||
|
fsubrp %st(0),%st(5)
|
||
|
fxch %st(5)
|
||
|
fstpl 64(%ecx)
|
||
|
fldl 40(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fldl 56(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 72(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fxch %st(2)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 48(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fldl 64(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fxch %st(1)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 0(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fxch %st(3)
|
||
|
fstpl 72(%ecx)
|
||
|
fldl 40(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 56(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fldl 72(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 0(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha26
|
||
|
fadd %st(2),%st(0)
|
||
|
fldl 48(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 64(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fxch %st(3)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 8(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fxch %st(3)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha26
|
||
|
fldl 56(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 72(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fldl 0(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fadd %st(0),%st(4)
|
||
|
fsubrp %st(0),%st(2)
|
||
|
fldl 48(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 64(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fxch %st(5)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 8(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha51
|
||
|
fadd %st(5),%st(0)
|
||
|
fldl 56(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(7)
|
||
|
fldl 72(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 0(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 16(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha51
|
||
|
fxch %st(3)
|
||
|
fstpl 0(%ecx)
|
||
|
fldl 64(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fxch %st(1)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 8(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fxch %st(2)
|
||
|
fadd %st(0),%st(3)
|
||
|
fsubrp %st(0),%st(4)
|
||
|
fldl 56(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fldl 72(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fldl 0(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 16(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha77
|
||
|
fadd %st(4),%st(0)
|
||
|
fldl 64(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fxch %st(6)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 8(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fldl 24(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fxch %st(6)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha77
|
||
|
fxch %st(5)
|
||
|
fstpl 8(%ecx)
|
||
|
fldl 72(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 0(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fldl 16(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fxch %st(4)
|
||
|
fadd %st(0),%st(1)
|
||
|
fsubrp %st(0),%st(3)
|
||
|
fldl 64(%edx)
|
||
|
fmull 72(%ebp)
|
||
|
fxch %st(4)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 8(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fldl 24(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha102
|
||
|
fadd %st(2),%st(0)
|
||
|
fldl 72(%edx)
|
||
|
fmull 64(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fldl 0(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 16(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(7)
|
||
|
fldl 32(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha102
|
||
|
fxch %st(4)
|
||
|
fstpl 16(%ecx)
|
||
|
fxch %st(4)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
fldl 8(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fldl 24(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fxch %st(3)
|
||
|
fadd %st(0),%st(2)
|
||
|
fsubrp %st(0),%st(1)
|
||
|
fldl 0(%edx)
|
||
|
fmull 56(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 16(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fldl 32(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha128
|
||
|
fadd %st(2),%st(0)
|
||
|
fldl 8(%edx)
|
||
|
fmull 48(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fldl 24(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(5)
|
||
|
fldl 40(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(6)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha128
|
||
|
fxch %st(1)
|
||
|
fstpl 24(%ecx)
|
||
|
fldl 16(%edx)
|
||
|
fmull 40(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fldl 32(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(4)
|
||
|
fadd %st(0),%st(4)
|
||
|
fsubrp %st(0),%st(1)
|
||
|
fstpl 32(%ecx)
|
||
|
fldl 24(%edx)
|
||
|
fmull 32(%ebp)
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl 40(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha153
|
||
|
fadd %st(3),%st(0)
|
||
|
fldl 32(%edx)
|
||
|
fmull 24(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl 48(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha153
|
||
|
fldl 40(%edx)
|
||
|
fmull 16(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fadd %st(0),%st(2)
|
||
|
fsubrp %st(0),%st(3)
|
||
|
fxch %st(2)
|
||
|
fstpl 40(%ecx)
|
||
|
fldl 48(%edx)
|
||
|
fmull 8(%ebp)
|
||
|
faddp %st(0),%st(2)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha179
|
||
|
fadd %st(1),%st(0)
|
||
|
fldl 56(%edx)
|
||
|
fmull 0(%ebp)
|
||
|
faddp %st(0),%st(3)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha179
|
||
|
fldl 64(%ecx)
|
||
|
fldl 72(%ecx)
|
||
|
fxch %st(2)
|
||
|
fadd %st(0),%st(4)
|
||
|
fsubrp %st(0),%st(3)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha204
|
||
|
fadd %st(4),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha204
|
||
|
fadd %st(0),%st(1)
|
||
|
fsubrp %st(0),%st(4)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha230
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha230
|
||
|
fsubr %st(0),%st(1)
|
||
|
faddp %st(0),%st(2)
|
||
|
fxch %st(2)
|
||
|
fstpl 48(%ecx)
|
||
|
fxch %st(2)
|
||
|
fstpl 56(%ecx)
|
||
|
fstpl 64(%ecx)
|
||
|
fstpl 72(%ecx)
|
||
|
movl 0(%esp),%ebp
|
||
|
add %eax,%esp
|
||
|
ret
|