VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/crypto/genasm-elf/vpaes-x86.S@ 98024

Last change on this file since 98024 was 97372, checked in by vboxsync, 2 years ago

libs: Switch to openssl-3.0.7, bugref:10317

File size: 15.5 KB
Line 
1.text
2.align 64
3.L_vpaes_consts:
4.long 218628480,235210255,168496130,67568393
5.long 252381056,17041926,33884169,51187212
6.long 252645135,252645135,252645135,252645135
7.long 1512730624,3266504856,1377990664,3401244816
8.long 830229760,1275146365,2969422977,3447763452
9.long 3411033600,2979783055,338359620,2782886510
10.long 4209124096,907596821,221174255,1006095553
11.long 191964160,3799684038,3164090317,1589111125
12.long 182528256,1777043520,2877432650,3265356744
13.long 1874708224,3503451415,3305285752,363511674
14.long 1606117888,3487855781,1093350906,2384367825
15.long 197121,67569157,134941193,202313229
16.long 67569157,134941193,202313229,197121
17.long 134941193,202313229,197121,67569157
18.long 202313229,197121,67569157,134941193
19.long 33619971,100992007,168364043,235736079
20.long 235736079,33619971,100992007,168364043
21.long 168364043,235736079,33619971,100992007
22.long 100992007,168364043,235736079,33619971
23.long 50462976,117835012,185207048,252579084
24.long 252314880,51251460,117574920,184942860
25.long 184682752,252054788,50987272,118359308
26.long 118099200,185467140,251790600,50727180
27.long 2946363062,528716217,1300004225,1881839624
28.long 1532713819,1532713819,1532713819,1532713819
29.long 3602276352,4288629033,3737020424,4153884961
30.long 1354558464,32357713,2958822624,3775749553
31.long 1201988352,132424512,1572796698,503232858
32.long 2213177600,1597421020,4103937655,675398315
33.long 2749646592,4273543773,1511898873,121693092
34.long 3040248576,1103263732,2871565598,1608280554
35.long 2236667136,2588920351,482954393,64377734
36.long 3069987328,291237287,2117370568,3650299247
37.long 533321216,3573750986,2572112006,1401264716
38.long 1339849704,2721158661,548607111,3445553514
39.long 2128193280,3054596040,2183486460,1257083700
40.long 655635200,1165381986,3923443150,2344132524
41.long 190078720,256924420,290342170,357187870
42.long 1610966272,2263057382,4103205268,309794674
43.long 2592527872,2233205587,1335446729,3402964816
44.long 3973531904,3225098121,3002836325,1918774430
45.long 3870401024,2102906079,2284471353,4117666579
46.long 617007872,1021508343,366931923,691083277
47.long 2528395776,3491914898,2968704004,1613121270
48.long 3445188352,3247741094,844474987,4093578302
49.long 651481088,1190302358,1689581232,574775300
50.long 4289380608,206939853,2555985458,2489840491
51.long 2130264064,327674451,3566485037,3349835193
52.long 2470714624,316102159,3636825756,3393945945
53.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
54.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
55.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
56.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
57.byte 118,101,114,115,105,116,121,41,0
58.align 64
59.type _vpaes_preheat,@function
60.align 16
61_vpaes_preheat:
62 #ifdef __CET__
63
64.byte 243,15,30,251
65 #endif
66
67 addl (%esp),%ebp
68 movdqa -48(%ebp),%xmm7
69 movdqa -16(%ebp),%xmm6
70 ret
71.size _vpaes_preheat,.-_vpaes_preheat
72.type _vpaes_encrypt_core,@function
73.align 16
74_vpaes_encrypt_core:
75 #ifdef __CET__
76
77.byte 243,15,30,251
78 #endif
79
80 movl $16,%ecx
81 movl 240(%edx),%eax
82 movdqa %xmm6,%xmm1
83 movdqa (%ebp),%xmm2
84 pandn %xmm0,%xmm1
85 pand %xmm6,%xmm0
86 movdqu (%edx),%xmm5
87.byte 102,15,56,0,208
88 movdqa 16(%ebp),%xmm0
89 pxor %xmm5,%xmm2
90 psrld $4,%xmm1
91 addl $16,%edx
92.byte 102,15,56,0,193
93 leal 192(%ebp),%ebx
94 pxor %xmm2,%xmm0
95 jmp .L000enc_entry
96.align 16
97.L001enc_loop:
98 movdqa 32(%ebp),%xmm4
99 movdqa 48(%ebp),%xmm0
100.byte 102,15,56,0,226
101.byte 102,15,56,0,195
102 pxor %xmm5,%xmm4
103 movdqa 64(%ebp),%xmm5
104 pxor %xmm4,%xmm0
105 movdqa -64(%ebx,%ecx,1),%xmm1
106.byte 102,15,56,0,234
107 movdqa 80(%ebp),%xmm2
108 movdqa (%ebx,%ecx,1),%xmm4
109.byte 102,15,56,0,211
110 movdqa %xmm0,%xmm3
111 pxor %xmm5,%xmm2
112.byte 102,15,56,0,193
113 addl $16,%edx
114 pxor %xmm2,%xmm0
115.byte 102,15,56,0,220
116 addl $16,%ecx
117 pxor %xmm0,%xmm3
118.byte 102,15,56,0,193
119 andl $48,%ecx
120 subl $1,%eax
121 pxor %xmm3,%xmm0
122.L000enc_entry:
123 movdqa %xmm6,%xmm1
124 movdqa -32(%ebp),%xmm5
125 pandn %xmm0,%xmm1
126 psrld $4,%xmm1
127 pand %xmm6,%xmm0
128.byte 102,15,56,0,232
129 movdqa %xmm7,%xmm3
130 pxor %xmm1,%xmm0
131.byte 102,15,56,0,217
132 movdqa %xmm7,%xmm4
133 pxor %xmm5,%xmm3
134.byte 102,15,56,0,224
135 movdqa %xmm7,%xmm2
136 pxor %xmm5,%xmm4
137.byte 102,15,56,0,211
138 movdqa %xmm7,%xmm3
139 pxor %xmm0,%xmm2
140.byte 102,15,56,0,220
141 movdqu (%edx),%xmm5
142 pxor %xmm1,%xmm3
143 jnz .L001enc_loop
144 movdqa 96(%ebp),%xmm4
145 movdqa 112(%ebp),%xmm0
146.byte 102,15,56,0,226
147 pxor %xmm5,%xmm4
148.byte 102,15,56,0,195
149 movdqa 64(%ebx,%ecx,1),%xmm1
150 pxor %xmm4,%xmm0
151.byte 102,15,56,0,193
152 ret
153.size _vpaes_encrypt_core,.-_vpaes_encrypt_core
154.type _vpaes_decrypt_core,@function
155.align 16
156_vpaes_decrypt_core:
157 #ifdef __CET__
158
159.byte 243,15,30,251
160 #endif
161
162 leal 608(%ebp),%ebx
163 movl 240(%edx),%eax
164 movdqa %xmm6,%xmm1
165 movdqa -64(%ebx),%xmm2
166 pandn %xmm0,%xmm1
167 movl %eax,%ecx
168 psrld $4,%xmm1
169 movdqu (%edx),%xmm5
170 shll $4,%ecx
171 pand %xmm6,%xmm0
172.byte 102,15,56,0,208
173 movdqa -48(%ebx),%xmm0
174 xorl $48,%ecx
175.byte 102,15,56,0,193
176 andl $48,%ecx
177 pxor %xmm5,%xmm2
178 movdqa 176(%ebp),%xmm5
179 pxor %xmm2,%xmm0
180 addl $16,%edx
181 leal -352(%ebx,%ecx,1),%ecx
182 jmp .L002dec_entry
183.align 16
184.L003dec_loop:
185 movdqa -32(%ebx),%xmm4
186 movdqa -16(%ebx),%xmm1
187.byte 102,15,56,0,226
188.byte 102,15,56,0,203
189 pxor %xmm4,%xmm0
190 movdqa (%ebx),%xmm4
191 pxor %xmm1,%xmm0
192 movdqa 16(%ebx),%xmm1
193.byte 102,15,56,0,226
194.byte 102,15,56,0,197
195.byte 102,15,56,0,203
196 pxor %xmm4,%xmm0
197 movdqa 32(%ebx),%xmm4
198 pxor %xmm1,%xmm0
199 movdqa 48(%ebx),%xmm1
200.byte 102,15,56,0,226
201.byte 102,15,56,0,197
202.byte 102,15,56,0,203
203 pxor %xmm4,%xmm0
204 movdqa 64(%ebx),%xmm4
205 pxor %xmm1,%xmm0
206 movdqa 80(%ebx),%xmm1
207.byte 102,15,56,0,226
208.byte 102,15,56,0,197
209.byte 102,15,56,0,203
210 pxor %xmm4,%xmm0
211 addl $16,%edx
212.byte 102,15,58,15,237,12
213 pxor %xmm1,%xmm0
214 subl $1,%eax
215.L002dec_entry:
216 movdqa %xmm6,%xmm1
217 movdqa -32(%ebp),%xmm2
218 pandn %xmm0,%xmm1
219 pand %xmm6,%xmm0
220 psrld $4,%xmm1
221.byte 102,15,56,0,208
222 movdqa %xmm7,%xmm3
223 pxor %xmm1,%xmm0
224.byte 102,15,56,0,217
225 movdqa %xmm7,%xmm4
226 pxor %xmm2,%xmm3
227.byte 102,15,56,0,224
228 pxor %xmm2,%xmm4
229 movdqa %xmm7,%xmm2
230.byte 102,15,56,0,211
231 movdqa %xmm7,%xmm3
232 pxor %xmm0,%xmm2
233.byte 102,15,56,0,220
234 movdqu (%edx),%xmm0
235 pxor %xmm1,%xmm3
236 jnz .L003dec_loop
237 movdqa 96(%ebx),%xmm4
238.byte 102,15,56,0,226
239 pxor %xmm0,%xmm4
240 movdqa 112(%ebx),%xmm0
241 movdqa (%ecx),%xmm2
242.byte 102,15,56,0,195
243 pxor %xmm4,%xmm0
244.byte 102,15,56,0,194
245 ret
246.size _vpaes_decrypt_core,.-_vpaes_decrypt_core
247.type _vpaes_schedule_core,@function
248.align 16
249_vpaes_schedule_core:
250 #ifdef __CET__
251
252.byte 243,15,30,251
253 #endif
254
255 addl (%esp),%ebp
256 movdqu (%esi),%xmm0
257 movdqa 320(%ebp),%xmm2
258 movdqa %xmm0,%xmm3
259 leal (%ebp),%ebx
260 movdqa %xmm2,4(%esp)
261 call _vpaes_schedule_transform
262 movdqa %xmm0,%xmm7
263 testl %edi,%edi
264 jnz .L004schedule_am_decrypting
265 movdqu %xmm0,(%edx)
266 jmp .L005schedule_go
267.L004schedule_am_decrypting:
268 movdqa 256(%ebp,%ecx,1),%xmm1
269.byte 102,15,56,0,217
270 movdqu %xmm3,(%edx)
271 xorl $48,%ecx
272.L005schedule_go:
273 cmpl $192,%eax
274 ja .L006schedule_256
275 je .L007schedule_192
276.L008schedule_128:
277 movl $10,%eax
278.L009loop_schedule_128:
279 call _vpaes_schedule_round
280 decl %eax
281 jz .L010schedule_mangle_last
282 call _vpaes_schedule_mangle
283 jmp .L009loop_schedule_128
284.align 16
285.L007schedule_192:
286 movdqu 8(%esi),%xmm0
287 call _vpaes_schedule_transform
288 movdqa %xmm0,%xmm6
289 pxor %xmm4,%xmm4
290 movhlps %xmm4,%xmm6
291 movl $4,%eax
292.L011loop_schedule_192:
293 call _vpaes_schedule_round
294.byte 102,15,58,15,198,8
295 call _vpaes_schedule_mangle
296 call _vpaes_schedule_192_smear
297 call _vpaes_schedule_mangle
298 call _vpaes_schedule_round
299 decl %eax
300 jz .L010schedule_mangle_last
301 call _vpaes_schedule_mangle
302 call _vpaes_schedule_192_smear
303 jmp .L011loop_schedule_192
304.align 16
305.L006schedule_256:
306 movdqu 16(%esi),%xmm0
307 call _vpaes_schedule_transform
308 movl $7,%eax
309.L012loop_schedule_256:
310 call _vpaes_schedule_mangle
311 movdqa %xmm0,%xmm6
312 call _vpaes_schedule_round
313 decl %eax
314 jz .L010schedule_mangle_last
315 call _vpaes_schedule_mangle
316 pshufd $255,%xmm0,%xmm0
317 movdqa %xmm7,20(%esp)
318 movdqa %xmm6,%xmm7
319 call .L_vpaes_schedule_low_round
320 movdqa 20(%esp),%xmm7
321 jmp .L012loop_schedule_256
322.align 16
323.L010schedule_mangle_last:
324 leal 384(%ebp),%ebx
325 testl %edi,%edi
326 jnz .L013schedule_mangle_last_dec
327 movdqa 256(%ebp,%ecx,1),%xmm1
328.byte 102,15,56,0,193
329 leal 352(%ebp),%ebx
330 addl $32,%edx
331.L013schedule_mangle_last_dec:
332 addl $-16,%edx
333 pxor 336(%ebp),%xmm0
334 call _vpaes_schedule_transform
335 movdqu %xmm0,(%edx)
336 pxor %xmm0,%xmm0
337 pxor %xmm1,%xmm1
338 pxor %xmm2,%xmm2
339 pxor %xmm3,%xmm3
340 pxor %xmm4,%xmm4
341 pxor %xmm5,%xmm5
342 pxor %xmm6,%xmm6
343 pxor %xmm7,%xmm7
344 ret
345.size _vpaes_schedule_core,.-_vpaes_schedule_core
346.type _vpaes_schedule_192_smear,@function
347.align 16
348_vpaes_schedule_192_smear:
349 #ifdef __CET__
350
351.byte 243,15,30,251
352 #endif
353
354 pshufd $128,%xmm6,%xmm1
355 pshufd $254,%xmm7,%xmm0
356 pxor %xmm1,%xmm6
357 pxor %xmm1,%xmm1
358 pxor %xmm0,%xmm6
359 movdqa %xmm6,%xmm0
360 movhlps %xmm1,%xmm6
361 ret
362.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
363.type _vpaes_schedule_round,@function
364.align 16
365_vpaes_schedule_round:
366 #ifdef __CET__
367
368.byte 243,15,30,251
369 #endif
370
371 movdqa 8(%esp),%xmm2
372 pxor %xmm1,%xmm1
373.byte 102,15,58,15,202,15
374.byte 102,15,58,15,210,15
375 pxor %xmm1,%xmm7
376 pshufd $255,%xmm0,%xmm0
377.byte 102,15,58,15,192,1
378 movdqa %xmm2,8(%esp)
379.L_vpaes_schedule_low_round:
380 movdqa %xmm7,%xmm1
381 pslldq $4,%xmm7
382 pxor %xmm1,%xmm7
383 movdqa %xmm7,%xmm1
384 pslldq $8,%xmm7
385 pxor %xmm1,%xmm7
386 pxor 336(%ebp),%xmm7
387 movdqa -16(%ebp),%xmm4
388 movdqa -48(%ebp),%xmm5
389 movdqa %xmm4,%xmm1
390 pandn %xmm0,%xmm1
391 psrld $4,%xmm1
392 pand %xmm4,%xmm0
393 movdqa -32(%ebp),%xmm2
394.byte 102,15,56,0,208
395 pxor %xmm1,%xmm0
396 movdqa %xmm5,%xmm3
397.byte 102,15,56,0,217
398 pxor %xmm2,%xmm3
399 movdqa %xmm5,%xmm4
400.byte 102,15,56,0,224
401 pxor %xmm2,%xmm4
402 movdqa %xmm5,%xmm2
403.byte 102,15,56,0,211
404 pxor %xmm0,%xmm2
405 movdqa %xmm5,%xmm3
406.byte 102,15,56,0,220
407 pxor %xmm1,%xmm3
408 movdqa 32(%ebp),%xmm4
409.byte 102,15,56,0,226
410 movdqa 48(%ebp),%xmm0
411.byte 102,15,56,0,195
412 pxor %xmm4,%xmm0
413 pxor %xmm7,%xmm0
414 movdqa %xmm0,%xmm7
415 ret
416.size _vpaes_schedule_round,.-_vpaes_schedule_round
417.type _vpaes_schedule_transform,@function
418.align 16
419_vpaes_schedule_transform:
420 #ifdef __CET__
421
422.byte 243,15,30,251
423 #endif
424
425 movdqa -16(%ebp),%xmm2
426 movdqa %xmm2,%xmm1
427 pandn %xmm0,%xmm1
428 psrld $4,%xmm1
429 pand %xmm2,%xmm0
430 movdqa (%ebx),%xmm2
431.byte 102,15,56,0,208
432 movdqa 16(%ebx),%xmm0
433.byte 102,15,56,0,193
434 pxor %xmm2,%xmm0
435 ret
436.size _vpaes_schedule_transform,.-_vpaes_schedule_transform
437.type _vpaes_schedule_mangle,@function
438.align 16
439_vpaes_schedule_mangle:
440 #ifdef __CET__
441
442.byte 243,15,30,251
443 #endif
444
445 movdqa %xmm0,%xmm4
446 movdqa 128(%ebp),%xmm5
447 testl %edi,%edi
448 jnz .L014schedule_mangle_dec
449 addl $16,%edx
450 pxor 336(%ebp),%xmm4
451.byte 102,15,56,0,229
452 movdqa %xmm4,%xmm3
453.byte 102,15,56,0,229
454 pxor %xmm4,%xmm3
455.byte 102,15,56,0,229
456 pxor %xmm4,%xmm3
457 jmp .L015schedule_mangle_both
458.align 16
459.L014schedule_mangle_dec:
460 movdqa -16(%ebp),%xmm2
461 leal 416(%ebp),%esi
462 movdqa %xmm2,%xmm1
463 pandn %xmm4,%xmm1
464 psrld $4,%xmm1
465 pand %xmm2,%xmm4
466 movdqa (%esi),%xmm2
467.byte 102,15,56,0,212
468 movdqa 16(%esi),%xmm3
469.byte 102,15,56,0,217
470 pxor %xmm2,%xmm3
471.byte 102,15,56,0,221
472 movdqa 32(%esi),%xmm2
473.byte 102,15,56,0,212
474 pxor %xmm3,%xmm2
475 movdqa 48(%esi),%xmm3
476.byte 102,15,56,0,217
477 pxor %xmm2,%xmm3
478.byte 102,15,56,0,221
479 movdqa 64(%esi),%xmm2
480.byte 102,15,56,0,212
481 pxor %xmm3,%xmm2
482 movdqa 80(%esi),%xmm3
483.byte 102,15,56,0,217
484 pxor %xmm2,%xmm3
485.byte 102,15,56,0,221
486 movdqa 96(%esi),%xmm2
487.byte 102,15,56,0,212
488 pxor %xmm3,%xmm2
489 movdqa 112(%esi),%xmm3
490.byte 102,15,56,0,217
491 pxor %xmm2,%xmm3
492 addl $-16,%edx
493.L015schedule_mangle_both:
494 movdqa 256(%ebp,%ecx,1),%xmm1
495.byte 102,15,56,0,217
496 addl $-16,%ecx
497 andl $48,%ecx
498 movdqu %xmm3,(%edx)
499 ret
500.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
501.globl vpaes_set_encrypt_key
502.type vpaes_set_encrypt_key,@function
503.align 16
504vpaes_set_encrypt_key:
505.L_vpaes_set_encrypt_key_begin:
506 #ifdef __CET__
507
508.byte 243,15,30,251
509 #endif
510
511 pushl %ebp
512 pushl %ebx
513 pushl %esi
514 pushl %edi
515 movl 20(%esp),%esi
516 leal -56(%esp),%ebx
517 movl 24(%esp),%eax
518 andl $-16,%ebx
519 movl 28(%esp),%edx
520 xchgl %esp,%ebx
521 movl %ebx,48(%esp)
522 movl %eax,%ebx
523 shrl $5,%ebx
524 addl $5,%ebx
525 movl %ebx,240(%edx)
526 movl $48,%ecx
527 movl $0,%edi
528 leal .L_vpaes_consts+0x30-.L016pic_point,%ebp
529 call _vpaes_schedule_core
530.L016pic_point:
531 movl 48(%esp),%esp
532 xorl %eax,%eax
533 popl %edi
534 popl %esi
535 popl %ebx
536 popl %ebp
537 ret
538.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin
539.globl vpaes_set_decrypt_key
540.type vpaes_set_decrypt_key,@function
541.align 16
542vpaes_set_decrypt_key:
543.L_vpaes_set_decrypt_key_begin:
544 #ifdef __CET__
545
546.byte 243,15,30,251
547 #endif
548
549 pushl %ebp
550 pushl %ebx
551 pushl %esi
552 pushl %edi
553 movl 20(%esp),%esi
554 leal -56(%esp),%ebx
555 movl 24(%esp),%eax
556 andl $-16,%ebx
557 movl 28(%esp),%edx
558 xchgl %esp,%ebx
559 movl %ebx,48(%esp)
560 movl %eax,%ebx
561 shrl $5,%ebx
562 addl $5,%ebx
563 movl %ebx,240(%edx)
564 shll $4,%ebx
565 leal 16(%edx,%ebx,1),%edx
566 movl $1,%edi
567 movl %eax,%ecx
568 shrl $1,%ecx
569 andl $32,%ecx
570 xorl $32,%ecx
571 leal .L_vpaes_consts+0x30-.L017pic_point,%ebp
572 call _vpaes_schedule_core
573.L017pic_point:
574 movl 48(%esp),%esp
575 xorl %eax,%eax
576 popl %edi
577 popl %esi
578 popl %ebx
579 popl %ebp
580 ret
581.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin
582.globl vpaes_encrypt
583.type vpaes_encrypt,@function
584.align 16
585vpaes_encrypt:
586.L_vpaes_encrypt_begin:
587 #ifdef __CET__
588
589.byte 243,15,30,251
590 #endif
591
592 pushl %ebp
593 pushl %ebx
594 pushl %esi
595 pushl %edi
596 leal .L_vpaes_consts+0x30-.L018pic_point,%ebp
597 call _vpaes_preheat
598.L018pic_point:
599 movl 20(%esp),%esi
600 leal -56(%esp),%ebx
601 movl 24(%esp),%edi
602 andl $-16,%ebx
603 movl 28(%esp),%edx
604 xchgl %esp,%ebx
605 movl %ebx,48(%esp)
606 movdqu (%esi),%xmm0
607 call _vpaes_encrypt_core
608 movdqu %xmm0,(%edi)
609 movl 48(%esp),%esp
610 popl %edi
611 popl %esi
612 popl %ebx
613 popl %ebp
614 ret
615.size vpaes_encrypt,.-.L_vpaes_encrypt_begin
616.globl vpaes_decrypt
617.type vpaes_decrypt,@function
618.align 16
619vpaes_decrypt:
620.L_vpaes_decrypt_begin:
621 #ifdef __CET__
622
623.byte 243,15,30,251
624 #endif
625
626 pushl %ebp
627 pushl %ebx
628 pushl %esi
629 pushl %edi
630 leal .L_vpaes_consts+0x30-.L019pic_point,%ebp
631 call _vpaes_preheat
632.L019pic_point:
633 movl 20(%esp),%esi
634 leal -56(%esp),%ebx
635 movl 24(%esp),%edi
636 andl $-16,%ebx
637 movl 28(%esp),%edx
638 xchgl %esp,%ebx
639 movl %ebx,48(%esp)
640 movdqu (%esi),%xmm0
641 call _vpaes_decrypt_core
642 movdqu %xmm0,(%edi)
643 movl 48(%esp),%esp
644 popl %edi
645 popl %esi
646 popl %ebx
647 popl %ebp
648 ret
649.size vpaes_decrypt,.-.L_vpaes_decrypt_begin
650.globl vpaes_cbc_encrypt
651.type vpaes_cbc_encrypt,@function
652.align 16
653vpaes_cbc_encrypt:
654.L_vpaes_cbc_encrypt_begin:
655 #ifdef __CET__
656
657.byte 243,15,30,251
658 #endif
659
660 pushl %ebp
661 pushl %ebx
662 pushl %esi
663 pushl %edi
664 movl 20(%esp),%esi
665 movl 24(%esp),%edi
666 movl 28(%esp),%eax
667 movl 32(%esp),%edx
668 subl $16,%eax
669 jc .L020cbc_abort
670 leal -56(%esp),%ebx
671 movl 36(%esp),%ebp
672 andl $-16,%ebx
673 movl 40(%esp),%ecx
674 xchgl %esp,%ebx
675 movdqu (%ebp),%xmm1
676 subl %esi,%edi
677 movl %ebx,48(%esp)
678 movl %edi,(%esp)
679 movl %edx,4(%esp)
680 movl %ebp,8(%esp)
681 movl %eax,%edi
682 leal .L_vpaes_consts+0x30-.L021pic_point,%ebp
683 call _vpaes_preheat
684.L021pic_point:
685 cmpl $0,%ecx
686 je .L022cbc_dec_loop
687 jmp .L023cbc_enc_loop
688.align 16
689.L023cbc_enc_loop:
690 movdqu (%esi),%xmm0
691 pxor %xmm1,%xmm0
692 call _vpaes_encrypt_core
693 movl (%esp),%ebx
694 movl 4(%esp),%edx
695 movdqa %xmm0,%xmm1
696 movdqu %xmm0,(%ebx,%esi,1)
697 leal 16(%esi),%esi
698 subl $16,%edi
699 jnc .L023cbc_enc_loop
700 jmp .L024cbc_done
701.align 16
702.L022cbc_dec_loop:
703 movdqu (%esi),%xmm0
704 movdqa %xmm1,16(%esp)
705 movdqa %xmm0,32(%esp)
706 call _vpaes_decrypt_core
707 movl (%esp),%ebx
708 movl 4(%esp),%edx
709 pxor 16(%esp),%xmm0
710 movdqa 32(%esp),%xmm1
711 movdqu %xmm0,(%ebx,%esi,1)
712 leal 16(%esi),%esi
713 subl $16,%edi
714 jnc .L022cbc_dec_loop
715.L024cbc_done:
716 movl 8(%esp),%ebx
717 movl 48(%esp),%esp
718 movdqu %xmm1,(%ebx)
719.L020cbc_abort:
720 popl %edi
721 popl %esi
722 popl %ebx
723 popl %ebp
724 ret
725.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin
726
727 .section ".note.gnu.property", "a"
728 .p2align 2
729 .long 1f - 0f
730 .long 4f - 1f
731 .long 5
7320:
733 .asciz "GNU"
7341:
735 .p2align 2
736 .long 0xc0000002
737 .long 3f - 2f
7382:
739 .long 3
7403:
741 .p2align 2
7424:
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