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