VirtualBox

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

Last change on this file since 109302 was 109052, checked in by vboxsync, 4 weeks ago

openssl-3.4.1: Applied our changes, regenerated files, added missing files and functions. This time with a three way merge. ​bugref:10890

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 45.3 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.byte 243,15,30,250
1563 movq %rsp,%rax
1564L$xts_enc_prologue:
1565 pushq %rbp
1566
1567 pushq %rbx
1568
1569 pushq %r12
1570
1571 pushq %r13
1572
1573 pushq %r14
1574
1575 pushq %r15
1576
1577 leaq -72(%rsp),%rsp
1578
1579 movq %rsp,%rbp
1580
1581 movq %rdi,%r12
1582 movq %rsi,%r13
1583 movq %rdx,%r14
1584 movq %rcx,%r15
1585
1586 leaq (%r9),%rdi
1587 leaq 32(%rbp),%rsi
1588 leaq (%r8),%rdx
1589 call _asm_AES_encrypt
1590
1591 movl 240(%r15),%eax
1592 movq %r14,%rbx
1593
1594 movl %eax,%edx
1595 shlq $7,%rax
1596 subq $96,%rax
1597 subq %rax,%rsp
1598
1599 movq %rsp,%rax
1600 movq %r15,%rcx
1601 movl %edx,%r10d
1602 call _bsaes_key_convert
1603 pxor %xmm6,%xmm7
1604 movdqa %xmm7,(%rax)
1605
1606 andq $-16,%r14
1607 subq $0x80,%rsp
1608 movdqa 32(%rbp),%xmm6
1609
1610 pxor %xmm14,%xmm14
1611 movdqa L$xts_magic(%rip),%xmm12
1612 pcmpgtd %xmm6,%xmm14
1613
1614 subq $0x80,%r14
1615 jc L$xts_enc_short
1616 jmp L$xts_enc_loop
1617
1618.p2align 4
1619L$xts_enc_loop:
1620 pshufd $0x13,%xmm14,%xmm13
1621 pxor %xmm14,%xmm14
1622 movdqa %xmm6,%xmm15
1623 movdqa %xmm6,0(%rsp)
1624 paddq %xmm6,%xmm6
1625 pand %xmm12,%xmm13
1626 pcmpgtd %xmm6,%xmm14
1627 pxor %xmm13,%xmm6
1628 pshufd $0x13,%xmm14,%xmm13
1629 pxor %xmm14,%xmm14
1630 movdqa %xmm6,%xmm0
1631 movdqa %xmm6,16(%rsp)
1632 paddq %xmm6,%xmm6
1633 pand %xmm12,%xmm13
1634 pcmpgtd %xmm6,%xmm14
1635 pxor %xmm13,%xmm6
1636 movdqu 0(%r12),%xmm7
1637 pshufd $0x13,%xmm14,%xmm13
1638 pxor %xmm14,%xmm14
1639 movdqa %xmm6,%xmm1
1640 movdqa %xmm6,32(%rsp)
1641 paddq %xmm6,%xmm6
1642 pand %xmm12,%xmm13
1643 pcmpgtd %xmm6,%xmm14
1644 pxor %xmm13,%xmm6
1645 movdqu 16(%r12),%xmm8
1646 pxor %xmm7,%xmm15
1647 pshufd $0x13,%xmm14,%xmm13
1648 pxor %xmm14,%xmm14
1649 movdqa %xmm6,%xmm2
1650 movdqa %xmm6,48(%rsp)
1651 paddq %xmm6,%xmm6
1652 pand %xmm12,%xmm13
1653 pcmpgtd %xmm6,%xmm14
1654 pxor %xmm13,%xmm6
1655 movdqu 32(%r12),%xmm9
1656 pxor %xmm8,%xmm0
1657 pshufd $0x13,%xmm14,%xmm13
1658 pxor %xmm14,%xmm14
1659 movdqa %xmm6,%xmm3
1660 movdqa %xmm6,64(%rsp)
1661 paddq %xmm6,%xmm6
1662 pand %xmm12,%xmm13
1663 pcmpgtd %xmm6,%xmm14
1664 pxor %xmm13,%xmm6
1665 movdqu 48(%r12),%xmm10
1666 pxor %xmm9,%xmm1
1667 pshufd $0x13,%xmm14,%xmm13
1668 pxor %xmm14,%xmm14
1669 movdqa %xmm6,%xmm4
1670 movdqa %xmm6,80(%rsp)
1671 paddq %xmm6,%xmm6
1672 pand %xmm12,%xmm13
1673 pcmpgtd %xmm6,%xmm14
1674 pxor %xmm13,%xmm6
1675 movdqu 64(%r12),%xmm11
1676 pxor %xmm10,%xmm2
1677 pshufd $0x13,%xmm14,%xmm13
1678 pxor %xmm14,%xmm14
1679 movdqa %xmm6,%xmm5
1680 movdqa %xmm6,96(%rsp)
1681 paddq %xmm6,%xmm6
1682 pand %xmm12,%xmm13
1683 pcmpgtd %xmm6,%xmm14
1684 pxor %xmm13,%xmm6
1685 movdqu 80(%r12),%xmm12
1686 pxor %xmm11,%xmm3
1687 movdqu 96(%r12),%xmm13
1688 pxor %xmm12,%xmm4
1689 movdqu 112(%r12),%xmm14
1690 leaq 128(%r12),%r12
1691 movdqa %xmm6,112(%rsp)
1692 pxor %xmm13,%xmm5
1693 leaq 128(%rsp),%rax
1694 pxor %xmm14,%xmm6
1695 movl %edx,%r10d
1696
1697 call _bsaes_encrypt8
1698
1699 pxor 0(%rsp),%xmm15
1700 pxor 16(%rsp),%xmm0
1701 movdqu %xmm15,0(%r13)
1702 pxor 32(%rsp),%xmm3
1703 movdqu %xmm0,16(%r13)
1704 pxor 48(%rsp),%xmm5
1705 movdqu %xmm3,32(%r13)
1706 pxor 64(%rsp),%xmm2
1707 movdqu %xmm5,48(%r13)
1708 pxor 80(%rsp),%xmm6
1709 movdqu %xmm2,64(%r13)
1710 pxor 96(%rsp),%xmm1
1711 movdqu %xmm6,80(%r13)
1712 pxor 112(%rsp),%xmm4
1713 movdqu %xmm1,96(%r13)
1714 movdqu %xmm4,112(%r13)
1715 leaq 128(%r13),%r13
1716
1717 movdqa 112(%rsp),%xmm6
1718 pxor %xmm14,%xmm14
1719 movdqa L$xts_magic(%rip),%xmm12
1720 pcmpgtd %xmm6,%xmm14
1721 pshufd $0x13,%xmm14,%xmm13
1722 pxor %xmm14,%xmm14
1723 paddq %xmm6,%xmm6
1724 pand %xmm12,%xmm13
1725 pcmpgtd %xmm6,%xmm14
1726 pxor %xmm13,%xmm6
1727
1728 subq $0x80,%r14
1729 jnc L$xts_enc_loop
1730
1731L$xts_enc_short:
1732 addq $0x80,%r14
1733 jz L$xts_enc_done
1734 pshufd $0x13,%xmm14,%xmm13
1735 pxor %xmm14,%xmm14
1736 movdqa %xmm6,%xmm15
1737 movdqa %xmm6,0(%rsp)
1738 paddq %xmm6,%xmm6
1739 pand %xmm12,%xmm13
1740 pcmpgtd %xmm6,%xmm14
1741 pxor %xmm13,%xmm6
1742 pshufd $0x13,%xmm14,%xmm13
1743 pxor %xmm14,%xmm14
1744 movdqa %xmm6,%xmm0
1745 movdqa %xmm6,16(%rsp)
1746 paddq %xmm6,%xmm6
1747 pand %xmm12,%xmm13
1748 pcmpgtd %xmm6,%xmm14
1749 pxor %xmm13,%xmm6
1750 movdqu 0(%r12),%xmm7
1751 cmpq $16,%r14
1752 je L$xts_enc_1
1753 pshufd $0x13,%xmm14,%xmm13
1754 pxor %xmm14,%xmm14
1755 movdqa %xmm6,%xmm1
1756 movdqa %xmm6,32(%rsp)
1757 paddq %xmm6,%xmm6
1758 pand %xmm12,%xmm13
1759 pcmpgtd %xmm6,%xmm14
1760 pxor %xmm13,%xmm6
1761 movdqu 16(%r12),%xmm8
1762 cmpq $32,%r14
1763 je L$xts_enc_2
1764 pxor %xmm7,%xmm15
1765 pshufd $0x13,%xmm14,%xmm13
1766 pxor %xmm14,%xmm14
1767 movdqa %xmm6,%xmm2
1768 movdqa %xmm6,48(%rsp)
1769 paddq %xmm6,%xmm6
1770 pand %xmm12,%xmm13
1771 pcmpgtd %xmm6,%xmm14
1772 pxor %xmm13,%xmm6
1773 movdqu 32(%r12),%xmm9
1774 cmpq $48,%r14
1775 je L$xts_enc_3
1776 pxor %xmm8,%xmm0
1777 pshufd $0x13,%xmm14,%xmm13
1778 pxor %xmm14,%xmm14
1779 movdqa %xmm6,%xmm3
1780 movdqa %xmm6,64(%rsp)
1781 paddq %xmm6,%xmm6
1782 pand %xmm12,%xmm13
1783 pcmpgtd %xmm6,%xmm14
1784 pxor %xmm13,%xmm6
1785 movdqu 48(%r12),%xmm10
1786 cmpq $64,%r14
1787 je L$xts_enc_4
1788 pxor %xmm9,%xmm1
1789 pshufd $0x13,%xmm14,%xmm13
1790 pxor %xmm14,%xmm14
1791 movdqa %xmm6,%xmm4
1792 movdqa %xmm6,80(%rsp)
1793 paddq %xmm6,%xmm6
1794 pand %xmm12,%xmm13
1795 pcmpgtd %xmm6,%xmm14
1796 pxor %xmm13,%xmm6
1797 movdqu 64(%r12),%xmm11
1798 cmpq $80,%r14
1799 je L$xts_enc_5
1800 pxor %xmm10,%xmm2
1801 pshufd $0x13,%xmm14,%xmm13
1802 pxor %xmm14,%xmm14
1803 movdqa %xmm6,%xmm5
1804 movdqa %xmm6,96(%rsp)
1805 paddq %xmm6,%xmm6
1806 pand %xmm12,%xmm13
1807 pcmpgtd %xmm6,%xmm14
1808 pxor %xmm13,%xmm6
1809 movdqu 80(%r12),%xmm12
1810 cmpq $96,%r14
1811 je L$xts_enc_6
1812 pxor %xmm11,%xmm3
1813 movdqu 96(%r12),%xmm13
1814 pxor %xmm12,%xmm4
1815 movdqa %xmm6,112(%rsp)
1816 leaq 112(%r12),%r12
1817 pxor %xmm13,%xmm5
1818 leaq 128(%rsp),%rax
1819 movl %edx,%r10d
1820
1821 call _bsaes_encrypt8
1822
1823 pxor 0(%rsp),%xmm15
1824 pxor 16(%rsp),%xmm0
1825 movdqu %xmm15,0(%r13)
1826 pxor 32(%rsp),%xmm3
1827 movdqu %xmm0,16(%r13)
1828 pxor 48(%rsp),%xmm5
1829 movdqu %xmm3,32(%r13)
1830 pxor 64(%rsp),%xmm2
1831 movdqu %xmm5,48(%r13)
1832 pxor 80(%rsp),%xmm6
1833 movdqu %xmm2,64(%r13)
1834 pxor 96(%rsp),%xmm1
1835 movdqu %xmm6,80(%r13)
1836 movdqu %xmm1,96(%r13)
1837 leaq 112(%r13),%r13
1838
1839 movdqa 112(%rsp),%xmm6
1840 jmp L$xts_enc_done
1841.p2align 4
1842L$xts_enc_6:
1843 pxor %xmm11,%xmm3
1844 leaq 96(%r12),%r12
1845 pxor %xmm12,%xmm4
1846 leaq 128(%rsp),%rax
1847 movl %edx,%r10d
1848
1849 call _bsaes_encrypt8
1850
1851 pxor 0(%rsp),%xmm15
1852 pxor 16(%rsp),%xmm0
1853 movdqu %xmm15,0(%r13)
1854 pxor 32(%rsp),%xmm3
1855 movdqu %xmm0,16(%r13)
1856 pxor 48(%rsp),%xmm5
1857 movdqu %xmm3,32(%r13)
1858 pxor 64(%rsp),%xmm2
1859 movdqu %xmm5,48(%r13)
1860 pxor 80(%rsp),%xmm6
1861 movdqu %xmm2,64(%r13)
1862 movdqu %xmm6,80(%r13)
1863 leaq 96(%r13),%r13
1864
1865 movdqa 96(%rsp),%xmm6
1866 jmp L$xts_enc_done
1867.p2align 4
1868L$xts_enc_5:
1869 pxor %xmm10,%xmm2
1870 leaq 80(%r12),%r12
1871 pxor %xmm11,%xmm3
1872 leaq 128(%rsp),%rax
1873 movl %edx,%r10d
1874
1875 call _bsaes_encrypt8
1876
1877 pxor 0(%rsp),%xmm15
1878 pxor 16(%rsp),%xmm0
1879 movdqu %xmm15,0(%r13)
1880 pxor 32(%rsp),%xmm3
1881 movdqu %xmm0,16(%r13)
1882 pxor 48(%rsp),%xmm5
1883 movdqu %xmm3,32(%r13)
1884 pxor 64(%rsp),%xmm2
1885 movdqu %xmm5,48(%r13)
1886 movdqu %xmm2,64(%r13)
1887 leaq 80(%r13),%r13
1888
1889 movdqa 80(%rsp),%xmm6
1890 jmp L$xts_enc_done
1891.p2align 4
1892L$xts_enc_4:
1893 pxor %xmm9,%xmm1
1894 leaq 64(%r12),%r12
1895 pxor %xmm10,%xmm2
1896 leaq 128(%rsp),%rax
1897 movl %edx,%r10d
1898
1899 call _bsaes_encrypt8
1900
1901 pxor 0(%rsp),%xmm15
1902 pxor 16(%rsp),%xmm0
1903 movdqu %xmm15,0(%r13)
1904 pxor 32(%rsp),%xmm3
1905 movdqu %xmm0,16(%r13)
1906 pxor 48(%rsp),%xmm5
1907 movdqu %xmm3,32(%r13)
1908 movdqu %xmm5,48(%r13)
1909 leaq 64(%r13),%r13
1910
1911 movdqa 64(%rsp),%xmm6
1912 jmp L$xts_enc_done
1913.p2align 4
1914L$xts_enc_3:
1915 pxor %xmm8,%xmm0
1916 leaq 48(%r12),%r12
1917 pxor %xmm9,%xmm1
1918 leaq 128(%rsp),%rax
1919 movl %edx,%r10d
1920
1921 call _bsaes_encrypt8
1922
1923 pxor 0(%rsp),%xmm15
1924 pxor 16(%rsp),%xmm0
1925 movdqu %xmm15,0(%r13)
1926 pxor 32(%rsp),%xmm3
1927 movdqu %xmm0,16(%r13)
1928 movdqu %xmm3,32(%r13)
1929 leaq 48(%r13),%r13
1930
1931 movdqa 48(%rsp),%xmm6
1932 jmp L$xts_enc_done
1933.p2align 4
1934L$xts_enc_2:
1935 pxor %xmm7,%xmm15
1936 leaq 32(%r12),%r12
1937 pxor %xmm8,%xmm0
1938 leaq 128(%rsp),%rax
1939 movl %edx,%r10d
1940
1941 call _bsaes_encrypt8
1942
1943 pxor 0(%rsp),%xmm15
1944 pxor 16(%rsp),%xmm0
1945 movdqu %xmm15,0(%r13)
1946 movdqu %xmm0,16(%r13)
1947 leaq 32(%r13),%r13
1948
1949 movdqa 32(%rsp),%xmm6
1950 jmp L$xts_enc_done
1951.p2align 4
1952L$xts_enc_1:
1953 pxor %xmm15,%xmm7
1954 leaq 16(%r12),%r12
1955 movdqa %xmm7,32(%rbp)
1956 leaq 32(%rbp),%rdi
1957 leaq 32(%rbp),%rsi
1958 leaq (%r15),%rdx
1959 call _asm_AES_encrypt
1960 pxor 32(%rbp),%xmm15
1961
1962
1963
1964
1965
1966 movdqu %xmm15,0(%r13)
1967 leaq 16(%r13),%r13
1968
1969 movdqa 16(%rsp),%xmm6
1970
1971L$xts_enc_done:
1972 andl $15,%ebx
1973 jz L$xts_enc_ret
1974 movq %r13,%rdx
1975
1976L$xts_enc_steal:
1977 movzbl (%r12),%eax
1978 movzbl -16(%rdx),%ecx
1979 leaq 1(%r12),%r12
1980 movb %al,-16(%rdx)
1981 movb %cl,0(%rdx)
1982 leaq 1(%rdx),%rdx
1983 subl $1,%ebx
1984 jnz L$xts_enc_steal
1985
1986 movdqu -16(%r13),%xmm15
1987 leaq 32(%rbp),%rdi
1988 pxor %xmm6,%xmm15
1989 leaq 32(%rbp),%rsi
1990 movdqa %xmm15,32(%rbp)
1991 leaq (%r15),%rdx
1992 call _asm_AES_encrypt
1993 pxor 32(%rbp),%xmm6
1994 movdqu %xmm6,-16(%r13)
1995
1996L$xts_enc_ret:
1997 leaq (%rsp),%rax
1998 pxor %xmm0,%xmm0
1999L$xts_enc_bzero:
2000 movdqa %xmm0,0(%rax)
2001 movdqa %xmm0,16(%rax)
2002 leaq 32(%rax),%rax
2003 cmpq %rax,%rbp
2004 ja L$xts_enc_bzero
2005
2006 leaq 120(%rbp),%rax
2007
2008 movq -48(%rax),%r15
2009
2010 movq -40(%rax),%r14
2011
2012 movq -32(%rax),%r13
2013
2014 movq -24(%rax),%r12
2015
2016 movq -16(%rax),%rbx
2017
2018 movq -8(%rax),%rbp
2019
2020 leaq (%rax),%rsp
2021
2022L$xts_enc_epilogue:
2023 .byte 0xf3,0xc3
2024
2025
2026
2027.globl _ossl_bsaes_xts_decrypt
2028
2029.p2align 4
2030_ossl_bsaes_xts_decrypt:
2031
2032.byte 243,15,30,250
2033 movq %rsp,%rax
2034L$xts_dec_prologue:
2035 pushq %rbp
2036
2037 pushq %rbx
2038
2039 pushq %r12
2040
2041 pushq %r13
2042
2043 pushq %r14
2044
2045 pushq %r15
2046
2047 leaq -72(%rsp),%rsp
2048
2049 movq %rsp,%rbp
2050 movq %rdi,%r12
2051 movq %rsi,%r13
2052 movq %rdx,%r14
2053 movq %rcx,%r15
2054
2055 leaq (%r9),%rdi
2056 leaq 32(%rbp),%rsi
2057 leaq (%r8),%rdx
2058 call _asm_AES_encrypt
2059
2060 movl 240(%r15),%eax
2061 movq %r14,%rbx
2062
2063 movl %eax,%edx
2064 shlq $7,%rax
2065 subq $96,%rax
2066 subq %rax,%rsp
2067
2068 movq %rsp,%rax
2069 movq %r15,%rcx
2070 movl %edx,%r10d
2071 call _bsaes_key_convert
2072 pxor (%rsp),%xmm7
2073 movdqa %xmm6,(%rax)
2074 movdqa %xmm7,(%rsp)
2075
2076 xorl %eax,%eax
2077 andq $-16,%r14
2078 testl $15,%ebx
2079 setnz %al
2080 shlq $4,%rax
2081 subq %rax,%r14
2082
2083 subq $0x80,%rsp
2084 movdqa 32(%rbp),%xmm6
2085
2086 pxor %xmm14,%xmm14
2087 movdqa L$xts_magic(%rip),%xmm12
2088 pcmpgtd %xmm6,%xmm14
2089
2090 subq $0x80,%r14
2091 jc L$xts_dec_short
2092 jmp L$xts_dec_loop
2093
2094.p2align 4
2095L$xts_dec_loop:
2096 pshufd $0x13,%xmm14,%xmm13
2097 pxor %xmm14,%xmm14
2098 movdqa %xmm6,%xmm15
2099 movdqa %xmm6,0(%rsp)
2100 paddq %xmm6,%xmm6
2101 pand %xmm12,%xmm13
2102 pcmpgtd %xmm6,%xmm14
2103 pxor %xmm13,%xmm6
2104 pshufd $0x13,%xmm14,%xmm13
2105 pxor %xmm14,%xmm14
2106 movdqa %xmm6,%xmm0
2107 movdqa %xmm6,16(%rsp)
2108 paddq %xmm6,%xmm6
2109 pand %xmm12,%xmm13
2110 pcmpgtd %xmm6,%xmm14
2111 pxor %xmm13,%xmm6
2112 movdqu 0(%r12),%xmm7
2113 pshufd $0x13,%xmm14,%xmm13
2114 pxor %xmm14,%xmm14
2115 movdqa %xmm6,%xmm1
2116 movdqa %xmm6,32(%rsp)
2117 paddq %xmm6,%xmm6
2118 pand %xmm12,%xmm13
2119 pcmpgtd %xmm6,%xmm14
2120 pxor %xmm13,%xmm6
2121 movdqu 16(%r12),%xmm8
2122 pxor %xmm7,%xmm15
2123 pshufd $0x13,%xmm14,%xmm13
2124 pxor %xmm14,%xmm14
2125 movdqa %xmm6,%xmm2
2126 movdqa %xmm6,48(%rsp)
2127 paddq %xmm6,%xmm6
2128 pand %xmm12,%xmm13
2129 pcmpgtd %xmm6,%xmm14
2130 pxor %xmm13,%xmm6
2131 movdqu 32(%r12),%xmm9
2132 pxor %xmm8,%xmm0
2133 pshufd $0x13,%xmm14,%xmm13
2134 pxor %xmm14,%xmm14
2135 movdqa %xmm6,%xmm3
2136 movdqa %xmm6,64(%rsp)
2137 paddq %xmm6,%xmm6
2138 pand %xmm12,%xmm13
2139 pcmpgtd %xmm6,%xmm14
2140 pxor %xmm13,%xmm6
2141 movdqu 48(%r12),%xmm10
2142 pxor %xmm9,%xmm1
2143 pshufd $0x13,%xmm14,%xmm13
2144 pxor %xmm14,%xmm14
2145 movdqa %xmm6,%xmm4
2146 movdqa %xmm6,80(%rsp)
2147 paddq %xmm6,%xmm6
2148 pand %xmm12,%xmm13
2149 pcmpgtd %xmm6,%xmm14
2150 pxor %xmm13,%xmm6
2151 movdqu 64(%r12),%xmm11
2152 pxor %xmm10,%xmm2
2153 pshufd $0x13,%xmm14,%xmm13
2154 pxor %xmm14,%xmm14
2155 movdqa %xmm6,%xmm5
2156 movdqa %xmm6,96(%rsp)
2157 paddq %xmm6,%xmm6
2158 pand %xmm12,%xmm13
2159 pcmpgtd %xmm6,%xmm14
2160 pxor %xmm13,%xmm6
2161 movdqu 80(%r12),%xmm12
2162 pxor %xmm11,%xmm3
2163 movdqu 96(%r12),%xmm13
2164 pxor %xmm12,%xmm4
2165 movdqu 112(%r12),%xmm14
2166 leaq 128(%r12),%r12
2167 movdqa %xmm6,112(%rsp)
2168 pxor %xmm13,%xmm5
2169 leaq 128(%rsp),%rax
2170 pxor %xmm14,%xmm6
2171 movl %edx,%r10d
2172
2173 call _bsaes_decrypt8
2174
2175 pxor 0(%rsp),%xmm15
2176 pxor 16(%rsp),%xmm0
2177 movdqu %xmm15,0(%r13)
2178 pxor 32(%rsp),%xmm5
2179 movdqu %xmm0,16(%r13)
2180 pxor 48(%rsp),%xmm3
2181 movdqu %xmm5,32(%r13)
2182 pxor 64(%rsp),%xmm1
2183 movdqu %xmm3,48(%r13)
2184 pxor 80(%rsp),%xmm6
2185 movdqu %xmm1,64(%r13)
2186 pxor 96(%rsp),%xmm2
2187 movdqu %xmm6,80(%r13)
2188 pxor 112(%rsp),%xmm4
2189 movdqu %xmm2,96(%r13)
2190 movdqu %xmm4,112(%r13)
2191 leaq 128(%r13),%r13
2192
2193 movdqa 112(%rsp),%xmm6
2194 pxor %xmm14,%xmm14
2195 movdqa L$xts_magic(%rip),%xmm12
2196 pcmpgtd %xmm6,%xmm14
2197 pshufd $0x13,%xmm14,%xmm13
2198 pxor %xmm14,%xmm14
2199 paddq %xmm6,%xmm6
2200 pand %xmm12,%xmm13
2201 pcmpgtd %xmm6,%xmm14
2202 pxor %xmm13,%xmm6
2203
2204 subq $0x80,%r14
2205 jnc L$xts_dec_loop
2206
2207L$xts_dec_short:
2208 addq $0x80,%r14
2209 jz L$xts_dec_done
2210 pshufd $0x13,%xmm14,%xmm13
2211 pxor %xmm14,%xmm14
2212 movdqa %xmm6,%xmm15
2213 movdqa %xmm6,0(%rsp)
2214 paddq %xmm6,%xmm6
2215 pand %xmm12,%xmm13
2216 pcmpgtd %xmm6,%xmm14
2217 pxor %xmm13,%xmm6
2218 pshufd $0x13,%xmm14,%xmm13
2219 pxor %xmm14,%xmm14
2220 movdqa %xmm6,%xmm0
2221 movdqa %xmm6,16(%rsp)
2222 paddq %xmm6,%xmm6
2223 pand %xmm12,%xmm13
2224 pcmpgtd %xmm6,%xmm14
2225 pxor %xmm13,%xmm6
2226 movdqu 0(%r12),%xmm7
2227 cmpq $16,%r14
2228 je L$xts_dec_1
2229 pshufd $0x13,%xmm14,%xmm13
2230 pxor %xmm14,%xmm14
2231 movdqa %xmm6,%xmm1
2232 movdqa %xmm6,32(%rsp)
2233 paddq %xmm6,%xmm6
2234 pand %xmm12,%xmm13
2235 pcmpgtd %xmm6,%xmm14
2236 pxor %xmm13,%xmm6
2237 movdqu 16(%r12),%xmm8
2238 cmpq $32,%r14
2239 je L$xts_dec_2
2240 pxor %xmm7,%xmm15
2241 pshufd $0x13,%xmm14,%xmm13
2242 pxor %xmm14,%xmm14
2243 movdqa %xmm6,%xmm2
2244 movdqa %xmm6,48(%rsp)
2245 paddq %xmm6,%xmm6
2246 pand %xmm12,%xmm13
2247 pcmpgtd %xmm6,%xmm14
2248 pxor %xmm13,%xmm6
2249 movdqu 32(%r12),%xmm9
2250 cmpq $48,%r14
2251 je L$xts_dec_3
2252 pxor %xmm8,%xmm0
2253 pshufd $0x13,%xmm14,%xmm13
2254 pxor %xmm14,%xmm14
2255 movdqa %xmm6,%xmm3
2256 movdqa %xmm6,64(%rsp)
2257 paddq %xmm6,%xmm6
2258 pand %xmm12,%xmm13
2259 pcmpgtd %xmm6,%xmm14
2260 pxor %xmm13,%xmm6
2261 movdqu 48(%r12),%xmm10
2262 cmpq $64,%r14
2263 je L$xts_dec_4
2264 pxor %xmm9,%xmm1
2265 pshufd $0x13,%xmm14,%xmm13
2266 pxor %xmm14,%xmm14
2267 movdqa %xmm6,%xmm4
2268 movdqa %xmm6,80(%rsp)
2269 paddq %xmm6,%xmm6
2270 pand %xmm12,%xmm13
2271 pcmpgtd %xmm6,%xmm14
2272 pxor %xmm13,%xmm6
2273 movdqu 64(%r12),%xmm11
2274 cmpq $80,%r14
2275 je L$xts_dec_5
2276 pxor %xmm10,%xmm2
2277 pshufd $0x13,%xmm14,%xmm13
2278 pxor %xmm14,%xmm14
2279 movdqa %xmm6,%xmm5
2280 movdqa %xmm6,96(%rsp)
2281 paddq %xmm6,%xmm6
2282 pand %xmm12,%xmm13
2283 pcmpgtd %xmm6,%xmm14
2284 pxor %xmm13,%xmm6
2285 movdqu 80(%r12),%xmm12
2286 cmpq $96,%r14
2287 je L$xts_dec_6
2288 pxor %xmm11,%xmm3
2289 movdqu 96(%r12),%xmm13
2290 pxor %xmm12,%xmm4
2291 movdqa %xmm6,112(%rsp)
2292 leaq 112(%r12),%r12
2293 pxor %xmm13,%xmm5
2294 leaq 128(%rsp),%rax
2295 movl %edx,%r10d
2296
2297 call _bsaes_decrypt8
2298
2299 pxor 0(%rsp),%xmm15
2300 pxor 16(%rsp),%xmm0
2301 movdqu %xmm15,0(%r13)
2302 pxor 32(%rsp),%xmm5
2303 movdqu %xmm0,16(%r13)
2304 pxor 48(%rsp),%xmm3
2305 movdqu %xmm5,32(%r13)
2306 pxor 64(%rsp),%xmm1
2307 movdqu %xmm3,48(%r13)
2308 pxor 80(%rsp),%xmm6
2309 movdqu %xmm1,64(%r13)
2310 pxor 96(%rsp),%xmm2
2311 movdqu %xmm6,80(%r13)
2312 movdqu %xmm2,96(%r13)
2313 leaq 112(%r13),%r13
2314
2315 movdqa 112(%rsp),%xmm6
2316 jmp L$xts_dec_done
2317.p2align 4
2318L$xts_dec_6:
2319 pxor %xmm11,%xmm3
2320 leaq 96(%r12),%r12
2321 pxor %xmm12,%xmm4
2322 leaq 128(%rsp),%rax
2323 movl %edx,%r10d
2324
2325 call _bsaes_decrypt8
2326
2327 pxor 0(%rsp),%xmm15
2328 pxor 16(%rsp),%xmm0
2329 movdqu %xmm15,0(%r13)
2330 pxor 32(%rsp),%xmm5
2331 movdqu %xmm0,16(%r13)
2332 pxor 48(%rsp),%xmm3
2333 movdqu %xmm5,32(%r13)
2334 pxor 64(%rsp),%xmm1
2335 movdqu %xmm3,48(%r13)
2336 pxor 80(%rsp),%xmm6
2337 movdqu %xmm1,64(%r13)
2338 movdqu %xmm6,80(%r13)
2339 leaq 96(%r13),%r13
2340
2341 movdqa 96(%rsp),%xmm6
2342 jmp L$xts_dec_done
2343.p2align 4
2344L$xts_dec_5:
2345 pxor %xmm10,%xmm2
2346 leaq 80(%r12),%r12
2347 pxor %xmm11,%xmm3
2348 leaq 128(%rsp),%rax
2349 movl %edx,%r10d
2350
2351 call _bsaes_decrypt8
2352
2353 pxor 0(%rsp),%xmm15
2354 pxor 16(%rsp),%xmm0
2355 movdqu %xmm15,0(%r13)
2356 pxor 32(%rsp),%xmm5
2357 movdqu %xmm0,16(%r13)
2358 pxor 48(%rsp),%xmm3
2359 movdqu %xmm5,32(%r13)
2360 pxor 64(%rsp),%xmm1
2361 movdqu %xmm3,48(%r13)
2362 movdqu %xmm1,64(%r13)
2363 leaq 80(%r13),%r13
2364
2365 movdqa 80(%rsp),%xmm6
2366 jmp L$xts_dec_done
2367.p2align 4
2368L$xts_dec_4:
2369 pxor %xmm9,%xmm1
2370 leaq 64(%r12),%r12
2371 pxor %xmm10,%xmm2
2372 leaq 128(%rsp),%rax
2373 movl %edx,%r10d
2374
2375 call _bsaes_decrypt8
2376
2377 pxor 0(%rsp),%xmm15
2378 pxor 16(%rsp),%xmm0
2379 movdqu %xmm15,0(%r13)
2380 pxor 32(%rsp),%xmm5
2381 movdqu %xmm0,16(%r13)
2382 pxor 48(%rsp),%xmm3
2383 movdqu %xmm5,32(%r13)
2384 movdqu %xmm3,48(%r13)
2385 leaq 64(%r13),%r13
2386
2387 movdqa 64(%rsp),%xmm6
2388 jmp L$xts_dec_done
2389.p2align 4
2390L$xts_dec_3:
2391 pxor %xmm8,%xmm0
2392 leaq 48(%r12),%r12
2393 pxor %xmm9,%xmm1
2394 leaq 128(%rsp),%rax
2395 movl %edx,%r10d
2396
2397 call _bsaes_decrypt8
2398
2399 pxor 0(%rsp),%xmm15
2400 pxor 16(%rsp),%xmm0
2401 movdqu %xmm15,0(%r13)
2402 pxor 32(%rsp),%xmm5
2403 movdqu %xmm0,16(%r13)
2404 movdqu %xmm5,32(%r13)
2405 leaq 48(%r13),%r13
2406
2407 movdqa 48(%rsp),%xmm6
2408 jmp L$xts_dec_done
2409.p2align 4
2410L$xts_dec_2:
2411 pxor %xmm7,%xmm15
2412 leaq 32(%r12),%r12
2413 pxor %xmm8,%xmm0
2414 leaq 128(%rsp),%rax
2415 movl %edx,%r10d
2416
2417 call _bsaes_decrypt8
2418
2419 pxor 0(%rsp),%xmm15
2420 pxor 16(%rsp),%xmm0
2421 movdqu %xmm15,0(%r13)
2422 movdqu %xmm0,16(%r13)
2423 leaq 32(%r13),%r13
2424
2425 movdqa 32(%rsp),%xmm6
2426 jmp L$xts_dec_done
2427.p2align 4
2428L$xts_dec_1:
2429 pxor %xmm15,%xmm7
2430 leaq 16(%r12),%r12
2431 movdqa %xmm7,32(%rbp)
2432 leaq 32(%rbp),%rdi
2433 leaq 32(%rbp),%rsi
2434 leaq (%r15),%rdx
2435 call _asm_AES_decrypt
2436 pxor 32(%rbp),%xmm15
2437
2438
2439
2440
2441
2442 movdqu %xmm15,0(%r13)
2443 leaq 16(%r13),%r13
2444
2445 movdqa 16(%rsp),%xmm6
2446
2447L$xts_dec_done:
2448 andl $15,%ebx
2449 jz L$xts_dec_ret
2450
2451 pxor %xmm14,%xmm14
2452 movdqa L$xts_magic(%rip),%xmm12
2453 pcmpgtd %xmm6,%xmm14
2454 pshufd $0x13,%xmm14,%xmm13
2455 movdqa %xmm6,%xmm5
2456 paddq %xmm6,%xmm6
2457 pand %xmm12,%xmm13
2458 movdqu (%r12),%xmm15
2459 pxor %xmm13,%xmm6
2460
2461 leaq 32(%rbp),%rdi
2462 pxor %xmm6,%xmm15
2463 leaq 32(%rbp),%rsi
2464 movdqa %xmm15,32(%rbp)
2465 leaq (%r15),%rdx
2466 call _asm_AES_decrypt
2467 pxor 32(%rbp),%xmm6
2468 movq %r13,%rdx
2469 movdqu %xmm6,(%r13)
2470
2471L$xts_dec_steal:
2472 movzbl 16(%r12),%eax
2473 movzbl (%rdx),%ecx
2474 leaq 1(%r12),%r12
2475 movb %al,(%rdx)
2476 movb %cl,16(%rdx)
2477 leaq 1(%rdx),%rdx
2478 subl $1,%ebx
2479 jnz L$xts_dec_steal
2480
2481 movdqu (%r13),%xmm15
2482 leaq 32(%rbp),%rdi
2483 pxor %xmm5,%xmm15
2484 leaq 32(%rbp),%rsi
2485 movdqa %xmm15,32(%rbp)
2486 leaq (%r15),%rdx
2487 call _asm_AES_decrypt
2488 pxor 32(%rbp),%xmm5
2489 movdqu %xmm5,(%r13)
2490
2491L$xts_dec_ret:
2492 leaq (%rsp),%rax
2493 pxor %xmm0,%xmm0
2494L$xts_dec_bzero:
2495 movdqa %xmm0,0(%rax)
2496 movdqa %xmm0,16(%rax)
2497 leaq 32(%rax),%rax
2498 cmpq %rax,%rbp
2499 ja L$xts_dec_bzero
2500
2501 leaq 120(%rbp),%rax
2502
2503 movq -48(%rax),%r15
2504
2505 movq -40(%rax),%r14
2506
2507 movq -32(%rax),%r13
2508
2509 movq -24(%rax),%r12
2510
2511 movq -16(%rax),%rbx
2512
2513 movq -8(%rax),%rbp
2514
2515 leaq (%rax),%rsp
2516
2517L$xts_dec_epilogue:
2518 .byte 0xf3,0xc3
2519
2520
2521
2522.section __DATA,__const
2523.p2align 6
2524_bsaes_const:
2525L$M0ISR:
2526.quad 0x0a0e0206070b0f03, 0x0004080c0d010509
2527L$ISRM0:
2528.quad 0x01040b0e0205080f, 0x0306090c00070a0d
2529L$ISR:
2530.quad 0x0504070602010003, 0x0f0e0d0c080b0a09
2531L$BS0:
2532.quad 0x5555555555555555, 0x5555555555555555
2533L$BS1:
2534.quad 0x3333333333333333, 0x3333333333333333
2535L$BS2:
2536.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f
2537L$SR:
2538.quad 0x0504070600030201, 0x0f0e0d0c0a09080b
2539L$SRM0:
2540.quad 0x0304090e00050a0f, 0x01060b0c0207080d
2541L$M0SR:
2542.quad 0x0a0e02060f03070b, 0x0004080c05090d01
2543L$SWPUP:
2544.quad 0x0706050403020100, 0x0c0d0e0f0b0a0908
2545L$SWPUPM0SR:
2546.quad 0x0a0d02060c03070b, 0x0004080f05090e01
2547L$ADD1:
2548.quad 0x0000000000000000, 0x0000000100000000
2549L$ADD2:
2550.quad 0x0000000000000000, 0x0000000200000000
2551L$ADD3:
2552.quad 0x0000000000000000, 0x0000000300000000
2553L$ADD4:
2554.quad 0x0000000000000000, 0x0000000400000000
2555L$ADD5:
2556.quad 0x0000000000000000, 0x0000000500000000
2557L$ADD6:
2558.quad 0x0000000000000000, 0x0000000600000000
2559L$ADD7:
2560.quad 0x0000000000000000, 0x0000000700000000
2561L$ADD8:
2562.quad 0x0000000000000000, 0x0000000800000000
2563L$xts_magic:
2564.long 0x87,0,1,0
2565L$masks:
2566.quad 0x0101010101010101, 0x0101010101010101
2567.quad 0x0202020202020202, 0x0202020202020202
2568.quad 0x0404040404040404, 0x0404040404040404
2569.quad 0x0808080808080808, 0x0808080808080808
2570L$M0:
2571.quad 0x02060a0e03070b0f, 0x0004080c0105090d
2572L$63:
2573.quad 0x6363636363636363, 0x6363636363636363
2574.p2align 6
2575
2576.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
Note: See TracBrowser for help on using the repository browser.

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