VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.1/crypto/genasm-elf/aesni-mb-x86_64.S@ 94083

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

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

File size: 10.4 KB
Line 
1.text
2
3
4
5.globl aesni_multi_cbc_encrypt
6.type aesni_multi_cbc_encrypt,@function
7.align 32
8aesni_multi_cbc_encrypt:
9.cfi_startproc
10 movq %rsp,%rax
11.cfi_def_cfa_register %rax
12 pushq %rbx
13.cfi_offset %rbx,-16
14 pushq %rbp
15.cfi_offset %rbp,-24
16 pushq %r12
17.cfi_offset %r12,-32
18 pushq %r13
19.cfi_offset %r13,-40
20 pushq %r14
21.cfi_offset %r14,-48
22 pushq %r15
23.cfi_offset %r15,-56
24
25
26
27
28
29
30 subq $48,%rsp
31 andq $-64,%rsp
32 movq %rax,16(%rsp)
33.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08
34
35.Lenc4x_body:
36 movdqu (%rsi),%xmm12
37 leaq 120(%rsi),%rsi
38 leaq 80(%rdi),%rdi
39
40.Lenc4x_loop_grande:
41 movl %edx,24(%rsp)
42 xorl %edx,%edx
43
44 movl -64(%rdi),%ecx
45 movq -80(%rdi),%r8
46 cmpl %edx,%ecx
47 movq -72(%rdi),%r12
48 cmovgl %ecx,%edx
49 testl %ecx,%ecx
50
51 movdqu -56(%rdi),%xmm2
52 movl %ecx,32(%rsp)
53 cmovleq %rsp,%r8
54
55 movl -24(%rdi),%ecx
56 movq -40(%rdi),%r9
57 cmpl %edx,%ecx
58 movq -32(%rdi),%r13
59 cmovgl %ecx,%edx
60 testl %ecx,%ecx
61
62 movdqu -16(%rdi),%xmm3
63 movl %ecx,36(%rsp)
64 cmovleq %rsp,%r9
65
66 movl 16(%rdi),%ecx
67 movq 0(%rdi),%r10
68 cmpl %edx,%ecx
69 movq 8(%rdi),%r14
70 cmovgl %ecx,%edx
71 testl %ecx,%ecx
72
73 movdqu 24(%rdi),%xmm4
74 movl %ecx,40(%rsp)
75 cmovleq %rsp,%r10
76
77 movl 56(%rdi),%ecx
78 movq 40(%rdi),%r11
79 cmpl %edx,%ecx
80 movq 48(%rdi),%r15
81 cmovgl %ecx,%edx
82 testl %ecx,%ecx
83
84 movdqu 64(%rdi),%xmm5
85 movl %ecx,44(%rsp)
86 cmovleq %rsp,%r11
87 testl %edx,%edx
88 jz .Lenc4x_done
89
90 movups 16-120(%rsi),%xmm1
91 pxor %xmm12,%xmm2
92 movups 32-120(%rsi),%xmm0
93 pxor %xmm12,%xmm3
94 movl 240-120(%rsi),%eax
95 pxor %xmm12,%xmm4
96 movdqu (%r8),%xmm6
97 pxor %xmm12,%xmm5
98 movdqu (%r9),%xmm7
99 pxor %xmm6,%xmm2
100 movdqu (%r10),%xmm8
101 pxor %xmm7,%xmm3
102 movdqu (%r11),%xmm9
103 pxor %xmm8,%xmm4
104 pxor %xmm9,%xmm5
105 movdqa 32(%rsp),%xmm10
106 xorq %rbx,%rbx
107 jmp .Loop_enc4x
108
109.align 32
110.Loop_enc4x:
111 addq $16,%rbx
112 leaq 16(%rsp),%rbp
113 movl $1,%ecx
114 subq %rbx,%rbp
115
116.byte 102,15,56,220,209
117 prefetcht0 31(%r8,%rbx,1)
118 prefetcht0 31(%r9,%rbx,1)
119.byte 102,15,56,220,217
120 prefetcht0 31(%r10,%rbx,1)
121 prefetcht0 31(%r10,%rbx,1)
122.byte 102,15,56,220,225
123.byte 102,15,56,220,233
124 movups 48-120(%rsi),%xmm1
125 cmpl 32(%rsp),%ecx
126.byte 102,15,56,220,208
127.byte 102,15,56,220,216
128.byte 102,15,56,220,224
129 cmovgeq %rbp,%r8
130 cmovgq %rbp,%r12
131.byte 102,15,56,220,232
132 movups -56(%rsi),%xmm0
133 cmpl 36(%rsp),%ecx
134.byte 102,15,56,220,209
135.byte 102,15,56,220,217
136.byte 102,15,56,220,225
137 cmovgeq %rbp,%r9
138 cmovgq %rbp,%r13
139.byte 102,15,56,220,233
140 movups -40(%rsi),%xmm1
141 cmpl 40(%rsp),%ecx
142.byte 102,15,56,220,208
143.byte 102,15,56,220,216
144.byte 102,15,56,220,224
145 cmovgeq %rbp,%r10
146 cmovgq %rbp,%r14
147.byte 102,15,56,220,232
148 movups -24(%rsi),%xmm0
149 cmpl 44(%rsp),%ecx
150.byte 102,15,56,220,209
151.byte 102,15,56,220,217
152.byte 102,15,56,220,225
153 cmovgeq %rbp,%r11
154 cmovgq %rbp,%r15
155.byte 102,15,56,220,233
156 movups -8(%rsi),%xmm1
157 movdqa %xmm10,%xmm11
158.byte 102,15,56,220,208
159 prefetcht0 15(%r12,%rbx,1)
160 prefetcht0 15(%r13,%rbx,1)
161.byte 102,15,56,220,216
162 prefetcht0 15(%r14,%rbx,1)
163 prefetcht0 15(%r15,%rbx,1)
164.byte 102,15,56,220,224
165.byte 102,15,56,220,232
166 movups 128-120(%rsi),%xmm0
167 pxor %xmm12,%xmm12
168
169.byte 102,15,56,220,209
170 pcmpgtd %xmm12,%xmm11
171 movdqu -120(%rsi),%xmm12
172.byte 102,15,56,220,217
173 paddd %xmm11,%xmm10
174 movdqa %xmm10,32(%rsp)
175.byte 102,15,56,220,225
176.byte 102,15,56,220,233
177 movups 144-120(%rsi),%xmm1
178
179 cmpl $11,%eax
180
181.byte 102,15,56,220,208
182.byte 102,15,56,220,216
183.byte 102,15,56,220,224
184.byte 102,15,56,220,232
185 movups 160-120(%rsi),%xmm0
186
187 jb .Lenc4x_tail
188
189.byte 102,15,56,220,209
190.byte 102,15,56,220,217
191.byte 102,15,56,220,225
192.byte 102,15,56,220,233
193 movups 176-120(%rsi),%xmm1
194
195.byte 102,15,56,220,208
196.byte 102,15,56,220,216
197.byte 102,15,56,220,224
198.byte 102,15,56,220,232
199 movups 192-120(%rsi),%xmm0
200
201 je .Lenc4x_tail
202
203.byte 102,15,56,220,209
204.byte 102,15,56,220,217
205.byte 102,15,56,220,225
206.byte 102,15,56,220,233
207 movups 208-120(%rsi),%xmm1
208
209.byte 102,15,56,220,208
210.byte 102,15,56,220,216
211.byte 102,15,56,220,224
212.byte 102,15,56,220,232
213 movups 224-120(%rsi),%xmm0
214 jmp .Lenc4x_tail
215
216.align 32
217.Lenc4x_tail:
218.byte 102,15,56,220,209
219.byte 102,15,56,220,217
220.byte 102,15,56,220,225
221.byte 102,15,56,220,233
222 movdqu (%r8,%rbx,1),%xmm6
223 movdqu 16-120(%rsi),%xmm1
224
225.byte 102,15,56,221,208
226 movdqu (%r9,%rbx,1),%xmm7
227 pxor %xmm12,%xmm6
228.byte 102,15,56,221,216
229 movdqu (%r10,%rbx,1),%xmm8
230 pxor %xmm12,%xmm7
231.byte 102,15,56,221,224
232 movdqu (%r11,%rbx,1),%xmm9
233 pxor %xmm12,%xmm8
234.byte 102,15,56,221,232
235 movdqu 32-120(%rsi),%xmm0
236 pxor %xmm12,%xmm9
237
238 movups %xmm2,-16(%r12,%rbx,1)
239 pxor %xmm6,%xmm2
240 movups %xmm3,-16(%r13,%rbx,1)
241 pxor %xmm7,%xmm3
242 movups %xmm4,-16(%r14,%rbx,1)
243 pxor %xmm8,%xmm4
244 movups %xmm5,-16(%r15,%rbx,1)
245 pxor %xmm9,%xmm5
246
247 decl %edx
248 jnz .Loop_enc4x
249
250 movq 16(%rsp),%rax
251.cfi_def_cfa %rax,8
252 movl 24(%rsp),%edx
253
254
255
256
257
258
259
260
261
262
263
264 leaq 160(%rdi),%rdi
265 decl %edx
266 jnz .Lenc4x_loop_grande
267
268.Lenc4x_done:
269 movq -48(%rax),%r15
270.cfi_restore %r15
271 movq -40(%rax),%r14
272.cfi_restore %r14
273 movq -32(%rax),%r13
274.cfi_restore %r13
275 movq -24(%rax),%r12
276.cfi_restore %r12
277 movq -16(%rax),%rbp
278.cfi_restore %rbp
279 movq -8(%rax),%rbx
280.cfi_restore %rbx
281 leaq (%rax),%rsp
282.cfi_def_cfa_register %rsp
283.Lenc4x_epilogue:
284 .byte 0xf3,0xc3
285.cfi_endproc
286.size aesni_multi_cbc_encrypt,.-aesni_multi_cbc_encrypt
287
288.globl aesni_multi_cbc_decrypt
289.type aesni_multi_cbc_decrypt,@function
290.align 32
291aesni_multi_cbc_decrypt:
292.cfi_startproc
293 movq %rsp,%rax
294.cfi_def_cfa_register %rax
295 pushq %rbx
296.cfi_offset %rbx,-16
297 pushq %rbp
298.cfi_offset %rbp,-24
299 pushq %r12
300.cfi_offset %r12,-32
301 pushq %r13
302.cfi_offset %r13,-40
303 pushq %r14
304.cfi_offset %r14,-48
305 pushq %r15
306.cfi_offset %r15,-56
307
308
309
310
311
312
313 subq $48,%rsp
314 andq $-64,%rsp
315 movq %rax,16(%rsp)
316.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08
317
318.Ldec4x_body:
319 movdqu (%rsi),%xmm12
320 leaq 120(%rsi),%rsi
321 leaq 80(%rdi),%rdi
322
323.Ldec4x_loop_grande:
324 movl %edx,24(%rsp)
325 xorl %edx,%edx
326
327 movl -64(%rdi),%ecx
328 movq -80(%rdi),%r8
329 cmpl %edx,%ecx
330 movq -72(%rdi),%r12
331 cmovgl %ecx,%edx
332 testl %ecx,%ecx
333
334 movdqu -56(%rdi),%xmm6
335 movl %ecx,32(%rsp)
336 cmovleq %rsp,%r8
337
338 movl -24(%rdi),%ecx
339 movq -40(%rdi),%r9
340 cmpl %edx,%ecx
341 movq -32(%rdi),%r13
342 cmovgl %ecx,%edx
343 testl %ecx,%ecx
344
345 movdqu -16(%rdi),%xmm7
346 movl %ecx,36(%rsp)
347 cmovleq %rsp,%r9
348
349 movl 16(%rdi),%ecx
350 movq 0(%rdi),%r10
351 cmpl %edx,%ecx
352 movq 8(%rdi),%r14
353 cmovgl %ecx,%edx
354 testl %ecx,%ecx
355
356 movdqu 24(%rdi),%xmm8
357 movl %ecx,40(%rsp)
358 cmovleq %rsp,%r10
359
360 movl 56(%rdi),%ecx
361 movq 40(%rdi),%r11
362 cmpl %edx,%ecx
363 movq 48(%rdi),%r15
364 cmovgl %ecx,%edx
365 testl %ecx,%ecx
366
367 movdqu 64(%rdi),%xmm9
368 movl %ecx,44(%rsp)
369 cmovleq %rsp,%r11
370 testl %edx,%edx
371 jz .Ldec4x_done
372
373 movups 16-120(%rsi),%xmm1
374 movups 32-120(%rsi),%xmm0
375 movl 240-120(%rsi),%eax
376 movdqu (%r8),%xmm2
377 movdqu (%r9),%xmm3
378 pxor %xmm12,%xmm2
379 movdqu (%r10),%xmm4
380 pxor %xmm12,%xmm3
381 movdqu (%r11),%xmm5
382 pxor %xmm12,%xmm4
383 pxor %xmm12,%xmm5
384 movdqa 32(%rsp),%xmm10
385 xorq %rbx,%rbx
386 jmp .Loop_dec4x
387
388.align 32
389.Loop_dec4x:
390 addq $16,%rbx
391 leaq 16(%rsp),%rbp
392 movl $1,%ecx
393 subq %rbx,%rbp
394
395.byte 102,15,56,222,209
396 prefetcht0 31(%r8,%rbx,1)
397 prefetcht0 31(%r9,%rbx,1)
398.byte 102,15,56,222,217
399 prefetcht0 31(%r10,%rbx,1)
400 prefetcht0 31(%r11,%rbx,1)
401.byte 102,15,56,222,225
402.byte 102,15,56,222,233
403 movups 48-120(%rsi),%xmm1
404 cmpl 32(%rsp),%ecx
405.byte 102,15,56,222,208
406.byte 102,15,56,222,216
407.byte 102,15,56,222,224
408 cmovgeq %rbp,%r8
409 cmovgq %rbp,%r12
410.byte 102,15,56,222,232
411 movups -56(%rsi),%xmm0
412 cmpl 36(%rsp),%ecx
413.byte 102,15,56,222,209
414.byte 102,15,56,222,217
415.byte 102,15,56,222,225
416 cmovgeq %rbp,%r9
417 cmovgq %rbp,%r13
418.byte 102,15,56,222,233
419 movups -40(%rsi),%xmm1
420 cmpl 40(%rsp),%ecx
421.byte 102,15,56,222,208
422.byte 102,15,56,222,216
423.byte 102,15,56,222,224
424 cmovgeq %rbp,%r10
425 cmovgq %rbp,%r14
426.byte 102,15,56,222,232
427 movups -24(%rsi),%xmm0
428 cmpl 44(%rsp),%ecx
429.byte 102,15,56,222,209
430.byte 102,15,56,222,217
431.byte 102,15,56,222,225
432 cmovgeq %rbp,%r11
433 cmovgq %rbp,%r15
434.byte 102,15,56,222,233
435 movups -8(%rsi),%xmm1
436 movdqa %xmm10,%xmm11
437.byte 102,15,56,222,208
438 prefetcht0 15(%r12,%rbx,1)
439 prefetcht0 15(%r13,%rbx,1)
440.byte 102,15,56,222,216
441 prefetcht0 15(%r14,%rbx,1)
442 prefetcht0 15(%r15,%rbx,1)
443.byte 102,15,56,222,224
444.byte 102,15,56,222,232
445 movups 128-120(%rsi),%xmm0
446 pxor %xmm12,%xmm12
447
448.byte 102,15,56,222,209
449 pcmpgtd %xmm12,%xmm11
450 movdqu -120(%rsi),%xmm12
451.byte 102,15,56,222,217
452 paddd %xmm11,%xmm10
453 movdqa %xmm10,32(%rsp)
454.byte 102,15,56,222,225
455.byte 102,15,56,222,233
456 movups 144-120(%rsi),%xmm1
457
458 cmpl $11,%eax
459
460.byte 102,15,56,222,208
461.byte 102,15,56,222,216
462.byte 102,15,56,222,224
463.byte 102,15,56,222,232
464 movups 160-120(%rsi),%xmm0
465
466 jb .Ldec4x_tail
467
468.byte 102,15,56,222,209
469.byte 102,15,56,222,217
470.byte 102,15,56,222,225
471.byte 102,15,56,222,233
472 movups 176-120(%rsi),%xmm1
473
474.byte 102,15,56,222,208
475.byte 102,15,56,222,216
476.byte 102,15,56,222,224
477.byte 102,15,56,222,232
478 movups 192-120(%rsi),%xmm0
479
480 je .Ldec4x_tail
481
482.byte 102,15,56,222,209
483.byte 102,15,56,222,217
484.byte 102,15,56,222,225
485.byte 102,15,56,222,233
486 movups 208-120(%rsi),%xmm1
487
488.byte 102,15,56,222,208
489.byte 102,15,56,222,216
490.byte 102,15,56,222,224
491.byte 102,15,56,222,232
492 movups 224-120(%rsi),%xmm0
493 jmp .Ldec4x_tail
494
495.align 32
496.Ldec4x_tail:
497.byte 102,15,56,222,209
498.byte 102,15,56,222,217
499.byte 102,15,56,222,225
500 pxor %xmm0,%xmm6
501 pxor %xmm0,%xmm7
502.byte 102,15,56,222,233
503 movdqu 16-120(%rsi),%xmm1
504 pxor %xmm0,%xmm8
505 pxor %xmm0,%xmm9
506 movdqu 32-120(%rsi),%xmm0
507
508.byte 102,15,56,223,214
509.byte 102,15,56,223,223
510 movdqu -16(%r8,%rbx,1),%xmm6
511 movdqu -16(%r9,%rbx,1),%xmm7
512.byte 102,65,15,56,223,224
513.byte 102,65,15,56,223,233
514 movdqu -16(%r10,%rbx,1),%xmm8
515 movdqu -16(%r11,%rbx,1),%xmm9
516
517 movups %xmm2,-16(%r12,%rbx,1)
518 movdqu (%r8,%rbx,1),%xmm2
519 movups %xmm3,-16(%r13,%rbx,1)
520 movdqu (%r9,%rbx,1),%xmm3
521 pxor %xmm12,%xmm2
522 movups %xmm4,-16(%r14,%rbx,1)
523 movdqu (%r10,%rbx,1),%xmm4
524 pxor %xmm12,%xmm3
525 movups %xmm5,-16(%r15,%rbx,1)
526 movdqu (%r11,%rbx,1),%xmm5
527 pxor %xmm12,%xmm4
528 pxor %xmm12,%xmm5
529
530 decl %edx
531 jnz .Loop_dec4x
532
533 movq 16(%rsp),%rax
534.cfi_def_cfa %rax,8
535 movl 24(%rsp),%edx
536
537 leaq 160(%rdi),%rdi
538 decl %edx
539 jnz .Ldec4x_loop_grande
540
541.Ldec4x_done:
542 movq -48(%rax),%r15
543.cfi_restore %r15
544 movq -40(%rax),%r14
545.cfi_restore %r14
546 movq -32(%rax),%r13
547.cfi_restore %r13
548 movq -24(%rax),%r12
549.cfi_restore %r12
550 movq -16(%rax),%rbp
551.cfi_restore %rbp
552 movq -8(%rax),%rbx
553.cfi_restore %rbx
554 leaq (%rax),%rsp
555.cfi_def_cfa_register %rsp
556.Ldec4x_epilogue:
557 .byte 0xf3,0xc3
558.cfi_endproc
559.size aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt
560 .section .note.gnu.property, #alloc
561 .p2align 3
562 .long 1f - 0f
563 .long 4f - 1f
564 .long 5
5650:
566 # "GNU" encoded with .byte, since .asciz isn't supported
567 # on Solaris.
568 .byte 0x47
569 .byte 0x4e
570 .byte 0x55
571 .byte 0
5721:
573 .p2align 3
574 .long 0xc0000002
575 .long 3f - 2f
5762:
577 .long 3
5783:
579 .p2align 3
5804:
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