VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.1/crypto/genasm-elf/vpaes-x86.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: 15.2 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.byte 243,15,30,251
63 addl (%esp),%ebp
64 movdqa -48(%ebp),%xmm7
65 movdqa -16(%ebp),%xmm6
66 ret
67.size _vpaes_preheat,.-_vpaes_preheat
68.type _vpaes_encrypt_core,@function
69.align 16
70_vpaes_encrypt_core:
71.byte 243,15,30,251
72 movl $16,%ecx
73 movl 240(%edx),%eax
74 movdqa %xmm6,%xmm1
75 movdqa (%ebp),%xmm2
76 pandn %xmm0,%xmm1
77 pand %xmm6,%xmm0
78 movdqu (%edx),%xmm5
79.byte 102,15,56,0,208
80 movdqa 16(%ebp),%xmm0
81 pxor %xmm5,%xmm2
82 psrld $4,%xmm1
83 addl $16,%edx
84.byte 102,15,56,0,193
85 leal 192(%ebp),%ebx
86 pxor %xmm2,%xmm0
87 jmp .L000enc_entry
88.align 16
89.L001enc_loop:
90 movdqa 32(%ebp),%xmm4
91 movdqa 48(%ebp),%xmm0
92.byte 102,15,56,0,226
93.byte 102,15,56,0,195
94 pxor %xmm5,%xmm4
95 movdqa 64(%ebp),%xmm5
96 pxor %xmm4,%xmm0
97 movdqa -64(%ebx,%ecx,1),%xmm1
98.byte 102,15,56,0,234
99 movdqa 80(%ebp),%xmm2
100 movdqa (%ebx,%ecx,1),%xmm4
101.byte 102,15,56,0,211
102 movdqa %xmm0,%xmm3
103 pxor %xmm5,%xmm2
104.byte 102,15,56,0,193
105 addl $16,%edx
106 pxor %xmm2,%xmm0
107.byte 102,15,56,0,220
108 addl $16,%ecx
109 pxor %xmm0,%xmm3
110.byte 102,15,56,0,193
111 andl $48,%ecx
112 subl $1,%eax
113 pxor %xmm3,%xmm0
114.L000enc_entry:
115 movdqa %xmm6,%xmm1
116 movdqa -32(%ebp),%xmm5
117 pandn %xmm0,%xmm1
118 psrld $4,%xmm1
119 pand %xmm6,%xmm0
120.byte 102,15,56,0,232
121 movdqa %xmm7,%xmm3
122 pxor %xmm1,%xmm0
123.byte 102,15,56,0,217
124 movdqa %xmm7,%xmm4
125 pxor %xmm5,%xmm3
126.byte 102,15,56,0,224
127 movdqa %xmm7,%xmm2
128 pxor %xmm5,%xmm4
129.byte 102,15,56,0,211
130 movdqa %xmm7,%xmm3
131 pxor %xmm0,%xmm2
132.byte 102,15,56,0,220
133 movdqu (%edx),%xmm5
134 pxor %xmm1,%xmm3
135 jnz .L001enc_loop
136 movdqa 96(%ebp),%xmm4
137 movdqa 112(%ebp),%xmm0
138.byte 102,15,56,0,226
139 pxor %xmm5,%xmm4
140.byte 102,15,56,0,195
141 movdqa 64(%ebx,%ecx,1),%xmm1
142 pxor %xmm4,%xmm0
143.byte 102,15,56,0,193
144 ret
145.size _vpaes_encrypt_core,.-_vpaes_encrypt_core
146.type _vpaes_decrypt_core,@function
147.align 16
148_vpaes_decrypt_core:
149.byte 243,15,30,251
150 leal 608(%ebp),%ebx
151 movl 240(%edx),%eax
152 movdqa %xmm6,%xmm1
153 movdqa -64(%ebx),%xmm2
154 pandn %xmm0,%xmm1
155 movl %eax,%ecx
156 psrld $4,%xmm1
157 movdqu (%edx),%xmm5
158 shll $4,%ecx
159 pand %xmm6,%xmm0
160.byte 102,15,56,0,208
161 movdqa -48(%ebx),%xmm0
162 xorl $48,%ecx
163.byte 102,15,56,0,193
164 andl $48,%ecx
165 pxor %xmm5,%xmm2
166 movdqa 176(%ebp),%xmm5
167 pxor %xmm2,%xmm0
168 addl $16,%edx
169 leal -352(%ebx,%ecx,1),%ecx
170 jmp .L002dec_entry
171.align 16
172.L003dec_loop:
173 movdqa -32(%ebx),%xmm4
174 movdqa -16(%ebx),%xmm1
175.byte 102,15,56,0,226
176.byte 102,15,56,0,203
177 pxor %xmm4,%xmm0
178 movdqa (%ebx),%xmm4
179 pxor %xmm1,%xmm0
180 movdqa 16(%ebx),%xmm1
181.byte 102,15,56,0,226
182.byte 102,15,56,0,197
183.byte 102,15,56,0,203
184 pxor %xmm4,%xmm0
185 movdqa 32(%ebx),%xmm4
186 pxor %xmm1,%xmm0
187 movdqa 48(%ebx),%xmm1
188.byte 102,15,56,0,226
189.byte 102,15,56,0,197
190.byte 102,15,56,0,203
191 pxor %xmm4,%xmm0
192 movdqa 64(%ebx),%xmm4
193 pxor %xmm1,%xmm0
194 movdqa 80(%ebx),%xmm1
195.byte 102,15,56,0,226
196.byte 102,15,56,0,197
197.byte 102,15,56,0,203
198 pxor %xmm4,%xmm0
199 addl $16,%edx
200.byte 102,15,58,15,237,12
201 pxor %xmm1,%xmm0
202 subl $1,%eax
203.L002dec_entry:
204 movdqa %xmm6,%xmm1
205 movdqa -32(%ebp),%xmm2
206 pandn %xmm0,%xmm1
207 pand %xmm6,%xmm0
208 psrld $4,%xmm1
209.byte 102,15,56,0,208
210 movdqa %xmm7,%xmm3
211 pxor %xmm1,%xmm0
212.byte 102,15,56,0,217
213 movdqa %xmm7,%xmm4
214 pxor %xmm2,%xmm3
215.byte 102,15,56,0,224
216 pxor %xmm2,%xmm4
217 movdqa %xmm7,%xmm2
218.byte 102,15,56,0,211
219 movdqa %xmm7,%xmm3
220 pxor %xmm0,%xmm2
221.byte 102,15,56,0,220
222 movdqu (%edx),%xmm0
223 pxor %xmm1,%xmm3
224 jnz .L003dec_loop
225 movdqa 96(%ebx),%xmm4
226.byte 102,15,56,0,226
227 pxor %xmm0,%xmm4
228 movdqa 112(%ebx),%xmm0
229 movdqa (%ecx),%xmm2
230.byte 102,15,56,0,195
231 pxor %xmm4,%xmm0
232.byte 102,15,56,0,194
233 ret
234.size _vpaes_decrypt_core,.-_vpaes_decrypt_core
235.type _vpaes_schedule_core,@function
236.align 16
237_vpaes_schedule_core:
238.byte 243,15,30,251
239 addl (%esp),%ebp
240 movdqu (%esi),%xmm0
241 movdqa 320(%ebp),%xmm2
242 movdqa %xmm0,%xmm3
243 leal (%ebp),%ebx
244 movdqa %xmm2,4(%esp)
245 call _vpaes_schedule_transform
246 movdqa %xmm0,%xmm7
247 testl %edi,%edi
248 jnz .L004schedule_am_decrypting
249 movdqu %xmm0,(%edx)
250 jmp .L005schedule_go
251.L004schedule_am_decrypting:
252 movdqa 256(%ebp,%ecx,1),%xmm1
253.byte 102,15,56,0,217
254 movdqu %xmm3,(%edx)
255 xorl $48,%ecx
256.L005schedule_go:
257 cmpl $192,%eax
258 ja .L006schedule_256
259 je .L007schedule_192
260.L008schedule_128:
261 movl $10,%eax
262.L009loop_schedule_128:
263 call _vpaes_schedule_round
264 decl %eax
265 jz .L010schedule_mangle_last
266 call _vpaes_schedule_mangle
267 jmp .L009loop_schedule_128
268.align 16
269.L007schedule_192:
270 movdqu 8(%esi),%xmm0
271 call _vpaes_schedule_transform
272 movdqa %xmm0,%xmm6
273 pxor %xmm4,%xmm4
274 movhlps %xmm4,%xmm6
275 movl $4,%eax
276.L011loop_schedule_192:
277 call _vpaes_schedule_round
278.byte 102,15,58,15,198,8
279 call _vpaes_schedule_mangle
280 call _vpaes_schedule_192_smear
281 call _vpaes_schedule_mangle
282 call _vpaes_schedule_round
283 decl %eax
284 jz .L010schedule_mangle_last
285 call _vpaes_schedule_mangle
286 call _vpaes_schedule_192_smear
287 jmp .L011loop_schedule_192
288.align 16
289.L006schedule_256:
290 movdqu 16(%esi),%xmm0
291 call _vpaes_schedule_transform
292 movl $7,%eax
293.L012loop_schedule_256:
294 call _vpaes_schedule_mangle
295 movdqa %xmm0,%xmm6
296 call _vpaes_schedule_round
297 decl %eax
298 jz .L010schedule_mangle_last
299 call _vpaes_schedule_mangle
300 pshufd $255,%xmm0,%xmm0
301 movdqa %xmm7,20(%esp)
302 movdqa %xmm6,%xmm7
303 call .L_vpaes_schedule_low_round
304 movdqa 20(%esp),%xmm7
305 jmp .L012loop_schedule_256
306.align 16
307.L010schedule_mangle_last:
308 leal 384(%ebp),%ebx
309 testl %edi,%edi
310 jnz .L013schedule_mangle_last_dec
311 movdqa 256(%ebp,%ecx,1),%xmm1
312.byte 102,15,56,0,193
313 leal 352(%ebp),%ebx
314 addl $32,%edx
315.L013schedule_mangle_last_dec:
316 addl $-16,%edx
317 pxor 336(%ebp),%xmm0
318 call _vpaes_schedule_transform
319 movdqu %xmm0,(%edx)
320 pxor %xmm0,%xmm0
321 pxor %xmm1,%xmm1
322 pxor %xmm2,%xmm2
323 pxor %xmm3,%xmm3
324 pxor %xmm4,%xmm4
325 pxor %xmm5,%xmm5
326 pxor %xmm6,%xmm6
327 pxor %xmm7,%xmm7
328 ret
329.size _vpaes_schedule_core,.-_vpaes_schedule_core
330.type _vpaes_schedule_192_smear,@function
331.align 16
332_vpaes_schedule_192_smear:
333.byte 243,15,30,251
334 pshufd $128,%xmm6,%xmm1
335 pshufd $254,%xmm7,%xmm0
336 pxor %xmm1,%xmm6
337 pxor %xmm1,%xmm1
338 pxor %xmm0,%xmm6
339 movdqa %xmm6,%xmm0
340 movhlps %xmm1,%xmm6
341 ret
342.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
343.type _vpaes_schedule_round,@function
344.align 16
345_vpaes_schedule_round:
346.byte 243,15,30,251
347 movdqa 8(%esp),%xmm2
348 pxor %xmm1,%xmm1
349.byte 102,15,58,15,202,15
350.byte 102,15,58,15,210,15
351 pxor %xmm1,%xmm7
352 pshufd $255,%xmm0,%xmm0
353.byte 102,15,58,15,192,1
354 movdqa %xmm2,8(%esp)
355.L_vpaes_schedule_low_round:
356 movdqa %xmm7,%xmm1
357 pslldq $4,%xmm7
358 pxor %xmm1,%xmm7
359 movdqa %xmm7,%xmm1
360 pslldq $8,%xmm7
361 pxor %xmm1,%xmm7
362 pxor 336(%ebp),%xmm7
363 movdqa -16(%ebp),%xmm4
364 movdqa -48(%ebp),%xmm5
365 movdqa %xmm4,%xmm1
366 pandn %xmm0,%xmm1
367 psrld $4,%xmm1
368 pand %xmm4,%xmm0
369 movdqa -32(%ebp),%xmm2
370.byte 102,15,56,0,208
371 pxor %xmm1,%xmm0
372 movdqa %xmm5,%xmm3
373.byte 102,15,56,0,217
374 pxor %xmm2,%xmm3
375 movdqa %xmm5,%xmm4
376.byte 102,15,56,0,224
377 pxor %xmm2,%xmm4
378 movdqa %xmm5,%xmm2
379.byte 102,15,56,0,211
380 pxor %xmm0,%xmm2
381 movdqa %xmm5,%xmm3
382.byte 102,15,56,0,220
383 pxor %xmm1,%xmm3
384 movdqa 32(%ebp),%xmm4
385.byte 102,15,56,0,226
386 movdqa 48(%ebp),%xmm0
387.byte 102,15,56,0,195
388 pxor %xmm4,%xmm0
389 pxor %xmm7,%xmm0
390 movdqa %xmm0,%xmm7
391 ret
392.size _vpaes_schedule_round,.-_vpaes_schedule_round
393.type _vpaes_schedule_transform,@function
394.align 16
395_vpaes_schedule_transform:
396.byte 243,15,30,251
397 movdqa -16(%ebp),%xmm2
398 movdqa %xmm2,%xmm1
399 pandn %xmm0,%xmm1
400 psrld $4,%xmm1
401 pand %xmm2,%xmm0
402 movdqa (%ebx),%xmm2
403.byte 102,15,56,0,208
404 movdqa 16(%ebx),%xmm0
405.byte 102,15,56,0,193
406 pxor %xmm2,%xmm0
407 ret
408.size _vpaes_schedule_transform,.-_vpaes_schedule_transform
409.type _vpaes_schedule_mangle,@function
410.align 16
411_vpaes_schedule_mangle:
412.byte 243,15,30,251
413 movdqa %xmm0,%xmm4
414 movdqa 128(%ebp),%xmm5
415 testl %edi,%edi
416 jnz .L014schedule_mangle_dec
417 addl $16,%edx
418 pxor 336(%ebp),%xmm4
419.byte 102,15,56,0,229
420 movdqa %xmm4,%xmm3
421.byte 102,15,56,0,229
422 pxor %xmm4,%xmm3
423.byte 102,15,56,0,229
424 pxor %xmm4,%xmm3
425 jmp .L015schedule_mangle_both
426.align 16
427.L014schedule_mangle_dec:
428 movdqa -16(%ebp),%xmm2
429 leal 416(%ebp),%esi
430 movdqa %xmm2,%xmm1
431 pandn %xmm4,%xmm1
432 psrld $4,%xmm1
433 pand %xmm2,%xmm4
434 movdqa (%esi),%xmm2
435.byte 102,15,56,0,212
436 movdqa 16(%esi),%xmm3
437.byte 102,15,56,0,217
438 pxor %xmm2,%xmm3
439.byte 102,15,56,0,221
440 movdqa 32(%esi),%xmm2
441.byte 102,15,56,0,212
442 pxor %xmm3,%xmm2
443 movdqa 48(%esi),%xmm3
444.byte 102,15,56,0,217
445 pxor %xmm2,%xmm3
446.byte 102,15,56,0,221
447 movdqa 64(%esi),%xmm2
448.byte 102,15,56,0,212
449 pxor %xmm3,%xmm2
450 movdqa 80(%esi),%xmm3
451.byte 102,15,56,0,217
452 pxor %xmm2,%xmm3
453.byte 102,15,56,0,221
454 movdqa 96(%esi),%xmm2
455.byte 102,15,56,0,212
456 pxor %xmm3,%xmm2
457 movdqa 112(%esi),%xmm3
458.byte 102,15,56,0,217
459 pxor %xmm2,%xmm3
460 addl $-16,%edx
461.L015schedule_mangle_both:
462 movdqa 256(%ebp,%ecx,1),%xmm1
463.byte 102,15,56,0,217
464 addl $-16,%ecx
465 andl $48,%ecx
466 movdqu %xmm3,(%edx)
467 ret
468.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
469.globl vpaes_set_encrypt_key
470.type vpaes_set_encrypt_key,@function
471.align 16
472vpaes_set_encrypt_key:
473.L_vpaes_set_encrypt_key_begin:
474.byte 243,15,30,251
475 pushl %ebp
476 pushl %ebx
477 pushl %esi
478 pushl %edi
479 movl 20(%esp),%esi
480 leal -56(%esp),%ebx
481 movl 24(%esp),%eax
482 andl $-16,%ebx
483 movl 28(%esp),%edx
484 xchgl %esp,%ebx
485 movl %ebx,48(%esp)
486 movl %eax,%ebx
487 shrl $5,%ebx
488 addl $5,%ebx
489 movl %ebx,240(%edx)
490 movl $48,%ecx
491 movl $0,%edi
492 leal .L_vpaes_consts+0x30-.L016pic_point,%ebp
493 call _vpaes_schedule_core
494.L016pic_point:
495 movl 48(%esp),%esp
496 xorl %eax,%eax
497 popl %edi
498 popl %esi
499 popl %ebx
500 popl %ebp
501 ret
502.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin
503.globl vpaes_set_decrypt_key
504.type vpaes_set_decrypt_key,@function
505.align 16
506vpaes_set_decrypt_key:
507.L_vpaes_set_decrypt_key_begin:
508.byte 243,15,30,251
509 pushl %ebp
510 pushl %ebx
511 pushl %esi
512 pushl %edi
513 movl 20(%esp),%esi
514 leal -56(%esp),%ebx
515 movl 24(%esp),%eax
516 andl $-16,%ebx
517 movl 28(%esp),%edx
518 xchgl %esp,%ebx
519 movl %ebx,48(%esp)
520 movl %eax,%ebx
521 shrl $5,%ebx
522 addl $5,%ebx
523 movl %ebx,240(%edx)
524 shll $4,%ebx
525 leal 16(%edx,%ebx,1),%edx
526 movl $1,%edi
527 movl %eax,%ecx
528 shrl $1,%ecx
529 andl $32,%ecx
530 xorl $32,%ecx
531 leal .L_vpaes_consts+0x30-.L017pic_point,%ebp
532 call _vpaes_schedule_core
533.L017pic_point:
534 movl 48(%esp),%esp
535 xorl %eax,%eax
536 popl %edi
537 popl %esi
538 popl %ebx
539 popl %ebp
540 ret
541.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin
542.globl vpaes_encrypt
543.type vpaes_encrypt,@function
544.align 16
545vpaes_encrypt:
546.L_vpaes_encrypt_begin:
547.byte 243,15,30,251
548 pushl %ebp
549 pushl %ebx
550 pushl %esi
551 pushl %edi
552 leal .L_vpaes_consts+0x30-.L018pic_point,%ebp
553 call _vpaes_preheat
554.L018pic_point:
555 movl 20(%esp),%esi
556 leal -56(%esp),%ebx
557 movl 24(%esp),%edi
558 andl $-16,%ebx
559 movl 28(%esp),%edx
560 xchgl %esp,%ebx
561 movl %ebx,48(%esp)
562 movdqu (%esi),%xmm0
563 call _vpaes_encrypt_core
564 movdqu %xmm0,(%edi)
565 movl 48(%esp),%esp
566 popl %edi
567 popl %esi
568 popl %ebx
569 popl %ebp
570 ret
571.size vpaes_encrypt,.-.L_vpaes_encrypt_begin
572.globl vpaes_decrypt
573.type vpaes_decrypt,@function
574.align 16
575vpaes_decrypt:
576.L_vpaes_decrypt_begin:
577.byte 243,15,30,251
578 pushl %ebp
579 pushl %ebx
580 pushl %esi
581 pushl %edi
582 leal .L_vpaes_consts+0x30-.L019pic_point,%ebp
583 call _vpaes_preheat
584.L019pic_point:
585 movl 20(%esp),%esi
586 leal -56(%esp),%ebx
587 movl 24(%esp),%edi
588 andl $-16,%ebx
589 movl 28(%esp),%edx
590 xchgl %esp,%ebx
591 movl %ebx,48(%esp)
592 movdqu (%esi),%xmm0
593 call _vpaes_decrypt_core
594 movdqu %xmm0,(%edi)
595 movl 48(%esp),%esp
596 popl %edi
597 popl %esi
598 popl %ebx
599 popl %ebp
600 ret
601.size vpaes_decrypt,.-.L_vpaes_decrypt_begin
602.globl vpaes_cbc_encrypt
603.type vpaes_cbc_encrypt,@function
604.align 16
605vpaes_cbc_encrypt:
606.L_vpaes_cbc_encrypt_begin:
607.byte 243,15,30,251
608 pushl %ebp
609 pushl %ebx
610 pushl %esi
611 pushl %edi
612 movl 20(%esp),%esi
613 movl 24(%esp),%edi
614 movl 28(%esp),%eax
615 movl 32(%esp),%edx
616 subl $16,%eax
617 jc .L020cbc_abort
618 leal -56(%esp),%ebx
619 movl 36(%esp),%ebp
620 andl $-16,%ebx
621 movl 40(%esp),%ecx
622 xchgl %esp,%ebx
623 movdqu (%ebp),%xmm1
624 subl %esi,%edi
625 movl %ebx,48(%esp)
626 movl %edi,(%esp)
627 movl %edx,4(%esp)
628 movl %ebp,8(%esp)
629 movl %eax,%edi
630 leal .L_vpaes_consts+0x30-.L021pic_point,%ebp
631 call _vpaes_preheat
632.L021pic_point:
633 cmpl $0,%ecx
634 je .L022cbc_dec_loop
635 jmp .L023cbc_enc_loop
636.align 16
637.L023cbc_enc_loop:
638 movdqu (%esi),%xmm0
639 pxor %xmm1,%xmm0
640 call _vpaes_encrypt_core
641 movl (%esp),%ebx
642 movl 4(%esp),%edx
643 movdqa %xmm0,%xmm1
644 movdqu %xmm0,(%ebx,%esi,1)
645 leal 16(%esi),%esi
646 subl $16,%edi
647 jnc .L023cbc_enc_loop
648 jmp .L024cbc_done
649.align 16
650.L022cbc_dec_loop:
651 movdqu (%esi),%xmm0
652 movdqa %xmm1,16(%esp)
653 movdqa %xmm0,32(%esp)
654 call _vpaes_decrypt_core
655 movl (%esp),%ebx
656 movl 4(%esp),%edx
657 pxor 16(%esp),%xmm0
658 movdqa 32(%esp),%xmm1
659 movdqu %xmm0,(%ebx,%esi,1)
660 leal 16(%esi),%esi
661 subl $16,%edi
662 jnc .L022cbc_dec_loop
663.L024cbc_done:
664 movl 8(%esp),%ebx
665 movl 48(%esp),%esp
666 movdqu %xmm1,(%ebx)
667.L020cbc_abort:
668 popl %edi
669 popl %esi
670 popl %ebx
671 popl %ebp
672 ret
673.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin
674
675 .section ".note.gnu.property", "a"
676 .p2align 2
677 .long 1f - 0f
678 .long 4f - 1f
679 .long 5
6800:
681 .asciz "GNU"
6821:
683 .p2align 2
684 .long 0xc0000002
685 .long 3f - 2f
6862:
687 .long 3
6883:
689 .p2align 2
6904:
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