VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1j/crypto/genasm-elf/vpaes-x86.S@ 88679

Last change on this file since 88679 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

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