projects
/
dragonfly.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
b4e561aa0ef092107eb9f6a021f5fc2c700782b4
[dragonfly.git]
/
secure
/
lib
/
libcrypto
/
asm
/
x86_64-gf2m.s
1
.text
2
3
.type _mul_1x1,@function
4
.align 16
5
_mul_1x1:
6
subq $128+8,%rsp
7
movq $-1,%r9
8
leaq (%rax,%rax,1),%rsi
9
shrq $3,%r9
10
leaq (,%rax,4),%rdi
11
andq %rax,%r9
12
leaq (,%rax,8),%r12
13
sarq $63,%rax
14
leaq (%r9,%r9,1),%r10
15
sarq $63,%rsi
16
leaq (,%r9,4),%r11
17
andq %rbp,%rax
18
sarq $63,%rdi
19
movq %rax,%rdx
20
shlq $63,%rax
21
andq %rbp,%rsi
22
shrq $1,%rdx
23
movq %rsi,%rcx
24
shlq $62,%rsi
25
andq %rbp,%rdi
26
shrq $2,%rcx
27
xorq %rsi,%rax
28
movq %rdi,%rbx
29
shlq $61,%rdi
30
xorq %rcx,%rdx
31
shrq $3,%rbx
32
xorq %rdi,%rax
33
xorq %rbx,%rdx
34
35
movq %r9,%r13
36
movq $0,0(%rsp)
37
xorq %r10,%r13
38
movq %r9,8(%rsp)
39
movq %r11,%r14
40
movq %r10,16(%rsp)
41
xorq %r12,%r14
42
movq %r13,24(%rsp)
43
44
xorq %r11,%r9
45
movq %r11,32(%rsp)
46
xorq %r11,%r10
47
movq %r9,40(%rsp)
48
xorq %r11,%r13
49
movq %r10,48(%rsp)
50
xorq %r14,%r9
51
movq %r13,56(%rsp)
52
xorq %r14,%r10
53
54
movq %r12,64(%rsp)
55
xorq %r14,%r13
56
movq %r9,72(%rsp)
57
xorq %r11,%r9
58
movq %r10,80(%rsp)
59
xorq %r11,%r10
60
movq %r13,88(%rsp)
61
62
xorq %r11,%r13
63
movq %r14,96(%rsp)
64
movq %r8,%rsi
65
movq %r9,104(%rsp)
66
andq %rbp,%rsi
67
movq %r10,112(%rsp)
68
shrq $4,%rbp
69
movq %r13,120(%rsp)
70
movq %r8,%rdi
71
andq %rbp,%rdi
72
shrq $4,%rbp
73
74
movq (%rsp,%rsi,8),%xmm0
75
movq %r8,%rsi
76
andq %rbp,%rsi
77
shrq $4,%rbp
78
movq (%rsp,%rdi,8),%rcx
79
movq %r8,%rdi
80
movq %rcx,%rbx
81
shlq $4,%rcx
82
andq %rbp,%rdi
83
movq (%rsp,%rsi,8),%xmm1
84
shrq $60,%rbx
85
xorq %rcx,%rax
86
pslldq $1,%xmm1
87
movq %r8,%rsi
88
shrq $4,%rbp
89
xorq %rbx,%rdx
90
andq %rbp,%rsi
91
shrq $4,%rbp
92
pxor %xmm1,%xmm0
93
movq (%rsp,%rdi,8),%rcx
94
movq %r8,%rdi
95
movq %rcx,%rbx
96
shlq $12,%rcx
97
andq %rbp,%rdi
98
movq (%rsp,%rsi,8),%xmm1
99
shrq $52,%rbx
100
xorq %rcx,%rax
101
pslldq $2,%xmm1
102
movq %r8,%rsi
103
shrq $4,%rbp
104
xorq %rbx,%rdx
105
andq %rbp,%rsi
106
shrq $4,%rbp
107
pxor %xmm1,%xmm0
108
movq (%rsp,%rdi,8),%rcx
109
movq %r8,%rdi
110
movq %rcx,%rbx
111
shlq $20,%rcx
112
andq %rbp,%rdi
113
movq (%rsp,%rsi,8),%xmm1
114
shrq $44,%rbx
115
xorq %rcx,%rax
116
pslldq $3,%xmm1
117
movq %r8,%rsi
118
shrq $4,%rbp
119
xorq %rbx,%rdx
120
andq %rbp,%rsi
121
shrq $4,%rbp
122
pxor %xmm1,%xmm0
123
movq (%rsp,%rdi,8),%rcx
124
movq %r8,%rdi
125
movq %rcx,%rbx
126
shlq $28,%rcx
127
andq %rbp,%rdi
128
movq (%rsp,%rsi,8),%xmm1
129
shrq $36,%rbx
130
xorq %rcx,%rax
131
pslldq $4,%xmm1
132
movq %r8,%rsi
133
shrq $4,%rbp
134
xorq %rbx,%rdx
135
andq %rbp,%rsi
136
shrq $4,%rbp
137
pxor %xmm1,%xmm0
138
movq (%rsp,%rdi,8),%rcx
139
movq %r8,%rdi
140
movq %rcx,%rbx
141
shlq $36,%rcx
142
andq %rbp,%rdi
143
movq (%rsp,%rsi,8),%xmm1
144
shrq $28,%rbx
145
xorq %rcx,%rax
146
pslldq $5,%xmm1
147
movq %r8,%rsi
148
shrq $4,%rbp
149
xorq %rbx,%rdx
150
andq %rbp,%rsi
151
shrq $4,%rbp
152
pxor %xmm1,%xmm0
153
movq (%rsp,%rdi,8),%rcx
154
movq %r8,%rdi
155
movq %rcx,%rbx
156
shlq $44,%rcx
157
andq %rbp,%rdi
158
movq (%rsp,%rsi,8),%xmm1
159
shrq $20,%rbx
160
xorq %rcx,%rax
161
pslldq $6,%xmm1
162
movq %r8,%rsi
163
shrq $4,%rbp
164
xorq %rbx,%rdx
165
andq %rbp,%rsi
166
shrq $4,%rbp
167
pxor %xmm1,%xmm0
168
movq (%rsp,%rdi,8),%rcx
169
movq %r8,%rdi
170
movq %rcx,%rbx
171
shlq $52,%rcx
172
andq %rbp,%rdi
173
movq (%rsp,%rsi,8),%xmm1
174
shrq $12,%rbx
175
xorq %rcx,%rax
176
pslldq $7,%xmm1
177
movq %r8,%rsi
178
shrq $4,%rbp
179
xorq %rbx,%rdx
180
andq %rbp,%rsi
181
shrq $4,%rbp
182
pxor %xmm1,%xmm0
183
movq (%rsp,%rdi,8),%rcx
184
movq %rcx,%rbx
185
shlq $60,%rcx
186
.byte 102,72,15,126,198
187
shrq $4,%rbx
188
xorq %rcx,%rax
189
psrldq $8,%xmm0
190
xorq %rbx,%rdx
191
.byte 102,72,15,126,199
192
xorq %rsi,%rax
193
xorq %rdi,%rdx
194
195
addq $128+8,%rsp
196
.byte 0xf3,0xc3
197
.Lend_mul_1x1:
198
.size _mul_1x1,.-_mul_1x1
199
200
.globl bn_GF2m_mul_2x2
201
.type bn_GF2m_mul_2x2,@function
202
.align 16
203
bn_GF2m_mul_2x2:
204
movq OPENSSL_ia32cap_P(%rip),%rax
205
btq $33,%rax
206
jnc .Lvanilla_mul_2x2
207
208
.byte 102,72,15,110,198
209
.byte 102,72,15,110,201
210
.byte 102,72,15,110,210
211
.byte 102,73,15,110,216
212
movdqa %xmm0,%xmm4
213
movdqa %xmm1,%xmm5
214
.byte 102,15,58,68,193,0
215
pxor %xmm2,%xmm4
216
pxor %xmm3,%xmm5
217
.byte 102,15,58,68,211,0
218
.byte 102,15,58,68,229,0
219
xorps %xmm0,%xmm4
220
xorps %xmm2,%xmm4
221
movdqa %xmm4,%xmm5
222
pslldq $8,%xmm4
223
psrldq $8,%xmm5
224
pxor %xmm4,%xmm2
225
pxor %xmm5,%xmm0
226
movdqu %xmm2,0(%rdi)
227
movdqu %xmm0,16(%rdi)
228
.byte 0xf3,0xc3
229
230
.align 16
231
.Lvanilla_mul_2x2:
232
leaq -136(%rsp),%rsp
233
movq %r14,80(%rsp)
234
movq %r13,88(%rsp)
235
movq %r12,96(%rsp)
236
movq %rbp,104(%rsp)
237
movq %rbx,112(%rsp)
238
.Lbody_mul_2x2:
239
movq %rdi,32(%rsp)
240
movq %rsi,40(%rsp)
241
movq %rdx,48(%rsp)
242
movq %rcx,56(%rsp)
243
movq %r8,64(%rsp)
244
245
movq $0xf,%r8
246
movq %rsi,%rax
247
movq %rcx,%rbp
248
call _mul_1x1
249
movq %rax,16(%rsp)
250
movq %rdx,24(%rsp)
251
252
movq 48(%rsp),%rax
253
movq 64(%rsp),%rbp
254
call _mul_1x1
255
movq %rax,0(%rsp)
256
movq %rdx,8(%rsp)
257
258
movq 40(%rsp),%rax
259
movq 56(%rsp),%rbp
260
xorq 48(%rsp),%rax
261
xorq 64(%rsp),%rbp
262
call _mul_1x1
263
movq 0(%rsp),%rbx
264
movq 8(%rsp),%rcx
265
movq 16(%rsp),%rdi
266
movq 24(%rsp),%rsi
267
movq 32(%rsp),%rbp
268
269
xorq %rdx,%rax
270
xorq %rcx,%rdx
271
xorq %rbx,%rax
272
movq %rbx,0(%rbp)
273
xorq %rdi,%rdx
274
movq %rsi,24(%rbp)
275
xorq %rsi,%rax
276
xorq %rsi,%rdx
277
xorq %rdx,%rax
278
movq %rdx,16(%rbp)
279
movq %rax,8(%rbp)
280
281
movq 80(%rsp),%r14
282
movq 88(%rsp),%r13
283
movq 96(%rsp),%r12
284
movq 104(%rsp),%rbp
285
movq 112(%rsp),%rbx
286
leaq 136(%rsp),%rsp
287
.byte 0xf3,0xc3
288
.Lend_mul_2x2:
289
.size bn_GF2m_mul_2x2,.-bn_GF2m_mul_2x2
290
.byte 71,70,40,50,94,109,41,32,77,117,108,116,105,112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
291
.align 16
292
.section .note.GNU-stack,"",%progbits