VirtualBox

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

Last change on this file since 107935 was 94083, checked in by vboxsync, 3 years ago

libs/openssl-3.0.1: Recreate asm files, bugref:10128

File size: 45.2 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 _ossl_bsaes_cbc_encrypt
1073
1074.p2align 4
1075_ossl_bsaes_cbc_encrypt:
1076
1077.byte 243,15,30,250
1078 cmpl $0,%r9d
1079 jne _asm_AES_cbc_encrypt
1080 cmpq $128,%rdx
1081 jb _asm_AES_cbc_encrypt
1082
1083 movq %rsp,%rax
1084L$cbc_dec_prologue:
1085 pushq %rbp
1086
1087 pushq %rbx
1088
1089 pushq %r12
1090
1091 pushq %r13
1092
1093 pushq %r14
1094
1095 pushq %r15
1096
1097 leaq -72(%rsp),%rsp
1098
1099 movq %rsp,%rbp
1100
1101 movl 240(%rcx),%eax
1102 movq %rdi,%r12
1103 movq %rsi,%r13
1104 movq %rdx,%r14
1105 movq %rcx,%r15
1106 movq %r8,%rbx
1107 shrq $4,%r14
1108
1109 movl %eax,%edx
1110 shlq $7,%rax
1111 subq $96,%rax
1112 subq %rax,%rsp
1113
1114 movq %rsp,%rax
1115 movq %r15,%rcx
1116 movl %edx,%r10d
1117 call _bsaes_key_convert
1118 pxor (%rsp),%xmm7
1119 movdqa %xmm6,(%rax)
1120 movdqa %xmm7,(%rsp)
1121
1122 movdqu (%rbx),%xmm14
1123 subq $8,%r14
1124L$cbc_dec_loop:
1125 movdqu 0(%r12),%xmm15
1126 movdqu 16(%r12),%xmm0
1127 movdqu 32(%r12),%xmm1
1128 movdqu 48(%r12),%xmm2
1129 movdqu 64(%r12),%xmm3
1130 movdqu 80(%r12),%xmm4
1131 movq %rsp,%rax
1132 movdqu 96(%r12),%xmm5
1133 movl %edx,%r10d
1134 movdqu 112(%r12),%xmm6
1135 movdqa %xmm14,32(%rbp)
1136
1137 call _bsaes_decrypt8
1138
1139 pxor 32(%rbp),%xmm15
1140 movdqu 0(%r12),%xmm7
1141 movdqu 16(%r12),%xmm8
1142 pxor %xmm7,%xmm0
1143 movdqu 32(%r12),%xmm9
1144 pxor %xmm8,%xmm5
1145 movdqu 48(%r12),%xmm10
1146 pxor %xmm9,%xmm3
1147 movdqu 64(%r12),%xmm11
1148 pxor %xmm10,%xmm1
1149 movdqu 80(%r12),%xmm12
1150 pxor %xmm11,%xmm6
1151 movdqu 96(%r12),%xmm13
1152 pxor %xmm12,%xmm2
1153 movdqu 112(%r12),%xmm14
1154 pxor %xmm13,%xmm4
1155 movdqu %xmm15,0(%r13)
1156 leaq 128(%r12),%r12
1157 movdqu %xmm0,16(%r13)
1158 movdqu %xmm5,32(%r13)
1159 movdqu %xmm3,48(%r13)
1160 movdqu %xmm1,64(%r13)
1161 movdqu %xmm6,80(%r13)
1162 movdqu %xmm2,96(%r13)
1163 movdqu %xmm4,112(%r13)
1164 leaq 128(%r13),%r13
1165 subq $8,%r14
1166 jnc L$cbc_dec_loop
1167
1168 addq $8,%r14
1169 jz L$cbc_dec_done
1170
1171 movdqu 0(%r12),%xmm15
1172 movq %rsp,%rax
1173 movl %edx,%r10d
1174 cmpq $2,%r14
1175 jb L$cbc_dec_one
1176 movdqu 16(%r12),%xmm0
1177 je L$cbc_dec_two
1178 movdqu 32(%r12),%xmm1
1179 cmpq $4,%r14
1180 jb L$cbc_dec_three
1181 movdqu 48(%r12),%xmm2
1182 je L$cbc_dec_four
1183 movdqu 64(%r12),%xmm3
1184 cmpq $6,%r14
1185 jb L$cbc_dec_five
1186 movdqu 80(%r12),%xmm4
1187 je L$cbc_dec_six
1188 movdqu 96(%r12),%xmm5
1189 movdqa %xmm14,32(%rbp)
1190 call _bsaes_decrypt8
1191 pxor 32(%rbp),%xmm15
1192 movdqu 0(%r12),%xmm7
1193 movdqu 16(%r12),%xmm8
1194 pxor %xmm7,%xmm0
1195 movdqu 32(%r12),%xmm9
1196 pxor %xmm8,%xmm5
1197 movdqu 48(%r12),%xmm10
1198 pxor %xmm9,%xmm3
1199 movdqu 64(%r12),%xmm11
1200 pxor %xmm10,%xmm1
1201 movdqu 80(%r12),%xmm12
1202 pxor %xmm11,%xmm6
1203 movdqu 96(%r12),%xmm14
1204 pxor %xmm12,%xmm2
1205 movdqu %xmm15,0(%r13)
1206 movdqu %xmm0,16(%r13)
1207 movdqu %xmm5,32(%r13)
1208 movdqu %xmm3,48(%r13)
1209 movdqu %xmm1,64(%r13)
1210 movdqu %xmm6,80(%r13)
1211 movdqu %xmm2,96(%r13)
1212 jmp L$cbc_dec_done
1213.p2align 4
1214L$cbc_dec_six:
1215 movdqa %xmm14,32(%rbp)
1216 call _bsaes_decrypt8
1217 pxor 32(%rbp),%xmm15
1218 movdqu 0(%r12),%xmm7
1219 movdqu 16(%r12),%xmm8
1220 pxor %xmm7,%xmm0
1221 movdqu 32(%r12),%xmm9
1222 pxor %xmm8,%xmm5
1223 movdqu 48(%r12),%xmm10
1224 pxor %xmm9,%xmm3
1225 movdqu 64(%r12),%xmm11
1226 pxor %xmm10,%xmm1
1227 movdqu 80(%r12),%xmm14
1228 pxor %xmm11,%xmm6
1229 movdqu %xmm15,0(%r13)
1230 movdqu %xmm0,16(%r13)
1231 movdqu %xmm5,32(%r13)
1232 movdqu %xmm3,48(%r13)
1233 movdqu %xmm1,64(%r13)
1234 movdqu %xmm6,80(%r13)
1235 jmp L$cbc_dec_done
1236.p2align 4
1237L$cbc_dec_five:
1238 movdqa %xmm14,32(%rbp)
1239 call _bsaes_decrypt8
1240 pxor 32(%rbp),%xmm15
1241 movdqu 0(%r12),%xmm7
1242 movdqu 16(%r12),%xmm8
1243 pxor %xmm7,%xmm0
1244 movdqu 32(%r12),%xmm9
1245 pxor %xmm8,%xmm5
1246 movdqu 48(%r12),%xmm10
1247 pxor %xmm9,%xmm3
1248 movdqu 64(%r12),%xmm14
1249 pxor %xmm10,%xmm1
1250 movdqu %xmm15,0(%r13)
1251 movdqu %xmm0,16(%r13)
1252 movdqu %xmm5,32(%r13)
1253 movdqu %xmm3,48(%r13)
1254 movdqu %xmm1,64(%r13)
1255 jmp L$cbc_dec_done
1256.p2align 4
1257L$cbc_dec_four:
1258 movdqa %xmm14,32(%rbp)
1259 call _bsaes_decrypt8
1260 pxor 32(%rbp),%xmm15
1261 movdqu 0(%r12),%xmm7
1262 movdqu 16(%r12),%xmm8
1263 pxor %xmm7,%xmm0
1264 movdqu 32(%r12),%xmm9
1265 pxor %xmm8,%xmm5
1266 movdqu 48(%r12),%xmm14
1267 pxor %xmm9,%xmm3
1268 movdqu %xmm15,0(%r13)
1269 movdqu %xmm0,16(%r13)
1270 movdqu %xmm5,32(%r13)
1271 movdqu %xmm3,48(%r13)
1272 jmp L$cbc_dec_done
1273.p2align 4
1274L$cbc_dec_three:
1275 movdqa %xmm14,32(%rbp)
1276 call _bsaes_decrypt8
1277 pxor 32(%rbp),%xmm15
1278 movdqu 0(%r12),%xmm7
1279 movdqu 16(%r12),%xmm8
1280 pxor %xmm7,%xmm0
1281 movdqu 32(%r12),%xmm14
1282 pxor %xmm8,%xmm5
1283 movdqu %xmm15,0(%r13)
1284 movdqu %xmm0,16(%r13)
1285 movdqu %xmm5,32(%r13)
1286 jmp L$cbc_dec_done
1287.p2align 4
1288L$cbc_dec_two:
1289 movdqa %xmm14,32(%rbp)
1290 call _bsaes_decrypt8
1291 pxor 32(%rbp),%xmm15
1292 movdqu 0(%r12),%xmm7
1293 movdqu 16(%r12),%xmm14
1294 pxor %xmm7,%xmm0
1295 movdqu %xmm15,0(%r13)
1296 movdqu %xmm0,16(%r13)
1297 jmp L$cbc_dec_done
1298.p2align 4
1299L$cbc_dec_one:
1300 leaq (%r12),%rdi
1301 leaq 32(%rbp),%rsi
1302 leaq (%r15),%rdx
1303 call _asm_AES_decrypt
1304 pxor 32(%rbp),%xmm14
1305 movdqu %xmm14,(%r13)
1306 movdqa %xmm15,%xmm14
1307
1308L$cbc_dec_done:
1309 movdqu %xmm14,(%rbx)
1310 leaq (%rsp),%rax
1311 pxor %xmm0,%xmm0
1312L$cbc_dec_bzero:
1313 movdqa %xmm0,0(%rax)
1314 movdqa %xmm0,16(%rax)
1315 leaq 32(%rax),%rax
1316 cmpq %rax,%rbp
1317 ja L$cbc_dec_bzero
1318
1319 leaq 120(%rbp),%rax
1320
1321 movq -48(%rax),%r15
1322
1323 movq -40(%rax),%r14
1324
1325 movq -32(%rax),%r13
1326
1327 movq -24(%rax),%r12
1328
1329 movq -16(%rax),%rbx
1330
1331 movq -8(%rax),%rbp
1332
1333 leaq (%rax),%rsp
1334
1335L$cbc_dec_epilogue:
1336 .byte 0xf3,0xc3
1337
1338
1339
1340.globl _ossl_bsaes_ctr32_encrypt_blocks
1341
1342.p2align 4
1343_ossl_bsaes_ctr32_encrypt_blocks:
1344
1345.byte 243,15,30,250
1346 movq %rsp,%rax
1347L$ctr_enc_prologue:
1348 pushq %rbp
1349
1350 pushq %rbx
1351
1352 pushq %r12
1353
1354 pushq %r13
1355
1356 pushq %r14
1357
1358 pushq %r15
1359
1360 leaq -72(%rsp),%rsp
1361
1362 movq %rsp,%rbp
1363
1364 movdqu (%r8),%xmm0
1365 movl 240(%rcx),%eax
1366 movq %rdi,%r12
1367 movq %rsi,%r13
1368 movq %rdx,%r14
1369 movq %rcx,%r15
1370 movdqa %xmm0,32(%rbp)
1371 cmpq $8,%rdx
1372 jb L$ctr_enc_short
1373
1374 movl %eax,%ebx
1375 shlq $7,%rax
1376 subq $96,%rax
1377 subq %rax,%rsp
1378
1379 movq %rsp,%rax
1380 movq %r15,%rcx
1381 movl %ebx,%r10d
1382 call _bsaes_key_convert
1383 pxor %xmm6,%xmm7
1384 movdqa %xmm7,(%rax)
1385
1386 movdqa (%rsp),%xmm8
1387 leaq L$ADD1(%rip),%r11
1388 movdqa 32(%rbp),%xmm15
1389 movdqa -32(%r11),%xmm7
1390.byte 102,68,15,56,0,199
1391.byte 102,68,15,56,0,255
1392 movdqa %xmm8,(%rsp)
1393 jmp L$ctr_enc_loop
1394.p2align 4
1395L$ctr_enc_loop:
1396 movdqa %xmm15,32(%rbp)
1397 movdqa %xmm15,%xmm0
1398 movdqa %xmm15,%xmm1
1399 paddd 0(%r11),%xmm0
1400 movdqa %xmm15,%xmm2
1401 paddd 16(%r11),%xmm1
1402 movdqa %xmm15,%xmm3
1403 paddd 32(%r11),%xmm2
1404 movdqa %xmm15,%xmm4
1405 paddd 48(%r11),%xmm3
1406 movdqa %xmm15,%xmm5
1407 paddd 64(%r11),%xmm4
1408 movdqa %xmm15,%xmm6
1409 paddd 80(%r11),%xmm5
1410 paddd 96(%r11),%xmm6
1411
1412
1413
1414 movdqa (%rsp),%xmm8
1415 leaq 16(%rsp),%rax
1416 movdqa -16(%r11),%xmm7
1417 pxor %xmm8,%xmm15
1418 pxor %xmm8,%xmm0
1419 pxor %xmm8,%xmm1
1420 pxor %xmm8,%xmm2
1421.byte 102,68,15,56,0,255
1422.byte 102,15,56,0,199
1423 pxor %xmm8,%xmm3
1424 pxor %xmm8,%xmm4
1425.byte 102,15,56,0,207
1426.byte 102,15,56,0,215
1427 pxor %xmm8,%xmm5
1428 pxor %xmm8,%xmm6
1429.byte 102,15,56,0,223
1430.byte 102,15,56,0,231
1431.byte 102,15,56,0,239
1432.byte 102,15,56,0,247
1433 leaq L$BS0(%rip),%r11
1434 movl %ebx,%r10d
1435
1436 call _bsaes_encrypt8_bitslice
1437
1438 subq $8,%r14
1439 jc L$ctr_enc_loop_done
1440
1441 movdqu 0(%r12),%xmm7
1442 movdqu 16(%r12),%xmm8
1443 movdqu 32(%r12),%xmm9
1444 movdqu 48(%r12),%xmm10
1445 movdqu 64(%r12),%xmm11
1446 movdqu 80(%r12),%xmm12
1447 movdqu 96(%r12),%xmm13
1448 movdqu 112(%r12),%xmm14
1449 leaq 128(%r12),%r12
1450 pxor %xmm15,%xmm7
1451 movdqa 32(%rbp),%xmm15
1452 pxor %xmm8,%xmm0
1453 movdqu %xmm7,0(%r13)
1454 pxor %xmm9,%xmm3
1455 movdqu %xmm0,16(%r13)
1456 pxor %xmm10,%xmm5
1457 movdqu %xmm3,32(%r13)
1458 pxor %xmm11,%xmm2
1459 movdqu %xmm5,48(%r13)
1460 pxor %xmm12,%xmm6
1461 movdqu %xmm2,64(%r13)
1462 pxor %xmm13,%xmm1
1463 movdqu %xmm6,80(%r13)
1464 pxor %xmm14,%xmm4
1465 movdqu %xmm1,96(%r13)
1466 leaq L$ADD1(%rip),%r11
1467 movdqu %xmm4,112(%r13)
1468 leaq 128(%r13),%r13
1469 paddd 112(%r11),%xmm15
1470 jnz L$ctr_enc_loop
1471
1472 jmp L$ctr_enc_done
1473.p2align 4
1474L$ctr_enc_loop_done:
1475 addq $8,%r14
1476 movdqu 0(%r12),%xmm7
1477 pxor %xmm7,%xmm15
1478 movdqu %xmm15,0(%r13)
1479 cmpq $2,%r14
1480 jb L$ctr_enc_done
1481 movdqu 16(%r12),%xmm8
1482 pxor %xmm8,%xmm0
1483 movdqu %xmm0,16(%r13)
1484 je L$ctr_enc_done
1485 movdqu 32(%r12),%xmm9
1486 pxor %xmm9,%xmm3
1487 movdqu %xmm3,32(%r13)
1488 cmpq $4,%r14
1489 jb L$ctr_enc_done
1490 movdqu 48(%r12),%xmm10
1491 pxor %xmm10,%xmm5
1492 movdqu %xmm5,48(%r13)
1493 je L$ctr_enc_done
1494 movdqu 64(%r12),%xmm11
1495 pxor %xmm11,%xmm2
1496 movdqu %xmm2,64(%r13)
1497 cmpq $6,%r14
1498 jb L$ctr_enc_done
1499 movdqu 80(%r12),%xmm12
1500 pxor %xmm12,%xmm6
1501 movdqu %xmm6,80(%r13)
1502 je L$ctr_enc_done
1503 movdqu 96(%r12),%xmm13
1504 pxor %xmm13,%xmm1
1505 movdqu %xmm1,96(%r13)
1506 jmp L$ctr_enc_done
1507
1508.p2align 4
1509L$ctr_enc_short:
1510 leaq 32(%rbp),%rdi
1511 leaq 48(%rbp),%rsi
1512 leaq (%r15),%rdx
1513 call _asm_AES_encrypt
1514 movdqu (%r12),%xmm0
1515 leaq 16(%r12),%r12
1516 movl 44(%rbp),%eax
1517 bswapl %eax
1518 pxor 48(%rbp),%xmm0
1519 incl %eax
1520 movdqu %xmm0,(%r13)
1521 bswapl %eax
1522 leaq 16(%r13),%r13
1523 movl %eax,44(%rsp)
1524 decq %r14
1525 jnz L$ctr_enc_short
1526
1527L$ctr_enc_done:
1528 leaq (%rsp),%rax
1529 pxor %xmm0,%xmm0
1530L$ctr_enc_bzero:
1531 movdqa %xmm0,0(%rax)
1532 movdqa %xmm0,16(%rax)
1533 leaq 32(%rax),%rax
1534 cmpq %rax,%rbp
1535 ja L$ctr_enc_bzero
1536
1537 leaq 120(%rbp),%rax
1538
1539 movq -48(%rax),%r15
1540
1541 movq -40(%rax),%r14
1542
1543 movq -32(%rax),%r13
1544
1545 movq -24(%rax),%r12
1546
1547 movq -16(%rax),%rbx
1548
1549 movq -8(%rax),%rbp
1550
1551 leaq (%rax),%rsp
1552
1553L$ctr_enc_epilogue:
1554 .byte 0xf3,0xc3
1555
1556
1557.globl _ossl_bsaes_xts_encrypt
1558
1559.p2align 4
1560_ossl_bsaes_xts_encrypt:
1561
1562 movq %rsp,%rax
1563L$xts_enc_prologue:
1564 pushq %rbp
1565
1566 pushq %rbx
1567
1568 pushq %r12
1569
1570 pushq %r13
1571
1572 pushq %r14
1573
1574 pushq %r15
1575
1576 leaq -72(%rsp),%rsp
1577
1578 movq %rsp,%rbp
1579
1580 movq %rdi,%r12
1581 movq %rsi,%r13
1582 movq %rdx,%r14
1583 movq %rcx,%r15
1584
1585 leaq (%r9),%rdi
1586 leaq 32(%rbp),%rsi
1587 leaq (%r8),%rdx
1588 call _asm_AES_encrypt
1589
1590 movl 240(%r15),%eax
1591 movq %r14,%rbx
1592
1593 movl %eax,%edx
1594 shlq $7,%rax
1595 subq $96,%rax
1596 subq %rax,%rsp
1597
1598 movq %rsp,%rax
1599 movq %r15,%rcx
1600 movl %edx,%r10d
1601 call _bsaes_key_convert
1602 pxor %xmm6,%xmm7
1603 movdqa %xmm7,(%rax)
1604
1605 andq $-16,%r14
1606 subq $0x80,%rsp
1607 movdqa 32(%rbp),%xmm6
1608
1609 pxor %xmm14,%xmm14
1610 movdqa L$xts_magic(%rip),%xmm12
1611 pcmpgtd %xmm6,%xmm14
1612
1613 subq $0x80,%r14
1614 jc L$xts_enc_short
1615 jmp L$xts_enc_loop
1616
1617.p2align 4
1618L$xts_enc_loop:
1619 pshufd $0x13,%xmm14,%xmm13
1620 pxor %xmm14,%xmm14
1621 movdqa %xmm6,%xmm15
1622 movdqa %xmm6,0(%rsp)
1623 paddq %xmm6,%xmm6
1624 pand %xmm12,%xmm13
1625 pcmpgtd %xmm6,%xmm14
1626 pxor %xmm13,%xmm6
1627 pshufd $0x13,%xmm14,%xmm13
1628 pxor %xmm14,%xmm14
1629 movdqa %xmm6,%xmm0
1630 movdqa %xmm6,16(%rsp)
1631 paddq %xmm6,%xmm6
1632 pand %xmm12,%xmm13
1633 pcmpgtd %xmm6,%xmm14
1634 pxor %xmm13,%xmm6
1635 movdqu 0(%r12),%xmm7
1636 pshufd $0x13,%xmm14,%xmm13
1637 pxor %xmm14,%xmm14
1638 movdqa %xmm6,%xmm1
1639 movdqa %xmm6,32(%rsp)
1640 paddq %xmm6,%xmm6
1641 pand %xmm12,%xmm13
1642 pcmpgtd %xmm6,%xmm14
1643 pxor %xmm13,%xmm6
1644 movdqu 16(%r12),%xmm8
1645 pxor %xmm7,%xmm15
1646 pshufd $0x13,%xmm14,%xmm13
1647 pxor %xmm14,%xmm14
1648 movdqa %xmm6,%xmm2
1649 movdqa %xmm6,48(%rsp)
1650 paddq %xmm6,%xmm6
1651 pand %xmm12,%xmm13
1652 pcmpgtd %xmm6,%xmm14
1653 pxor %xmm13,%xmm6
1654 movdqu 32(%r12),%xmm9
1655 pxor %xmm8,%xmm0
1656 pshufd $0x13,%xmm14,%xmm13
1657 pxor %xmm14,%xmm14
1658 movdqa %xmm6,%xmm3
1659 movdqa %xmm6,64(%rsp)
1660 paddq %xmm6,%xmm6
1661 pand %xmm12,%xmm13
1662 pcmpgtd %xmm6,%xmm14
1663 pxor %xmm13,%xmm6
1664 movdqu 48(%r12),%xmm10
1665 pxor %xmm9,%xmm1
1666 pshufd $0x13,%xmm14,%xmm13
1667 pxor %xmm14,%xmm14
1668 movdqa %xmm6,%xmm4
1669 movdqa %xmm6,80(%rsp)
1670 paddq %xmm6,%xmm6
1671 pand %xmm12,%xmm13
1672 pcmpgtd %xmm6,%xmm14
1673 pxor %xmm13,%xmm6
1674 movdqu 64(%r12),%xmm11
1675 pxor %xmm10,%xmm2
1676 pshufd $0x13,%xmm14,%xmm13
1677 pxor %xmm14,%xmm14
1678 movdqa %xmm6,%xmm5
1679 movdqa %xmm6,96(%rsp)
1680 paddq %xmm6,%xmm6
1681 pand %xmm12,%xmm13
1682 pcmpgtd %xmm6,%xmm14
1683 pxor %xmm13,%xmm6
1684 movdqu 80(%r12),%xmm12
1685 pxor %xmm11,%xmm3
1686 movdqu 96(%r12),%xmm13
1687 pxor %xmm12,%xmm4
1688 movdqu 112(%r12),%xmm14
1689 leaq 128(%r12),%r12
1690 movdqa %xmm6,112(%rsp)
1691 pxor %xmm13,%xmm5
1692 leaq 128(%rsp),%rax
1693 pxor %xmm14,%xmm6
1694 movl %edx,%r10d
1695
1696 call _bsaes_encrypt8
1697
1698 pxor 0(%rsp),%xmm15
1699 pxor 16(%rsp),%xmm0
1700 movdqu %xmm15,0(%r13)
1701 pxor 32(%rsp),%xmm3
1702 movdqu %xmm0,16(%r13)
1703 pxor 48(%rsp),%xmm5
1704 movdqu %xmm3,32(%r13)
1705 pxor 64(%rsp),%xmm2
1706 movdqu %xmm5,48(%r13)
1707 pxor 80(%rsp),%xmm6
1708 movdqu %xmm2,64(%r13)
1709 pxor 96(%rsp),%xmm1
1710 movdqu %xmm6,80(%r13)
1711 pxor 112(%rsp),%xmm4
1712 movdqu %xmm1,96(%r13)
1713 movdqu %xmm4,112(%r13)
1714 leaq 128(%r13),%r13
1715
1716 movdqa 112(%rsp),%xmm6
1717 pxor %xmm14,%xmm14
1718 movdqa L$xts_magic(%rip),%xmm12
1719 pcmpgtd %xmm6,%xmm14
1720 pshufd $0x13,%xmm14,%xmm13
1721 pxor %xmm14,%xmm14
1722 paddq %xmm6,%xmm6
1723 pand %xmm12,%xmm13
1724 pcmpgtd %xmm6,%xmm14
1725 pxor %xmm13,%xmm6
1726
1727 subq $0x80,%r14
1728 jnc L$xts_enc_loop
1729
1730L$xts_enc_short:
1731 addq $0x80,%r14
1732 jz L$xts_enc_done
1733 pshufd $0x13,%xmm14,%xmm13
1734 pxor %xmm14,%xmm14
1735 movdqa %xmm6,%xmm15
1736 movdqa %xmm6,0(%rsp)
1737 paddq %xmm6,%xmm6
1738 pand %xmm12,%xmm13
1739 pcmpgtd %xmm6,%xmm14
1740 pxor %xmm13,%xmm6
1741 pshufd $0x13,%xmm14,%xmm13
1742 pxor %xmm14,%xmm14
1743 movdqa %xmm6,%xmm0
1744 movdqa %xmm6,16(%rsp)
1745 paddq %xmm6,%xmm6
1746 pand %xmm12,%xmm13
1747 pcmpgtd %xmm6,%xmm14
1748 pxor %xmm13,%xmm6
1749 movdqu 0(%r12),%xmm7
1750 cmpq $16,%r14
1751 je L$xts_enc_1
1752 pshufd $0x13,%xmm14,%xmm13
1753 pxor %xmm14,%xmm14
1754 movdqa %xmm6,%xmm1
1755 movdqa %xmm6,32(%rsp)
1756 paddq %xmm6,%xmm6
1757 pand %xmm12,%xmm13
1758 pcmpgtd %xmm6,%xmm14
1759 pxor %xmm13,%xmm6
1760 movdqu 16(%r12),%xmm8
1761 cmpq $32,%r14
1762 je L$xts_enc_2
1763 pxor %xmm7,%xmm15
1764 pshufd $0x13,%xmm14,%xmm13
1765 pxor %xmm14,%xmm14
1766 movdqa %xmm6,%xmm2
1767 movdqa %xmm6,48(%rsp)
1768 paddq %xmm6,%xmm6
1769 pand %xmm12,%xmm13
1770 pcmpgtd %xmm6,%xmm14
1771 pxor %xmm13,%xmm6
1772 movdqu 32(%r12),%xmm9
1773 cmpq $48,%r14
1774 je L$xts_enc_3
1775 pxor %xmm8,%xmm0
1776 pshufd $0x13,%xmm14,%xmm13
1777 pxor %xmm14,%xmm14
1778 movdqa %xmm6,%xmm3
1779 movdqa %xmm6,64(%rsp)
1780 paddq %xmm6,%xmm6
1781 pand %xmm12,%xmm13
1782 pcmpgtd %xmm6,%xmm14
1783 pxor %xmm13,%xmm6
1784 movdqu 48(%r12),%xmm10
1785 cmpq $64,%r14
1786 je L$xts_enc_4
1787 pxor %xmm9,%xmm1
1788 pshufd $0x13,%xmm14,%xmm13
1789 pxor %xmm14,%xmm14
1790 movdqa %xmm6,%xmm4
1791 movdqa %xmm6,80(%rsp)
1792 paddq %xmm6,%xmm6
1793 pand %xmm12,%xmm13
1794 pcmpgtd %xmm6,%xmm14
1795 pxor %xmm13,%xmm6
1796 movdqu 64(%r12),%xmm11
1797 cmpq $80,%r14
1798 je L$xts_enc_5
1799 pxor %xmm10,%xmm2
1800 pshufd $0x13,%xmm14,%xmm13
1801 pxor %xmm14,%xmm14
1802 movdqa %xmm6,%xmm5
1803 movdqa %xmm6,96(%rsp)
1804 paddq %xmm6,%xmm6
1805 pand %xmm12,%xmm13
1806 pcmpgtd %xmm6,%xmm14
1807 pxor %xmm13,%xmm6
1808 movdqu 80(%r12),%xmm12
1809 cmpq $96,%r14
1810 je L$xts_enc_6
1811 pxor %xmm11,%xmm3
1812 movdqu 96(%r12),%xmm13
1813 pxor %xmm12,%xmm4
1814 movdqa %xmm6,112(%rsp)
1815 leaq 112(%r12),%r12
1816 pxor %xmm13,%xmm5
1817 leaq 128(%rsp),%rax
1818 movl %edx,%r10d
1819
1820 call _bsaes_encrypt8
1821
1822 pxor 0(%rsp),%xmm15
1823 pxor 16(%rsp),%xmm0
1824 movdqu %xmm15,0(%r13)
1825 pxor 32(%rsp),%xmm3
1826 movdqu %xmm0,16(%r13)
1827 pxor 48(%rsp),%xmm5
1828 movdqu %xmm3,32(%r13)
1829 pxor 64(%rsp),%xmm2
1830 movdqu %xmm5,48(%r13)
1831 pxor 80(%rsp),%xmm6
1832 movdqu %xmm2,64(%r13)
1833 pxor 96(%rsp),%xmm1
1834 movdqu %xmm6,80(%r13)
1835 movdqu %xmm1,96(%r13)
1836 leaq 112(%r13),%r13
1837
1838 movdqa 112(%rsp),%xmm6
1839 jmp L$xts_enc_done
1840.p2align 4
1841L$xts_enc_6:
1842 pxor %xmm11,%xmm3
1843 leaq 96(%r12),%r12
1844 pxor %xmm12,%xmm4
1845 leaq 128(%rsp),%rax
1846 movl %edx,%r10d
1847
1848 call _bsaes_encrypt8
1849
1850 pxor 0(%rsp),%xmm15
1851 pxor 16(%rsp),%xmm0
1852 movdqu %xmm15,0(%r13)
1853 pxor 32(%rsp),%xmm3
1854 movdqu %xmm0,16(%r13)
1855 pxor 48(%rsp),%xmm5
1856 movdqu %xmm3,32(%r13)
1857 pxor 64(%rsp),%xmm2
1858 movdqu %xmm5,48(%r13)
1859 pxor 80(%rsp),%xmm6
1860 movdqu %xmm2,64(%r13)
1861 movdqu %xmm6,80(%r13)
1862 leaq 96(%r13),%r13
1863
1864 movdqa 96(%rsp),%xmm6
1865 jmp L$xts_enc_done
1866.p2align 4
1867L$xts_enc_5:
1868 pxor %xmm10,%xmm2
1869 leaq 80(%r12),%r12
1870 pxor %xmm11,%xmm3
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 pxor 48(%rsp),%xmm5
1882 movdqu %xmm3,32(%r13)
1883 pxor 64(%rsp),%xmm2
1884 movdqu %xmm5,48(%r13)
1885 movdqu %xmm2,64(%r13)
1886 leaq 80(%r13),%r13
1887
1888 movdqa 80(%rsp),%xmm6
1889 jmp L$xts_enc_done
1890.p2align 4
1891L$xts_enc_4:
1892 pxor %xmm9,%xmm1
1893 leaq 64(%r12),%r12
1894 pxor %xmm10,%xmm2
1895 leaq 128(%rsp),%rax
1896 movl %edx,%r10d
1897
1898 call _bsaes_encrypt8
1899
1900 pxor 0(%rsp),%xmm15
1901 pxor 16(%rsp),%xmm0
1902 movdqu %xmm15,0(%r13)
1903 pxor 32(%rsp),%xmm3
1904 movdqu %xmm0,16(%r13)
1905 pxor 48(%rsp),%xmm5
1906 movdqu %xmm3,32(%r13)
1907 movdqu %xmm5,48(%r13)
1908 leaq 64(%r13),%r13
1909
1910 movdqa 64(%rsp),%xmm6
1911 jmp L$xts_enc_done
1912.p2align 4
1913L$xts_enc_3:
1914 pxor %xmm8,%xmm0
1915 leaq 48(%r12),%r12
1916 pxor %xmm9,%xmm1
1917 leaq 128(%rsp),%rax
1918 movl %edx,%r10d
1919
1920 call _bsaes_encrypt8
1921
1922 pxor 0(%rsp),%xmm15
1923 pxor 16(%rsp),%xmm0
1924 movdqu %xmm15,0(%r13)
1925 pxor 32(%rsp),%xmm3
1926 movdqu %xmm0,16(%r13)
1927 movdqu %xmm3,32(%r13)
1928 leaq 48(%r13),%r13
1929
1930 movdqa 48(%rsp),%xmm6
1931 jmp L$xts_enc_done
1932.p2align 4
1933L$xts_enc_2:
1934 pxor %xmm7,%xmm15
1935 leaq 32(%r12),%r12
1936 pxor %xmm8,%xmm0
1937 leaq 128(%rsp),%rax
1938 movl %edx,%r10d
1939
1940 call _bsaes_encrypt8
1941
1942 pxor 0(%rsp),%xmm15
1943 pxor 16(%rsp),%xmm0
1944 movdqu %xmm15,0(%r13)
1945 movdqu %xmm0,16(%r13)
1946 leaq 32(%r13),%r13
1947
1948 movdqa 32(%rsp),%xmm6
1949 jmp L$xts_enc_done
1950.p2align 4
1951L$xts_enc_1:
1952 pxor %xmm15,%xmm7
1953 leaq 16(%r12),%r12
1954 movdqa %xmm7,32(%rbp)
1955 leaq 32(%rbp),%rdi
1956 leaq 32(%rbp),%rsi
1957 leaq (%r15),%rdx
1958 call _asm_AES_encrypt
1959 pxor 32(%rbp),%xmm15
1960
1961
1962
1963
1964
1965 movdqu %xmm15,0(%r13)
1966 leaq 16(%r13),%r13
1967
1968 movdqa 16(%rsp),%xmm6
1969
1970L$xts_enc_done:
1971 andl $15,%ebx
1972 jz L$xts_enc_ret
1973 movq %r13,%rdx
1974
1975L$xts_enc_steal:
1976 movzbl (%r12),%eax
1977 movzbl -16(%rdx),%ecx
1978 leaq 1(%r12),%r12
1979 movb %al,-16(%rdx)
1980 movb %cl,0(%rdx)
1981 leaq 1(%rdx),%rdx
1982 subl $1,%ebx
1983 jnz L$xts_enc_steal
1984
1985 movdqu -16(%r13),%xmm15
1986 leaq 32(%rbp),%rdi
1987 pxor %xmm6,%xmm15
1988 leaq 32(%rbp),%rsi
1989 movdqa %xmm15,32(%rbp)
1990 leaq (%r15),%rdx
1991 call _asm_AES_encrypt
1992 pxor 32(%rbp),%xmm6
1993 movdqu %xmm6,-16(%r13)
1994
1995L$xts_enc_ret:
1996 leaq (%rsp),%rax
1997 pxor %xmm0,%xmm0
1998L$xts_enc_bzero:
1999 movdqa %xmm0,0(%rax)
2000 movdqa %xmm0,16(%rax)
2001 leaq 32(%rax),%rax
2002 cmpq %rax,%rbp
2003 ja L$xts_enc_bzero
2004
2005 leaq 120(%rbp),%rax
2006
2007 movq -48(%rax),%r15
2008
2009 movq -40(%rax),%r14
2010
2011 movq -32(%rax),%r13
2012
2013 movq -24(%rax),%r12
2014
2015 movq -16(%rax),%rbx
2016
2017 movq -8(%rax),%rbp
2018
2019 leaq (%rax),%rsp
2020
2021L$xts_enc_epilogue:
2022 .byte 0xf3,0xc3
2023
2024
2025
2026.globl _ossl_bsaes_xts_decrypt
2027
2028.p2align 4
2029_ossl_bsaes_xts_decrypt:
2030
2031 movq %rsp,%rax
2032L$xts_dec_prologue:
2033 pushq %rbp
2034
2035 pushq %rbx
2036
2037 pushq %r12
2038
2039 pushq %r13
2040
2041 pushq %r14
2042
2043 pushq %r15
2044
2045 leaq -72(%rsp),%rsp
2046
2047 movq %rsp,%rbp
2048 movq %rdi,%r12
2049 movq %rsi,%r13
2050 movq %rdx,%r14
2051 movq %rcx,%r15
2052
2053 leaq (%r9),%rdi
2054 leaq 32(%rbp),%rsi
2055 leaq (%r8),%rdx
2056 call _asm_AES_encrypt
2057
2058 movl 240(%r15),%eax
2059 movq %r14,%rbx
2060
2061 movl %eax,%edx
2062 shlq $7,%rax
2063 subq $96,%rax
2064 subq %rax,%rsp
2065
2066 movq %rsp,%rax
2067 movq %r15,%rcx
2068 movl %edx,%r10d
2069 call _bsaes_key_convert
2070 pxor (%rsp),%xmm7
2071 movdqa %xmm6,(%rax)
2072 movdqa %xmm7,(%rsp)
2073
2074 xorl %eax,%eax
2075 andq $-16,%r14
2076 testl $15,%ebx
2077 setnz %al
2078 shlq $4,%rax
2079 subq %rax,%r14
2080
2081 subq $0x80,%rsp
2082 movdqa 32(%rbp),%xmm6
2083
2084 pxor %xmm14,%xmm14
2085 movdqa L$xts_magic(%rip),%xmm12
2086 pcmpgtd %xmm6,%xmm14
2087
2088 subq $0x80,%r14
2089 jc L$xts_dec_short
2090 jmp L$xts_dec_loop
2091
2092.p2align 4
2093L$xts_dec_loop:
2094 pshufd $0x13,%xmm14,%xmm13
2095 pxor %xmm14,%xmm14
2096 movdqa %xmm6,%xmm15
2097 movdqa %xmm6,0(%rsp)
2098 paddq %xmm6,%xmm6
2099 pand %xmm12,%xmm13
2100 pcmpgtd %xmm6,%xmm14
2101 pxor %xmm13,%xmm6
2102 pshufd $0x13,%xmm14,%xmm13
2103 pxor %xmm14,%xmm14
2104 movdqa %xmm6,%xmm0
2105 movdqa %xmm6,16(%rsp)
2106 paddq %xmm6,%xmm6
2107 pand %xmm12,%xmm13
2108 pcmpgtd %xmm6,%xmm14
2109 pxor %xmm13,%xmm6
2110 movdqu 0(%r12),%xmm7
2111 pshufd $0x13,%xmm14,%xmm13
2112 pxor %xmm14,%xmm14
2113 movdqa %xmm6,%xmm1
2114 movdqa %xmm6,32(%rsp)
2115 paddq %xmm6,%xmm6
2116 pand %xmm12,%xmm13
2117 pcmpgtd %xmm6,%xmm14
2118 pxor %xmm13,%xmm6
2119 movdqu 16(%r12),%xmm8
2120 pxor %xmm7,%xmm15
2121 pshufd $0x13,%xmm14,%xmm13
2122 pxor %xmm14,%xmm14
2123 movdqa %xmm6,%xmm2
2124 movdqa %xmm6,48(%rsp)
2125 paddq %xmm6,%xmm6
2126 pand %xmm12,%xmm13
2127 pcmpgtd %xmm6,%xmm14
2128 pxor %xmm13,%xmm6
2129 movdqu 32(%r12),%xmm9
2130 pxor %xmm8,%xmm0
2131 pshufd $0x13,%xmm14,%xmm13
2132 pxor %xmm14,%xmm14
2133 movdqa %xmm6,%xmm3
2134 movdqa %xmm6,64(%rsp)
2135 paddq %xmm6,%xmm6
2136 pand %xmm12,%xmm13
2137 pcmpgtd %xmm6,%xmm14
2138 pxor %xmm13,%xmm6
2139 movdqu 48(%r12),%xmm10
2140 pxor %xmm9,%xmm1
2141 pshufd $0x13,%xmm14,%xmm13
2142 pxor %xmm14,%xmm14
2143 movdqa %xmm6,%xmm4
2144 movdqa %xmm6,80(%rsp)
2145 paddq %xmm6,%xmm6
2146 pand %xmm12,%xmm13
2147 pcmpgtd %xmm6,%xmm14
2148 pxor %xmm13,%xmm6
2149 movdqu 64(%r12),%xmm11
2150 pxor %xmm10,%xmm2
2151 pshufd $0x13,%xmm14,%xmm13
2152 pxor %xmm14,%xmm14
2153 movdqa %xmm6,%xmm5
2154 movdqa %xmm6,96(%rsp)
2155 paddq %xmm6,%xmm6
2156 pand %xmm12,%xmm13
2157 pcmpgtd %xmm6,%xmm14
2158 pxor %xmm13,%xmm6
2159 movdqu 80(%r12),%xmm12
2160 pxor %xmm11,%xmm3
2161 movdqu 96(%r12),%xmm13
2162 pxor %xmm12,%xmm4
2163 movdqu 112(%r12),%xmm14
2164 leaq 128(%r12),%r12
2165 movdqa %xmm6,112(%rsp)
2166 pxor %xmm13,%xmm5
2167 leaq 128(%rsp),%rax
2168 pxor %xmm14,%xmm6
2169 movl %edx,%r10d
2170
2171 call _bsaes_decrypt8
2172
2173 pxor 0(%rsp),%xmm15
2174 pxor 16(%rsp),%xmm0
2175 movdqu %xmm15,0(%r13)
2176 pxor 32(%rsp),%xmm5
2177 movdqu %xmm0,16(%r13)
2178 pxor 48(%rsp),%xmm3
2179 movdqu %xmm5,32(%r13)
2180 pxor 64(%rsp),%xmm1
2181 movdqu %xmm3,48(%r13)
2182 pxor 80(%rsp),%xmm6
2183 movdqu %xmm1,64(%r13)
2184 pxor 96(%rsp),%xmm2
2185 movdqu %xmm6,80(%r13)
2186 pxor 112(%rsp),%xmm4
2187 movdqu %xmm2,96(%r13)
2188 movdqu %xmm4,112(%r13)
2189 leaq 128(%r13),%r13
2190
2191 movdqa 112(%rsp),%xmm6
2192 pxor %xmm14,%xmm14
2193 movdqa L$xts_magic(%rip),%xmm12
2194 pcmpgtd %xmm6,%xmm14
2195 pshufd $0x13,%xmm14,%xmm13
2196 pxor %xmm14,%xmm14
2197 paddq %xmm6,%xmm6
2198 pand %xmm12,%xmm13
2199 pcmpgtd %xmm6,%xmm14
2200 pxor %xmm13,%xmm6
2201
2202 subq $0x80,%r14
2203 jnc L$xts_dec_loop
2204
2205L$xts_dec_short:
2206 addq $0x80,%r14
2207 jz L$xts_dec_done
2208 pshufd $0x13,%xmm14,%xmm13
2209 pxor %xmm14,%xmm14
2210 movdqa %xmm6,%xmm15
2211 movdqa %xmm6,0(%rsp)
2212 paddq %xmm6,%xmm6
2213 pand %xmm12,%xmm13
2214 pcmpgtd %xmm6,%xmm14
2215 pxor %xmm13,%xmm6
2216 pshufd $0x13,%xmm14,%xmm13
2217 pxor %xmm14,%xmm14
2218 movdqa %xmm6,%xmm0
2219 movdqa %xmm6,16(%rsp)
2220 paddq %xmm6,%xmm6
2221 pand %xmm12,%xmm13
2222 pcmpgtd %xmm6,%xmm14
2223 pxor %xmm13,%xmm6
2224 movdqu 0(%r12),%xmm7
2225 cmpq $16,%r14
2226 je L$xts_dec_1
2227 pshufd $0x13,%xmm14,%xmm13
2228 pxor %xmm14,%xmm14
2229 movdqa %xmm6,%xmm1
2230 movdqa %xmm6,32(%rsp)
2231 paddq %xmm6,%xmm6
2232 pand %xmm12,%xmm13
2233 pcmpgtd %xmm6,%xmm14
2234 pxor %xmm13,%xmm6
2235 movdqu 16(%r12),%xmm8
2236 cmpq $32,%r14
2237 je L$xts_dec_2
2238 pxor %xmm7,%xmm15
2239 pshufd $0x13,%xmm14,%xmm13
2240 pxor %xmm14,%xmm14
2241 movdqa %xmm6,%xmm2
2242 movdqa %xmm6,48(%rsp)
2243 paddq %xmm6,%xmm6
2244 pand %xmm12,%xmm13
2245 pcmpgtd %xmm6,%xmm14
2246 pxor %xmm13,%xmm6
2247 movdqu 32(%r12),%xmm9
2248 cmpq $48,%r14
2249 je L$xts_dec_3
2250 pxor %xmm8,%xmm0
2251 pshufd $0x13,%xmm14,%xmm13
2252 pxor %xmm14,%xmm14
2253 movdqa %xmm6,%xmm3
2254 movdqa %xmm6,64(%rsp)
2255 paddq %xmm6,%xmm6
2256 pand %xmm12,%xmm13
2257 pcmpgtd %xmm6,%xmm14
2258 pxor %xmm13,%xmm6
2259 movdqu 48(%r12),%xmm10
2260 cmpq $64,%r14
2261 je L$xts_dec_4
2262 pxor %xmm9,%xmm1
2263 pshufd $0x13,%xmm14,%xmm13
2264 pxor %xmm14,%xmm14
2265 movdqa %xmm6,%xmm4
2266 movdqa %xmm6,80(%rsp)
2267 paddq %xmm6,%xmm6
2268 pand %xmm12,%xmm13
2269 pcmpgtd %xmm6,%xmm14
2270 pxor %xmm13,%xmm6
2271 movdqu 64(%r12),%xmm11
2272 cmpq $80,%r14
2273 je L$xts_dec_5
2274 pxor %xmm10,%xmm2
2275 pshufd $0x13,%xmm14,%xmm13
2276 pxor %xmm14,%xmm14
2277 movdqa %xmm6,%xmm5
2278 movdqa %xmm6,96(%rsp)
2279 paddq %xmm6,%xmm6
2280 pand %xmm12,%xmm13
2281 pcmpgtd %xmm6,%xmm14
2282 pxor %xmm13,%xmm6
2283 movdqu 80(%r12),%xmm12
2284 cmpq $96,%r14
2285 je L$xts_dec_6
2286 pxor %xmm11,%xmm3
2287 movdqu 96(%r12),%xmm13
2288 pxor %xmm12,%xmm4
2289 movdqa %xmm6,112(%rsp)
2290 leaq 112(%r12),%r12
2291 pxor %xmm13,%xmm5
2292 leaq 128(%rsp),%rax
2293 movl %edx,%r10d
2294
2295 call _bsaes_decrypt8
2296
2297 pxor 0(%rsp),%xmm15
2298 pxor 16(%rsp),%xmm0
2299 movdqu %xmm15,0(%r13)
2300 pxor 32(%rsp),%xmm5
2301 movdqu %xmm0,16(%r13)
2302 pxor 48(%rsp),%xmm3
2303 movdqu %xmm5,32(%r13)
2304 pxor 64(%rsp),%xmm1
2305 movdqu %xmm3,48(%r13)
2306 pxor 80(%rsp),%xmm6
2307 movdqu %xmm1,64(%r13)
2308 pxor 96(%rsp),%xmm2
2309 movdqu %xmm6,80(%r13)
2310 movdqu %xmm2,96(%r13)
2311 leaq 112(%r13),%r13
2312
2313 movdqa 112(%rsp),%xmm6
2314 jmp L$xts_dec_done
2315.p2align 4
2316L$xts_dec_6:
2317 pxor %xmm11,%xmm3
2318 leaq 96(%r12),%r12
2319 pxor %xmm12,%xmm4
2320 leaq 128(%rsp),%rax
2321 movl %edx,%r10d
2322
2323 call _bsaes_decrypt8
2324
2325 pxor 0(%rsp),%xmm15
2326 pxor 16(%rsp),%xmm0
2327 movdqu %xmm15,0(%r13)
2328 pxor 32(%rsp),%xmm5
2329 movdqu %xmm0,16(%r13)
2330 pxor 48(%rsp),%xmm3
2331 movdqu %xmm5,32(%r13)
2332 pxor 64(%rsp),%xmm1
2333 movdqu %xmm3,48(%r13)
2334 pxor 80(%rsp),%xmm6
2335 movdqu %xmm1,64(%r13)
2336 movdqu %xmm6,80(%r13)
2337 leaq 96(%r13),%r13
2338
2339 movdqa 96(%rsp),%xmm6
2340 jmp L$xts_dec_done
2341.p2align 4
2342L$xts_dec_5:
2343 pxor %xmm10,%xmm2
2344 leaq 80(%r12),%r12
2345 pxor %xmm11,%xmm3
2346 leaq 128(%rsp),%rax
2347 movl %edx,%r10d
2348
2349 call _bsaes_decrypt8
2350
2351 pxor 0(%rsp),%xmm15
2352 pxor 16(%rsp),%xmm0
2353 movdqu %xmm15,0(%r13)
2354 pxor 32(%rsp),%xmm5
2355 movdqu %xmm0,16(%r13)
2356 pxor 48(%rsp),%xmm3
2357 movdqu %xmm5,32(%r13)
2358 pxor 64(%rsp),%xmm1
2359 movdqu %xmm3,48(%r13)
2360 movdqu %xmm1,64(%r13)
2361 leaq 80(%r13),%r13
2362
2363 movdqa 80(%rsp),%xmm6
2364 jmp L$xts_dec_done
2365.p2align 4
2366L$xts_dec_4:
2367 pxor %xmm9,%xmm1
2368 leaq 64(%r12),%r12
2369 pxor %xmm10,%xmm2
2370 leaq 128(%rsp),%rax
2371 movl %edx,%r10d
2372
2373 call _bsaes_decrypt8
2374
2375 pxor 0(%rsp),%xmm15
2376 pxor 16(%rsp),%xmm0
2377 movdqu %xmm15,0(%r13)
2378 pxor 32(%rsp),%xmm5
2379 movdqu %xmm0,16(%r13)
2380 pxor 48(%rsp),%xmm3
2381 movdqu %xmm5,32(%r13)
2382 movdqu %xmm3,48(%r13)
2383 leaq 64(%r13),%r13
2384
2385 movdqa 64(%rsp),%xmm6
2386 jmp L$xts_dec_done
2387.p2align 4
2388L$xts_dec_3:
2389 pxor %xmm8,%xmm0
2390 leaq 48(%r12),%r12
2391 pxor %xmm9,%xmm1
2392 leaq 128(%rsp),%rax
2393 movl %edx,%r10d
2394
2395 call _bsaes_decrypt8
2396
2397 pxor 0(%rsp),%xmm15
2398 pxor 16(%rsp),%xmm0
2399 movdqu %xmm15,0(%r13)
2400 pxor 32(%rsp),%xmm5
2401 movdqu %xmm0,16(%r13)
2402 movdqu %xmm5,32(%r13)
2403 leaq 48(%r13),%r13
2404
2405 movdqa 48(%rsp),%xmm6
2406 jmp L$xts_dec_done
2407.p2align 4
2408L$xts_dec_2:
2409 pxor %xmm7,%xmm15
2410 leaq 32(%r12),%r12
2411 pxor %xmm8,%xmm0
2412 leaq 128(%rsp),%rax
2413 movl %edx,%r10d
2414
2415 call _bsaes_decrypt8
2416
2417 pxor 0(%rsp),%xmm15
2418 pxor 16(%rsp),%xmm0
2419 movdqu %xmm15,0(%r13)
2420 movdqu %xmm0,16(%r13)
2421 leaq 32(%r13),%r13
2422
2423 movdqa 32(%rsp),%xmm6
2424 jmp L$xts_dec_done
2425.p2align 4
2426L$xts_dec_1:
2427 pxor %xmm15,%xmm7
2428 leaq 16(%r12),%r12
2429 movdqa %xmm7,32(%rbp)
2430 leaq 32(%rbp),%rdi
2431 leaq 32(%rbp),%rsi
2432 leaq (%r15),%rdx
2433 call _asm_AES_decrypt
2434 pxor 32(%rbp),%xmm15
2435
2436
2437
2438
2439
2440 movdqu %xmm15,0(%r13)
2441 leaq 16(%r13),%r13
2442
2443 movdqa 16(%rsp),%xmm6
2444
2445L$xts_dec_done:
2446 andl $15,%ebx
2447 jz L$xts_dec_ret
2448
2449 pxor %xmm14,%xmm14
2450 movdqa L$xts_magic(%rip),%xmm12
2451 pcmpgtd %xmm6,%xmm14
2452 pshufd $0x13,%xmm14,%xmm13
2453 movdqa %xmm6,%xmm5
2454 paddq %xmm6,%xmm6
2455 pand %xmm12,%xmm13
2456 movdqu (%r12),%xmm15
2457 pxor %xmm13,%xmm6
2458
2459 leaq 32(%rbp),%rdi
2460 pxor %xmm6,%xmm15
2461 leaq 32(%rbp),%rsi
2462 movdqa %xmm15,32(%rbp)
2463 leaq (%r15),%rdx
2464 call _asm_AES_decrypt
2465 pxor 32(%rbp),%xmm6
2466 movq %r13,%rdx
2467 movdqu %xmm6,(%r13)
2468
2469L$xts_dec_steal:
2470 movzbl 16(%r12),%eax
2471 movzbl (%rdx),%ecx
2472 leaq 1(%r12),%r12
2473 movb %al,(%rdx)
2474 movb %cl,16(%rdx)
2475 leaq 1(%rdx),%rdx
2476 subl $1,%ebx
2477 jnz L$xts_dec_steal
2478
2479 movdqu (%r13),%xmm15
2480 leaq 32(%rbp),%rdi
2481 pxor %xmm5,%xmm15
2482 leaq 32(%rbp),%rsi
2483 movdqa %xmm15,32(%rbp)
2484 leaq (%r15),%rdx
2485 call _asm_AES_decrypt
2486 pxor 32(%rbp),%xmm5
2487 movdqu %xmm5,(%r13)
2488
2489L$xts_dec_ret:
2490 leaq (%rsp),%rax
2491 pxor %xmm0,%xmm0
2492L$xts_dec_bzero:
2493 movdqa %xmm0,0(%rax)
2494 movdqa %xmm0,16(%rax)
2495 leaq 32(%rax),%rax
2496 cmpq %rax,%rbp
2497 ja L$xts_dec_bzero
2498
2499 leaq 120(%rbp),%rax
2500
2501 movq -48(%rax),%r15
2502
2503 movq -40(%rax),%r14
2504
2505 movq -32(%rax),%r13
2506
2507 movq -24(%rax),%r12
2508
2509 movq -16(%rax),%rbx
2510
2511 movq -8(%rax),%rbp
2512
2513 leaq (%rax),%rsp
2514
2515L$xts_dec_epilogue:
2516 .byte 0xf3,0xc3
2517
2518
2519
2520.p2align 6
2521_bsaes_const:
2522L$M0ISR:
2523.quad 0x0a0e0206070b0f03, 0x0004080c0d010509
2524L$ISRM0:
2525.quad 0x01040b0e0205080f, 0x0306090c00070a0d
2526L$ISR:
2527.quad 0x0504070602010003, 0x0f0e0d0c080b0a09
2528L$BS0:
2529.quad 0x5555555555555555, 0x5555555555555555
2530L$BS1:
2531.quad 0x3333333333333333, 0x3333333333333333
2532L$BS2:
2533.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
2534L$SR:
2535.quad 0x0504070600030201, 0x0f0e0d0c0a09080b
2536L$SRM0:
2537.quad 0x0304090e00050a0f, 0x01060b0c0207080d
2538L$M0SR:
2539.quad 0x0a0e02060f03070b, 0x0004080c05090d01
2540L$SWPUP:
2541.quad 0x0706050403020100, 0x0c0d0e0f0b0a0908
2542L$SWPUPM0SR:
2543.quad 0x0a0d02060c03070b, 0x0004080f05090e01
2544L$ADD1:
2545.quad 0x0000000000000000, 0x0000000100000000
2546L$ADD2:
2547.quad 0x0000000000000000, 0x0000000200000000
2548L$ADD3:
2549.quad 0x0000000000000000, 0x0000000300000000
2550L$ADD4:
2551.quad 0x0000000000000000, 0x0000000400000000
2552L$ADD5:
2553.quad 0x0000000000000000, 0x0000000500000000
2554L$ADD6:
2555.quad 0x0000000000000000, 0x0000000600000000
2556L$ADD7:
2557.quad 0x0000000000000000, 0x0000000700000000
2558L$ADD8:
2559.quad 0x0000000000000000, 0x0000000800000000
2560L$xts_magic:
2561.long 0x87,0,1,0
2562L$masks:
2563.quad 0x0101010101010101, 0x0101010101010101
2564.quad 0x0202020202020202, 0x0202020202020202
2565.quad 0x0404040404040404, 0x0404040404040404
2566.quad 0x0808080808080808, 0x0808080808080808
2567L$M0:
2568.quad 0x02060a0e03070b0f, 0x0004080c0105090d
2569L$63:
2570.quad 0x6363636363636363, 0x6363636363636363
2571.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
2572.p2align 6
2573
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