mirror of
https://github.com/servalproject/serval-dna.git
synced 2024-12-27 08:32:33 +00:00
145 lines
3.6 KiB
ArmAsm
145 lines
3.6 KiB
ArmAsm
|
.text
|
||
|
.p2align 5
|
||
|
.globl _crypto_scalarmult_curve25519_athlon_todouble
|
||
|
.globl crypto_scalarmult_curve25519_athlon_todouble
|
||
|
_crypto_scalarmult_curve25519_athlon_todouble:
|
||
|
crypto_scalarmult_curve25519_athlon_todouble:
|
||
|
mov %esp,%eax
|
||
|
and $31,%eax
|
||
|
add $96,%eax
|
||
|
sub %eax,%esp
|
||
|
movl 8(%esp,%eax),%ecx
|
||
|
movl 0(%ecx),%edx
|
||
|
movl $0x43300000,4(%esp)
|
||
|
movl %edx,0(%esp)
|
||
|
movl 4(%ecx),%edx
|
||
|
and $0xffffff,%edx
|
||
|
movl $0x45300000,12(%esp)
|
||
|
movl %edx,8(%esp)
|
||
|
movl 7(%ecx),%edx
|
||
|
and $0xffffff,%edx
|
||
|
movl $0x46b00000,20(%esp)
|
||
|
movl %edx,16(%esp)
|
||
|
movl 10(%ecx),%edx
|
||
|
and $0xffffff,%edx
|
||
|
movl $0x48300000,28(%esp)
|
||
|
movl %edx,24(%esp)
|
||
|
movl 13(%ecx),%edx
|
||
|
and $0xffffff,%edx
|
||
|
movl $0x49b00000,36(%esp)
|
||
|
movl %edx,32(%esp)
|
||
|
movl 16(%ecx),%edx
|
||
|
movl $0x4b300000,44(%esp)
|
||
|
movl %edx,40(%esp)
|
||
|
movl 20(%ecx),%edx
|
||
|
and $0xffffff,%edx
|
||
|
movl $0x4d300000,52(%esp)
|
||
|
movl %edx,48(%esp)
|
||
|
movl 23(%ecx),%edx
|
||
|
and $0xffffff,%edx
|
||
|
movl $0x4eb00000,60(%esp)
|
||
|
movl %edx,56(%esp)
|
||
|
movl 26(%ecx),%edx
|
||
|
and $0xffffff,%edx
|
||
|
movl $0x50300000,68(%esp)
|
||
|
movl %edx,64(%esp)
|
||
|
movl 28(%ecx),%ecx
|
||
|
shr $8,%ecx
|
||
|
and $0x7fffff,%ecx
|
||
|
movl $0x51b00000,76(%esp)
|
||
|
movl %ecx,72(%esp)
|
||
|
movl 4(%esp,%eax),%ecx
|
||
|
fldl 72(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in9offset
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha255
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha255
|
||
|
fsubr %st(0),%st(1)
|
||
|
fldl 0(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in0offset
|
||
|
fxch %st(1)
|
||
|
fmull crypto_scalarmult_curve25519_athlon_scale
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha26
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha26
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 0(%ecx)
|
||
|
fldl 8(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in1offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha51
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha51
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 8(%ecx)
|
||
|
fldl 16(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in2offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha77
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha77
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 16(%ecx)
|
||
|
fldl 24(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in3offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha102
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha102
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 24(%ecx)
|
||
|
fldl 32(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in4offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha128
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha128
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 32(%ecx)
|
||
|
fldl 40(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in5offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha153
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha153
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 40(%ecx)
|
||
|
fldl 48(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in6offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha179
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha179
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 48(%ecx)
|
||
|
fldl 56(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in7offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha204
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha204
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 56(%ecx)
|
||
|
fldl 64(%esp)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_in8offset
|
||
|
faddp %st(0),%st(1)
|
||
|
fldl crypto_scalarmult_curve25519_athlon_alpha230
|
||
|
fadd %st(1),%st(0)
|
||
|
fsubl crypto_scalarmult_curve25519_athlon_alpha230
|
||
|
fsubr %st(0),%st(1)
|
||
|
fxch %st(1)
|
||
|
fstpl 64(%ecx)
|
||
|
faddp %st(0),%st(1)
|
||
|
fstpl 72(%ecx)
|
||
|
add %eax,%esp
|
||
|
ret
|