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

Side by Side Diff: third_party/boringssl/linux-x86_64/crypto/aes/bsaes-x86_64.S

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

Powered by Google App Engine
This is Rietveld 408576698