VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.1/crypto/genasm-macosx/bsaes-x86_64.S@ 94081

Last change on this file since 94081 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

File size: 45.1 KB
Line 
1.text
2
3
4
5
6
7.p2align 6
8_bsaes_encrypt8:
9
10 leaq L$BS0(%rip),%r11
11
12 movdqa (%rax),%xmm8
13 leaq 16(%rax),%rax
14 movdqa 80(%r11),%xmm7
15 pxor %xmm8,%xmm15
16 pxor %xmm8,%xmm0
17 pxor %xmm8,%xmm1
18 pxor %xmm8,%xmm2
19.byte 102,68,15,56,0,255
20.byte 102,15,56,0,199
21 pxor %xmm8,%xmm3
22 pxor %xmm8,%xmm4
23.byte 102,15,56,0,207
24.byte 102,15,56,0,215
25 pxor %xmm8,%xmm5
26 pxor %xmm8,%xmm6
27.byte 102,15,56,0,223
28.byte 102,15,56,0,231
29.byte 102,15,56,0,239
30.byte 102,15,56,0,247
31_bsaes_encrypt8_bitslice:
32 movdqa 0(%r11),%xmm7
33 movdqa 16(%r11),%xmm8
34 movdqa %xmm5,%xmm9
35 psrlq $1,%xmm5
36 movdqa %xmm3,%xmm10
37 psrlq $1,%xmm3
38 pxor %xmm6,%xmm5
39 pxor %xmm4,%xmm3
40 pand %xmm7,%xmm5
41 pand %xmm7,%xmm3
42 pxor %xmm5,%xmm6
43 psllq $1,%xmm5
44 pxor %xmm3,%xmm4
45 psllq $1,%xmm3
46 pxor %xmm9,%xmm5
47 pxor %xmm10,%xmm3
48 movdqa %xmm1,%xmm9
49 psrlq $1,%xmm1
50 movdqa %xmm15,%xmm10
51 psrlq $1,%xmm15
52 pxor %xmm2,%xmm1
53 pxor %xmm0,%xmm15
54 pand %xmm7,%xmm1
55 pand %xmm7,%xmm15
56 pxor %xmm1,%xmm2
57 psllq $1,%xmm1
58 pxor %xmm15,%xmm0
59 psllq $1,%xmm15
60 pxor %xmm9,%xmm1
61 pxor %xmm10,%xmm15
62 movdqa 32(%r11),%xmm7
63 movdqa %xmm4,%xmm9
64 psrlq $2,%xmm4
65 movdqa %xmm3,%xmm10
66 psrlq $2,%xmm3
67 pxor %xmm6,%xmm4
68 pxor %xmm5,%xmm3
69 pand %xmm8,%xmm4
70 pand %xmm8,%xmm3
71 pxor %xmm4,%xmm6
72 psllq $2,%xmm4
73 pxor %xmm3,%xmm5
74 psllq $2,%xmm3
75 pxor %xmm9,%xmm4
76 pxor %xmm10,%xmm3
77 movdqa %xmm0,%xmm9
78 psrlq $2,%xmm0
79 movdqa %xmm15,%xmm10
80 psrlq $2,%xmm15
81 pxor %xmm2,%xmm0
82 pxor %xmm1,%xmm15
83 pand %xmm8,%xmm0
84 pand %xmm8,%xmm15
85 pxor %xmm0,%xmm2
86 psllq $2,%xmm0
87 pxor %xmm15,%xmm1
88 psllq $2,%xmm15
89 pxor %xmm9,%xmm0
90 pxor %xmm10,%xmm15
91 movdqa %xmm2,%xmm9
92 psrlq $4,%xmm2
93 movdqa %xmm1,%xmm10
94 psrlq $4,%xmm1
95 pxor %xmm6,%xmm2
96 pxor %xmm5,%xmm1
97 pand %xmm7,%xmm2
98 pand %xmm7,%xmm1
99 pxor %xmm2,%xmm6
100 psllq $4,%xmm2
101 pxor %xmm1,%xmm5
102 psllq $4,%xmm1
103 pxor %xmm9,%xmm2
104 pxor %xmm10,%xmm1
105 movdqa %xmm0,%xmm9
106 psrlq $4,%xmm0
107 movdqa %xmm15,%xmm10
108 psrlq $4,%xmm15
109 pxor %xmm4,%xmm0
110 pxor %xmm3,%xmm15
111 pand %xmm7,%xmm0
112 pand %xmm7,%xmm15
113 pxor %xmm0,%xmm4
114 psllq $4,%xmm0
115 pxor %xmm15,%xmm3
116 psllq $4,%xmm15
117 pxor %xmm9,%xmm0
118 pxor %xmm10,%xmm15
119 decl %r10d
120 jmp L$enc_sbox
121.p2align 4
122L$enc_loop:
123 pxor 0(%rax),%xmm15
124 pxor 16(%rax),%xmm0
125 pxor 32(%rax),%xmm1
126 pxor 48(%rax),%xmm2
127.byte 102,68,15,56,0,255
128.byte 102,15,56,0,199
129 pxor 64(%rax),%xmm3
130 pxor 80(%rax),%xmm4
131.byte 102,15,56,0,207
132.byte 102,15,56,0,215
133 pxor 96(%rax),%xmm5
134 pxor 112(%rax),%xmm6
135.byte 102,15,56,0,223
136.byte 102,15,56,0,231
137.byte 102,15,56,0,239
138.byte 102,15,56,0,247
139 leaq 128(%rax),%rax
140L$enc_sbox:
141 pxor %xmm5,%xmm4
142 pxor %xmm0,%xmm1
143 pxor %xmm15,%xmm2
144 pxor %xmm1,%xmm5
145 pxor %xmm15,%xmm4
146
147 pxor %xmm2,%xmm5
148 pxor %xmm6,%xmm2
149 pxor %xmm4,%xmm6
150 pxor %xmm3,%xmm2
151 pxor %xmm4,%xmm3
152 pxor %xmm0,%xmm2
153
154 pxor %xmm6,%xmm1
155 pxor %xmm4,%xmm0
156 movdqa %xmm6,%xmm10
157 movdqa %xmm0,%xmm9
158 movdqa %xmm4,%xmm8
159 movdqa %xmm1,%xmm12
160 movdqa %xmm5,%xmm11
161
162 pxor %xmm3,%xmm10
163 pxor %xmm1,%xmm9
164 pxor %xmm2,%xmm8
165 movdqa %xmm10,%xmm13
166 pxor %xmm3,%xmm12
167 movdqa %xmm9,%xmm7
168 pxor %xmm15,%xmm11
169 movdqa %xmm10,%xmm14
170
171 por %xmm8,%xmm9
172 por %xmm11,%xmm10
173 pxor %xmm7,%xmm14
174 pand %xmm11,%xmm13
175 pxor %xmm8,%xmm11
176 pand %xmm8,%xmm7
177 pand %xmm11,%xmm14
178 movdqa %xmm2,%xmm11
179 pxor %xmm15,%xmm11
180 pand %xmm11,%xmm12
181 pxor %xmm12,%xmm10
182 pxor %xmm12,%xmm9
183 movdqa %xmm6,%xmm12
184 movdqa %xmm4,%xmm11
185 pxor %xmm0,%xmm12
186 pxor %xmm5,%xmm11
187 movdqa %xmm12,%xmm8
188 pand %xmm11,%xmm12
189 por %xmm11,%xmm8
190 pxor %xmm12,%xmm7
191 pxor %xmm14,%xmm10
192 pxor %xmm13,%xmm9
193 pxor %xmm14,%xmm8
194 movdqa %xmm1,%xmm11
195 pxor %xmm13,%xmm7
196 movdqa %xmm3,%xmm12
197 pxor %xmm13,%xmm8
198 movdqa %xmm0,%xmm13
199 pand %xmm2,%xmm11
200 movdqa %xmm6,%xmm14
201 pand %xmm15,%xmm12
202 pand %xmm4,%xmm13
203 por %xmm5,%xmm14
204 pxor %xmm11,%xmm10
205 pxor %xmm12,%xmm9
206 pxor %xmm13,%xmm8
207 pxor %xmm14,%xmm7
208
209
210
211
212
213 movdqa %xmm10,%xmm11
214 pand %xmm8,%xmm10
215 pxor %xmm9,%xmm11
216
217 movdqa %xmm7,%xmm13
218 movdqa %xmm11,%xmm14
219 pxor %xmm10,%xmm13
220 pand %xmm13,%xmm14
221
222 movdqa %xmm8,%xmm12
223 pxor %xmm9,%xmm14
224 pxor %xmm7,%xmm12
225
226 pxor %xmm9,%xmm10
227
228 pand %xmm10,%xmm12
229
230 movdqa %xmm13,%xmm9
231 pxor %xmm7,%xmm12
232
233 pxor %xmm12,%xmm9
234 pxor %xmm12,%xmm8
235
236 pand %xmm7,%xmm9
237
238 pxor %xmm9,%xmm13
239 pxor %xmm9,%xmm8
240
241 pand %xmm14,%xmm13
242
243 pxor %xmm11,%xmm13
244 movdqa %xmm5,%xmm11
245 movdqa %xmm4,%xmm7
246 movdqa %xmm14,%xmm9
247 pxor %xmm13,%xmm9
248 pand %xmm5,%xmm9
249 pxor %xmm4,%xmm5
250 pand %xmm14,%xmm4
251 pand %xmm13,%xmm5
252 pxor %xmm4,%xmm5
253 pxor %xmm9,%xmm4
254 pxor %xmm15,%xmm11
255 pxor %xmm2,%xmm7
256 pxor %xmm12,%xmm14
257 pxor %xmm8,%xmm13
258 movdqa %xmm14,%xmm10
259 movdqa %xmm12,%xmm9
260 pxor %xmm13,%xmm10
261 pxor %xmm8,%xmm9
262 pand %xmm11,%xmm10
263 pand %xmm15,%xmm9
264 pxor %xmm7,%xmm11
265 pxor %xmm2,%xmm15
266 pand %xmm14,%xmm7
267 pand %xmm12,%xmm2
268 pand %xmm13,%xmm11
269 pand %xmm8,%xmm15
270 pxor %xmm11,%xmm7
271 pxor %xmm2,%xmm15
272 pxor %xmm10,%xmm11
273 pxor %xmm9,%xmm2
274 pxor %xmm11,%xmm5
275 pxor %xmm11,%xmm15
276 pxor %xmm7,%xmm4
277 pxor %xmm7,%xmm2
278
279 movdqa %xmm6,%xmm11
280 movdqa %xmm0,%xmm7
281 pxor %xmm3,%xmm11
282 pxor %xmm1,%xmm7
283 movdqa %xmm14,%xmm10
284 movdqa %xmm12,%xmm9
285 pxor %xmm13,%xmm10
286 pxor %xmm8,%xmm9
287 pand %xmm11,%xmm10
288 pand %xmm3,%xmm9
289 pxor %xmm7,%xmm11
290 pxor %xmm1,%xmm3
291 pand %xmm14,%xmm7
292 pand %xmm12,%xmm1
293 pand %xmm13,%xmm11
294 pand %xmm8,%xmm3
295 pxor %xmm11,%xmm7
296 pxor %xmm1,%xmm3
297 pxor %xmm10,%xmm11
298 pxor %xmm9,%xmm1
299 pxor %xmm12,%xmm14
300 pxor %xmm8,%xmm13
301 movdqa %xmm14,%xmm10
302 pxor %xmm13,%xmm10
303 pand %xmm6,%xmm10
304 pxor %xmm0,%xmm6
305 pand %xmm14,%xmm0
306 pand %xmm13,%xmm6
307 pxor %xmm0,%xmm6
308 pxor %xmm10,%xmm0
309 pxor %xmm11,%xmm6
310 pxor %xmm11,%xmm3
311 pxor %xmm7,%xmm0
312 pxor %xmm7,%xmm1
313 pxor %xmm15,%xmm6
314 pxor %xmm5,%xmm0
315 pxor %xmm6,%xmm3
316 pxor %xmm15,%xmm5
317 pxor %xmm0,%xmm15
318
319 pxor %xmm4,%xmm0
320 pxor %xmm1,%xmm4
321 pxor %xmm2,%xmm1
322 pxor %xmm4,%xmm2
323 pxor %xmm4,%xmm3
324
325 pxor %xmm2,%xmm5
326 decl %r10d
327 jl L$enc_done
328 pshufd $0x93,%xmm15,%xmm7
329 pshufd $0x93,%xmm0,%xmm8
330 pxor %xmm7,%xmm15
331 pshufd $0x93,%xmm3,%xmm9
332 pxor %xmm8,%xmm0
333 pshufd $0x93,%xmm5,%xmm10
334 pxor %xmm9,%xmm3
335 pshufd $0x93,%xmm2,%xmm11
336 pxor %xmm10,%xmm5
337 pshufd $0x93,%xmm6,%xmm12
338 pxor %xmm11,%xmm2
339 pshufd $0x93,%xmm1,%xmm13
340 pxor %xmm12,%xmm6
341 pshufd $0x93,%xmm4,%xmm14
342 pxor %xmm13,%xmm1
343 pxor %xmm14,%xmm4
344
345 pxor %xmm15,%xmm8
346 pxor %xmm4,%xmm7
347 pxor %xmm4,%xmm8
348 pshufd $0x4E,%xmm15,%xmm15
349 pxor %xmm0,%xmm9
350 pshufd $0x4E,%xmm0,%xmm0
351 pxor %xmm2,%xmm12
352 pxor %xmm7,%xmm15
353 pxor %xmm6,%xmm13
354 pxor %xmm8,%xmm0
355 pxor %xmm5,%xmm11
356 pshufd $0x4E,%xmm2,%xmm7
357 pxor %xmm1,%xmm14
358 pshufd $0x4E,%xmm6,%xmm8
359 pxor %xmm3,%xmm10
360 pshufd $0x4E,%xmm5,%xmm2
361 pxor %xmm4,%xmm10
362 pshufd $0x4E,%xmm4,%xmm6
363 pxor %xmm4,%xmm11
364 pshufd $0x4E,%xmm1,%xmm5
365 pxor %xmm11,%xmm7
366 pshufd $0x4E,%xmm3,%xmm1
367 pxor %xmm12,%xmm8
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 L$enc_loop
376 movdqa 64(%r11),%xmm7
377 jmp L$enc_loop
378.p2align 4
379L$enc_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
478
479
480
481.p2align 6
482_bsaes_decrypt8:
483
484 leaq L$BS0(%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 L$dec_sbox
594.p2align 4
595L$dec_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
613L$dec_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 L$dec_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 L$dec_loop
884 movdqa -32(%r11),%xmm7
885 jmp L$dec_loop
886.p2align 4
887L$dec_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
986
987
988.p2align 4
989_bsaes_key_convert:
990
991 leaq L$masks(%rip),%r11
992 movdqu (%rcx),%xmm7
993 leaq 16(%rcx),%rcx
994 movdqa 0(%r11),%xmm0
995 movdqa 16(%r11),%xmm1
996 movdqa 32(%r11),%xmm2
997 movdqa 48(%r11),%xmm3
998 movdqa 64(%r11),%xmm4
999 pcmpeqd %xmm5,%xmm5
1000
1001 movdqu (%rcx),%xmm6
1002 movdqa %xmm7,(%rax)
1003 leaq 16(%rax),%rax
1004 decl %r10d
1005 jmp L$key_loop
1006.p2align 4
1007L$key_loop:
1008.byte 102,15,56,0,244
1009
1010 movdqa %xmm0,%xmm8
1011 movdqa %xmm1,%xmm9
1012
1013 pand %xmm6,%xmm8
1014 pand %xmm6,%xmm9
1015 movdqa %xmm2,%xmm10
1016 pcmpeqb %xmm0,%xmm8
1017 psllq $4,%xmm0
1018 movdqa %xmm3,%xmm11
1019 pcmpeqb %xmm1,%xmm9
1020 psllq $4,%xmm1
1021
1022 pand %xmm6,%xmm10
1023 pand %xmm6,%xmm11
1024 movdqa %xmm0,%xmm12
1025 pcmpeqb %xmm2,%xmm10
1026 psllq $4,%xmm2
1027 movdqa %xmm1,%xmm13
1028 pcmpeqb %xmm3,%xmm11
1029 psllq $4,%xmm3
1030
1031 movdqa %xmm2,%xmm14
1032 movdqa %xmm3,%xmm15
1033 pxor %xmm5,%xmm8
1034 pxor %xmm5,%xmm9
1035
1036 pand %xmm6,%xmm12
1037 pand %xmm6,%xmm13
1038 movdqa %xmm8,0(%rax)
1039 pcmpeqb %xmm0,%xmm12
1040 psrlq $4,%xmm0
1041 movdqa %xmm9,16(%rax)
1042 pcmpeqb %xmm1,%xmm13
1043 psrlq $4,%xmm1
1044 leaq 16(%rcx),%rcx
1045
1046 pand %xmm6,%xmm14
1047 pand %xmm6,%xmm15
1048 movdqa %xmm10,32(%rax)
1049 pcmpeqb %xmm2,%xmm14
1050 psrlq $4,%xmm2
1051 movdqa %xmm11,48(%rax)
1052 pcmpeqb %xmm3,%xmm15
1053 psrlq $4,%xmm3
1054 movdqu (%rcx),%xmm6
1055
1056 pxor %xmm5,%xmm13
1057 pxor %xmm5,%xmm14
1058 movdqa %xmm12,64(%rax)
1059 movdqa %xmm13,80(%rax)
1060 movdqa %xmm14,96(%rax)
1061 movdqa %xmm15,112(%rax)
1062 leaq 128(%rax),%rax
1063 decl %r10d
1064 jnz L$key_loop
1065
1066 movdqa 80(%r11),%xmm7
1067
1068 .byte 0xf3,0xc3
1069
1070
1071
1072.globl _bsaes_cbc_encrypt
1073
1074.p2align 4
1075_bsaes_cbc_encrypt:
1076
1077 cmpl $0,%r9d
1078 jne _asm_AES_cbc_encrypt
1079 cmpq $128,%rdx
1080 jb _asm_AES_cbc_encrypt
1081
1082 movq %rsp,%rax
1083L$cbc_dec_prologue:
1084 pushq %rbp
1085
1086 pushq %rbx
1087
1088 pushq %r12
1089
1090 pushq %r13
1091
1092 pushq %r14
1093
1094 pushq %r15
1095
1096 leaq -72(%rsp),%rsp
1097
1098 movq %rsp,%rbp
1099
1100 movl 240(%rcx),%eax
1101 movq %rdi,%r12
1102 movq %rsi,%r13
1103 movq %rdx,%r14
1104 movq %rcx,%r15
1105 movq %r8,%rbx
1106 shrq $4,%r14
1107
1108 movl %eax,%edx
1109 shlq $7,%rax
1110 subq $96,%rax
1111 subq %rax,%rsp
1112
1113 movq %rsp,%rax
1114 movq %r15,%rcx
1115 movl %edx,%r10d
1116 call _bsaes_key_convert
1117 pxor (%rsp),%xmm7
1118 movdqa %xmm6,(%rax)
1119 movdqa %xmm7,(%rsp)
1120
1121 movdqu (%rbx),%xmm14
1122 subq $8,%r14
1123L$cbc_dec_loop:
1124 movdqu 0(%r12),%xmm15
1125 movdqu 16(%r12),%xmm0
1126 movdqu 32(%r12),%xmm1
1127 movdqu 48(%r12),%xmm2
1128 movdqu 64(%r12),%xmm3
1129 movdqu 80(%r12),%xmm4
1130 movq %rsp,%rax
1131 movdqu 96(%r12),%xmm5
1132 movl %edx,%r10d
1133 movdqu 112(%r12),%xmm6
1134 movdqa %xmm14,32(%rbp)
1135
1136 call _bsaes_decrypt8
1137
1138 pxor 32(%rbp),%xmm15
1139 movdqu 0(%r12),%xmm7
1140 movdqu 16(%r12),%xmm8
1141 pxor %xmm7,%xmm0
1142 movdqu 32(%r12),%xmm9
1143 pxor %xmm8,%xmm5
1144 movdqu 48(%r12),%xmm10
1145 pxor %xmm9,%xmm3
1146 movdqu 64(%r12),%xmm11
1147 pxor %xmm10,%xmm1
1148 movdqu 80(%r12),%xmm12
1149 pxor %xmm11,%xmm6
1150 movdqu 96(%r12),%xmm13
1151 pxor %xmm12,%xmm2
1152 movdqu 112(%r12),%xmm14
1153 pxor %xmm13,%xmm4
1154 movdqu %xmm15,0(%r13)
1155 leaq 128(%r12),%r12
1156 movdqu %xmm0,16(%r13)
1157 movdqu %xmm5,32(%r13)
1158 movdqu %xmm3,48(%r13)
1159 movdqu %xmm1,64(%r13)
1160 movdqu %xmm6,80(%r13)
1161 movdqu %xmm2,96(%r13)
1162 movdqu %xmm4,112(%r13)
1163 leaq 128(%r13),%r13
1164 subq $8,%r14
1165 jnc L$cbc_dec_loop
1166
1167 addq $8,%r14
1168 jz L$cbc_dec_done
1169
1170 movdqu 0(%r12),%xmm15
1171 movq %rsp,%rax
1172 movl %edx,%r10d
1173 cmpq $2,%r14
1174 jb L$cbc_dec_one
1175 movdqu 16(%r12),%xmm0
1176 je L$cbc_dec_two
1177 movdqu 32(%r12),%xmm1
1178 cmpq $4,%r14
1179 jb L$cbc_dec_three
1180 movdqu 48(%r12),%xmm2
1181 je L$cbc_dec_four
1182 movdqu 64(%r12),%xmm3
1183 cmpq $6,%r14
1184 jb L$cbc_dec_five
1185 movdqu 80(%r12),%xmm4
1186 je L$cbc_dec_six
1187 movdqu 96(%r12),%xmm5
1188 movdqa %xmm14,32(%rbp)
1189 call _bsaes_decrypt8
1190 pxor 32(%rbp),%xmm15
1191 movdqu 0(%r12),%xmm7
1192 movdqu 16(%r12),%xmm8
1193 pxor %xmm7,%xmm0
1194 movdqu 32(%r12),%xmm9
1195 pxor %xmm8,%xmm5
1196 movdqu 48(%r12),%xmm10
1197 pxor %xmm9,%xmm3
1198 movdqu 64(%r12),%xmm11
1199 pxor %xmm10,%xmm1
1200 movdqu 80(%r12),%xmm12
1201 pxor %xmm11,%xmm6
1202 movdqu 96(%r12),%xmm14
1203 pxor %xmm12,%xmm2
1204 movdqu %xmm15,0(%r13)
1205 movdqu %xmm0,16(%r13)
1206 movdqu %xmm5,32(%r13)
1207 movdqu %xmm3,48(%r13)
1208 movdqu %xmm1,64(%r13)
1209 movdqu %xmm6,80(%r13)
1210 movdqu %xmm2,96(%r13)
1211 jmp L$cbc_dec_done
1212.p2align 4
1213L$cbc_dec_six:
1214 movdqa %xmm14,32(%rbp)
1215 call _bsaes_decrypt8
1216 pxor 32(%rbp),%xmm15
1217 movdqu 0(%r12),%xmm7
1218 movdqu 16(%r12),%xmm8
1219 pxor %xmm7,%xmm0
1220 movdqu 32(%r12),%xmm9
1221 pxor %xmm8,%xmm5
1222 movdqu 48(%r12),%xmm10
1223 pxor %xmm9,%xmm3
1224 movdqu 64(%r12),%xmm11
1225 pxor %xmm10,%xmm1
1226 movdqu 80(%r12),%xmm14
1227 pxor %xmm11,%xmm6
1228 movdqu %xmm15,0(%r13)
1229 movdqu %xmm0,16(%r13)
1230 movdqu %xmm5,32(%r13)
1231 movdqu %xmm3,48(%r13)
1232 movdqu %xmm1,64(%r13)
1233 movdqu %xmm6,80(%r13)
1234 jmp L$cbc_dec_done
1235.p2align 4
1236L$cbc_dec_five:
1237 movdqa %xmm14,32(%rbp)
1238 call _bsaes_decrypt8
1239 pxor 32(%rbp),%xmm15
1240 movdqu 0(%r12),%xmm7
1241 movdqu 16(%r12),%xmm8
1242 pxor %xmm7,%xmm0
1243 movdqu 32(%r12),%xmm9
1244 pxor %xmm8,%xmm5
1245 movdqu 48(%r12),%xmm10
1246 pxor %xmm9,%xmm3
1247 movdqu 64(%r12),%xmm14
1248 pxor %xmm10,%xmm1
1249 movdqu %xmm15,0(%r13)
1250 movdqu %xmm0,16(%r13)
1251 movdqu %xmm5,32(%r13)
1252 movdqu %xmm3,48(%r13)
1253 movdqu %xmm1,64(%r13)
1254 jmp L$cbc_dec_done
1255.p2align 4
1256L$cbc_dec_four:
1257 movdqa %xmm14,32(%rbp)
1258 call _bsaes_decrypt8
1259 pxor 32(%rbp),%xmm15
1260 movdqu 0(%r12),%xmm7
1261 movdqu 16(%r12),%xmm8
1262 pxor %xmm7,%xmm0
1263 movdqu 32(%r12),%xmm9
1264 pxor %xmm8,%xmm5
1265 movdqu 48(%r12),%xmm14
1266 pxor %xmm9,%xmm3
1267 movdqu %xmm15,0(%r13)
1268 movdqu %xmm0,16(%r13)
1269 movdqu %xmm5,32(%r13)
1270 movdqu %xmm3,48(%r13)
1271 jmp L$cbc_dec_done
1272.p2align 4
1273L$cbc_dec_three:
1274 movdqa %xmm14,32(%rbp)
1275 call _bsaes_decrypt8
1276 pxor 32(%rbp),%xmm15
1277 movdqu 0(%r12),%xmm7
1278 movdqu 16(%r12),%xmm8
1279 pxor %xmm7,%xmm0
1280 movdqu 32(%r12),%xmm14
1281 pxor %xmm8,%xmm5
1282 movdqu %xmm15,0(%r13)
1283 movdqu %xmm0,16(%r13)
1284 movdqu %xmm5,32(%r13)
1285 jmp L$cbc_dec_done
1286.p2align 4
1287L$cbc_dec_two:
1288 movdqa %xmm14,32(%rbp)
1289 call _bsaes_decrypt8
1290 pxor 32(%rbp),%xmm15
1291 movdqu 0(%r12),%xmm7
1292 movdqu 16(%r12),%xmm14
1293 pxor %xmm7,%xmm0
1294 movdqu %xmm15,0(%r13)
1295 movdqu %xmm0,16(%r13)
1296 jmp L$cbc_dec_done
1297.p2align 4
1298L$cbc_dec_one:
1299 leaq (%r12),%rdi
1300 leaq 32(%rbp),%rsi
1301 leaq (%r15),%rdx
1302 call _asm_AES_decrypt
1303 pxor 32(%rbp),%xmm14
1304 movdqu %xmm14,(%r13)
1305 movdqa %xmm15,%xmm14
1306
1307L$cbc_dec_done:
1308 movdqu %xmm14,(%rbx)
1309 leaq (%rsp),%rax
1310 pxor %xmm0,%xmm0
1311L$cbc_dec_bzero:
1312 movdqa %xmm0,0(%rax)
1313 movdqa %xmm0,16(%rax)
1314 leaq 32(%rax),%rax
1315 cmpq %rax,%rbp
1316 ja L$cbc_dec_bzero
1317
1318 leaq 120(%rbp),%rax
1319
1320 movq -48(%rax),%r15
1321
1322 movq -40(%rax),%r14
1323
1324 movq -32(%rax),%r13
1325
1326 movq -24(%rax),%r12
1327
1328 movq -16(%rax),%rbx
1329
1330 movq -8(%rax),%rbp
1331
1332 leaq (%rax),%rsp
1333
1334L$cbc_dec_epilogue:
1335 .byte 0xf3,0xc3
1336
1337
1338
1339.globl _bsaes_ctr32_encrypt_blocks
1340
1341.p2align 4
1342_bsaes_ctr32_encrypt_blocks:
1343
1344 movq %rsp,%rax
1345L$ctr_enc_prologue:
1346 pushq %rbp
1347
1348 pushq %rbx
1349
1350 pushq %r12
1351
1352 pushq %r13
1353
1354 pushq %r14
1355
1356 pushq %r15
1357
1358 leaq -72(%rsp),%rsp
1359
1360 movq %rsp,%rbp
1361
1362 movdqu (%r8),%xmm0
1363 movl 240(%rcx),%eax
1364 movq %rdi,%r12
1365 movq %rsi,%r13
1366 movq %rdx,%r14
1367 movq %rcx,%r15
1368 movdqa %xmm0,32(%rbp)
1369 cmpq $8,%rdx
1370 jb L$ctr_enc_short
1371
1372 movl %eax,%ebx
1373 shlq $7,%rax
1374 subq $96,%rax
1375 subq %rax,%rsp
1376
1377 movq %rsp,%rax
1378 movq %r15,%rcx
1379 movl %ebx,%r10d
1380 call _bsaes_key_convert
1381 pxor %xmm6,%xmm7
1382 movdqa %xmm7,(%rax)
1383
1384 movdqa (%rsp),%xmm8
1385 leaq L$ADD1(%rip),%r11
1386 movdqa 32(%rbp),%xmm15
1387 movdqa -32(%r11),%xmm7
1388.byte 102,68,15,56,0,199
1389.byte 102,68,15,56,0,255
1390 movdqa %xmm8,(%rsp)
1391 jmp L$ctr_enc_loop
1392.p2align 4
1393L$ctr_enc_loop:
1394 movdqa %xmm15,32(%rbp)
1395 movdqa %xmm15,%xmm0
1396 movdqa %xmm15,%xmm1
1397 paddd 0(%r11),%xmm0
1398 movdqa %xmm15,%xmm2
1399 paddd 16(%r11),%xmm1
1400 movdqa %xmm15,%xmm3
1401 paddd 32(%r11),%xmm2
1402 movdqa %xmm15,%xmm4
1403 paddd 48(%r11),%xmm3
1404 movdqa %xmm15,%xmm5
1405 paddd 64(%r11),%xmm4
1406 movdqa %xmm15,%xmm6
1407 paddd 80(%r11),%xmm5
1408 paddd 96(%r11),%xmm6
1409
1410
1411
1412 movdqa (%rsp),%xmm8
1413 leaq 16(%rsp),%rax
1414 movdqa -16(%r11),%xmm7
1415 pxor %xmm8,%xmm15
1416 pxor %xmm8,%xmm0
1417 pxor %xmm8,%xmm1
1418 pxor %xmm8,%xmm2
1419.byte 102,68,15,56,0,255
1420.byte 102,15,56,0,199
1421 pxor %xmm8,%xmm3
1422 pxor %xmm8,%xmm4
1423.byte 102,15,56,0,207
1424.byte 102,15,56,0,215
1425 pxor %xmm8,%xmm5
1426 pxor %xmm8,%xmm6
1427.byte 102,15,56,0,223
1428.byte 102,15,56,0,231
1429.byte 102,15,56,0,239
1430.byte 102,15,56,0,247
1431 leaq L$BS0(%rip),%r11
1432 movl %ebx,%r10d
1433
1434 call _bsaes_encrypt8_bitslice
1435
1436 subq $8,%r14
1437 jc L$ctr_enc_loop_done
1438
1439 movdqu 0(%r12),%xmm7
1440 movdqu 16(%r12),%xmm8
1441 movdqu 32(%r12),%xmm9
1442 movdqu 48(%r12),%xmm10
1443 movdqu 64(%r12),%xmm11
1444 movdqu 80(%r12),%xmm12
1445 movdqu 96(%r12),%xmm13
1446 movdqu 112(%r12),%xmm14
1447 leaq 128(%r12),%r12
1448 pxor %xmm15,%xmm7
1449 movdqa 32(%rbp),%xmm15
1450 pxor %xmm8,%xmm0
1451 movdqu %xmm7,0(%r13)
1452 pxor %xmm9,%xmm3
1453 movdqu %xmm0,16(%r13)
1454 pxor %xmm10,%xmm5
1455 movdqu %xmm3,32(%r13)
1456 pxor %xmm11,%xmm2
1457 movdqu %xmm5,48(%r13)
1458 pxor %xmm12,%xmm6
1459 movdqu %xmm2,64(%r13)
1460 pxor %xmm13,%xmm1
1461 movdqu %xmm6,80(%r13)
1462 pxor %xmm14,%xmm4
1463 movdqu %xmm1,96(%r13)
1464 leaq L$ADD1(%rip),%r11
1465 movdqu %xmm4,112(%r13)
1466 leaq 128(%r13),%r13
1467 paddd 112(%r11),%xmm15
1468 jnz L$ctr_enc_loop
1469
1470 jmp L$ctr_enc_done
1471.p2align 4
1472L$ctr_enc_loop_done:
1473 addq $8,%r14
1474 movdqu 0(%r12),%xmm7
1475 pxor %xmm7,%xmm15
1476 movdqu %xmm15,0(%r13)
1477 cmpq $2,%r14
1478 jb L$ctr_enc_done
1479 movdqu 16(%r12),%xmm8
1480 pxor %xmm8,%xmm0
1481 movdqu %xmm0,16(%r13)
1482 je L$ctr_enc_done
1483 movdqu 32(%r12),%xmm9
1484 pxor %xmm9,%xmm3
1485 movdqu %xmm3,32(%r13)
1486 cmpq $4,%r14
1487 jb L$ctr_enc_done
1488 movdqu 48(%r12),%xmm10
1489 pxor %xmm10,%xmm5
1490 movdqu %xmm5,48(%r13)
1491 je L$ctr_enc_done
1492 movdqu 64(%r12),%xmm11
1493 pxor %xmm11,%xmm2
1494 movdqu %xmm2,64(%r13)
1495 cmpq $6,%r14
1496 jb L$ctr_enc_done
1497 movdqu 80(%r12),%xmm12
1498 pxor %xmm12,%xmm6
1499 movdqu %xmm6,80(%r13)
1500 je L$ctr_enc_done
1501 movdqu 96(%r12),%xmm13
1502 pxor %xmm13,%xmm1
1503 movdqu %xmm1,96(%r13)
1504 jmp L$ctr_enc_done
1505
1506.p2align 4
1507L$ctr_enc_short:
1508 leaq 32(%rbp),%rdi
1509 leaq 48(%rbp),%rsi
1510 leaq (%r15),%rdx
1511 call _asm_AES_encrypt
1512 movdqu (%r12),%xmm0
1513 leaq 16(%r12),%r12
1514 movl 44(%rbp),%eax
1515 bswapl %eax
1516 pxor 48(%rbp),%xmm0
1517 incl %eax
1518 movdqu %xmm0,(%r13)
1519 bswapl %eax
1520 leaq 16(%r13),%r13
1521 movl %eax,44(%rsp)
1522 decq %r14
1523 jnz L$ctr_enc_short
1524
1525L$ctr_enc_done:
1526 leaq (%rsp),%rax
1527 pxor %xmm0,%xmm0
1528L$ctr_enc_bzero:
1529 movdqa %xmm0,0(%rax)
1530 movdqa %xmm0,16(%rax)
1531 leaq 32(%rax),%rax
1532 cmpq %rax,%rbp
1533 ja L$ctr_enc_bzero
1534
1535 leaq 120(%rbp),%rax
1536
1537 movq -48(%rax),%r15
1538
1539 movq -40(%rax),%r14
1540
1541 movq -32(%rax),%r13
1542
1543 movq -24(%rax),%r12
1544
1545 movq -16(%rax),%rbx
1546
1547 movq -8(%rax),%rbp
1548
1549 leaq (%rax),%rsp
1550
1551L$ctr_enc_epilogue:
1552 .byte 0xf3,0xc3
1553
1554
1555.globl _bsaes_xts_encrypt
1556
1557.p2align 4
1558_bsaes_xts_encrypt:
1559
1560 movq %rsp,%rax
1561L$xts_enc_prologue:
1562 pushq %rbp
1563
1564 pushq %rbx
1565
1566 pushq %r12
1567
1568 pushq %r13
1569
1570 pushq %r14
1571
1572 pushq %r15
1573
1574 leaq -72(%rsp),%rsp
1575
1576 movq %rsp,%rbp
1577
1578 movq %rdi,%r12
1579 movq %rsi,%r13
1580 movq %rdx,%r14
1581 movq %rcx,%r15
1582
1583 leaq (%r9),%rdi
1584 leaq 32(%rbp),%rsi
1585 leaq (%r8),%rdx
1586 call _asm_AES_encrypt
1587
1588 movl 240(%r15),%eax
1589 movq %r14,%rbx
1590
1591 movl %eax,%edx
1592 shlq $7,%rax
1593 subq $96,%rax
1594 subq %rax,%rsp
1595
1596 movq %rsp,%rax
1597 movq %r15,%rcx
1598 movl %edx,%r10d
1599 call _bsaes_key_convert
1600 pxor %xmm6,%xmm7
1601 movdqa %xmm7,(%rax)
1602
1603 andq $-16,%r14
1604 subq $0x80,%rsp
1605 movdqa 32(%rbp),%xmm6
1606
1607 pxor %xmm14,%xmm14
1608 movdqa L$xts_magic(%rip),%xmm12
1609 pcmpgtd %xmm6,%xmm14
1610
1611 subq $0x80,%r14
1612 jc L$xts_enc_short
1613 jmp L$xts_enc_loop
1614
1615.p2align 4
1616L$xts_enc_loop:
1617 pshufd $0x13,%xmm14,%xmm13
1618 pxor %xmm14,%xmm14
1619 movdqa %xmm6,%xmm15
1620 movdqa %xmm6,0(%rsp)
1621 paddq %xmm6,%xmm6
1622 pand %xmm12,%xmm13
1623 pcmpgtd %xmm6,%xmm14
1624 pxor %xmm13,%xmm6
1625 pshufd $0x13,%xmm14,%xmm13
1626 pxor %xmm14,%xmm14
1627 movdqa %xmm6,%xmm0
1628 movdqa %xmm6,16(%rsp)
1629 paddq %xmm6,%xmm6
1630 pand %xmm12,%xmm13
1631 pcmpgtd %xmm6,%xmm14
1632 pxor %xmm13,%xmm6
1633 movdqu 0(%r12),%xmm7
1634 pshufd $0x13,%xmm14,%xmm13
1635 pxor %xmm14,%xmm14
1636 movdqa %xmm6,%xmm1
1637 movdqa %xmm6,32(%rsp)
1638 paddq %xmm6,%xmm6
1639 pand %xmm12,%xmm13
1640 pcmpgtd %xmm6,%xmm14
1641 pxor %xmm13,%xmm6
1642 movdqu 16(%r12),%xmm8
1643 pxor %xmm7,%xmm15
1644 pshufd $0x13,%xmm14,%xmm13
1645 pxor %xmm14,%xmm14
1646 movdqa %xmm6,%xmm2
1647 movdqa %xmm6,48(%rsp)
1648 paddq %xmm6,%xmm6
1649 pand %xmm12,%xmm13
1650 pcmpgtd %xmm6,%xmm14
1651 pxor %xmm13,%xmm6
1652 movdqu 32(%r12),%xmm9
1653 pxor %xmm8,%xmm0
1654 pshufd $0x13,%xmm14,%xmm13
1655 pxor %xmm14,%xmm14
1656 movdqa %xmm6,%xmm3
1657 movdqa %xmm6,64(%rsp)
1658 paddq %xmm6,%xmm6
1659 pand %xmm12,%xmm13
1660 pcmpgtd %xmm6,%xmm14
1661 pxor %xmm13,%xmm6
1662 movdqu 48(%r12),%xmm10
1663 pxor %xmm9,%xmm1
1664 pshufd $0x13,%xmm14,%xmm13
1665 pxor %xmm14,%xmm14
1666 movdqa %xmm6,%xmm4
1667 movdqa %xmm6,80(%rsp)
1668 paddq %xmm6,%xmm6
1669 pand %xmm12,%xmm13
1670 pcmpgtd %xmm6,%xmm14
1671 pxor %xmm13,%xmm6
1672 movdqu 64(%r12),%xmm11
1673 pxor %xmm10,%xmm2
1674 pshufd $0x13,%xmm14,%xmm13
1675 pxor %xmm14,%xmm14
1676 movdqa %xmm6,%xmm5
1677 movdqa %xmm6,96(%rsp)
1678 paddq %xmm6,%xmm6
1679 pand %xmm12,%xmm13
1680 pcmpgtd %xmm6,%xmm14
1681 pxor %xmm13,%xmm6
1682 movdqu 80(%r12),%xmm12
1683 pxor %xmm11,%xmm3
1684 movdqu 96(%r12),%xmm13
1685 pxor %xmm12,%xmm4
1686 movdqu 112(%r12),%xmm14
1687 leaq 128(%r12),%r12
1688 movdqa %xmm6,112(%rsp)
1689 pxor %xmm13,%xmm5
1690 leaq 128(%rsp),%rax
1691 pxor %xmm14,%xmm6
1692 movl %edx,%r10d
1693
1694 call _bsaes_encrypt8
1695
1696 pxor 0(%rsp),%xmm15
1697 pxor 16(%rsp),%xmm0
1698 movdqu %xmm15,0(%r13)
1699 pxor 32(%rsp),%xmm3
1700 movdqu %xmm0,16(%r13)
1701 pxor 48(%rsp),%xmm5
1702 movdqu %xmm3,32(%r13)
1703 pxor 64(%rsp),%xmm2
1704 movdqu %xmm5,48(%r13)
1705 pxor 80(%rsp),%xmm6
1706 movdqu %xmm2,64(%r13)
1707 pxor 96(%rsp),%xmm1
1708 movdqu %xmm6,80(%r13)
1709 pxor 112(%rsp),%xmm4
1710 movdqu %xmm1,96(%r13)
1711 movdqu %xmm4,112(%r13)
1712 leaq 128(%r13),%r13
1713
1714 movdqa 112(%rsp),%xmm6
1715 pxor %xmm14,%xmm14
1716 movdqa L$xts_magic(%rip),%xmm12
1717 pcmpgtd %xmm6,%xmm14
1718 pshufd $0x13,%xmm14,%xmm13
1719 pxor %xmm14,%xmm14
1720 paddq %xmm6,%xmm6
1721 pand %xmm12,%xmm13
1722 pcmpgtd %xmm6,%xmm14
1723 pxor %xmm13,%xmm6
1724
1725 subq $0x80,%r14
1726 jnc L$xts_enc_loop
1727
1728L$xts_enc_short:
1729 addq $0x80,%r14
1730 jz L$xts_enc_done
1731 pshufd $0x13,%xmm14,%xmm13
1732 pxor %xmm14,%xmm14
1733 movdqa %xmm6,%xmm15
1734 movdqa %xmm6,0(%rsp)
1735 paddq %xmm6,%xmm6
1736 pand %xmm12,%xmm13
1737 pcmpgtd %xmm6,%xmm14
1738 pxor %xmm13,%xmm6
1739 pshufd $0x13,%xmm14,%xmm13
1740 pxor %xmm14,%xmm14
1741 movdqa %xmm6,%xmm0
1742 movdqa %xmm6,16(%rsp)
1743 paddq %xmm6,%xmm6
1744 pand %xmm12,%xmm13
1745 pcmpgtd %xmm6,%xmm14
1746 pxor %xmm13,%xmm6
1747 movdqu 0(%r12),%xmm7
1748 cmpq $16,%r14
1749 je L$xts_enc_1
1750 pshufd $0x13,%xmm14,%xmm13
1751 pxor %xmm14,%xmm14
1752 movdqa %xmm6,%xmm1
1753 movdqa %xmm6,32(%rsp)
1754 paddq %xmm6,%xmm6
1755 pand %xmm12,%xmm13
1756 pcmpgtd %xmm6,%xmm14
1757 pxor %xmm13,%xmm6
1758 movdqu 16(%r12),%xmm8
1759 cmpq $32,%r14
1760 je L$xts_enc_2
1761 pxor %xmm7,%xmm15
1762 pshufd $0x13,%xmm14,%xmm13
1763 pxor %xmm14,%xmm14
1764 movdqa %xmm6,%xmm2
1765 movdqa %xmm6,48(%rsp)
1766 paddq %xmm6,%xmm6
1767 pand %xmm12,%xmm13
1768 pcmpgtd %xmm6,%xmm14
1769 pxor %xmm13,%xmm6
1770 movdqu 32(%r12),%xmm9
1771 cmpq $48,%r14
1772 je L$xts_enc_3
1773 pxor %xmm8,%xmm0
1774 pshufd $0x13,%xmm14,%xmm13
1775 pxor %xmm14,%xmm14
1776 movdqa %xmm6,%xmm3
1777 movdqa %xmm6,64(%rsp)
1778 paddq %xmm6,%xmm6
1779 pand %xmm12,%xmm13
1780 pcmpgtd %xmm6,%xmm14
1781 pxor %xmm13,%xmm6
1782 movdqu 48(%r12),%xmm10
1783 cmpq $64,%r14
1784 je L$xts_enc_4
1785 pxor %xmm9,%xmm1
1786 pshufd $0x13,%xmm14,%xmm13
1787 pxor %xmm14,%xmm14
1788 movdqa %xmm6,%xmm4
1789 movdqa %xmm6,80(%rsp)
1790 paddq %xmm6,%xmm6
1791 pand %xmm12,%xmm13
1792 pcmpgtd %xmm6,%xmm14
1793 pxor %xmm13,%xmm6
1794 movdqu 64(%r12),%xmm11
1795 cmpq $80,%r14
1796 je L$xts_enc_5
1797 pxor %xmm10,%xmm2
1798 pshufd $0x13,%xmm14,%xmm13
1799 pxor %xmm14,%xmm14
1800 movdqa %xmm6,%xmm5
1801 movdqa %xmm6,96(%rsp)
1802 paddq %xmm6,%xmm6
1803 pand %xmm12,%xmm13
1804 pcmpgtd %xmm6,%xmm14
1805 pxor %xmm13,%xmm6
1806 movdqu 80(%r12),%xmm12
1807 cmpq $96,%r14
1808 je L$xts_enc_6
1809 pxor %xmm11,%xmm3
1810 movdqu 96(%r12),%xmm13
1811 pxor %xmm12,%xmm4
1812 movdqa %xmm6,112(%rsp)
1813 leaq 112(%r12),%r12
1814 pxor %xmm13,%xmm5
1815 leaq 128(%rsp),%rax
1816 movl %edx,%r10d
1817
1818 call _bsaes_encrypt8
1819
1820 pxor 0(%rsp),%xmm15
1821 pxor 16(%rsp),%xmm0
1822 movdqu %xmm15,0(%r13)
1823 pxor 32(%rsp),%xmm3
1824 movdqu %xmm0,16(%r13)
1825 pxor 48(%rsp),%xmm5
1826 movdqu %xmm3,32(%r13)
1827 pxor 64(%rsp),%xmm2
1828 movdqu %xmm5,48(%r13)
1829 pxor 80(%rsp),%xmm6
1830 movdqu %xmm2,64(%r13)
1831 pxor 96(%rsp),%xmm1
1832 movdqu %xmm6,80(%r13)
1833 movdqu %xmm1,96(%r13)
1834 leaq 112(%r13),%r13
1835
1836 movdqa 112(%rsp),%xmm6
1837 jmp L$xts_enc_done
1838.p2align 4
1839L$xts_enc_6:
1840 pxor %xmm11,%xmm3
1841 leaq 96(%r12),%r12
1842 pxor %xmm12,%xmm4
1843 leaq 128(%rsp),%rax
1844 movl %edx,%r10d
1845
1846 call _bsaes_encrypt8
1847
1848 pxor 0(%rsp),%xmm15
1849 pxor 16(%rsp),%xmm0
1850 movdqu %xmm15,0(%r13)
1851 pxor 32(%rsp),%xmm3
1852 movdqu %xmm0,16(%r13)
1853 pxor 48(%rsp),%xmm5
1854 movdqu %xmm3,32(%r13)
1855 pxor 64(%rsp),%xmm2
1856 movdqu %xmm5,48(%r13)
1857 pxor 80(%rsp),%xmm6
1858 movdqu %xmm2,64(%r13)
1859 movdqu %xmm6,80(%r13)
1860 leaq 96(%r13),%r13
1861
1862 movdqa 96(%rsp),%xmm6
1863 jmp L$xts_enc_done
1864.p2align 4
1865L$xts_enc_5:
1866 pxor %xmm10,%xmm2
1867 leaq 80(%r12),%r12
1868 pxor %xmm11,%xmm3
1869 leaq 128(%rsp),%rax
1870 movl %edx,%r10d
1871
1872 call _bsaes_encrypt8
1873
1874 pxor 0(%rsp),%xmm15
1875 pxor 16(%rsp),%xmm0
1876 movdqu %xmm15,0(%r13)
1877 pxor 32(%rsp),%xmm3
1878 movdqu %xmm0,16(%r13)
1879 pxor 48(%rsp),%xmm5
1880 movdqu %xmm3,32(%r13)
1881 pxor 64(%rsp),%xmm2
1882 movdqu %xmm5,48(%r13)
1883 movdqu %xmm2,64(%r13)
1884 leaq 80(%r13),%r13
1885
1886 movdqa 80(%rsp),%xmm6
1887 jmp L$xts_enc_done
1888.p2align 4
1889L$xts_enc_4:
1890 pxor %xmm9,%xmm1
1891 leaq 64(%r12),%r12
1892 pxor %xmm10,%xmm2
1893 leaq 128(%rsp),%rax
1894 movl %edx,%r10d
1895
1896 call _bsaes_encrypt8
1897
1898 pxor 0(%rsp),%xmm15
1899 pxor 16(%rsp),%xmm0
1900 movdqu %xmm15,0(%r13)
1901 pxor 32(%rsp),%xmm3
1902 movdqu %xmm0,16(%r13)
1903 pxor 48(%rsp),%xmm5
1904 movdqu %xmm3,32(%r13)
1905 movdqu %xmm5,48(%r13)
1906 leaq 64(%r13),%r13
1907
1908 movdqa 64(%rsp),%xmm6
1909 jmp L$xts_enc_done
1910.p2align 4
1911L$xts_enc_3:
1912 pxor %xmm8,%xmm0
1913 leaq 48(%r12),%r12
1914 pxor %xmm9,%xmm1
1915 leaq 128(%rsp),%rax
1916 movl %edx,%r10d
1917
1918 call _bsaes_encrypt8
1919
1920 pxor 0(%rsp),%xmm15
1921 pxor 16(%rsp),%xmm0
1922 movdqu %xmm15,0(%r13)
1923 pxor 32(%rsp),%xmm3
1924 movdqu %xmm0,16(%r13)
1925 movdqu %xmm3,32(%r13)
1926 leaq 48(%r13),%r13
1927
1928 movdqa 48(%rsp),%xmm6
1929 jmp L$xts_enc_done
1930.p2align 4
1931L$xts_enc_2:
1932 pxor %xmm7,%xmm15
1933 leaq 32(%r12),%r12
1934 pxor %xmm8,%xmm0
1935 leaq 128(%rsp),%rax
1936 movl %edx,%r10d
1937
1938 call _bsaes_encrypt8
1939
1940 pxor 0(%rsp),%xmm15
1941 pxor 16(%rsp),%xmm0
1942 movdqu %xmm15,0(%r13)
1943 movdqu %xmm0,16(%r13)
1944 leaq 32(%r13),%r13
1945
1946 movdqa 32(%rsp),%xmm6
1947 jmp L$xts_enc_done
1948.p2align 4
1949L$xts_enc_1:
1950 pxor %xmm15,%xmm7
1951 leaq 16(%r12),%r12
1952 movdqa %xmm7,32(%rbp)
1953 leaq 32(%rbp),%rdi
1954 leaq 32(%rbp),%rsi
1955 leaq (%r15),%rdx
1956 call _asm_AES_encrypt
1957 pxor 32(%rbp),%xmm15
1958
1959
1960
1961
1962
1963 movdqu %xmm15,0(%r13)
1964 leaq 16(%r13),%r13
1965
1966 movdqa 16(%rsp),%xmm6
1967
1968L$xts_enc_done:
1969 andl $15,%ebx
1970 jz L$xts_enc_ret
1971 movq %r13,%rdx
1972
1973L$xts_enc_steal:
1974 movzbl (%r12),%eax
1975 movzbl -16(%rdx),%ecx
1976 leaq 1(%r12),%r12
1977 movb %al,-16(%rdx)
1978 movb %cl,0(%rdx)
1979 leaq 1(%rdx),%rdx
1980 subl $1,%ebx
1981 jnz L$xts_enc_steal
1982
1983 movdqu -16(%r13),%xmm15
1984 leaq 32(%rbp),%rdi
1985 pxor %xmm6,%xmm15
1986 leaq 32(%rbp),%rsi
1987 movdqa %xmm15,32(%rbp)
1988 leaq (%r15),%rdx
1989 call _asm_AES_encrypt
1990 pxor 32(%rbp),%xmm6
1991 movdqu %xmm6,-16(%r13)
1992
1993L$xts_enc_ret:
1994 leaq (%rsp),%rax
1995 pxor %xmm0,%xmm0
1996L$xts_enc_bzero:
1997 movdqa %xmm0,0(%rax)
1998 movdqa %xmm0,16(%rax)
1999 leaq 32(%rax),%rax
2000 cmpq %rax,%rbp
2001 ja L$xts_enc_bzero
2002
2003 leaq 120(%rbp),%rax
2004
2005 movq -48(%rax),%r15
2006
2007 movq -40(%rax),%r14
2008
2009 movq -32(%rax),%r13
2010
2011 movq -24(%rax),%r12
2012
2013 movq -16(%rax),%rbx
2014
2015 movq -8(%rax),%rbp
2016
2017 leaq (%rax),%rsp
2018
2019L$xts_enc_epilogue:
2020 .byte 0xf3,0xc3
2021
2022
2023
2024.globl _bsaes_xts_decrypt
2025
2026.p2align 4
2027_bsaes_xts_decrypt:
2028
2029 movq %rsp,%rax
2030L$xts_dec_prologue:
2031 pushq %rbp
2032
2033 pushq %rbx
2034
2035 pushq %r12
2036
2037 pushq %r13
2038
2039 pushq %r14
2040
2041 pushq %r15
2042
2043 leaq -72(%rsp),%rsp
2044
2045 movq %rsp,%rbp
2046 movq %rdi,%r12
2047 movq %rsi,%r13
2048 movq %rdx,%r14
2049 movq %rcx,%r15
2050
2051 leaq (%r9),%rdi
2052 leaq 32(%rbp),%rsi
2053 leaq (%r8),%rdx
2054 call _asm_AES_encrypt
2055
2056 movl 240(%r15),%eax
2057 movq %r14,%rbx
2058
2059 movl %eax,%edx
2060 shlq $7,%rax
2061 subq $96,%rax
2062 subq %rax,%rsp
2063
2064 movq %rsp,%rax
2065 movq %r15,%rcx
2066 movl %edx,%r10d
2067 call _bsaes_key_convert
2068 pxor (%rsp),%xmm7
2069 movdqa %xmm6,(%rax)
2070 movdqa %xmm7,(%rsp)
2071
2072 xorl %eax,%eax
2073 andq $-16,%r14
2074 testl $15,%ebx
2075 setnz %al
2076 shlq $4,%rax
2077 subq %rax,%r14
2078
2079 subq $0x80,%rsp
2080 movdqa 32(%rbp),%xmm6
2081
2082 pxor %xmm14,%xmm14
2083 movdqa L$xts_magic(%rip),%xmm12
2084 pcmpgtd %xmm6,%xmm14
2085
2086 subq $0x80,%r14
2087 jc L$xts_dec_short
2088 jmp L$xts_dec_loop
2089
2090.p2align 4
2091L$xts_dec_loop:
2092 pshufd $0x13,%xmm14,%xmm13
2093 pxor %xmm14,%xmm14
2094 movdqa %xmm6,%xmm15
2095 movdqa %xmm6,0(%rsp)
2096 paddq %xmm6,%xmm6
2097 pand %xmm12,%xmm13
2098 pcmpgtd %xmm6,%xmm14
2099 pxor %xmm13,%xmm6
2100 pshufd $0x13,%xmm14,%xmm13
2101 pxor %xmm14,%xmm14
2102 movdqa %xmm6,%xmm0
2103 movdqa %xmm6,16(%rsp)
2104 paddq %xmm6,%xmm6
2105 pand %xmm12,%xmm13
2106 pcmpgtd %xmm6,%xmm14
2107 pxor %xmm13,%xmm6
2108 movdqu 0(%r12),%xmm7
2109 pshufd $0x13,%xmm14,%xmm13
2110 pxor %xmm14,%xmm14
2111 movdqa %xmm6,%xmm1
2112 movdqa %xmm6,32(%rsp)
2113 paddq %xmm6,%xmm6
2114 pand %xmm12,%xmm13
2115 pcmpgtd %xmm6,%xmm14
2116 pxor %xmm13,%xmm6
2117 movdqu 16(%r12),%xmm8
2118 pxor %xmm7,%xmm15
2119 pshufd $0x13,%xmm14,%xmm13
2120 pxor %xmm14,%xmm14
2121 movdqa %xmm6,%xmm2
2122 movdqa %xmm6,48(%rsp)
2123 paddq %xmm6,%xmm6
2124 pand %xmm12,%xmm13
2125 pcmpgtd %xmm6,%xmm14
2126 pxor %xmm13,%xmm6
2127 movdqu 32(%r12),%xmm9
2128 pxor %xmm8,%xmm0
2129 pshufd $0x13,%xmm14,%xmm13
2130 pxor %xmm14,%xmm14
2131 movdqa %xmm6,%xmm3
2132 movdqa %xmm6,64(%rsp)
2133 paddq %xmm6,%xmm6
2134 pand %xmm12,%xmm13
2135 pcmpgtd %xmm6,%xmm14
2136 pxor %xmm13,%xmm6
2137 movdqu 48(%r12),%xmm10
2138 pxor %xmm9,%xmm1
2139 pshufd $0x13,%xmm14,%xmm13
2140 pxor %xmm14,%xmm14
2141 movdqa %xmm6,%xmm4
2142 movdqa %xmm6,80(%rsp)
2143 paddq %xmm6,%xmm6
2144 pand %xmm12,%xmm13
2145 pcmpgtd %xmm6,%xmm14
2146 pxor %xmm13,%xmm6
2147 movdqu 64(%r12),%xmm11
2148 pxor %xmm10,%xmm2
2149 pshufd $0x13,%xmm14,%xmm13
2150 pxor %xmm14,%xmm14
2151 movdqa %xmm6,%xmm5
2152 movdqa %xmm6,96(%rsp)
2153 paddq %xmm6,%xmm6
2154 pand %xmm12,%xmm13
2155 pcmpgtd %xmm6,%xmm14
2156 pxor %xmm13,%xmm6
2157 movdqu 80(%r12),%xmm12
2158 pxor %xmm11,%xmm3
2159 movdqu 96(%r12),%xmm13
2160 pxor %xmm12,%xmm4
2161 movdqu 112(%r12),%xmm14
2162 leaq 128(%r12),%r12
2163 movdqa %xmm6,112(%rsp)
2164 pxor %xmm13,%xmm5
2165 leaq 128(%rsp),%rax
2166 pxor %xmm14,%xmm6
2167 movl %edx,%r10d
2168
2169 call _bsaes_decrypt8
2170
2171 pxor 0(%rsp),%xmm15
2172 pxor 16(%rsp),%xmm0
2173 movdqu %xmm15,0(%r13)
2174 pxor 32(%rsp),%xmm5
2175 movdqu %xmm0,16(%r13)
2176 pxor 48(%rsp),%xmm3
2177 movdqu %xmm5,32(%r13)
2178 pxor 64(%rsp),%xmm1
2179 movdqu %xmm3,48(%r13)
2180 pxor 80(%rsp),%xmm6
2181 movdqu %xmm1,64(%r13)
2182 pxor 96(%rsp),%xmm2
2183 movdqu %xmm6,80(%r13)
2184 pxor 112(%rsp),%xmm4
2185 movdqu %xmm2,96(%r13)
2186 movdqu %xmm4,112(%r13)
2187 leaq 128(%r13),%r13
2188
2189 movdqa 112(%rsp),%xmm6
2190 pxor %xmm14,%xmm14
2191 movdqa L$xts_magic(%rip),%xmm12
2192 pcmpgtd %xmm6,%xmm14
2193 pshufd $0x13,%xmm14,%xmm13
2194 pxor %xmm14,%xmm14
2195 paddq %xmm6,%xmm6
2196 pand %xmm12,%xmm13
2197 pcmpgtd %xmm6,%xmm14
2198 pxor %xmm13,%xmm6
2199
2200 subq $0x80,%r14
2201 jnc L$xts_dec_loop
2202
2203L$xts_dec_short:
2204 addq $0x80,%r14
2205 jz L$xts_dec_done
2206 pshufd $0x13,%xmm14,%xmm13
2207 pxor %xmm14,%xmm14
2208 movdqa %xmm6,%xmm15
2209 movdqa %xmm6,0(%rsp)
2210 paddq %xmm6,%xmm6
2211 pand %xmm12,%xmm13
2212 pcmpgtd %xmm6,%xmm14
2213 pxor %xmm13,%xmm6
2214 pshufd $0x13,%xmm14,%xmm13
2215 pxor %xmm14,%xmm14
2216 movdqa %xmm6,%xmm0
2217 movdqa %xmm6,16(%rsp)
2218 paddq %xmm6,%xmm6
2219 pand %xmm12,%xmm13
2220 pcmpgtd %xmm6,%xmm14
2221 pxor %xmm13,%xmm6
2222 movdqu 0(%r12),%xmm7
2223 cmpq $16,%r14
2224 je L$xts_dec_1
2225 pshufd $0x13,%xmm14,%xmm13
2226 pxor %xmm14,%xmm14
2227 movdqa %xmm6,%xmm1
2228 movdqa %xmm6,32(%rsp)
2229 paddq %xmm6,%xmm6
2230 pand %xmm12,%xmm13
2231 pcmpgtd %xmm6,%xmm14
2232 pxor %xmm13,%xmm6
2233 movdqu 16(%r12),%xmm8
2234 cmpq $32,%r14
2235 je L$xts_dec_2
2236 pxor %xmm7,%xmm15
2237 pshufd $0x13,%xmm14,%xmm13
2238 pxor %xmm14,%xmm14
2239 movdqa %xmm6,%xmm2
2240 movdqa %xmm6,48(%rsp)
2241 paddq %xmm6,%xmm6
2242 pand %xmm12,%xmm13
2243 pcmpgtd %xmm6,%xmm14
2244 pxor %xmm13,%xmm6
2245 movdqu 32(%r12),%xmm9
2246 cmpq $48,%r14
2247 je L$xts_dec_3
2248 pxor %xmm8,%xmm0
2249 pshufd $0x13,%xmm14,%xmm13
2250 pxor %xmm14,%xmm14
2251 movdqa %xmm6,%xmm3
2252 movdqa %xmm6,64(%rsp)
2253 paddq %xmm6,%xmm6
2254 pand %xmm12,%xmm13
2255 pcmpgtd %xmm6,%xmm14
2256 pxor %xmm13,%xmm6
2257 movdqu 48(%r12),%xmm10
2258 cmpq $64,%r14
2259 je L$xts_dec_4
2260 pxor %xmm9,%xmm1
2261 pshufd $0x13,%xmm14,%xmm13
2262 pxor %xmm14,%xmm14
2263 movdqa %xmm6,%xmm4
2264 movdqa %xmm6,80(%rsp)
2265 paddq %xmm6,%xmm6
2266 pand %xmm12,%xmm13
2267 pcmpgtd %xmm6,%xmm14
2268 pxor %xmm13,%xmm6
2269 movdqu 64(%r12),%xmm11
2270 cmpq $80,%r14
2271 je L$xts_dec_5
2272 pxor %xmm10,%xmm2
2273 pshufd $0x13,%xmm14,%xmm13
2274 pxor %xmm14,%xmm14
2275 movdqa %xmm6,%xmm5
2276 movdqa %xmm6,96(%rsp)
2277 paddq %xmm6,%xmm6
2278 pand %xmm12,%xmm13
2279 pcmpgtd %xmm6,%xmm14
2280 pxor %xmm13,%xmm6
2281 movdqu 80(%r12),%xmm12
2282 cmpq $96,%r14
2283 je L$xts_dec_6
2284 pxor %xmm11,%xmm3
2285 movdqu 96(%r12),%xmm13
2286 pxor %xmm12,%xmm4
2287 movdqa %xmm6,112(%rsp)
2288 leaq 112(%r12),%r12
2289 pxor %xmm13,%xmm5
2290 leaq 128(%rsp),%rax
2291 movl %edx,%r10d
2292
2293 call _bsaes_decrypt8
2294
2295 pxor 0(%rsp),%xmm15
2296 pxor 16(%rsp),%xmm0
2297 movdqu %xmm15,0(%r13)
2298 pxor 32(%rsp),%xmm5
2299 movdqu %xmm0,16(%r13)
2300 pxor 48(%rsp),%xmm3
2301 movdqu %xmm5,32(%r13)
2302 pxor 64(%rsp),%xmm1
2303 movdqu %xmm3,48(%r13)
2304 pxor 80(%rsp),%xmm6
2305 movdqu %xmm1,64(%r13)
2306 pxor 96(%rsp),%xmm2
2307 movdqu %xmm6,80(%r13)
2308 movdqu %xmm2,96(%r13)
2309 leaq 112(%r13),%r13
2310
2311 movdqa 112(%rsp),%xmm6
2312 jmp L$xts_dec_done
2313.p2align 4
2314L$xts_dec_6:
2315 pxor %xmm11,%xmm3
2316 leaq 96(%r12),%r12
2317 pxor %xmm12,%xmm4
2318 leaq 128(%rsp),%rax
2319 movl %edx,%r10d
2320
2321 call _bsaes_decrypt8
2322
2323 pxor 0(%rsp),%xmm15
2324 pxor 16(%rsp),%xmm0
2325 movdqu %xmm15,0(%r13)
2326 pxor 32(%rsp),%xmm5
2327 movdqu %xmm0,16(%r13)
2328 pxor 48(%rsp),%xmm3
2329 movdqu %xmm5,32(%r13)
2330 pxor 64(%rsp),%xmm1
2331 movdqu %xmm3,48(%r13)
2332 pxor 80(%rsp),%xmm6
2333 movdqu %xmm1,64(%r13)
2334 movdqu %xmm6,80(%r13)
2335 leaq 96(%r13),%r13
2336
2337 movdqa 96(%rsp),%xmm6
2338 jmp L$xts_dec_done
2339.p2align 4
2340L$xts_dec_5:
2341 pxor %xmm10,%xmm2
2342 leaq 80(%r12),%r12
2343 pxor %xmm11,%xmm3
2344 leaq 128(%rsp),%rax
2345 movl %edx,%r10d
2346
2347 call _bsaes_decrypt8
2348
2349 pxor 0(%rsp),%xmm15
2350 pxor 16(%rsp),%xmm0
2351 movdqu %xmm15,0(%r13)
2352 pxor 32(%rsp),%xmm5
2353 movdqu %xmm0,16(%r13)
2354 pxor 48(%rsp),%xmm3
2355 movdqu %xmm5,32(%r13)
2356 pxor 64(%rsp),%xmm1
2357 movdqu %xmm3,48(%r13)
2358 movdqu %xmm1,64(%r13)
2359 leaq 80(%r13),%r13
2360
2361 movdqa 80(%rsp),%xmm6
2362 jmp L$xts_dec_done
2363.p2align 4
2364L$xts_dec_4:
2365 pxor %xmm9,%xmm1
2366 leaq 64(%r12),%r12
2367 pxor %xmm10,%xmm2
2368 leaq 128(%rsp),%rax
2369 movl %edx,%r10d
2370
2371 call _bsaes_decrypt8
2372
2373 pxor 0(%rsp),%xmm15
2374 pxor 16(%rsp),%xmm0
2375 movdqu %xmm15,0(%r13)
2376 pxor 32(%rsp),%xmm5
2377 movdqu %xmm0,16(%r13)
2378 pxor 48(%rsp),%xmm3
2379 movdqu %xmm5,32(%r13)
2380 movdqu %xmm3,48(%r13)
2381 leaq 64(%r13),%r13
2382
2383 movdqa 64(%rsp),%xmm6
2384 jmp L$xts_dec_done
2385.p2align 4
2386L$xts_dec_3:
2387 pxor %xmm8,%xmm0
2388 leaq 48(%r12),%r12
2389 pxor %xmm9,%xmm1
2390 leaq 128(%rsp),%rax
2391 movl %edx,%r10d
2392
2393 call _bsaes_decrypt8
2394
2395 pxor 0(%rsp),%xmm15
2396 pxor 16(%rsp),%xmm0
2397 movdqu %xmm15,0(%r13)
2398 pxor 32(%rsp),%xmm5
2399 movdqu %xmm0,16(%r13)
2400 movdqu %xmm5,32(%r13)
2401 leaq 48(%r13),%r13
2402
2403 movdqa 48(%rsp),%xmm6
2404 jmp L$xts_dec_done
2405.p2align 4
2406L$xts_dec_2:
2407 pxor %xmm7,%xmm15
2408 leaq 32(%r12),%r12
2409 pxor %xmm8,%xmm0
2410 leaq 128(%rsp),%rax
2411 movl %edx,%r10d
2412
2413 call _bsaes_decrypt8
2414
2415 pxor 0(%rsp),%xmm15
2416 pxor 16(%rsp),%xmm0
2417 movdqu %xmm15,0(%r13)
2418 movdqu %xmm0,16(%r13)
2419 leaq 32(%r13),%r13
2420
2421 movdqa 32(%rsp),%xmm6
2422 jmp L$xts_dec_done
2423.p2align 4
2424L$xts_dec_1:
2425 pxor %xmm15,%xmm7
2426 leaq 16(%r12),%r12
2427 movdqa %xmm7,32(%rbp)
2428 leaq 32(%rbp),%rdi
2429 leaq 32(%rbp),%rsi
2430 leaq (%r15),%rdx
2431 call _asm_AES_decrypt
2432 pxor 32(%rbp),%xmm15
2433
2434
2435
2436
2437
2438 movdqu %xmm15,0(%r13)
2439 leaq 16(%r13),%r13
2440
2441 movdqa 16(%rsp),%xmm6
2442
2443L$xts_dec_done:
2444 andl $15,%ebx
2445 jz L$xts_dec_ret
2446
2447 pxor %xmm14,%xmm14
2448 movdqa L$xts_magic(%rip),%xmm12
2449 pcmpgtd %xmm6,%xmm14
2450 pshufd $0x13,%xmm14,%xmm13
2451 movdqa %xmm6,%xmm5
2452 paddq %xmm6,%xmm6
2453 pand %xmm12,%xmm13
2454 movdqu (%r12),%xmm15
2455 pxor %xmm13,%xmm6
2456
2457 leaq 32(%rbp),%rdi
2458 pxor %xmm6,%xmm15
2459 leaq 32(%rbp),%rsi
2460 movdqa %xmm15,32(%rbp)
2461 leaq (%r15),%rdx
2462 call _asm_AES_decrypt
2463 pxor 32(%rbp),%xmm6
2464 movq %r13,%rdx
2465 movdqu %xmm6,(%r13)
2466
2467L$xts_dec_steal:
2468 movzbl 16(%r12),%eax
2469 movzbl (%rdx),%ecx
2470 leaq 1(%r12),%r12
2471 movb %al,(%rdx)
2472 movb %cl,16(%rdx)
2473 leaq 1(%rdx),%rdx
2474 subl $1,%ebx
2475 jnz L$xts_dec_steal
2476
2477 movdqu (%r13),%xmm15
2478 leaq 32(%rbp),%rdi
2479 pxor %xmm5,%xmm15
2480 leaq 32(%rbp),%rsi
2481 movdqa %xmm15,32(%rbp)
2482 leaq (%r15),%rdx
2483 call _asm_AES_decrypt
2484 pxor 32(%rbp),%xmm5
2485 movdqu %xmm5,(%r13)
2486
2487L$xts_dec_ret:
2488 leaq (%rsp),%rax
2489 pxor %xmm0,%xmm0
2490L$xts_dec_bzero:
2491 movdqa %xmm0,0(%rax)
2492 movdqa %xmm0,16(%rax)
2493 leaq 32(%rax),%rax
2494 cmpq %rax,%rbp
2495 ja L$xts_dec_bzero
2496
2497 leaq 120(%rbp),%rax
2498
2499 movq -48(%rax),%r15
2500
2501 movq -40(%rax),%r14
2502
2503 movq -32(%rax),%r13
2504
2505 movq -24(%rax),%r12
2506
2507 movq -16(%rax),%rbx
2508
2509 movq -8(%rax),%rbp
2510
2511 leaq (%rax),%rsp
2512
2513L$xts_dec_epilogue:
2514 .byte 0xf3,0xc3
2515
2516
2517
2518.p2align 6
2519_bsaes_const:
2520L$M0ISR:
2521.quad 0x0a0e0206070b0f03, 0x0004080c0d010509
2522L$ISRM0:
2523.quad 0x01040b0e0205080f, 0x0306090c00070a0d
2524L$ISR:
2525.quad 0x0504070602010003, 0x0f0e0d0c080b0a09
2526L$BS0:
2527.quad 0x5555555555555555, 0x5555555555555555
2528L$BS1:
2529.quad 0x3333333333333333, 0x3333333333333333
2530L$BS2:
2531.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
2532L$SR:
2533.quad 0x0504070600030201, 0x0f0e0d0c0a09080b
2534L$SRM0:
2535.quad 0x0304090e00050a0f, 0x01060b0c0207080d
2536L$M0SR:
2537.quad 0x0a0e02060f03070b, 0x0004080c05090d01
2538L$SWPUP:
2539.quad 0x0706050403020100, 0x0c0d0e0f0b0a0908
2540L$SWPUPM0SR:
2541.quad 0x0a0d02060c03070b, 0x0004080f05090e01
2542L$ADD1:
2543.quad 0x0000000000000000, 0x0000000100000000
2544L$ADD2:
2545.quad 0x0000000000000000, 0x0000000200000000
2546L$ADD3:
2547.quad 0x0000000000000000, 0x0000000300000000
2548L$ADD4:
2549.quad 0x0000000000000000, 0x0000000400000000
2550L$ADD5:
2551.quad 0x0000000000000000, 0x0000000500000000
2552L$ADD6:
2553.quad 0x0000000000000000, 0x0000000600000000
2554L$ADD7:
2555.quad 0x0000000000000000, 0x0000000700000000
2556L$ADD8:
2557.quad 0x0000000000000000, 0x0000000800000000
2558L$xts_magic:
2559.long 0x87,0,1,0
2560L$masks:
2561.quad 0x0101010101010101, 0x0101010101010101
2562.quad 0x0202020202020202, 0x0202020202020202
2563.quad 0x0404040404040404, 0x0404040404040404
2564.quad 0x0808080808080808, 0x0808080808080808
2565L$M0:
2566.quad 0x02060a0e03070b0f, 0x0004080c0105090d
2567L$63:
2568.quad 0x6363636363636363, 0x6363636363636363
2569.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0
2570.p2align 6
2571
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette