summaryrefslogtreecommitdiff
path: root/nacl/crypto_scalarmult/curve25519/athlon/todouble.s
blob: c37aa447d1632d39fe15779f1310dedf9aed2d07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
.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