Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Side by Side Diff: openssl/crypto/aes/asm/bsaes-x86_64.S

Issue 2072073002: Delete bundled copy of OpenSSL and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/openssl@master
Patch Set: Delete bundled copy of OpenSSL and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « openssl/crypto/aes/asm/aesni-x86_64.pl ('k') | openssl/crypto/aes/asm/bsaes-x86_64.pl » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 .text
2
3
4
5
6 .type _bsaes_encrypt8,@function
7 .align 64
8 _bsaes_encrypt8:
9 leaq .LBS0(%rip),%r11
10
11 movdqa (%rax),%xmm8
12 leaq 16(%rax),%rax
13 movdqa 80(%r11),%xmm7
14 pxor %xmm8,%xmm15
15 pxor %xmm8,%xmm0
16 .byte 102,68,15,56,0,255
17 pxor %xmm8,%xmm1
18 .byte 102,15,56,0,199
19 pxor %xmm8,%xmm2
20 .byte 102,15,56,0,207
21 pxor %xmm8,%xmm3
22 .byte 102,15,56,0,215
23 pxor %xmm8,%xmm4
24 .byte 102,15,56,0,223
25 pxor %xmm8,%xmm5
26 .byte 102,15,56,0,231
27 pxor %xmm8,%xmm6
28 .byte 102,15,56,0,239
29 .byte 102,15,56,0,247
30 _bsaes_encrypt8_bitslice:
31 movdqa 0(%r11),%xmm7
32 movdqa 16(%r11),%xmm8
33 movdqa %xmm5,%xmm9
34 psrlq $1,%xmm5
35 movdqa %xmm3,%xmm10
36 psrlq $1,%xmm3
37 pxor %xmm6,%xmm5
38 pxor %xmm4,%xmm3
39 pand %xmm7,%xmm5
40 pand %xmm7,%xmm3
41 pxor %xmm5,%xmm6
42 psllq $1,%xmm5
43 pxor %xmm3,%xmm4
44 psllq $1,%xmm3
45 pxor %xmm9,%xmm5
46 pxor %xmm10,%xmm3
47 movdqa %xmm1,%xmm9
48 psrlq $1,%xmm1
49 movdqa %xmm15,%xmm10
50 psrlq $1,%xmm15
51 pxor %xmm2,%xmm1
52 pxor %xmm0,%xmm15
53 pand %xmm7,%xmm1
54 pand %xmm7,%xmm15
55 pxor %xmm1,%xmm2
56 psllq $1,%xmm1
57 pxor %xmm15,%xmm0
58 psllq $1,%xmm15
59 pxor %xmm9,%xmm1
60 pxor %xmm10,%xmm15
61 movdqa 32(%r11),%xmm7
62 movdqa %xmm4,%xmm9
63 psrlq $2,%xmm4
64 movdqa %xmm3,%xmm10
65 psrlq $2,%xmm3
66 pxor %xmm6,%xmm4
67 pxor %xmm5,%xmm3
68 pand %xmm8,%xmm4
69 pand %xmm8,%xmm3
70 pxor %xmm4,%xmm6
71 psllq $2,%xmm4
72 pxor %xmm3,%xmm5
73 psllq $2,%xmm3
74 pxor %xmm9,%xmm4
75 pxor %xmm10,%xmm3
76 movdqa %xmm0,%xmm9
77 psrlq $2,%xmm0
78 movdqa %xmm15,%xmm10
79 psrlq $2,%xmm15
80 pxor %xmm2,%xmm0
81 pxor %xmm1,%xmm15
82 pand %xmm8,%xmm0
83 pand %xmm8,%xmm15
84 pxor %xmm0,%xmm2
85 psllq $2,%xmm0
86 pxor %xmm15,%xmm1
87 psllq $2,%xmm15
88 pxor %xmm9,%xmm0
89 pxor %xmm10,%xmm15
90 movdqa %xmm2,%xmm9
91 psrlq $4,%xmm2
92 movdqa %xmm1,%xmm10
93 psrlq $4,%xmm1
94 pxor %xmm6,%xmm2
95 pxor %xmm5,%xmm1
96 pand %xmm7,%xmm2
97 pand %xmm7,%xmm1
98 pxor %xmm2,%xmm6
99 psllq $4,%xmm2
100 pxor %xmm1,%xmm5
101 psllq $4,%xmm1
102 pxor %xmm9,%xmm2
103 pxor %xmm10,%xmm1
104 movdqa %xmm0,%xmm9
105 psrlq $4,%xmm0
106 movdqa %xmm15,%xmm10
107 psrlq $4,%xmm15
108 pxor %xmm4,%xmm0
109 pxor %xmm3,%xmm15
110 pand %xmm7,%xmm0
111 pand %xmm7,%xmm15
112 pxor %xmm0,%xmm4
113 psllq $4,%xmm0
114 pxor %xmm15,%xmm3
115 psllq $4,%xmm15
116 pxor %xmm9,%xmm0
117 pxor %xmm10,%xmm15
118 decl %r10d
119 jmp .Lenc_sbox
120 .align 16
121 .Lenc_loop:
122 pxor 0(%rax),%xmm15
123 pxor 16(%rax),%xmm0
124 .byte 102,68,15,56,0,255
125 pxor 32(%rax),%xmm1
126 .byte 102,15,56,0,199
127 pxor 48(%rax),%xmm2
128 .byte 102,15,56,0,207
129 pxor 64(%rax),%xmm3
130 .byte 102,15,56,0,215
131 pxor 80(%rax),%xmm4
132 .byte 102,15,56,0,223
133 pxor 96(%rax),%xmm5
134 .byte 102,15,56,0,231
135 pxor 112(%rax),%xmm6
136 .byte 102,15,56,0,239
137 leaq 128(%rax),%rax
138 .byte 102,15,56,0,247
139 .Lenc_sbox:
140 pxor %xmm5,%xmm4
141 pxor %xmm0,%xmm1
142 pxor %xmm15,%xmm2
143 pxor %xmm1,%xmm5
144 pxor %xmm15,%xmm4
145
146 pxor %xmm2,%xmm5
147 pxor %xmm6,%xmm2
148 pxor %xmm4,%xmm6
149 pxor %xmm3,%xmm2
150 pxor %xmm4,%xmm3
151 pxor %xmm0,%xmm2
152
153 pxor %xmm6,%xmm1
154 pxor %xmm4,%xmm0
155 movdqa %xmm6,%xmm10
156 movdqa %xmm0,%xmm9
157 movdqa %xmm4,%xmm8
158 movdqa %xmm1,%xmm12
159 movdqa %xmm5,%xmm11
160
161 pxor %xmm3,%xmm10
162 pxor %xmm1,%xmm9
163 pxor %xmm2,%xmm8
164 movdqa %xmm10,%xmm13
165 pxor %xmm3,%xmm12
166 movdqa %xmm9,%xmm7
167 pxor %xmm15,%xmm11
168 movdqa %xmm10,%xmm14
169
170 por %xmm8,%xmm9
171 por %xmm11,%xmm10
172 pxor %xmm7,%xmm14
173 pand %xmm11,%xmm13
174 pxor %xmm8,%xmm11
175 pand %xmm8,%xmm7
176 pand %xmm11,%xmm14
177 movdqa %xmm2,%xmm11
178 pxor %xmm15,%xmm11
179 pand %xmm11,%xmm12
180 pxor %xmm12,%xmm10
181 pxor %xmm12,%xmm9
182 movdqa %xmm6,%xmm12
183 movdqa %xmm4,%xmm11
184 pxor %xmm0,%xmm12
185 pxor %xmm5,%xmm11
186 movdqa %xmm12,%xmm8
187 pand %xmm11,%xmm12
188 por %xmm11,%xmm8
189 pxor %xmm12,%xmm7
190 pxor %xmm14,%xmm10
191 pxor %xmm13,%xmm9
192 pxor %xmm14,%xmm8
193 movdqa %xmm1,%xmm11
194 pxor %xmm13,%xmm7
195 movdqa %xmm3,%xmm12
196 pxor %xmm13,%xmm8
197 movdqa %xmm0,%xmm13
198 pand %xmm2,%xmm11
199 movdqa %xmm6,%xmm14
200 pand %xmm15,%xmm12
201 pand %xmm4,%xmm13
202 por %xmm5,%xmm14
203 pxor %xmm11,%xmm10
204 pxor %xmm12,%xmm9
205 pxor %xmm13,%xmm8
206 pxor %xmm14,%xmm7
207
208
209
210
211
212 movdqa %xmm10,%xmm11
213 pand %xmm8,%xmm10
214 pxor %xmm9,%xmm11
215
216 movdqa %xmm7,%xmm13
217 movdqa %xmm11,%xmm14
218 pxor %xmm10,%xmm13
219 pand %xmm13,%xmm14
220
221 movdqa %xmm8,%xmm12
222 pxor %xmm9,%xmm14
223 pxor %xmm7,%xmm12
224
225 pxor %xmm9,%xmm10
226
227 pand %xmm10,%xmm12
228
229 movdqa %xmm13,%xmm9
230 pxor %xmm7,%xmm12
231
232 pxor %xmm12,%xmm9
233 pxor %xmm12,%xmm8
234
235 pand %xmm7,%xmm9
236
237 pxor %xmm9,%xmm13
238 pxor %xmm9,%xmm8
239
240 pand %xmm14,%xmm13
241
242 pxor %xmm11,%xmm13
243 movdqa %xmm5,%xmm11
244 movdqa %xmm4,%xmm7
245 movdqa %xmm14,%xmm9
246 pxor %xmm13,%xmm9
247 pand %xmm5,%xmm9
248 pxor %xmm4,%xmm5
249 pand %xmm14,%xmm4
250 pand %xmm13,%xmm5
251 pxor %xmm4,%xmm5
252 pxor %xmm9,%xmm4
253 pxor %xmm15,%xmm11
254 pxor %xmm2,%xmm7
255 pxor %xmm12,%xmm14
256 pxor %xmm8,%xmm13
257 movdqa %xmm14,%xmm10
258 movdqa %xmm12,%xmm9
259 pxor %xmm13,%xmm10
260 pxor %xmm8,%xmm9
261 pand %xmm11,%xmm10
262 pand %xmm15,%xmm9
263 pxor %xmm7,%xmm11
264 pxor %xmm2,%xmm15
265 pand %xmm14,%xmm7
266 pand %xmm12,%xmm2
267 pand %xmm13,%xmm11
268 pand %xmm8,%xmm15
269 pxor %xmm11,%xmm7
270 pxor %xmm2,%xmm15
271 pxor %xmm10,%xmm11
272 pxor %xmm9,%xmm2
273 pxor %xmm11,%xmm5
274 pxor %xmm11,%xmm15
275 pxor %xmm7,%xmm4
276 pxor %xmm7,%xmm2
277
278 movdqa %xmm6,%xmm11
279 movdqa %xmm0,%xmm7
280 pxor %xmm3,%xmm11
281 pxor %xmm1,%xmm7
282 movdqa %xmm14,%xmm10
283 movdqa %xmm12,%xmm9
284 pxor %xmm13,%xmm10
285 pxor %xmm8,%xmm9
286 pand %xmm11,%xmm10
287 pand %xmm3,%xmm9
288 pxor %xmm7,%xmm11
289 pxor %xmm1,%xmm3
290 pand %xmm14,%xmm7
291 pand %xmm12,%xmm1
292 pand %xmm13,%xmm11
293 pand %xmm8,%xmm3
294 pxor %xmm11,%xmm7
295 pxor %xmm1,%xmm3
296 pxor %xmm10,%xmm11
297 pxor %xmm9,%xmm1
298 pxor %xmm12,%xmm14
299 pxor %xmm8,%xmm13
300 movdqa %xmm14,%xmm10
301 pxor %xmm13,%xmm10
302 pand %xmm6,%xmm10
303 pxor %xmm0,%xmm6
304 pand %xmm14,%xmm0
305 pand %xmm13,%xmm6
306 pxor %xmm0,%xmm6
307 pxor %xmm10,%xmm0
308 pxor %xmm11,%xmm6
309 pxor %xmm11,%xmm3
310 pxor %xmm7,%xmm0
311 pxor %xmm7,%xmm1
312 pxor %xmm15,%xmm6
313 pxor %xmm5,%xmm0
314 pxor %xmm6,%xmm3
315 pxor %xmm15,%xmm5
316 pxor %xmm0,%xmm15
317
318 pxor %xmm4,%xmm0
319 pxor %xmm1,%xmm4
320 pxor %xmm2,%xmm1
321 pxor %xmm4,%xmm2
322 pxor %xmm4,%xmm3
323
324 pxor %xmm2,%xmm5
325 decl %r10d
326 jl .Lenc_done
327 pshufd $147,%xmm15,%xmm7
328 pshufd $147,%xmm0,%xmm8
329 pxor %xmm7,%xmm15
330 pshufd $147,%xmm3,%xmm9
331 pxor %xmm8,%xmm0
332 pshufd $147,%xmm5,%xmm10
333 pxor %xmm9,%xmm3
334 pshufd $147,%xmm2,%xmm11
335 pxor %xmm10,%xmm5
336 pshufd $147,%xmm6,%xmm12
337 pxor %xmm11,%xmm2
338 pshufd $147,%xmm1,%xmm13
339 pxor %xmm12,%xmm6
340 pshufd $147,%xmm4,%xmm14
341 pxor %xmm13,%xmm1
342 pxor %xmm14,%xmm4
343
344 pxor %xmm15,%xmm8
345 pxor %xmm4,%xmm7
346 pxor %xmm4,%xmm8
347 pshufd $78,%xmm15,%xmm15
348 pxor %xmm0,%xmm9
349 pshufd $78,%xmm0,%xmm0
350 pxor %xmm2,%xmm12
351 pxor %xmm7,%xmm15
352 pxor %xmm6,%xmm13
353 pxor %xmm8,%xmm0
354 pxor %xmm5,%xmm11
355 pshufd $78,%xmm2,%xmm7
356 pxor %xmm1,%xmm14
357 pshufd $78,%xmm6,%xmm8
358 pxor %xmm3,%xmm10
359 pshufd $78,%xmm5,%xmm2
360 pxor %xmm4,%xmm10
361 pshufd $78,%xmm4,%xmm6
362 pxor %xmm4,%xmm11
363 pshufd $78,%xmm1,%xmm5
364 pxor %xmm11,%xmm7
365 pshufd $78,%xmm3,%xmm1
366 pxor %xmm12,%xmm8
367
368 pxor %xmm10,%xmm2
369 pxor %xmm14,%xmm6
370 pxor %xmm13,%xmm5
371 movdqa %xmm7,%xmm3
372 pxor %xmm9,%xmm1
373 movdqa %xmm8,%xmm4
374 movdqa 48(%r11),%xmm7
375 jnz .Lenc_loop
376 movdqa 64(%r11),%xmm7
377 jmp .Lenc_loop
378 .align 16
379 .Lenc_done:
380 movdqa 0(%r11),%xmm7
381 movdqa 16(%r11),%xmm8
382 movdqa %xmm1,%xmm9
383 psrlq $1,%xmm1
384 movdqa %xmm2,%xmm10
385 psrlq $1,%xmm2
386 pxor %xmm4,%xmm1
387 pxor %xmm6,%xmm2
388 pand %xmm7,%xmm1
389 pand %xmm7,%xmm2
390 pxor %xmm1,%xmm4
391 psllq $1,%xmm1
392 pxor %xmm2,%xmm6
393 psllq $1,%xmm2
394 pxor %xmm9,%xmm1
395 pxor %xmm10,%xmm2
396 movdqa %xmm3,%xmm9
397 psrlq $1,%xmm3
398 movdqa %xmm15,%xmm10
399 psrlq $1,%xmm15
400 pxor %xmm5,%xmm3
401 pxor %xmm0,%xmm15
402 pand %xmm7,%xmm3
403 pand %xmm7,%xmm15
404 pxor %xmm3,%xmm5
405 psllq $1,%xmm3
406 pxor %xmm15,%xmm0
407 psllq $1,%xmm15
408 pxor %xmm9,%xmm3
409 pxor %xmm10,%xmm15
410 movdqa 32(%r11),%xmm7
411 movdqa %xmm6,%xmm9
412 psrlq $2,%xmm6
413 movdqa %xmm2,%xmm10
414 psrlq $2,%xmm2
415 pxor %xmm4,%xmm6
416 pxor %xmm1,%xmm2
417 pand %xmm8,%xmm6
418 pand %xmm8,%xmm2
419 pxor %xmm6,%xmm4
420 psllq $2,%xmm6
421 pxor %xmm2,%xmm1
422 psllq $2,%xmm2
423 pxor %xmm9,%xmm6
424 pxor %xmm10,%xmm2
425 movdqa %xmm0,%xmm9
426 psrlq $2,%xmm0
427 movdqa %xmm15,%xmm10
428 psrlq $2,%xmm15
429 pxor %xmm5,%xmm0
430 pxor %xmm3,%xmm15
431 pand %xmm8,%xmm0
432 pand %xmm8,%xmm15
433 pxor %xmm0,%xmm5
434 psllq $2,%xmm0
435 pxor %xmm15,%xmm3
436 psllq $2,%xmm15
437 pxor %xmm9,%xmm0
438 pxor %xmm10,%xmm15
439 movdqa %xmm5,%xmm9
440 psrlq $4,%xmm5
441 movdqa %xmm3,%xmm10
442 psrlq $4,%xmm3
443 pxor %xmm4,%xmm5
444 pxor %xmm1,%xmm3
445 pand %xmm7,%xmm5
446 pand %xmm7,%xmm3
447 pxor %xmm5,%xmm4
448 psllq $4,%xmm5
449 pxor %xmm3,%xmm1
450 psllq $4,%xmm3
451 pxor %xmm9,%xmm5
452 pxor %xmm10,%xmm3
453 movdqa %xmm0,%xmm9
454 psrlq $4,%xmm0
455 movdqa %xmm15,%xmm10
456 psrlq $4,%xmm15
457 pxor %xmm6,%xmm0
458 pxor %xmm2,%xmm15
459 pand %xmm7,%xmm0
460 pand %xmm7,%xmm15
461 pxor %xmm0,%xmm6
462 psllq $4,%xmm0
463 pxor %xmm15,%xmm2
464 psllq $4,%xmm15
465 pxor %xmm9,%xmm0
466 pxor %xmm10,%xmm15
467 movdqa (%rax),%xmm7
468 pxor %xmm7,%xmm3
469 pxor %xmm7,%xmm5
470 pxor %xmm7,%xmm2
471 pxor %xmm7,%xmm6
472 pxor %xmm7,%xmm1
473 pxor %xmm7,%xmm4
474 pxor %xmm7,%xmm15
475 pxor %xmm7,%xmm0
476 .byte 0xf3,0xc3
477 .size _bsaes_encrypt8,.-_bsaes_encrypt8
478
479 .type _bsaes_decrypt8,@function
480 .align 64
481 _bsaes_decrypt8:
482 leaq .LBS0(%rip),%r11
483
484 movdqa (%rax),%xmm8
485 leaq 16(%rax),%rax
486 movdqa -48(%r11),%xmm7
487 pxor %xmm8,%xmm15
488 pxor %xmm8,%xmm0
489 .byte 102,68,15,56,0,255
490 pxor %xmm8,%xmm1
491 .byte 102,15,56,0,199
492 pxor %xmm8,%xmm2
493 .byte 102,15,56,0,207
494 pxor %xmm8,%xmm3
495 .byte 102,15,56,0,215
496 pxor %xmm8,%xmm4
497 .byte 102,15,56,0,223
498 pxor %xmm8,%xmm5
499 .byte 102,15,56,0,231
500 pxor %xmm8,%xmm6
501 .byte 102,15,56,0,239
502 .byte 102,15,56,0,247
503 movdqa 0(%r11),%xmm7
504 movdqa 16(%r11),%xmm8
505 movdqa %xmm5,%xmm9
506 psrlq $1,%xmm5
507 movdqa %xmm3,%xmm10
508 psrlq $1,%xmm3
509 pxor %xmm6,%xmm5
510 pxor %xmm4,%xmm3
511 pand %xmm7,%xmm5
512 pand %xmm7,%xmm3
513 pxor %xmm5,%xmm6
514 psllq $1,%xmm5
515 pxor %xmm3,%xmm4
516 psllq $1,%xmm3
517 pxor %xmm9,%xmm5
518 pxor %xmm10,%xmm3
519 movdqa %xmm1,%xmm9
520 psrlq $1,%xmm1
521 movdqa %xmm15,%xmm10
522 psrlq $1,%xmm15
523 pxor %xmm2,%xmm1
524 pxor %xmm0,%xmm15
525 pand %xmm7,%xmm1
526 pand %xmm7,%xmm15
527 pxor %xmm1,%xmm2
528 psllq $1,%xmm1
529 pxor %xmm15,%xmm0
530 psllq $1,%xmm15
531 pxor %xmm9,%xmm1
532 pxor %xmm10,%xmm15
533 movdqa 32(%r11),%xmm7
534 movdqa %xmm4,%xmm9
535 psrlq $2,%xmm4
536 movdqa %xmm3,%xmm10
537 psrlq $2,%xmm3
538 pxor %xmm6,%xmm4
539 pxor %xmm5,%xmm3
540 pand %xmm8,%xmm4
541 pand %xmm8,%xmm3
542 pxor %xmm4,%xmm6
543 psllq $2,%xmm4
544 pxor %xmm3,%xmm5
545 psllq $2,%xmm3
546 pxor %xmm9,%xmm4
547 pxor %xmm10,%xmm3
548 movdqa %xmm0,%xmm9
549 psrlq $2,%xmm0
550 movdqa %xmm15,%xmm10
551 psrlq $2,%xmm15
552 pxor %xmm2,%xmm0
553 pxor %xmm1,%xmm15
554 pand %xmm8,%xmm0
555 pand %xmm8,%xmm15
556 pxor %xmm0,%xmm2
557 psllq $2,%xmm0
558 pxor %xmm15,%xmm1
559 psllq $2,%xmm15
560 pxor %xmm9,%xmm0
561 pxor %xmm10,%xmm15
562 movdqa %xmm2,%xmm9
563 psrlq $4,%xmm2
564 movdqa %xmm1,%xmm10
565 psrlq $4,%xmm1
566 pxor %xmm6,%xmm2
567 pxor %xmm5,%xmm1
568 pand %xmm7,%xmm2
569 pand %xmm7,%xmm1
570 pxor %xmm2,%xmm6
571 psllq $4,%xmm2
572 pxor %xmm1,%xmm5
573 psllq $4,%xmm1
574 pxor %xmm9,%xmm2
575 pxor %xmm10,%xmm1
576 movdqa %xmm0,%xmm9
577 psrlq $4,%xmm0
578 movdqa %xmm15,%xmm10
579 psrlq $4,%xmm15
580 pxor %xmm4,%xmm0
581 pxor %xmm3,%xmm15
582 pand %xmm7,%xmm0
583 pand %xmm7,%xmm15
584 pxor %xmm0,%xmm4
585 psllq $4,%xmm0
586 pxor %xmm15,%xmm3
587 psllq $4,%xmm15
588 pxor %xmm9,%xmm0
589 pxor %xmm10,%xmm15
590 decl %r10d
591 jmp .Ldec_sbox
592 .align 16
593 .Ldec_loop:
594 pxor 0(%rax),%xmm15
595 pxor 16(%rax),%xmm0
596 .byte 102,68,15,56,0,255
597 pxor 32(%rax),%xmm1
598 .byte 102,15,56,0,199
599 pxor 48(%rax),%xmm2
600 .byte 102,15,56,0,207
601 pxor 64(%rax),%xmm3
602 .byte 102,15,56,0,215
603 pxor 80(%rax),%xmm4
604 .byte 102,15,56,0,223
605 pxor 96(%rax),%xmm5
606 .byte 102,15,56,0,231
607 pxor 112(%rax),%xmm6
608 .byte 102,15,56,0,239
609 leaq 128(%rax),%rax
610 .byte 102,15,56,0,247
611 .Ldec_sbox:
612 pxor %xmm3,%xmm2
613
614 pxor %xmm6,%xmm3
615 pxor %xmm6,%xmm1
616 pxor %xmm3,%xmm5
617 pxor %xmm5,%xmm6
618 pxor %xmm6,%xmm0
619
620 pxor %xmm0,%xmm15
621 pxor %xmm4,%xmm1
622 pxor %xmm15,%xmm2
623 pxor %xmm15,%xmm4
624 pxor %xmm2,%xmm0
625 movdqa %xmm2,%xmm10
626 movdqa %xmm6,%xmm9
627 movdqa %xmm0,%xmm8
628 movdqa %xmm3,%xmm12
629 movdqa %xmm4,%xmm11
630
631 pxor %xmm15,%xmm10
632 pxor %xmm3,%xmm9
633 pxor %xmm5,%xmm8
634 movdqa %xmm10,%xmm13
635 pxor %xmm15,%xmm12
636 movdqa %xmm9,%xmm7
637 pxor %xmm1,%xmm11
638 movdqa %xmm10,%xmm14
639
640 por %xmm8,%xmm9
641 por %xmm11,%xmm10
642 pxor %xmm7,%xmm14
643 pand %xmm11,%xmm13
644 pxor %xmm8,%xmm11
645 pand %xmm8,%xmm7
646 pand %xmm11,%xmm14
647 movdqa %xmm5,%xmm11
648 pxor %xmm1,%xmm11
649 pand %xmm11,%xmm12
650 pxor %xmm12,%xmm10
651 pxor %xmm12,%xmm9
652 movdqa %xmm2,%xmm12
653 movdqa %xmm0,%xmm11
654 pxor %xmm6,%xmm12
655 pxor %xmm4,%xmm11
656 movdqa %xmm12,%xmm8
657 pand %xmm11,%xmm12
658 por %xmm11,%xmm8
659 pxor %xmm12,%xmm7
660 pxor %xmm14,%xmm10
661 pxor %xmm13,%xmm9
662 pxor %xmm14,%xmm8
663 movdqa %xmm3,%xmm11
664 pxor %xmm13,%xmm7
665 movdqa %xmm15,%xmm12
666 pxor %xmm13,%xmm8
667 movdqa %xmm6,%xmm13
668 pand %xmm5,%xmm11
669 movdqa %xmm2,%xmm14
670 pand %xmm1,%xmm12
671 pand %xmm0,%xmm13
672 por %xmm4,%xmm14
673 pxor %xmm11,%xmm10
674 pxor %xmm12,%xmm9
675 pxor %xmm13,%xmm8
676 pxor %xmm14,%xmm7
677
678
679
680
681
682 movdqa %xmm10,%xmm11
683 pand %xmm8,%xmm10
684 pxor %xmm9,%xmm11
685
686 movdqa %xmm7,%xmm13
687 movdqa %xmm11,%xmm14
688 pxor %xmm10,%xmm13
689 pand %xmm13,%xmm14
690
691 movdqa %xmm8,%xmm12
692 pxor %xmm9,%xmm14
693 pxor %xmm7,%xmm12
694
695 pxor %xmm9,%xmm10
696
697 pand %xmm10,%xmm12
698
699 movdqa %xmm13,%xmm9
700 pxor %xmm7,%xmm12
701
702 pxor %xmm12,%xmm9
703 pxor %xmm12,%xmm8
704
705 pand %xmm7,%xmm9
706
707 pxor %xmm9,%xmm13
708 pxor %xmm9,%xmm8
709
710 pand %xmm14,%xmm13
711
712 pxor %xmm11,%xmm13
713 movdqa %xmm4,%xmm11
714 movdqa %xmm0,%xmm7
715 movdqa %xmm14,%xmm9
716 pxor %xmm13,%xmm9
717 pand %xmm4,%xmm9
718 pxor %xmm0,%xmm4
719 pand %xmm14,%xmm0
720 pand %xmm13,%xmm4
721 pxor %xmm0,%xmm4
722 pxor %xmm9,%xmm0
723 pxor %xmm1,%xmm11
724 pxor %xmm5,%xmm7
725 pxor %xmm12,%xmm14
726 pxor %xmm8,%xmm13
727 movdqa %xmm14,%xmm10
728 movdqa %xmm12,%xmm9
729 pxor %xmm13,%xmm10
730 pxor %xmm8,%xmm9
731 pand %xmm11,%xmm10
732 pand %xmm1,%xmm9
733 pxor %xmm7,%xmm11
734 pxor %xmm5,%xmm1
735 pand %xmm14,%xmm7
736 pand %xmm12,%xmm5
737 pand %xmm13,%xmm11
738 pand %xmm8,%xmm1
739 pxor %xmm11,%xmm7
740 pxor %xmm5,%xmm1
741 pxor %xmm10,%xmm11
742 pxor %xmm9,%xmm5
743 pxor %xmm11,%xmm4
744 pxor %xmm11,%xmm1
745 pxor %xmm7,%xmm0
746 pxor %xmm7,%xmm5
747
748 movdqa %xmm2,%xmm11
749 movdqa %xmm6,%xmm7
750 pxor %xmm15,%xmm11
751 pxor %xmm3,%xmm7
752 movdqa %xmm14,%xmm10
753 movdqa %xmm12,%xmm9
754 pxor %xmm13,%xmm10
755 pxor %xmm8,%xmm9
756 pand %xmm11,%xmm10
757 pand %xmm15,%xmm9
758 pxor %xmm7,%xmm11
759 pxor %xmm3,%xmm15
760 pand %xmm14,%xmm7
761 pand %xmm12,%xmm3
762 pand %xmm13,%xmm11
763 pand %xmm8,%xmm15
764 pxor %xmm11,%xmm7
765 pxor %xmm3,%xmm15
766 pxor %xmm10,%xmm11
767 pxor %xmm9,%xmm3
768 pxor %xmm12,%xmm14
769 pxor %xmm8,%xmm13
770 movdqa %xmm14,%xmm10
771 pxor %xmm13,%xmm10
772 pand %xmm2,%xmm10
773 pxor %xmm6,%xmm2
774 pand %xmm14,%xmm6
775 pand %xmm13,%xmm2
776 pxor %xmm6,%xmm2
777 pxor %xmm10,%xmm6
778 pxor %xmm11,%xmm2
779 pxor %xmm11,%xmm15
780 pxor %xmm7,%xmm6
781 pxor %xmm7,%xmm3
782 pxor %xmm6,%xmm0
783 pxor %xmm4,%xmm5
784
785 pxor %xmm0,%xmm3
786 pxor %xmm6,%xmm1
787 pxor %xmm6,%xmm4
788 pxor %xmm1,%xmm3
789 pxor %xmm15,%xmm6
790 pxor %xmm4,%xmm3
791 pxor %xmm5,%xmm2
792 pxor %xmm0,%xmm5
793 pxor %xmm3,%xmm2
794
795 pxor %xmm15,%xmm3
796 pxor %xmm2,%xmm6
797 decl %r10d
798 jl .Ldec_done
799
800 pshufd $147,%xmm4,%xmm14
801 movdqa %xmm5,%xmm9
802 pxor %xmm6,%xmm4
803 pxor %xmm6,%xmm5
804 pshufd $147,%xmm15,%xmm7
805 movdqa %xmm6,%xmm12
806 pxor %xmm15,%xmm6
807 pxor %xmm0,%xmm15
808 pshufd $147,%xmm0,%xmm8
809 pxor %xmm5,%xmm0
810 pxor %xmm2,%xmm15
811 pxor %xmm3,%xmm0
812 pshufd $147,%xmm3,%xmm10
813 pxor %xmm15,%xmm5
814 pxor %xmm4,%xmm3
815 pxor %xmm2,%xmm4
816 pshufd $147,%xmm2,%xmm13
817 movdqa %xmm1,%xmm11
818 pxor %xmm1,%xmm2
819 pxor %xmm3,%xmm1
820 pxor %xmm4,%xmm3
821 pxor %xmm12,%xmm2
822 pxor %xmm9,%xmm3
823 pxor %xmm11,%xmm3
824 pshufd $147,%xmm12,%xmm12
825
826 pxor %xmm4,%xmm6
827 pxor %xmm7,%xmm4
828 pxor %xmm8,%xmm6
829 pshufd $147,%xmm9,%xmm9
830 pxor %xmm12,%xmm4
831 pxor %xmm13,%xmm6
832 pxor %xmm14,%xmm4
833 pshufd $147,%xmm11,%xmm11
834 pxor %xmm13,%xmm14
835 pxor %xmm4,%xmm6
836
837 pxor %xmm7,%xmm5
838 pshufd $147,%xmm7,%xmm7
839 pxor %xmm8,%xmm15
840 pxor %xmm8,%xmm0
841 pxor %xmm9,%xmm15
842 pshufd $147,%xmm8,%xmm8
843 pxor %xmm9,%xmm5
844 pxor %xmm9,%xmm3
845 pxor %xmm14,%xmm15
846 pshufd $147,%xmm9,%xmm9
847 pxor %xmm10,%xmm5
848 pxor %xmm10,%xmm1
849 pxor %xmm10,%xmm0
850 pshufd $147,%xmm10,%xmm10
851 pxor %xmm11,%xmm2
852 pxor %xmm11,%xmm3
853 pxor %xmm14,%xmm2
854 pxor %xmm12,%xmm5
855 pxor %xmm11,%xmm0
856 pxor %xmm12,%xmm14
857
858 pxor %xmm14,%xmm3
859 pshufd $147,%xmm11,%xmm11
860 pxor %xmm14,%xmm1
861 pxor %xmm14,%xmm0
862
863 pxor %xmm12,%xmm14
864 pshufd $147,%xmm12,%xmm12
865 pxor %xmm13,%xmm14
866
867
868 pxor %xmm2,%xmm0
869 pxor %xmm11,%xmm2
870 pshufd $147,%xmm13,%xmm13
871 pxor %xmm7,%xmm15
872 pxor %xmm12,%xmm2
873 pxor %xmm9,%xmm15
874 pshufd $147,%xmm14,%xmm14
875
876 pxor %xmm6,%xmm5
877 pxor %xmm8,%xmm6
878 pxor %xmm7,%xmm4
879 pxor %xmm7,%xmm5
880 pxor %xmm12,%xmm6
881 pxor %xmm12,%xmm4
882 pxor %xmm14,%xmm6
883 pshufd $147,%xmm7,%xmm7
884 pxor %xmm13,%xmm4
885 pxor %xmm6,%xmm5
886 pxor %xmm8,%xmm0
887 pshufd $147,%xmm8,%xmm8
888
889 pxor %xmm14,%xmm2
890 pxor %xmm9,%xmm0
891 pxor %xmm9,%xmm3
892 pshufd $147,%xmm9,%xmm9
893 pxor %xmm13,%xmm15
894 pxor %xmm10,%xmm13
895 pxor %xmm2,%xmm0
896 pxor %xmm13,%xmm5
897
898 pxor %xmm13,%xmm1
899 pxor %xmm12,%xmm3
900 pxor %xmm11,%xmm1
901 pshufd $147,%xmm11,%xmm11
902 pxor %xmm13,%xmm3
903 pxor %xmm14,%xmm1
904 pxor %xmm10,%xmm13
905
906 pshufd $147,%xmm12,%xmm12
907 pshufd $147,%xmm13,%xmm13
908 pshufd $147,%xmm14,%xmm14
909 pshufd $147,%xmm10,%xmm10
910
911
912 pxor %xmm6,%xmm0
913 pxor %xmm6,%xmm8
914 pxor %xmm12,%xmm7
915 pxor %xmm12,%xmm8
916 pxor %xmm7,%xmm5
917 pxor %xmm4,%xmm7
918 pxor %xmm13,%xmm8
919 pxor %xmm14,%xmm13
920 pxor %xmm8,%xmm0
921 pxor %xmm11,%xmm2
922 pxor %xmm0,%xmm11
923 pxor %xmm10,%xmm1
924 pxor %xmm5,%xmm10
925 pxor %xmm9,%xmm3
926 pxor %xmm15,%xmm9
927 pxor %xmm14,%xmm10
928 pxor %xmm3,%xmm12
929 pxor %xmm13,%xmm9
930 pxor %xmm13,%xmm12
931 pxor %xmm1,%xmm13
932 pxor %xmm2,%xmm14
933
934 movdqa %xmm7,%xmm15
935 movdqa %xmm8,%xmm0
936 movdqa %xmm9,%xmm1
937 movdqa %xmm10,%xmm2
938 movdqa %xmm11,%xmm3
939 movdqa %xmm12,%xmm4
940 movdqa %xmm13,%xmm5
941 movdqa %xmm14,%xmm6
942 movdqa -16(%r11),%xmm7
943 jnz .Ldec_loop
944 movdqa -32(%r11),%xmm7
945 jmp .Ldec_loop
946 .align 16
947 .Ldec_done:
948 movdqa 0(%r11),%xmm7
949 movdqa 16(%r11),%xmm8
950 movdqa %xmm2,%xmm9
951 psrlq $1,%xmm2
952 movdqa %xmm1,%xmm10
953 psrlq $1,%xmm1
954 pxor %xmm4,%xmm2
955 pxor %xmm6,%xmm1
956 pand %xmm7,%xmm2
957 pand %xmm7,%xmm1
958 pxor %xmm2,%xmm4
959 psllq $1,%xmm2
960 pxor %xmm1,%xmm6
961 psllq $1,%xmm1
962 pxor %xmm9,%xmm2
963 pxor %xmm10,%xmm1
964 movdqa %xmm5,%xmm9
965 psrlq $1,%xmm5
966 movdqa %xmm15,%xmm10
967 psrlq $1,%xmm15
968 pxor %xmm3,%xmm5
969 pxor %xmm0,%xmm15
970 pand %xmm7,%xmm5
971 pand %xmm7,%xmm15
972 pxor %xmm5,%xmm3
973 psllq $1,%xmm5
974 pxor %xmm15,%xmm0
975 psllq $1,%xmm15
976 pxor %xmm9,%xmm5
977 pxor %xmm10,%xmm15
978 movdqa 32(%r11),%xmm7
979 movdqa %xmm6,%xmm9
980 psrlq $2,%xmm6
981 movdqa %xmm1,%xmm10
982 psrlq $2,%xmm1
983 pxor %xmm4,%xmm6
984 pxor %xmm2,%xmm1
985 pand %xmm8,%xmm6
986 pand %xmm8,%xmm1
987 pxor %xmm6,%xmm4
988 psllq $2,%xmm6
989 pxor %xmm1,%xmm2
990 psllq $2,%xmm1
991 pxor %xmm9,%xmm6
992 pxor %xmm10,%xmm1
993 movdqa %xmm0,%xmm9
994 psrlq $2,%xmm0
995 movdqa %xmm15,%xmm10
996 psrlq $2,%xmm15
997 pxor %xmm3,%xmm0
998 pxor %xmm5,%xmm15
999 pand %xmm8,%xmm0
1000 pand %xmm8,%xmm15
1001 pxor %xmm0,%xmm3
1002 psllq $2,%xmm0
1003 pxor %xmm15,%xmm5
1004 psllq $2,%xmm15
1005 pxor %xmm9,%xmm0
1006 pxor %xmm10,%xmm15
1007 movdqa %xmm3,%xmm9
1008 psrlq $4,%xmm3
1009 movdqa %xmm5,%xmm10
1010 psrlq $4,%xmm5
1011 pxor %xmm4,%xmm3
1012 pxor %xmm2,%xmm5
1013 pand %xmm7,%xmm3
1014 pand %xmm7,%xmm5
1015 pxor %xmm3,%xmm4
1016 psllq $4,%xmm3
1017 pxor %xmm5,%xmm2
1018 psllq $4,%xmm5
1019 pxor %xmm9,%xmm3
1020 pxor %xmm10,%xmm5
1021 movdqa %xmm0,%xmm9
1022 psrlq $4,%xmm0
1023 movdqa %xmm15,%xmm10
1024 psrlq $4,%xmm15
1025 pxor %xmm6,%xmm0
1026 pxor %xmm1,%xmm15
1027 pand %xmm7,%xmm0
1028 pand %xmm7,%xmm15
1029 pxor %xmm0,%xmm6
1030 psllq $4,%xmm0
1031 pxor %xmm15,%xmm1
1032 psllq $4,%xmm15
1033 pxor %xmm9,%xmm0
1034 pxor %xmm10,%xmm15
1035 movdqa (%rax),%xmm7
1036 pxor %xmm7,%xmm5
1037 pxor %xmm7,%xmm3
1038 pxor %xmm7,%xmm1
1039 pxor %xmm7,%xmm6
1040 pxor %xmm7,%xmm2
1041 pxor %xmm7,%xmm4
1042 pxor %xmm7,%xmm15
1043 pxor %xmm7,%xmm0
1044 .byte 0xf3,0xc3
1045 .size _bsaes_decrypt8,.-_bsaes_decrypt8
1046 .type _bsaes_key_convert,@function
1047 .align 16
1048 _bsaes_key_convert:
1049 leaq .Lmasks(%rip),%r11
1050 movdqu (%rcx),%xmm7
1051 leaq 16(%rcx),%rcx
1052 movdqa 0(%r11),%xmm0
1053 movdqa 16(%r11),%xmm1
1054 movdqa 32(%r11),%xmm2
1055 movdqa 48(%r11),%xmm3
1056 movdqa 64(%r11),%xmm4
1057 pcmpeqd %xmm5,%xmm5
1058
1059 movdqu (%rcx),%xmm6
1060 movdqa %xmm7,(%rax)
1061 leaq 16(%rax),%rax
1062 decl %r10d
1063 jmp .Lkey_loop
1064 .align 16
1065 .Lkey_loop:
1066 .byte 102,15,56,0,244
1067
1068 movdqa %xmm0,%xmm8
1069 movdqa %xmm1,%xmm9
1070
1071 pand %xmm6,%xmm8
1072 pand %xmm6,%xmm9
1073 movdqa %xmm2,%xmm10
1074 pcmpeqb %xmm0,%xmm8
1075 psllq $4,%xmm0
1076 movdqa %xmm3,%xmm11
1077 pcmpeqb %xmm1,%xmm9
1078 psllq $4,%xmm1
1079
1080 pand %xmm6,%xmm10
1081 pand %xmm6,%xmm11
1082 movdqa %xmm0,%xmm12
1083 pcmpeqb %xmm2,%xmm10
1084 psllq $4,%xmm2
1085 movdqa %xmm1,%xmm13
1086 pcmpeqb %xmm3,%xmm11
1087 psllq $4,%xmm3
1088
1089 movdqa %xmm2,%xmm14
1090 movdqa %xmm3,%xmm15
1091 pxor %xmm5,%xmm8
1092 pxor %xmm5,%xmm9
1093
1094 pand %xmm6,%xmm12
1095 pand %xmm6,%xmm13
1096 movdqa %xmm8,0(%rax)
1097 pcmpeqb %xmm0,%xmm12
1098 psrlq $4,%xmm0
1099 movdqa %xmm9,16(%rax)
1100 pcmpeqb %xmm1,%xmm13
1101 psrlq $4,%xmm1
1102 leaq 16(%rcx),%rcx
1103
1104 pand %xmm6,%xmm14
1105 pand %xmm6,%xmm15
1106 movdqa %xmm10,32(%rax)
1107 pcmpeqb %xmm2,%xmm14
1108 psrlq $4,%xmm2
1109 movdqa %xmm11,48(%rax)
1110 pcmpeqb %xmm3,%xmm15
1111 psrlq $4,%xmm3
1112 movdqu (%rcx),%xmm6
1113
1114 pxor %xmm5,%xmm13
1115 pxor %xmm5,%xmm14
1116 movdqa %xmm12,64(%rax)
1117 movdqa %xmm13,80(%rax)
1118 movdqa %xmm14,96(%rax)
1119 movdqa %xmm15,112(%rax)
1120 leaq 128(%rax),%rax
1121 decl %r10d
1122 jnz .Lkey_loop
1123
1124 movdqa 80(%r11),%xmm7
1125
1126 .byte 0xf3,0xc3
1127 .size _bsaes_key_convert,.-_bsaes_key_convert
1128
1129 .globl bsaes_cbc_encrypt
1130 .type bsaes_cbc_encrypt,@function
1131 .align 16
1132 bsaes_cbc_encrypt:
1133 cmpl $0,%r9d
1134 jne asm_AES_cbc_encrypt
1135 cmpq $128,%rdx
1136 jb asm_AES_cbc_encrypt
1137
1138 movq %rsp,%rax
1139 .Lcbc_dec_prologue:
1140 pushq %rbp
1141 pushq %rbx
1142 pushq %r12
1143 pushq %r13
1144 pushq %r14
1145 pushq %r15
1146 leaq -72(%rsp),%rsp
1147 movq %rsp,%rbp
1148 movl 240(%rcx),%eax
1149 movq %rdi,%r12
1150 movq %rsi,%r13
1151 movq %rdx,%r14
1152 movq %rcx,%r15
1153 movq %r8,%rbx
1154 shrq $4,%r14
1155
1156 movl %eax,%edx
1157 shlq $7,%rax
1158 subq $96,%rax
1159 subq %rax,%rsp
1160
1161 movq %rsp,%rax
1162 movq %r15,%rcx
1163 movl %edx,%r10d
1164 call _bsaes_key_convert
1165 pxor (%rsp),%xmm7
1166 movdqa %xmm6,(%rax)
1167 movdqa %xmm7,(%rsp)
1168
1169 movdqu (%rbx),%xmm14
1170 subq $8,%r14
1171 .Lcbc_dec_loop:
1172 movdqu 0(%r12),%xmm15
1173 movdqu 16(%r12),%xmm0
1174 movdqu 32(%r12),%xmm1
1175 movdqu 48(%r12),%xmm2
1176 movdqu 64(%r12),%xmm3
1177 movdqu 80(%r12),%xmm4
1178 movq %rsp,%rax
1179 movdqu 96(%r12),%xmm5
1180 movl %edx,%r10d
1181 movdqu 112(%r12),%xmm6
1182 movdqa %xmm14,32(%rbp)
1183
1184 call _bsaes_decrypt8
1185
1186 pxor 32(%rbp),%xmm15
1187 movdqu 0(%r12),%xmm7
1188 movdqu 16(%r12),%xmm8
1189 pxor %xmm7,%xmm0
1190 movdqu 32(%r12),%xmm9
1191 pxor %xmm8,%xmm5
1192 movdqu 48(%r12),%xmm10
1193 pxor %xmm9,%xmm3
1194 movdqu 64(%r12),%xmm11
1195 pxor %xmm10,%xmm1
1196 movdqu 80(%r12),%xmm12
1197 pxor %xmm11,%xmm6
1198 movdqu 96(%r12),%xmm13
1199 pxor %xmm12,%xmm2
1200 movdqu 112(%r12),%xmm14
1201 pxor %xmm13,%xmm4
1202 movdqu %xmm15,0(%r13)
1203 leaq 128(%r12),%r12
1204 movdqu %xmm0,16(%r13)
1205 movdqu %xmm5,32(%r13)
1206 movdqu %xmm3,48(%r13)
1207 movdqu %xmm1,64(%r13)
1208 movdqu %xmm6,80(%r13)
1209 movdqu %xmm2,96(%r13)
1210 movdqu %xmm4,112(%r13)
1211 leaq 128(%r13),%r13
1212 subq $8,%r14
1213 jnc .Lcbc_dec_loop
1214
1215 addq $8,%r14
1216 jz .Lcbc_dec_done
1217
1218 movdqu 0(%r12),%xmm15
1219 movq %rsp,%rax
1220 movl %edx,%r10d
1221 cmpq $2,%r14
1222 jb .Lcbc_dec_one
1223 movdqu 16(%r12),%xmm0
1224 je .Lcbc_dec_two
1225 movdqu 32(%r12),%xmm1
1226 cmpq $4,%r14
1227 jb .Lcbc_dec_three
1228 movdqu 48(%r12),%xmm2
1229 je .Lcbc_dec_four
1230 movdqu 64(%r12),%xmm3
1231 cmpq $6,%r14
1232 jb .Lcbc_dec_five
1233 movdqu 80(%r12),%xmm4
1234 je .Lcbc_dec_six
1235 movdqu 96(%r12),%xmm5
1236 movdqa %xmm14,32(%rbp)
1237 call _bsaes_decrypt8
1238 pxor 32(%rbp),%xmm15
1239 movdqu 0(%r12),%xmm7
1240 movdqu 16(%r12),%xmm8
1241 pxor %xmm7,%xmm0
1242 movdqu 32(%r12),%xmm9
1243 pxor %xmm8,%xmm5
1244 movdqu 48(%r12),%xmm10
1245 pxor %xmm9,%xmm3
1246 movdqu 64(%r12),%xmm11
1247 pxor %xmm10,%xmm1
1248 movdqu 80(%r12),%xmm12
1249 pxor %xmm11,%xmm6
1250 movdqu 96(%r12),%xmm14
1251 pxor %xmm12,%xmm2
1252 movdqu %xmm15,0(%r13)
1253 movdqu %xmm0,16(%r13)
1254 movdqu %xmm5,32(%r13)
1255 movdqu %xmm3,48(%r13)
1256 movdqu %xmm1,64(%r13)
1257 movdqu %xmm6,80(%r13)
1258 movdqu %xmm2,96(%r13)
1259 jmp .Lcbc_dec_done
1260 .align 16
1261 .Lcbc_dec_six:
1262 movdqa %xmm14,32(%rbp)
1263 call _bsaes_decrypt8
1264 pxor 32(%rbp),%xmm15
1265 movdqu 0(%r12),%xmm7
1266 movdqu 16(%r12),%xmm8
1267 pxor %xmm7,%xmm0
1268 movdqu 32(%r12),%xmm9
1269 pxor %xmm8,%xmm5
1270 movdqu 48(%r12),%xmm10
1271 pxor %xmm9,%xmm3
1272 movdqu 64(%r12),%xmm11
1273 pxor %xmm10,%xmm1
1274 movdqu 80(%r12),%xmm14
1275 pxor %xmm11,%xmm6
1276 movdqu %xmm15,0(%r13)
1277 movdqu %xmm0,16(%r13)
1278 movdqu %xmm5,32(%r13)
1279 movdqu %xmm3,48(%r13)
1280 movdqu %xmm1,64(%r13)
1281 movdqu %xmm6,80(%r13)
1282 jmp .Lcbc_dec_done
1283 .align 16
1284 .Lcbc_dec_five:
1285 movdqa %xmm14,32(%rbp)
1286 call _bsaes_decrypt8
1287 pxor 32(%rbp),%xmm15
1288 movdqu 0(%r12),%xmm7
1289 movdqu 16(%r12),%xmm8
1290 pxor %xmm7,%xmm0
1291 movdqu 32(%r12),%xmm9
1292 pxor %xmm8,%xmm5
1293 movdqu 48(%r12),%xmm10
1294 pxor %xmm9,%xmm3
1295 movdqu 64(%r12),%xmm14
1296 pxor %xmm10,%xmm1
1297 movdqu %xmm15,0(%r13)
1298 movdqu %xmm0,16(%r13)
1299 movdqu %xmm5,32(%r13)
1300 movdqu %xmm3,48(%r13)
1301 movdqu %xmm1,64(%r13)
1302 jmp .Lcbc_dec_done
1303 .align 16
1304 .Lcbc_dec_four:
1305 movdqa %xmm14,32(%rbp)
1306 call _bsaes_decrypt8
1307 pxor 32(%rbp),%xmm15
1308 movdqu 0(%r12),%xmm7
1309 movdqu 16(%r12),%xmm8
1310 pxor %xmm7,%xmm0
1311 movdqu 32(%r12),%xmm9
1312 pxor %xmm8,%xmm5
1313 movdqu 48(%r12),%xmm14
1314 pxor %xmm9,%xmm3
1315 movdqu %xmm15,0(%r13)
1316 movdqu %xmm0,16(%r13)
1317 movdqu %xmm5,32(%r13)
1318 movdqu %xmm3,48(%r13)
1319 jmp .Lcbc_dec_done
1320 .align 16
1321 .Lcbc_dec_three:
1322 movdqa %xmm14,32(%rbp)
1323 call _bsaes_decrypt8
1324 pxor 32(%rbp),%xmm15
1325 movdqu 0(%r12),%xmm7
1326 movdqu 16(%r12),%xmm8
1327 pxor %xmm7,%xmm0
1328 movdqu 32(%r12),%xmm14
1329 pxor %xmm8,%xmm5
1330 movdqu %xmm15,0(%r13)
1331 movdqu %xmm0,16(%r13)
1332 movdqu %xmm5,32(%r13)
1333 jmp .Lcbc_dec_done
1334 .align 16
1335 .Lcbc_dec_two:
1336 movdqa %xmm14,32(%rbp)
1337 call _bsaes_decrypt8
1338 pxor 32(%rbp),%xmm15
1339 movdqu 0(%r12),%xmm7
1340 movdqu 16(%r12),%xmm14
1341 pxor %xmm7,%xmm0
1342 movdqu %xmm15,0(%r13)
1343 movdqu %xmm0,16(%r13)
1344 jmp .Lcbc_dec_done
1345 .align 16
1346 .Lcbc_dec_one:
1347 leaq (%r12),%rdi
1348 leaq 32(%rbp),%rsi
1349 leaq (%r15),%rdx
1350 call asm_AES_decrypt
1351 pxor 32(%rbp),%xmm14
1352 movdqu %xmm14,(%r13)
1353 movdqa %xmm15,%xmm14
1354
1355 .Lcbc_dec_done:
1356 movdqu %xmm14,(%rbx)
1357 leaq (%rsp),%rax
1358 pxor %xmm0,%xmm0
1359 .Lcbc_dec_bzero:
1360 movdqa %xmm0,0(%rax)
1361 movdqa %xmm0,16(%rax)
1362 leaq 32(%rax),%rax
1363 cmpq %rax,%rbp
1364 ja .Lcbc_dec_bzero
1365
1366 leaq (%rbp),%rsp
1367 movq 72(%rsp),%r15
1368 movq 80(%rsp),%r14
1369 movq 88(%rsp),%r13
1370 movq 96(%rsp),%r12
1371 movq 104(%rsp),%rbx
1372 movq 112(%rsp),%rax
1373 leaq 120(%rsp),%rsp
1374 movq %rax,%rbp
1375 .Lcbc_dec_epilogue:
1376 .byte 0xf3,0xc3
1377 .size bsaes_cbc_encrypt,.-bsaes_cbc_encrypt
1378
1379 .globl bsaes_ctr32_encrypt_blocks
1380 .type bsaes_ctr32_encrypt_blocks,@function
1381 .align 16
1382 bsaes_ctr32_encrypt_blocks:
1383 movq %rsp,%rax
1384 .Lctr_enc_prologue:
1385 pushq %rbp
1386 pushq %rbx
1387 pushq %r12
1388 pushq %r13
1389 pushq %r14
1390 pushq %r15
1391 leaq -72(%rsp),%rsp
1392 movq %rsp,%rbp
1393 movdqu (%r8),%xmm0
1394 movl 240(%rcx),%eax
1395 movq %rdi,%r12
1396 movq %rsi,%r13
1397 movq %rdx,%r14
1398 movq %rcx,%r15
1399 movdqa %xmm0,32(%rbp)
1400 cmpq $8,%rdx
1401 jb .Lctr_enc_short
1402
1403 movl %eax,%ebx
1404 shlq $7,%rax
1405 subq $96,%rax
1406 subq %rax,%rsp
1407
1408 movq %rsp,%rax
1409 movq %r15,%rcx
1410 movl %ebx,%r10d
1411 call _bsaes_key_convert
1412 pxor %xmm6,%xmm7
1413 movdqa %xmm7,(%rax)
1414
1415 movdqa (%rsp),%xmm8
1416 leaq .LADD1(%rip),%r11
1417 movdqa 32(%rbp),%xmm15
1418 movdqa -32(%r11),%xmm7
1419 .byte 102,68,15,56,0,199
1420 .byte 102,68,15,56,0,255
1421 movdqa %xmm8,(%rsp)
1422 jmp .Lctr_enc_loop
1423 .align 16
1424 .Lctr_enc_loop:
1425 movdqa %xmm15,32(%rbp)
1426 movdqa %xmm15,%xmm0
1427 movdqa %xmm15,%xmm1
1428 paddd 0(%r11),%xmm0
1429 movdqa %xmm15,%xmm2
1430 paddd 16(%r11),%xmm1
1431 movdqa %xmm15,%xmm3
1432 paddd 32(%r11),%xmm2
1433 movdqa %xmm15,%xmm4
1434 paddd 48(%r11),%xmm3
1435 movdqa %xmm15,%xmm5
1436 paddd 64(%r11),%xmm4
1437 movdqa %xmm15,%xmm6
1438 paddd 80(%r11),%xmm5
1439 paddd 96(%r11),%xmm6
1440
1441
1442
1443 movdqa (%rsp),%xmm8
1444 leaq 16(%rsp),%rax
1445 movdqa -16(%r11),%xmm7
1446 pxor %xmm8,%xmm15
1447 pxor %xmm8,%xmm0
1448 .byte 102,68,15,56,0,255
1449 pxor %xmm8,%xmm1
1450 .byte 102,15,56,0,199
1451 pxor %xmm8,%xmm2
1452 .byte 102,15,56,0,207
1453 pxor %xmm8,%xmm3
1454 .byte 102,15,56,0,215
1455 pxor %xmm8,%xmm4
1456 .byte 102,15,56,0,223
1457 pxor %xmm8,%xmm5
1458 .byte 102,15,56,0,231
1459 pxor %xmm8,%xmm6
1460 .byte 102,15,56,0,239
1461 leaq .LBS0(%rip),%r11
1462 .byte 102,15,56,0,247
1463 movl %ebx,%r10d
1464
1465 call _bsaes_encrypt8_bitslice
1466
1467 subq $8,%r14
1468 jc .Lctr_enc_loop_done
1469
1470 movdqu 0(%r12),%xmm7
1471 movdqu 16(%r12),%xmm8
1472 movdqu 32(%r12),%xmm9
1473 movdqu 48(%r12),%xmm10
1474 movdqu 64(%r12),%xmm11
1475 movdqu 80(%r12),%xmm12
1476 movdqu 96(%r12),%xmm13
1477 movdqu 112(%r12),%xmm14
1478 leaq 128(%r12),%r12
1479 pxor %xmm15,%xmm7
1480 movdqa 32(%rbp),%xmm15
1481 pxor %xmm8,%xmm0
1482 movdqu %xmm7,0(%r13)
1483 pxor %xmm9,%xmm3
1484 movdqu %xmm0,16(%r13)
1485 pxor %xmm10,%xmm5
1486 movdqu %xmm3,32(%r13)
1487 pxor %xmm11,%xmm2
1488 movdqu %xmm5,48(%r13)
1489 pxor %xmm12,%xmm6
1490 movdqu %xmm2,64(%r13)
1491 pxor %xmm13,%xmm1
1492 movdqu %xmm6,80(%r13)
1493 pxor %xmm14,%xmm4
1494 movdqu %xmm1,96(%r13)
1495 leaq .LADD1(%rip),%r11
1496 movdqu %xmm4,112(%r13)
1497 leaq 128(%r13),%r13
1498 paddd 112(%r11),%xmm15
1499 jnz .Lctr_enc_loop
1500
1501 jmp .Lctr_enc_done
1502 .align 16
1503 .Lctr_enc_loop_done:
1504 addq $8,%r14
1505 movdqu 0(%r12),%xmm7
1506 pxor %xmm7,%xmm15
1507 movdqu %xmm15,0(%r13)
1508 cmpq $2,%r14
1509 jb .Lctr_enc_done
1510 movdqu 16(%r12),%xmm8
1511 pxor %xmm8,%xmm0
1512 movdqu %xmm0,16(%r13)
1513 je .Lctr_enc_done
1514 movdqu 32(%r12),%xmm9
1515 pxor %xmm9,%xmm3
1516 movdqu %xmm3,32(%r13)
1517 cmpq $4,%r14
1518 jb .Lctr_enc_done
1519 movdqu 48(%r12),%xmm10
1520 pxor %xmm10,%xmm5
1521 movdqu %xmm5,48(%r13)
1522 je .Lctr_enc_done
1523 movdqu 64(%r12),%xmm11
1524 pxor %xmm11,%xmm2
1525 movdqu %xmm2,64(%r13)
1526 cmpq $6,%r14
1527 jb .Lctr_enc_done
1528 movdqu 80(%r12),%xmm12
1529 pxor %xmm12,%xmm6
1530 movdqu %xmm6,80(%r13)
1531 je .Lctr_enc_done
1532 movdqu 96(%r12),%xmm13
1533 pxor %xmm13,%xmm1
1534 movdqu %xmm1,96(%r13)
1535 jmp .Lctr_enc_done
1536
1537 .align 16
1538 .Lctr_enc_short:
1539 leaq 32(%rbp),%rdi
1540 leaq 48(%rbp),%rsi
1541 leaq (%r15),%rdx
1542 call asm_AES_encrypt
1543 movdqu (%r12),%xmm0
1544 leaq 16(%r12),%r12
1545 movl 44(%rbp),%eax
1546 bswapl %eax
1547 pxor 48(%rbp),%xmm0
1548 incl %eax
1549 movdqu %xmm0,(%r13)
1550 bswapl %eax
1551 leaq 16(%r13),%r13
1552 movl %eax,44(%rsp)
1553 decq %r14
1554 jnz .Lctr_enc_short
1555
1556 .Lctr_enc_done:
1557 leaq (%rsp),%rax
1558 pxor %xmm0,%xmm0
1559 .Lctr_enc_bzero:
1560 movdqa %xmm0,0(%rax)
1561 movdqa %xmm0,16(%rax)
1562 leaq 32(%rax),%rax
1563 cmpq %rax,%rbp
1564 ja .Lctr_enc_bzero
1565
1566 leaq (%rbp),%rsp
1567 movq 72(%rsp),%r15
1568 movq 80(%rsp),%r14
1569 movq 88(%rsp),%r13
1570 movq 96(%rsp),%r12
1571 movq 104(%rsp),%rbx
1572 movq 112(%rsp),%rax
1573 leaq 120(%rsp),%rsp
1574 movq %rax,%rbp
1575 .Lctr_enc_epilogue:
1576 .byte 0xf3,0xc3
1577 .size bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks
1578 .globl bsaes_xts_encrypt
1579 .type bsaes_xts_encrypt,@function
1580 .align 16
1581 bsaes_xts_encrypt:
1582 movq %rsp,%rax
1583 .Lxts_enc_prologue:
1584 pushq %rbp
1585 pushq %rbx
1586 pushq %r12
1587 pushq %r13
1588 pushq %r14
1589 pushq %r15
1590 leaq -72(%rsp),%rsp
1591 movq %rsp,%rbp
1592 movq %rdi,%r12
1593 movq %rsi,%r13
1594 movq %rdx,%r14
1595 movq %rcx,%r15
1596
1597 leaq (%r9),%rdi
1598 leaq 32(%rbp),%rsi
1599 leaq (%r8),%rdx
1600 call asm_AES_encrypt
1601
1602 movl 240(%r15),%eax
1603 movq %r14,%rbx
1604
1605 movl %eax,%edx
1606 shlq $7,%rax
1607 subq $96,%rax
1608 subq %rax,%rsp
1609
1610 movq %rsp,%rax
1611 movq %r15,%rcx
1612 movl %edx,%r10d
1613 call _bsaes_key_convert
1614 pxor %xmm6,%xmm7
1615 movdqa %xmm7,(%rax)
1616
1617 andq $-16,%r14
1618 subq $128,%rsp
1619 movdqa 32(%rbp),%xmm6
1620
1621 pxor %xmm14,%xmm14
1622 movdqa .Lxts_magic(%rip),%xmm12
1623 pcmpgtd %xmm6,%xmm14
1624
1625 subq $128,%r14
1626 jc .Lxts_enc_short
1627 jmp .Lxts_enc_loop
1628
1629 .align 16
1630 .Lxts_enc_loop:
1631 pshufd $19,%xmm14,%xmm13
1632 pxor %xmm14,%xmm14
1633 movdqa %xmm6,%xmm15
1634 movdqa %xmm6,0(%rsp)
1635 paddq %xmm6,%xmm6
1636 pand %xmm12,%xmm13
1637 pcmpgtd %xmm6,%xmm14
1638 pxor %xmm13,%xmm6
1639 pshufd $19,%xmm14,%xmm13
1640 pxor %xmm14,%xmm14
1641 movdqa %xmm6,%xmm0
1642 movdqa %xmm6,16(%rsp)
1643 paddq %xmm6,%xmm6
1644 pand %xmm12,%xmm13
1645 pcmpgtd %xmm6,%xmm14
1646 pxor %xmm13,%xmm6
1647 movdqu 0(%r12),%xmm7
1648 pshufd $19,%xmm14,%xmm13
1649 pxor %xmm14,%xmm14
1650 movdqa %xmm6,%xmm1
1651 movdqa %xmm6,32(%rsp)
1652 paddq %xmm6,%xmm6
1653 pand %xmm12,%xmm13
1654 pcmpgtd %xmm6,%xmm14
1655 pxor %xmm13,%xmm6
1656 movdqu 16(%r12),%xmm8
1657 pxor %xmm7,%xmm15
1658 pshufd $19,%xmm14,%xmm13
1659 pxor %xmm14,%xmm14
1660 movdqa %xmm6,%xmm2
1661 movdqa %xmm6,48(%rsp)
1662 paddq %xmm6,%xmm6
1663 pand %xmm12,%xmm13
1664 pcmpgtd %xmm6,%xmm14
1665 pxor %xmm13,%xmm6
1666 movdqu 32(%r12),%xmm9
1667 pxor %xmm8,%xmm0
1668 pshufd $19,%xmm14,%xmm13
1669 pxor %xmm14,%xmm14
1670 movdqa %xmm6,%xmm3
1671 movdqa %xmm6,64(%rsp)
1672 paddq %xmm6,%xmm6
1673 pand %xmm12,%xmm13
1674 pcmpgtd %xmm6,%xmm14
1675 pxor %xmm13,%xmm6
1676 movdqu 48(%r12),%xmm10
1677 pxor %xmm9,%xmm1
1678 pshufd $19,%xmm14,%xmm13
1679 pxor %xmm14,%xmm14
1680 movdqa %xmm6,%xmm4
1681 movdqa %xmm6,80(%rsp)
1682 paddq %xmm6,%xmm6
1683 pand %xmm12,%xmm13
1684 pcmpgtd %xmm6,%xmm14
1685 pxor %xmm13,%xmm6
1686 movdqu 64(%r12),%xmm11
1687 pxor %xmm10,%xmm2
1688 pshufd $19,%xmm14,%xmm13
1689 pxor %xmm14,%xmm14
1690 movdqa %xmm6,%xmm5
1691 movdqa %xmm6,96(%rsp)
1692 paddq %xmm6,%xmm6
1693 pand %xmm12,%xmm13
1694 pcmpgtd %xmm6,%xmm14
1695 pxor %xmm13,%xmm6
1696 movdqu 80(%r12),%xmm12
1697 pxor %xmm11,%xmm3
1698 movdqu 96(%r12),%xmm13
1699 pxor %xmm12,%xmm4
1700 movdqu 112(%r12),%xmm14
1701 leaq 128(%r12),%r12
1702 movdqa %xmm6,112(%rsp)
1703 pxor %xmm13,%xmm5
1704 leaq 128(%rsp),%rax
1705 pxor %xmm14,%xmm6
1706 movl %edx,%r10d
1707
1708 call _bsaes_encrypt8
1709
1710 pxor 0(%rsp),%xmm15
1711 pxor 16(%rsp),%xmm0
1712 movdqu %xmm15,0(%r13)
1713 pxor 32(%rsp),%xmm3
1714 movdqu %xmm0,16(%r13)
1715 pxor 48(%rsp),%xmm5
1716 movdqu %xmm3,32(%r13)
1717 pxor 64(%rsp),%xmm2
1718 movdqu %xmm5,48(%r13)
1719 pxor 80(%rsp),%xmm6
1720 movdqu %xmm2,64(%r13)
1721 pxor 96(%rsp),%xmm1
1722 movdqu %xmm6,80(%r13)
1723 pxor 112(%rsp),%xmm4
1724 movdqu %xmm1,96(%r13)
1725 movdqu %xmm4,112(%r13)
1726 leaq 128(%r13),%r13
1727
1728 movdqa 112(%rsp),%xmm6
1729 pxor %xmm14,%xmm14
1730 movdqa .Lxts_magic(%rip),%xmm12
1731 pcmpgtd %xmm6,%xmm14
1732 pshufd $19,%xmm14,%xmm13
1733 pxor %xmm14,%xmm14
1734 paddq %xmm6,%xmm6
1735 pand %xmm12,%xmm13
1736 pcmpgtd %xmm6,%xmm14
1737 pxor %xmm13,%xmm6
1738
1739 subq $128,%r14
1740 jnc .Lxts_enc_loop
1741
1742 .Lxts_enc_short:
1743 addq $128,%r14
1744 jz .Lxts_enc_done
1745 pshufd $19,%xmm14,%xmm13
1746 pxor %xmm14,%xmm14
1747 movdqa %xmm6,%xmm15
1748 movdqa %xmm6,0(%rsp)
1749 paddq %xmm6,%xmm6
1750 pand %xmm12,%xmm13
1751 pcmpgtd %xmm6,%xmm14
1752 pxor %xmm13,%xmm6
1753 pshufd $19,%xmm14,%xmm13
1754 pxor %xmm14,%xmm14
1755 movdqa %xmm6,%xmm0
1756 movdqa %xmm6,16(%rsp)
1757 paddq %xmm6,%xmm6
1758 pand %xmm12,%xmm13
1759 pcmpgtd %xmm6,%xmm14
1760 pxor %xmm13,%xmm6
1761 movdqu 0(%r12),%xmm7
1762 cmpq $16,%r14
1763 je .Lxts_enc_1
1764 pshufd $19,%xmm14,%xmm13
1765 pxor %xmm14,%xmm14
1766 movdqa %xmm6,%xmm1
1767 movdqa %xmm6,32(%rsp)
1768 paddq %xmm6,%xmm6
1769 pand %xmm12,%xmm13
1770 pcmpgtd %xmm6,%xmm14
1771 pxor %xmm13,%xmm6
1772 movdqu 16(%r12),%xmm8
1773 cmpq $32,%r14
1774 je .Lxts_enc_2
1775 pxor %xmm7,%xmm15
1776 pshufd $19,%xmm14,%xmm13
1777 pxor %xmm14,%xmm14
1778 movdqa %xmm6,%xmm2
1779 movdqa %xmm6,48(%rsp)
1780 paddq %xmm6,%xmm6
1781 pand %xmm12,%xmm13
1782 pcmpgtd %xmm6,%xmm14
1783 pxor %xmm13,%xmm6
1784 movdqu 32(%r12),%xmm9
1785 cmpq $48,%r14
1786 je .Lxts_enc_3
1787 pxor %xmm8,%xmm0
1788 pshufd $19,%xmm14,%xmm13
1789 pxor %xmm14,%xmm14
1790 movdqa %xmm6,%xmm3
1791 movdqa %xmm6,64(%rsp)
1792 paddq %xmm6,%xmm6
1793 pand %xmm12,%xmm13
1794 pcmpgtd %xmm6,%xmm14
1795 pxor %xmm13,%xmm6
1796 movdqu 48(%r12),%xmm10
1797 cmpq $64,%r14
1798 je .Lxts_enc_4
1799 pxor %xmm9,%xmm1
1800 pshufd $19,%xmm14,%xmm13
1801 pxor %xmm14,%xmm14
1802 movdqa %xmm6,%xmm4
1803 movdqa %xmm6,80(%rsp)
1804 paddq %xmm6,%xmm6
1805 pand %xmm12,%xmm13
1806 pcmpgtd %xmm6,%xmm14
1807 pxor %xmm13,%xmm6
1808 movdqu 64(%r12),%xmm11
1809 cmpq $80,%r14
1810 je .Lxts_enc_5
1811 pxor %xmm10,%xmm2
1812 pshufd $19,%xmm14,%xmm13
1813 pxor %xmm14,%xmm14
1814 movdqa %xmm6,%xmm5
1815 movdqa %xmm6,96(%rsp)
1816 paddq %xmm6,%xmm6
1817 pand %xmm12,%xmm13
1818 pcmpgtd %xmm6,%xmm14
1819 pxor %xmm13,%xmm6
1820 movdqu 80(%r12),%xmm12
1821 cmpq $96,%r14
1822 je .Lxts_enc_6
1823 pxor %xmm11,%xmm3
1824 movdqu 96(%r12),%xmm13
1825 pxor %xmm12,%xmm4
1826 movdqa %xmm6,112(%rsp)
1827 leaq 112(%r12),%r12
1828 pxor %xmm13,%xmm5
1829 leaq 128(%rsp),%rax
1830 movl %edx,%r10d
1831
1832 call _bsaes_encrypt8
1833
1834 pxor 0(%rsp),%xmm15
1835 pxor 16(%rsp),%xmm0
1836 movdqu %xmm15,0(%r13)
1837 pxor 32(%rsp),%xmm3
1838 movdqu %xmm0,16(%r13)
1839 pxor 48(%rsp),%xmm5
1840 movdqu %xmm3,32(%r13)
1841 pxor 64(%rsp),%xmm2
1842 movdqu %xmm5,48(%r13)
1843 pxor 80(%rsp),%xmm6
1844 movdqu %xmm2,64(%r13)
1845 pxor 96(%rsp),%xmm1
1846 movdqu %xmm6,80(%r13)
1847 movdqu %xmm1,96(%r13)
1848 leaq 112(%r13),%r13
1849
1850 movdqa 112(%rsp),%xmm6
1851 jmp .Lxts_enc_done
1852 .align 16
1853 .Lxts_enc_6:
1854 pxor %xmm11,%xmm3
1855 leaq 96(%r12),%r12
1856 pxor %xmm12,%xmm4
1857 leaq 128(%rsp),%rax
1858 movl %edx,%r10d
1859
1860 call _bsaes_encrypt8
1861
1862 pxor 0(%rsp),%xmm15
1863 pxor 16(%rsp),%xmm0
1864 movdqu %xmm15,0(%r13)
1865 pxor 32(%rsp),%xmm3
1866 movdqu %xmm0,16(%r13)
1867 pxor 48(%rsp),%xmm5
1868 movdqu %xmm3,32(%r13)
1869 pxor 64(%rsp),%xmm2
1870 movdqu %xmm5,48(%r13)
1871 pxor 80(%rsp),%xmm6
1872 movdqu %xmm2,64(%r13)
1873 movdqu %xmm6,80(%r13)
1874 leaq 96(%r13),%r13
1875
1876 movdqa 96(%rsp),%xmm6
1877 jmp .Lxts_enc_done
1878 .align 16
1879 .Lxts_enc_5:
1880 pxor %xmm10,%xmm2
1881 leaq 80(%r12),%r12
1882 pxor %xmm11,%xmm3
1883 leaq 128(%rsp),%rax
1884 movl %edx,%r10d
1885
1886 call _bsaes_encrypt8
1887
1888 pxor 0(%rsp),%xmm15
1889 pxor 16(%rsp),%xmm0
1890 movdqu %xmm15,0(%r13)
1891 pxor 32(%rsp),%xmm3
1892 movdqu %xmm0,16(%r13)
1893 pxor 48(%rsp),%xmm5
1894 movdqu %xmm3,32(%r13)
1895 pxor 64(%rsp),%xmm2
1896 movdqu %xmm5,48(%r13)
1897 movdqu %xmm2,64(%r13)
1898 leaq 80(%r13),%r13
1899
1900 movdqa 80(%rsp),%xmm6
1901 jmp .Lxts_enc_done
1902 .align 16
1903 .Lxts_enc_4:
1904 pxor %xmm9,%xmm1
1905 leaq 64(%r12),%r12
1906 pxor %xmm10,%xmm2
1907 leaq 128(%rsp),%rax
1908 movl %edx,%r10d
1909
1910 call _bsaes_encrypt8
1911
1912 pxor 0(%rsp),%xmm15
1913 pxor 16(%rsp),%xmm0
1914 movdqu %xmm15,0(%r13)
1915 pxor 32(%rsp),%xmm3
1916 movdqu %xmm0,16(%r13)
1917 pxor 48(%rsp),%xmm5
1918 movdqu %xmm3,32(%r13)
1919 movdqu %xmm5,48(%r13)
1920 leaq 64(%r13),%r13
1921
1922 movdqa 64(%rsp),%xmm6
1923 jmp .Lxts_enc_done
1924 .align 16
1925 .Lxts_enc_3:
1926 pxor %xmm8,%xmm0
1927 leaq 48(%r12),%r12
1928 pxor %xmm9,%xmm1
1929 leaq 128(%rsp),%rax
1930 movl %edx,%r10d
1931
1932 call _bsaes_encrypt8
1933
1934 pxor 0(%rsp),%xmm15
1935 pxor 16(%rsp),%xmm0
1936 movdqu %xmm15,0(%r13)
1937 pxor 32(%rsp),%xmm3
1938 movdqu %xmm0,16(%r13)
1939 movdqu %xmm3,32(%r13)
1940 leaq 48(%r13),%r13
1941
1942 movdqa 48(%rsp),%xmm6
1943 jmp .Lxts_enc_done
1944 .align 16
1945 .Lxts_enc_2:
1946 pxor %xmm7,%xmm15
1947 leaq 32(%r12),%r12
1948 pxor %xmm8,%xmm0
1949 leaq 128(%rsp),%rax
1950 movl %edx,%r10d
1951
1952 call _bsaes_encrypt8
1953
1954 pxor 0(%rsp),%xmm15
1955 pxor 16(%rsp),%xmm0
1956 movdqu %xmm15,0(%r13)
1957 movdqu %xmm0,16(%r13)
1958 leaq 32(%r13),%r13
1959
1960 movdqa 32(%rsp),%xmm6
1961 jmp .Lxts_enc_done
1962 .align 16
1963 .Lxts_enc_1:
1964 pxor %xmm15,%xmm7
1965 leaq 16(%r12),%r12
1966 movdqa %xmm7,32(%rbp)
1967 leaq 32(%rbp),%rdi
1968 leaq 32(%rbp),%rsi
1969 leaq (%r15),%rdx
1970 call asm_AES_encrypt
1971 pxor 32(%rbp),%xmm15
1972
1973
1974
1975
1976
1977 movdqu %xmm15,0(%r13)
1978 leaq 16(%r13),%r13
1979
1980 movdqa 16(%rsp),%xmm6
1981
1982 .Lxts_enc_done:
1983 andl $15,%ebx
1984 jz .Lxts_enc_ret
1985 movq %r13,%rdx
1986
1987 .Lxts_enc_steal:
1988 movzbl (%r12),%eax
1989 movzbl -16(%rdx),%ecx
1990 leaq 1(%r12),%r12
1991 movb %al,-16(%rdx)
1992 movb %cl,0(%rdx)
1993 leaq 1(%rdx),%rdx
1994 subl $1,%ebx
1995 jnz .Lxts_enc_steal
1996
1997 movdqu -16(%r13),%xmm15
1998 leaq 32(%rbp),%rdi
1999 pxor %xmm6,%xmm15
2000 leaq 32(%rbp),%rsi
2001 movdqa %xmm15,32(%rbp)
2002 leaq (%r15),%rdx
2003 call asm_AES_encrypt
2004 pxor 32(%rbp),%xmm6
2005 movdqu %xmm6,-16(%r13)
2006
2007 .Lxts_enc_ret:
2008 leaq (%rsp),%rax
2009 pxor %xmm0,%xmm0
2010 .Lxts_enc_bzero:
2011 movdqa %xmm0,0(%rax)
2012 movdqa %xmm0,16(%rax)
2013 leaq 32(%rax),%rax
2014 cmpq %rax,%rbp
2015 ja .Lxts_enc_bzero
2016
2017 leaq (%rbp),%rsp
2018 movq 72(%rsp),%r15
2019 movq 80(%rsp),%r14
2020 movq 88(%rsp),%r13
2021 movq 96(%rsp),%r12
2022 movq 104(%rsp),%rbx
2023 movq 112(%rsp),%rax
2024 leaq 120(%rsp),%rsp
2025 movq %rax,%rbp
2026 .Lxts_enc_epilogue:
2027 .byte 0xf3,0xc3
2028 .size bsaes_xts_encrypt,.-bsaes_xts_encrypt
2029
2030 .globl bsaes_xts_decrypt
2031 .type bsaes_xts_decrypt,@function
2032 .align 16
2033 bsaes_xts_decrypt:
2034 movq %rsp,%rax
2035 .Lxts_dec_prologue:
2036 pushq %rbp
2037 pushq %rbx
2038 pushq %r12
2039 pushq %r13
2040 pushq %r14
2041 pushq %r15
2042 leaq -72(%rsp),%rsp
2043 movq %rsp,%rbp
2044 movq %rdi,%r12
2045 movq %rsi,%r13
2046 movq %rdx,%r14
2047 movq %rcx,%r15
2048
2049 leaq (%r9),%rdi
2050 leaq 32(%rbp),%rsi
2051 leaq (%r8),%rdx
2052 call asm_AES_encrypt
2053
2054 movl 240(%r15),%eax
2055 movq %r14,%rbx
2056
2057 movl %eax,%edx
2058 shlq $7,%rax
2059 subq $96,%rax
2060 subq %rax,%rsp
2061
2062 movq %rsp,%rax
2063 movq %r15,%rcx
2064 movl %edx,%r10d
2065 call _bsaes_key_convert
2066 pxor (%rsp),%xmm7
2067 movdqa %xmm6,(%rax)
2068 movdqa %xmm7,(%rsp)
2069
2070 xorl %eax,%eax
2071 andq $-16,%r14
2072 testl $15,%ebx
2073 setnz %al
2074 shlq $4,%rax
2075 subq %rax,%r14
2076
2077 subq $128,%rsp
2078 movdqa 32(%rbp),%xmm6
2079
2080 pxor %xmm14,%xmm14
2081 movdqa .Lxts_magic(%rip),%xmm12
2082 pcmpgtd %xmm6,%xmm14
2083
2084 subq $128,%r14
2085 jc .Lxts_dec_short
2086 jmp .Lxts_dec_loop
2087
2088 .align 16
2089 .Lxts_dec_loop:
2090 pshufd $19,%xmm14,%xmm13
2091 pxor %xmm14,%xmm14
2092 movdqa %xmm6,%xmm15
2093 movdqa %xmm6,0(%rsp)
2094 paddq %xmm6,%xmm6
2095 pand %xmm12,%xmm13
2096 pcmpgtd %xmm6,%xmm14
2097 pxor %xmm13,%xmm6
2098 pshufd $19,%xmm14,%xmm13
2099 pxor %xmm14,%xmm14
2100 movdqa %xmm6,%xmm0
2101 movdqa %xmm6,16(%rsp)
2102 paddq %xmm6,%xmm6
2103 pand %xmm12,%xmm13
2104 pcmpgtd %xmm6,%xmm14
2105 pxor %xmm13,%xmm6
2106 movdqu 0(%r12),%xmm7
2107 pshufd $19,%xmm14,%xmm13
2108 pxor %xmm14,%xmm14
2109 movdqa %xmm6,%xmm1
2110 movdqa %xmm6,32(%rsp)
2111 paddq %xmm6,%xmm6
2112 pand %xmm12,%xmm13
2113 pcmpgtd %xmm6,%xmm14
2114 pxor %xmm13,%xmm6
2115 movdqu 16(%r12),%xmm8
2116 pxor %xmm7,%xmm15
2117 pshufd $19,%xmm14,%xmm13
2118 pxor %xmm14,%xmm14
2119 movdqa %xmm6,%xmm2
2120 movdqa %xmm6,48(%rsp)
2121 paddq %xmm6,%xmm6
2122 pand %xmm12,%xmm13
2123 pcmpgtd %xmm6,%xmm14
2124 pxor %xmm13,%xmm6
2125 movdqu 32(%r12),%xmm9
2126 pxor %xmm8,%xmm0
2127 pshufd $19,%xmm14,%xmm13
2128 pxor %xmm14,%xmm14
2129 movdqa %xmm6,%xmm3
2130 movdqa %xmm6,64(%rsp)
2131 paddq %xmm6,%xmm6
2132 pand %xmm12,%xmm13
2133 pcmpgtd %xmm6,%xmm14
2134 pxor %xmm13,%xmm6
2135 movdqu 48(%r12),%xmm10
2136 pxor %xmm9,%xmm1
2137 pshufd $19,%xmm14,%xmm13
2138 pxor %xmm14,%xmm14
2139 movdqa %xmm6,%xmm4
2140 movdqa %xmm6,80(%rsp)
2141 paddq %xmm6,%xmm6
2142 pand %xmm12,%xmm13
2143 pcmpgtd %xmm6,%xmm14
2144 pxor %xmm13,%xmm6
2145 movdqu 64(%r12),%xmm11
2146 pxor %xmm10,%xmm2
2147 pshufd $19,%xmm14,%xmm13
2148 pxor %xmm14,%xmm14
2149 movdqa %xmm6,%xmm5
2150 movdqa %xmm6,96(%rsp)
2151 paddq %xmm6,%xmm6
2152 pand %xmm12,%xmm13
2153 pcmpgtd %xmm6,%xmm14
2154 pxor %xmm13,%xmm6
2155 movdqu 80(%r12),%xmm12
2156 pxor %xmm11,%xmm3
2157 movdqu 96(%r12),%xmm13
2158 pxor %xmm12,%xmm4
2159 movdqu 112(%r12),%xmm14
2160 leaq 128(%r12),%r12
2161 movdqa %xmm6,112(%rsp)
2162 pxor %xmm13,%xmm5
2163 leaq 128(%rsp),%rax
2164 pxor %xmm14,%xmm6
2165 movl %edx,%r10d
2166
2167 call _bsaes_decrypt8
2168
2169 pxor 0(%rsp),%xmm15
2170 pxor 16(%rsp),%xmm0
2171 movdqu %xmm15,0(%r13)
2172 pxor 32(%rsp),%xmm5
2173 movdqu %xmm0,16(%r13)
2174 pxor 48(%rsp),%xmm3
2175 movdqu %xmm5,32(%r13)
2176 pxor 64(%rsp),%xmm1
2177 movdqu %xmm3,48(%r13)
2178 pxor 80(%rsp),%xmm6
2179 movdqu %xmm1,64(%r13)
2180 pxor 96(%rsp),%xmm2
2181 movdqu %xmm6,80(%r13)
2182 pxor 112(%rsp),%xmm4
2183 movdqu %xmm2,96(%r13)
2184 movdqu %xmm4,112(%r13)
2185 leaq 128(%r13),%r13
2186
2187 movdqa 112(%rsp),%xmm6
2188 pxor %xmm14,%xmm14
2189 movdqa .Lxts_magic(%rip),%xmm12
2190 pcmpgtd %xmm6,%xmm14
2191 pshufd $19,%xmm14,%xmm13
2192 pxor %xmm14,%xmm14
2193 paddq %xmm6,%xmm6
2194 pand %xmm12,%xmm13
2195 pcmpgtd %xmm6,%xmm14
2196 pxor %xmm13,%xmm6
2197
2198 subq $128,%r14
2199 jnc .Lxts_dec_loop
2200
2201 .Lxts_dec_short:
2202 addq $128,%r14
2203 jz .Lxts_dec_done
2204 pshufd $19,%xmm14,%xmm13
2205 pxor %xmm14,%xmm14
2206 movdqa %xmm6,%xmm15
2207 movdqa %xmm6,0(%rsp)
2208 paddq %xmm6,%xmm6
2209 pand %xmm12,%xmm13
2210 pcmpgtd %xmm6,%xmm14
2211 pxor %xmm13,%xmm6
2212 pshufd $19,%xmm14,%xmm13
2213 pxor %xmm14,%xmm14
2214 movdqa %xmm6,%xmm0
2215 movdqa %xmm6,16(%rsp)
2216 paddq %xmm6,%xmm6
2217 pand %xmm12,%xmm13
2218 pcmpgtd %xmm6,%xmm14
2219 pxor %xmm13,%xmm6
2220 movdqu 0(%r12),%xmm7
2221 cmpq $16,%r14
2222 je .Lxts_dec_1
2223 pshufd $19,%xmm14,%xmm13
2224 pxor %xmm14,%xmm14
2225 movdqa %xmm6,%xmm1
2226 movdqa %xmm6,32(%rsp)
2227 paddq %xmm6,%xmm6
2228 pand %xmm12,%xmm13
2229 pcmpgtd %xmm6,%xmm14
2230 pxor %xmm13,%xmm6
2231 movdqu 16(%r12),%xmm8
2232 cmpq $32,%r14
2233 je .Lxts_dec_2
2234 pxor %xmm7,%xmm15
2235 pshufd $19,%xmm14,%xmm13
2236 pxor %xmm14,%xmm14
2237 movdqa %xmm6,%xmm2
2238 movdqa %xmm6,48(%rsp)
2239 paddq %xmm6,%xmm6
2240 pand %xmm12,%xmm13
2241 pcmpgtd %xmm6,%xmm14
2242 pxor %xmm13,%xmm6
2243 movdqu 32(%r12),%xmm9
2244 cmpq $48,%r14
2245 je .Lxts_dec_3
2246 pxor %xmm8,%xmm0
2247 pshufd $19,%xmm14,%xmm13
2248 pxor %xmm14,%xmm14
2249 movdqa %xmm6,%xmm3
2250 movdqa %xmm6,64(%rsp)
2251 paddq %xmm6,%xmm6
2252 pand %xmm12,%xmm13
2253 pcmpgtd %xmm6,%xmm14
2254 pxor %xmm13,%xmm6
2255 movdqu 48(%r12),%xmm10
2256 cmpq $64,%r14
2257 je .Lxts_dec_4
2258 pxor %xmm9,%xmm1
2259 pshufd $19,%xmm14,%xmm13
2260 pxor %xmm14,%xmm14
2261 movdqa %xmm6,%xmm4
2262 movdqa %xmm6,80(%rsp)
2263 paddq %xmm6,%xmm6
2264 pand %xmm12,%xmm13
2265 pcmpgtd %xmm6,%xmm14
2266 pxor %xmm13,%xmm6
2267 movdqu 64(%r12),%xmm11
2268 cmpq $80,%r14
2269 je .Lxts_dec_5
2270 pxor %xmm10,%xmm2
2271 pshufd $19,%xmm14,%xmm13
2272 pxor %xmm14,%xmm14
2273 movdqa %xmm6,%xmm5
2274 movdqa %xmm6,96(%rsp)
2275 paddq %xmm6,%xmm6
2276 pand %xmm12,%xmm13
2277 pcmpgtd %xmm6,%xmm14
2278 pxor %xmm13,%xmm6
2279 movdqu 80(%r12),%xmm12
2280 cmpq $96,%r14
2281 je .Lxts_dec_6
2282 pxor %xmm11,%xmm3
2283 movdqu 96(%r12),%xmm13
2284 pxor %xmm12,%xmm4
2285 movdqa %xmm6,112(%rsp)
2286 leaq 112(%r12),%r12
2287 pxor %xmm13,%xmm5
2288 leaq 128(%rsp),%rax
2289 movl %edx,%r10d
2290
2291 call _bsaes_decrypt8
2292
2293 pxor 0(%rsp),%xmm15
2294 pxor 16(%rsp),%xmm0
2295 movdqu %xmm15,0(%r13)
2296 pxor 32(%rsp),%xmm5
2297 movdqu %xmm0,16(%r13)
2298 pxor 48(%rsp),%xmm3
2299 movdqu %xmm5,32(%r13)
2300 pxor 64(%rsp),%xmm1
2301 movdqu %xmm3,48(%r13)
2302 pxor 80(%rsp),%xmm6
2303 movdqu %xmm1,64(%r13)
2304 pxor 96(%rsp),%xmm2
2305 movdqu %xmm6,80(%r13)
2306 movdqu %xmm2,96(%r13)
2307 leaq 112(%r13),%r13
2308
2309 movdqa 112(%rsp),%xmm6
2310 jmp .Lxts_dec_done
2311 .align 16
2312 .Lxts_dec_6:
2313 pxor %xmm11,%xmm3
2314 leaq 96(%r12),%r12
2315 pxor %xmm12,%xmm4
2316 leaq 128(%rsp),%rax
2317 movl %edx,%r10d
2318
2319 call _bsaes_decrypt8
2320
2321 pxor 0(%rsp),%xmm15
2322 pxor 16(%rsp),%xmm0
2323 movdqu %xmm15,0(%r13)
2324 pxor 32(%rsp),%xmm5
2325 movdqu %xmm0,16(%r13)
2326 pxor 48(%rsp),%xmm3
2327 movdqu %xmm5,32(%r13)
2328 pxor 64(%rsp),%xmm1
2329 movdqu %xmm3,48(%r13)
2330 pxor 80(%rsp),%xmm6
2331 movdqu %xmm1,64(%r13)
2332 movdqu %xmm6,80(%r13)
2333 leaq 96(%r13),%r13
2334
2335 movdqa 96(%rsp),%xmm6
2336 jmp .Lxts_dec_done
2337 .align 16
2338 .Lxts_dec_5:
2339 pxor %xmm10,%xmm2
2340 leaq 80(%r12),%r12
2341 pxor %xmm11,%xmm3
2342 leaq 128(%rsp),%rax
2343 movl %edx,%r10d
2344
2345 call _bsaes_decrypt8
2346
2347 pxor 0(%rsp),%xmm15
2348 pxor 16(%rsp),%xmm0
2349 movdqu %xmm15,0(%r13)
2350 pxor 32(%rsp),%xmm5
2351 movdqu %xmm0,16(%r13)
2352 pxor 48(%rsp),%xmm3
2353 movdqu %xmm5,32(%r13)
2354 pxor 64(%rsp),%xmm1
2355 movdqu %xmm3,48(%r13)
2356 movdqu %xmm1,64(%r13)
2357 leaq 80(%r13),%r13
2358
2359 movdqa 80(%rsp),%xmm6
2360 jmp .Lxts_dec_done
2361 .align 16
2362 .Lxts_dec_4:
2363 pxor %xmm9,%xmm1
2364 leaq 64(%r12),%r12
2365 pxor %xmm10,%xmm2
2366 leaq 128(%rsp),%rax
2367 movl %edx,%r10d
2368
2369 call _bsaes_decrypt8
2370
2371 pxor 0(%rsp),%xmm15
2372 pxor 16(%rsp),%xmm0
2373 movdqu %xmm15,0(%r13)
2374 pxor 32(%rsp),%xmm5
2375 movdqu %xmm0,16(%r13)
2376 pxor 48(%rsp),%xmm3
2377 movdqu %xmm5,32(%r13)
2378 movdqu %xmm3,48(%r13)
2379 leaq 64(%r13),%r13
2380
2381 movdqa 64(%rsp),%xmm6
2382 jmp .Lxts_dec_done
2383 .align 16
2384 .Lxts_dec_3:
2385 pxor %xmm8,%xmm0
2386 leaq 48(%r12),%r12
2387 pxor %xmm9,%xmm1
2388 leaq 128(%rsp),%rax
2389 movl %edx,%r10d
2390
2391 call _bsaes_decrypt8
2392
2393 pxor 0(%rsp),%xmm15
2394 pxor 16(%rsp),%xmm0
2395 movdqu %xmm15,0(%r13)
2396 pxor 32(%rsp),%xmm5
2397 movdqu %xmm0,16(%r13)
2398 movdqu %xmm5,32(%r13)
2399 leaq 48(%r13),%r13
2400
2401 movdqa 48(%rsp),%xmm6
2402 jmp .Lxts_dec_done
2403 .align 16
2404 .Lxts_dec_2:
2405 pxor %xmm7,%xmm15
2406 leaq 32(%r12),%r12
2407 pxor %xmm8,%xmm0
2408 leaq 128(%rsp),%rax
2409 movl %edx,%r10d
2410
2411 call _bsaes_decrypt8
2412
2413 pxor 0(%rsp),%xmm15
2414 pxor 16(%rsp),%xmm0
2415 movdqu %xmm15,0(%r13)
2416 movdqu %xmm0,16(%r13)
2417 leaq 32(%r13),%r13
2418
2419 movdqa 32(%rsp),%xmm6
2420 jmp .Lxts_dec_done
2421 .align 16
2422 .Lxts_dec_1:
2423 pxor %xmm15,%xmm7
2424 leaq 16(%r12),%r12
2425 movdqa %xmm7,32(%rbp)
2426 leaq 32(%rbp),%rdi
2427 leaq 32(%rbp),%rsi
2428 leaq (%r15),%rdx
2429 call asm_AES_decrypt
2430 pxor 32(%rbp),%xmm15
2431
2432
2433
2434
2435
2436 movdqu %xmm15,0(%r13)
2437 leaq 16(%r13),%r13
2438
2439 movdqa 16(%rsp),%xmm6
2440
2441 .Lxts_dec_done:
2442 andl $15,%ebx
2443 jz .Lxts_dec_ret
2444
2445 pxor %xmm14,%xmm14
2446 movdqa .Lxts_magic(%rip),%xmm12
2447 pcmpgtd %xmm6,%xmm14
2448 pshufd $19,%xmm14,%xmm13
2449 movdqa %xmm6,%xmm5
2450 paddq %xmm6,%xmm6
2451 pand %xmm12,%xmm13
2452 movdqu (%r12),%xmm15
2453 pxor %xmm13,%xmm6
2454
2455 leaq 32(%rbp),%rdi
2456 pxor %xmm6,%xmm15
2457 leaq 32(%rbp),%rsi
2458 movdqa %xmm15,32(%rbp)
2459 leaq (%r15),%rdx
2460 call asm_AES_decrypt
2461 pxor 32(%rbp),%xmm6
2462 movq %r13,%rdx
2463 movdqu %xmm6,(%r13)
2464
2465 .Lxts_dec_steal:
2466 movzbl 16(%r12),%eax
2467 movzbl (%rdx),%ecx
2468 leaq 1(%r12),%r12
2469 movb %al,(%rdx)
2470 movb %cl,16(%rdx)
2471 leaq 1(%rdx),%rdx
2472 subl $1,%ebx
2473 jnz .Lxts_dec_steal
2474
2475 movdqu (%r13),%xmm15
2476 leaq 32(%rbp),%rdi
2477 pxor %xmm5,%xmm15
2478 leaq 32(%rbp),%rsi
2479 movdqa %xmm15,32(%rbp)
2480 leaq (%r15),%rdx
2481 call asm_AES_decrypt
2482 pxor 32(%rbp),%xmm5
2483 movdqu %xmm5,(%r13)
2484
2485 .Lxts_dec_ret:
2486 leaq (%rsp),%rax
2487 pxor %xmm0,%xmm0
2488 .Lxts_dec_bzero:
2489 movdqa %xmm0,0(%rax)
2490 movdqa %xmm0,16(%rax)
2491 leaq 32(%rax),%rax
2492 cmpq %rax,%rbp
2493 ja .Lxts_dec_bzero
2494
2495 leaq (%rbp),%rsp
2496 movq 72(%rsp),%r15
2497 movq 80(%rsp),%r14
2498 movq 88(%rsp),%r13
2499 movq 96(%rsp),%r12
2500 movq 104(%rsp),%rbx
2501 movq 112(%rsp),%rax
2502 leaq 120(%rsp),%rsp
2503 movq %rax,%rbp
2504 .Lxts_dec_epilogue:
2505 .byte 0xf3,0xc3
2506 .size bsaes_xts_decrypt,.-bsaes_xts_decrypt
2507 .type _bsaes_const,@object
2508 .align 64
2509 _bsaes_const:
2510 .LM0ISR:
2511 .quad 0x0a0e0206070b0f03, 0x0004080c0d010509
2512 .LISRM0:
2513 .quad 0x01040b0e0205080f, 0x0306090c00070a0d
2514 .LISR:
2515 .quad 0x0504070602010003, 0x0f0e0d0c080b0a09
2516 .LBS0:
2517 .quad 0x5555555555555555, 0x5555555555555555
2518 .LBS1:
2519 .quad 0x3333333333333333, 0x3333333333333333
2520 .LBS2:
2521 .quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
2522 .LSR:
2523 .quad 0x0504070600030201, 0x0f0e0d0c0a09080b
2524 .LSRM0:
2525 .quad 0x0304090e00050a0f, 0x01060b0c0207080d
2526 .LM0SR:
2527 .quad 0x0a0e02060f03070b, 0x0004080c05090d01
2528 .LSWPUP:
2529 .quad 0x0706050403020100, 0x0c0d0e0f0b0a0908
2530 .LSWPUPM0SR:
2531 .quad 0x0a0d02060c03070b, 0x0004080f05090e01
2532 .LADD1:
2533 .quad 0x0000000000000000, 0x0000000100000000
2534 .LADD2:
2535 .quad 0x0000000000000000, 0x0000000200000000
2536 .LADD3:
2537 .quad 0x0000000000000000, 0x0000000300000000
2538 .LADD4:
2539 .quad 0x0000000000000000, 0x0000000400000000
2540 .LADD5:
2541 .quad 0x0000000000000000, 0x0000000500000000
2542 .LADD6:
2543 .quad 0x0000000000000000, 0x0000000600000000
2544 .LADD7:
2545 .quad 0x0000000000000000, 0x0000000700000000
2546 .LADD8:
2547 .quad 0x0000000000000000, 0x0000000800000000
2548 .Lxts_magic:
2549 .long 0x87,0,1,0
2550 .Lmasks:
2551 .quad 0x0101010101010101, 0x0101010101010101
2552 .quad 0x0202020202020202, 0x0202020202020202
2553 .quad 0x0404040404040404, 0x0404040404040404
2554 .quad 0x0808080808080808, 0x0808080808080808
2555 .LM0:
2556 .quad 0x02060a0e03070b0f, 0x0004080c0105090d
2557 .L63:
2558 .quad 0x6363636363636363, 0x6363636363636363
2559 .byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,5 6,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,11 2,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,1 21,32,80,111,108,121,97,107,111,118,0
2560 .align 64
2561 .size _bsaes_const,.-_bsaes_const
OLDNEW
« no previous file with comments | « openssl/crypto/aes/asm/aesni-x86_64.pl ('k') | openssl/crypto/aes/asm/bsaes-x86_64.pl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698