Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(483)

Side by Side Diff: openssl/crypto/aes/asm/vpaes-x86.S

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

Powered by Google App Engine
This is Rietveld 408576698