bsaes-x86_64.S revision 305153
1/* $FreeBSD: stable/11/secure/lib/libcrypto/amd64/bsaes-x86_64.S 305153 2016-08-31 20:33:59Z jkim $ */ 2/* Do not modify. This file is auto-generated from bsaes-x86_64.pl. */ 3.text 4 5 6 7 8.type _bsaes_encrypt8,@function 9.align 64 10_bsaes_encrypt8: 11 leaq .LBS0(%rip),%r11 12 13 movdqa (%rax),%xmm8 14 leaq 16(%rax),%rax 15 movdqa 80(%r11),%xmm7 16 pxor %xmm8,%xmm15 17 pxor %xmm8,%xmm0 18 pxor %xmm8,%xmm1 19 pxor %xmm8,%xmm2 20.byte 102,68,15,56,0,255 21.byte 102,15,56,0,199 22 pxor %xmm8,%xmm3 23 pxor %xmm8,%xmm4 24.byte 102,15,56,0,207 25.byte 102,15,56,0,215 26 pxor %xmm8,%xmm5 27 pxor %xmm8,%xmm6 28.byte 102,15,56,0,223 29.byte 102,15,56,0,231 30.byte 102,15,56,0,239 31.byte 102,15,56,0,247 32_bsaes_encrypt8_bitslice: 33 movdqa 0(%r11),%xmm7 34 movdqa 16(%r11),%xmm8 35 movdqa %xmm5,%xmm9 36 psrlq $1,%xmm5 37 movdqa %xmm3,%xmm10 38 psrlq $1,%xmm3 39 pxor %xmm6,%xmm5 40 pxor %xmm4,%xmm3 41 pand %xmm7,%xmm5 42 pand %xmm7,%xmm3 43 pxor %xmm5,%xmm6 44 psllq $1,%xmm5 45 pxor %xmm3,%xmm4 46 psllq $1,%xmm3 47 pxor %xmm9,%xmm5 48 pxor %xmm10,%xmm3 49 movdqa %xmm1,%xmm9 50 psrlq $1,%xmm1 51 movdqa %xmm15,%xmm10 52 psrlq $1,%xmm15 53 pxor %xmm2,%xmm1 54 pxor %xmm0,%xmm15 55 pand %xmm7,%xmm1 56 pand %xmm7,%xmm15 57 pxor %xmm1,%xmm2 58 psllq $1,%xmm1 59 pxor %xmm15,%xmm0 60 psllq $1,%xmm15 61 pxor %xmm9,%xmm1 62 pxor %xmm10,%xmm15 63 movdqa 32(%r11),%xmm7 64 movdqa %xmm4,%xmm9 65 psrlq $2,%xmm4 66 movdqa %xmm3,%xmm10 67 psrlq $2,%xmm3 68 pxor %xmm6,%xmm4 69 pxor %xmm5,%xmm3 70 pand %xmm8,%xmm4 71 pand %xmm8,%xmm3 72 pxor %xmm4,%xmm6 73 psllq $2,%xmm4 74 pxor %xmm3,%xmm5 75 psllq $2,%xmm3 76 pxor %xmm9,%xmm4 77 pxor %xmm10,%xmm3 78 movdqa %xmm0,%xmm9 79 psrlq $2,%xmm0 80 movdqa %xmm15,%xmm10 81 psrlq $2,%xmm15 82 pxor %xmm2,%xmm0 83 pxor %xmm1,%xmm15 84 pand %xmm8,%xmm0 85 pand %xmm8,%xmm15 86 pxor %xmm0,%xmm2 87 psllq $2,%xmm0 88 pxor %xmm15,%xmm1 89 psllq $2,%xmm15 90 pxor %xmm9,%xmm0 91 pxor %xmm10,%xmm15 92 movdqa %xmm2,%xmm9 93 psrlq $4,%xmm2 94 movdqa %xmm1,%xmm10 95 psrlq $4,%xmm1 96 pxor %xmm6,%xmm2 97 pxor %xmm5,%xmm1 98 pand %xmm7,%xmm2 99 pand %xmm7,%xmm1 100 pxor %xmm2,%xmm6 101 psllq $4,%xmm2 102 pxor %xmm1,%xmm5 103 psllq $4,%xmm1 104 pxor %xmm9,%xmm2 105 pxor %xmm10,%xmm1 106 movdqa %xmm0,%xmm9 107 psrlq $4,%xmm0 108 movdqa %xmm15,%xmm10 109 psrlq $4,%xmm15 110 pxor %xmm4,%xmm0 111 pxor %xmm3,%xmm15 112 pand %xmm7,%xmm0 113 pand %xmm7,%xmm15 114 pxor %xmm0,%xmm4 115 psllq $4,%xmm0 116 pxor %xmm15,%xmm3 117 psllq $4,%xmm15 118 pxor %xmm9,%xmm0 119 pxor %xmm10,%xmm15 120 decl %r10d 121 jmp .Lenc_sbox 122.align 16 123.Lenc_loop: 124 pxor 0(%rax),%xmm15 125 pxor 16(%rax),%xmm0 126 pxor 32(%rax),%xmm1 127 pxor 48(%rax),%xmm2 128.byte 102,68,15,56,0,255 129.byte 102,15,56,0,199 130 pxor 64(%rax),%xmm3 131 pxor 80(%rax),%xmm4 132.byte 102,15,56,0,207 133.byte 102,15,56,0,215 134 pxor 96(%rax),%xmm5 135 pxor 112(%rax),%xmm6 136.byte 102,15,56,0,223 137.byte 102,15,56,0,231 138.byte 102,15,56,0,239 139.byte 102,15,56,0,247 140 leaq 128(%rax),%rax 141.Lenc_sbox: 142 pxor %xmm5,%xmm4 143 pxor %xmm0,%xmm1 144 pxor %xmm15,%xmm2 145 pxor %xmm1,%xmm5 146 pxor %xmm15,%xmm4 147 148 pxor %xmm2,%xmm5 149 pxor %xmm6,%xmm2 150 pxor %xmm4,%xmm6 151 pxor %xmm3,%xmm2 152 pxor %xmm4,%xmm3 153 pxor %xmm0,%xmm2 154 155 pxor %xmm6,%xmm1 156 pxor %xmm4,%xmm0 157 movdqa %xmm6,%xmm10 158 movdqa %xmm0,%xmm9 159 movdqa %xmm4,%xmm8 160 movdqa %xmm1,%xmm12 161 movdqa %xmm5,%xmm11 162 163 pxor %xmm3,%xmm10 164 pxor %xmm1,%xmm9 165 pxor %xmm2,%xmm8 166 movdqa %xmm10,%xmm13 167 pxor %xmm3,%xmm12 168 movdqa %xmm9,%xmm7 169 pxor %xmm15,%xmm11 170 movdqa %xmm10,%xmm14 171 172 por %xmm8,%xmm9 173 por %xmm11,%xmm10 174 pxor %xmm7,%xmm14 175 pand %xmm11,%xmm13 176 pxor %xmm8,%xmm11 177 pand %xmm8,%xmm7 178 pand %xmm11,%xmm14 179 movdqa %xmm2,%xmm11 180 pxor %xmm15,%xmm11 181 pand %xmm11,%xmm12 182 pxor %xmm12,%xmm10 183 pxor %xmm12,%xmm9 184 movdqa %xmm6,%xmm12 185 movdqa %xmm4,%xmm11 186 pxor %xmm0,%xmm12 187 pxor %xmm5,%xmm11 188 movdqa %xmm12,%xmm8 189 pand %xmm11,%xmm12 190 por %xmm11,%xmm8 191 pxor %xmm12,%xmm7 192 pxor %xmm14,%xmm10 193 pxor %xmm13,%xmm9 194 pxor %xmm14,%xmm8 195 movdqa %xmm1,%xmm11 196 pxor %xmm13,%xmm7 197 movdqa %xmm3,%xmm12 198 pxor %xmm13,%xmm8 199 movdqa %xmm0,%xmm13 200 pand %xmm2,%xmm11 201 movdqa %xmm6,%xmm14 202 pand %xmm15,%xmm12 203 pand %xmm4,%xmm13 204 por %xmm5,%xmm14 205 pxor %xmm11,%xmm10 206 pxor %xmm12,%xmm9 207 pxor %xmm13,%xmm8 208 pxor %xmm14,%xmm7 209 210 211 212 213 214 movdqa %xmm10,%xmm11 215 pand %xmm8,%xmm10 216 pxor %xmm9,%xmm11 217 218 movdqa %xmm7,%xmm13 219 movdqa %xmm11,%xmm14 220 pxor %xmm10,%xmm13 221 pand %xmm13,%xmm14 222 223 movdqa %xmm8,%xmm12 224 pxor %xmm9,%xmm14 225 pxor %xmm7,%xmm12 226 227 pxor %xmm9,%xmm10 228 229 pand %xmm10,%xmm12 230 231 movdqa %xmm13,%xmm9 232 pxor %xmm7,%xmm12 233 234 pxor %xmm12,%xmm9 235 pxor %xmm12,%xmm8 236 237 pand %xmm7,%xmm9 238 239 pxor %xmm9,%xmm13 240 pxor %xmm9,%xmm8 241 242 pand %xmm14,%xmm13 243 244 pxor %xmm11,%xmm13 245 movdqa %xmm5,%xmm11 246 movdqa %xmm4,%xmm7 247 movdqa %xmm14,%xmm9 248 pxor %xmm13,%xmm9 249 pand %xmm5,%xmm9 250 pxor %xmm4,%xmm5 251 pand %xmm14,%xmm4 252 pand %xmm13,%xmm5 253 pxor %xmm4,%xmm5 254 pxor %xmm9,%xmm4 255 pxor %xmm15,%xmm11 256 pxor %xmm2,%xmm7 257 pxor %xmm12,%xmm14 258 pxor %xmm8,%xmm13 259 movdqa %xmm14,%xmm10 260 movdqa %xmm12,%xmm9 261 pxor %xmm13,%xmm10 262 pxor %xmm8,%xmm9 263 pand %xmm11,%xmm10 264 pand %xmm15,%xmm9 265 pxor %xmm7,%xmm11 266 pxor %xmm2,%xmm15 267 pand %xmm14,%xmm7 268 pand %xmm12,%xmm2 269 pand %xmm13,%xmm11 270 pand %xmm8,%xmm15 271 pxor %xmm11,%xmm7 272 pxor %xmm2,%xmm15 273 pxor %xmm10,%xmm11 274 pxor %xmm9,%xmm2 275 pxor %xmm11,%xmm5 276 pxor %xmm11,%xmm15 277 pxor %xmm7,%xmm4 278 pxor %xmm7,%xmm2 279 280 movdqa %xmm6,%xmm11 281 movdqa %xmm0,%xmm7 282 pxor %xmm3,%xmm11 283 pxor %xmm1,%xmm7 284 movdqa %xmm14,%xmm10 285 movdqa %xmm12,%xmm9 286 pxor %xmm13,%xmm10 287 pxor %xmm8,%xmm9 288 pand %xmm11,%xmm10 289 pand %xmm3,%xmm9 290 pxor %xmm7,%xmm11 291 pxor %xmm1,%xmm3 292 pand %xmm14,%xmm7 293 pand %xmm12,%xmm1 294 pand %xmm13,%xmm11 295 pand %xmm8,%xmm3 296 pxor %xmm11,%xmm7 297 pxor %xmm1,%xmm3 298 pxor %xmm10,%xmm11 299 pxor %xmm9,%xmm1 300 pxor %xmm12,%xmm14 301 pxor %xmm8,%xmm13 302 movdqa %xmm14,%xmm10 303 pxor %xmm13,%xmm10 304 pand %xmm6,%xmm10 305 pxor %xmm0,%xmm6 306 pand %xmm14,%xmm0 307 pand %xmm13,%xmm6 308 pxor %xmm0,%xmm6 309 pxor %xmm10,%xmm0 310 pxor %xmm11,%xmm6 311 pxor %xmm11,%xmm3 312 pxor %xmm7,%xmm0 313 pxor %xmm7,%xmm1 314 pxor %xmm15,%xmm6 315 pxor %xmm5,%xmm0 316 pxor %xmm6,%xmm3 317 pxor %xmm15,%xmm5 318 pxor %xmm0,%xmm15 319 320 pxor %xmm4,%xmm0 321 pxor %xmm1,%xmm4 322 pxor %xmm2,%xmm1 323 pxor %xmm4,%xmm2 324 pxor %xmm4,%xmm3 325 326 pxor %xmm2,%xmm5 327 decl %r10d 328 jl .Lenc_done 329 pshufd $0x93,%xmm15,%xmm7 330 pshufd $0x93,%xmm0,%xmm8 331 pxor %xmm7,%xmm15 332 pshufd $0x93,%xmm3,%xmm9 333 pxor %xmm8,%xmm0 334 pshufd $0x93,%xmm5,%xmm10 335 pxor %xmm9,%xmm3 336 pshufd $0x93,%xmm2,%xmm11 337 pxor %xmm10,%xmm5 338 pshufd $0x93,%xmm6,%xmm12 339 pxor %xmm11,%xmm2 340 pshufd $0x93,%xmm1,%xmm13 341 pxor %xmm12,%xmm6 342 pshufd $0x93,%xmm4,%xmm14 343 pxor %xmm13,%xmm1 344 pxor %xmm14,%xmm4 345 346 pxor %xmm15,%xmm8 347 pxor %xmm4,%xmm7 348 pxor %xmm4,%xmm8 349 pshufd $0x4E,%xmm15,%xmm15 350 pxor %xmm0,%xmm9 351 pshufd $0x4E,%xmm0,%xmm0 352 pxor %xmm2,%xmm12 353 pxor %xmm7,%xmm15 354 pxor %xmm6,%xmm13 355 pxor %xmm8,%xmm0 356 pxor %xmm5,%xmm11 357 pshufd $0x4E,%xmm2,%xmm7 358 pxor %xmm1,%xmm14 359 pshufd $0x4E,%xmm6,%xmm8 360 pxor %xmm3,%xmm10 361 pshufd $0x4E,%xmm5,%xmm2 362 pxor %xmm4,%xmm10 363 pshufd $0x4E,%xmm4,%xmm6 364 pxor %xmm4,%xmm11 365 pshufd $0x4E,%xmm1,%xmm5 366 pxor %xmm11,%xmm7 367 pshufd $0x4E,%xmm3,%xmm1 368 pxor %xmm12,%xmm8 369 pxor %xmm10,%xmm2 370 pxor %xmm14,%xmm6 371 pxor %xmm13,%xmm5 372 movdqa %xmm7,%xmm3 373 pxor %xmm9,%xmm1 374 movdqa %xmm8,%xmm4 375 movdqa 48(%r11),%xmm7 376 jnz .Lenc_loop 377 movdqa 64(%r11),%xmm7 378 jmp .Lenc_loop 379.align 16 380.Lenc_done: 381 movdqa 0(%r11),%xmm7 382 movdqa 16(%r11),%xmm8 383 movdqa %xmm1,%xmm9 384 psrlq $1,%xmm1 385 movdqa %xmm2,%xmm10 386 psrlq $1,%xmm2 387 pxor %xmm4,%xmm1 388 pxor %xmm6,%xmm2 389 pand %xmm7,%xmm1 390 pand %xmm7,%xmm2 391 pxor %xmm1,%xmm4 392 psllq $1,%xmm1 393 pxor %xmm2,%xmm6 394 psllq $1,%xmm2 395 pxor %xmm9,%xmm1 396 pxor %xmm10,%xmm2 397 movdqa %xmm3,%xmm9 398 psrlq $1,%xmm3 399 movdqa %xmm15,%xmm10 400 psrlq $1,%xmm15 401 pxor %xmm5,%xmm3 402 pxor %xmm0,%xmm15 403 pand %xmm7,%xmm3 404 pand %xmm7,%xmm15 405 pxor %xmm3,%xmm5 406 psllq $1,%xmm3 407 pxor %xmm15,%xmm0 408 psllq $1,%xmm15 409 pxor %xmm9,%xmm3 410 pxor %xmm10,%xmm15 411 movdqa 32(%r11),%xmm7 412 movdqa %xmm6,%xmm9 413 psrlq $2,%xmm6 414 movdqa %xmm2,%xmm10 415 psrlq $2,%xmm2 416 pxor %xmm4,%xmm6 417 pxor %xmm1,%xmm2 418 pand %xmm8,%xmm6 419 pand %xmm8,%xmm2 420 pxor %xmm6,%xmm4 421 psllq $2,%xmm6 422 pxor %xmm2,%xmm1 423 psllq $2,%xmm2 424 pxor %xmm9,%xmm6 425 pxor %xmm10,%xmm2 426 movdqa %xmm0,%xmm9 427 psrlq $2,%xmm0 428 movdqa %xmm15,%xmm10 429 psrlq $2,%xmm15 430 pxor %xmm5,%xmm0 431 pxor %xmm3,%xmm15 432 pand %xmm8,%xmm0 433 pand %xmm8,%xmm15 434 pxor %xmm0,%xmm5 435 psllq $2,%xmm0 436 pxor %xmm15,%xmm3 437 psllq $2,%xmm15 438 pxor %xmm9,%xmm0 439 pxor %xmm10,%xmm15 440 movdqa %xmm5,%xmm9 441 psrlq $4,%xmm5 442 movdqa %xmm3,%xmm10 443 psrlq $4,%xmm3 444 pxor %xmm4,%xmm5 445 pxor %xmm1,%xmm3 446 pand %xmm7,%xmm5 447 pand %xmm7,%xmm3 448 pxor %xmm5,%xmm4 449 psllq $4,%xmm5 450 pxor %xmm3,%xmm1 451 psllq $4,%xmm3 452 pxor %xmm9,%xmm5 453 pxor %xmm10,%xmm3 454 movdqa %xmm0,%xmm9 455 psrlq $4,%xmm0 456 movdqa %xmm15,%xmm10 457 psrlq $4,%xmm15 458 pxor %xmm6,%xmm0 459 pxor %xmm2,%xmm15 460 pand %xmm7,%xmm0 461 pand %xmm7,%xmm15 462 pxor %xmm0,%xmm6 463 psllq $4,%xmm0 464 pxor %xmm15,%xmm2 465 psllq $4,%xmm15 466 pxor %xmm9,%xmm0 467 pxor %xmm10,%xmm15 468 movdqa (%rax),%xmm7 469 pxor %xmm7,%xmm3 470 pxor %xmm7,%xmm5 471 pxor %xmm7,%xmm2 472 pxor %xmm7,%xmm6 473 pxor %xmm7,%xmm1 474 pxor %xmm7,%xmm4 475 pxor %xmm7,%xmm15 476 pxor %xmm7,%xmm0 477 .byte 0xf3,0xc3 478.size _bsaes_encrypt8,.-_bsaes_encrypt8 479 480.type _bsaes_decrypt8,@function 481.align 64 482_bsaes_decrypt8: 483 leaq .LBS0(%rip),%r11 484 485 movdqa (%rax),%xmm8 486 leaq 16(%rax),%rax 487 movdqa -48(%r11),%xmm7 488 pxor %xmm8,%xmm15 489 pxor %xmm8,%xmm0 490 pxor %xmm8,%xmm1 491 pxor %xmm8,%xmm2 492.byte 102,68,15,56,0,255 493.byte 102,15,56,0,199 494 pxor %xmm8,%xmm3 495 pxor %xmm8,%xmm4 496.byte 102,15,56,0,207 497.byte 102,15,56,0,215 498 pxor %xmm8,%xmm5 499 pxor %xmm8,%xmm6 500.byte 102,15,56,0,223 501.byte 102,15,56,0,231 502.byte 102,15,56,0,239 503.byte 102,15,56,0,247 504 movdqa 0(%r11),%xmm7 505 movdqa 16(%r11),%xmm8 506 movdqa %xmm5,%xmm9 507 psrlq $1,%xmm5 508 movdqa %xmm3,%xmm10 509 psrlq $1,%xmm3 510 pxor %xmm6,%xmm5 511 pxor %xmm4,%xmm3 512 pand %xmm7,%xmm5 513 pand %xmm7,%xmm3 514 pxor %xmm5,%xmm6 515 psllq $1,%xmm5 516 pxor %xmm3,%xmm4 517 psllq $1,%xmm3 518 pxor %xmm9,%xmm5 519 pxor %xmm10,%xmm3 520 movdqa %xmm1,%xmm9 521 psrlq $1,%xmm1 522 movdqa %xmm15,%xmm10 523 psrlq $1,%xmm15 524 pxor %xmm2,%xmm1 525 pxor %xmm0,%xmm15 526 pand %xmm7,%xmm1 527 pand %xmm7,%xmm15 528 pxor %xmm1,%xmm2 529 psllq $1,%xmm1 530 pxor %xmm15,%xmm0 531 psllq $1,%xmm15 532 pxor %xmm9,%xmm1 533 pxor %xmm10,%xmm15 534 movdqa 32(%r11),%xmm7 535 movdqa %xmm4,%xmm9 536 psrlq $2,%xmm4 537 movdqa %xmm3,%xmm10 538 psrlq $2,%xmm3 539 pxor %xmm6,%xmm4 540 pxor %xmm5,%xmm3 541 pand %xmm8,%xmm4 542 pand %xmm8,%xmm3 543 pxor %xmm4,%xmm6 544 psllq $2,%xmm4 545 pxor %xmm3,%xmm5 546 psllq $2,%xmm3 547 pxor %xmm9,%xmm4 548 pxor %xmm10,%xmm3 549 movdqa %xmm0,%xmm9 550 psrlq $2,%xmm0 551 movdqa %xmm15,%xmm10 552 psrlq $2,%xmm15 553 pxor %xmm2,%xmm0 554 pxor %xmm1,%xmm15 555 pand %xmm8,%xmm0 556 pand %xmm8,%xmm15 557 pxor %xmm0,%xmm2 558 psllq $2,%xmm0 559 pxor %xmm15,%xmm1 560 psllq $2,%xmm15 561 pxor %xmm9,%xmm0 562 pxor %xmm10,%xmm15 563 movdqa %xmm2,%xmm9 564 psrlq $4,%xmm2 565 movdqa %xmm1,%xmm10 566 psrlq $4,%xmm1 567 pxor %xmm6,%xmm2 568 pxor %xmm5,%xmm1 569 pand %xmm7,%xmm2 570 pand %xmm7,%xmm1 571 pxor %xmm2,%xmm6 572 psllq $4,%xmm2 573 pxor %xmm1,%xmm5 574 psllq $4,%xmm1 575 pxor %xmm9,%xmm2 576 pxor %xmm10,%xmm1 577 movdqa %xmm0,%xmm9 578 psrlq $4,%xmm0 579 movdqa %xmm15,%xmm10 580 psrlq $4,%xmm15 581 pxor %xmm4,%xmm0 582 pxor %xmm3,%xmm15 583 pand %xmm7,%xmm0 584 pand %xmm7,%xmm15 585 pxor %xmm0,%xmm4 586 psllq $4,%xmm0 587 pxor %xmm15,%xmm3 588 psllq $4,%xmm15 589 pxor %xmm9,%xmm0 590 pxor %xmm10,%xmm15 591 decl %r10d 592 jmp .Ldec_sbox 593.align 16 594.Ldec_loop: 595 pxor 0(%rax),%xmm15 596 pxor 16(%rax),%xmm0 597 pxor 32(%rax),%xmm1 598 pxor 48(%rax),%xmm2 599.byte 102,68,15,56,0,255 600.byte 102,15,56,0,199 601 pxor 64(%rax),%xmm3 602 pxor 80(%rax),%xmm4 603.byte 102,15,56,0,207 604.byte 102,15,56,0,215 605 pxor 96(%rax),%xmm5 606 pxor 112(%rax),%xmm6 607.byte 102,15,56,0,223 608.byte 102,15,56,0,231 609.byte 102,15,56,0,239 610.byte 102,15,56,0,247 611 leaq 128(%rax),%rax 612.Ldec_sbox: 613 pxor %xmm3,%xmm2 614 615 pxor %xmm6,%xmm3 616 pxor %xmm6,%xmm1 617 pxor %xmm3,%xmm5 618 pxor %xmm5,%xmm6 619 pxor %xmm6,%xmm0 620 621 pxor %xmm0,%xmm15 622 pxor %xmm4,%xmm1 623 pxor %xmm15,%xmm2 624 pxor %xmm15,%xmm4 625 pxor %xmm2,%xmm0 626 movdqa %xmm2,%xmm10 627 movdqa %xmm6,%xmm9 628 movdqa %xmm0,%xmm8 629 movdqa %xmm3,%xmm12 630 movdqa %xmm4,%xmm11 631 632 pxor %xmm15,%xmm10 633 pxor %xmm3,%xmm9 634 pxor %xmm5,%xmm8 635 movdqa %xmm10,%xmm13 636 pxor %xmm15,%xmm12 637 movdqa %xmm9,%xmm7 638 pxor %xmm1,%xmm11 639 movdqa %xmm10,%xmm14 640 641 por %xmm8,%xmm9 642 por %xmm11,%xmm10 643 pxor %xmm7,%xmm14 644 pand %xmm11,%xmm13 645 pxor %xmm8,%xmm11 646 pand %xmm8,%xmm7 647 pand %xmm11,%xmm14 648 movdqa %xmm5,%xmm11 649 pxor %xmm1,%xmm11 650 pand %xmm11,%xmm12 651 pxor %xmm12,%xmm10 652 pxor %xmm12,%xmm9 653 movdqa %xmm2,%xmm12 654 movdqa %xmm0,%xmm11 655 pxor %xmm6,%xmm12 656 pxor %xmm4,%xmm11 657 movdqa %xmm12,%xmm8 658 pand %xmm11,%xmm12 659 por %xmm11,%xmm8 660 pxor %xmm12,%xmm7 661 pxor %xmm14,%xmm10 662 pxor %xmm13,%xmm9 663 pxor %xmm14,%xmm8 664 movdqa %xmm3,%xmm11 665 pxor %xmm13,%xmm7 666 movdqa %xmm15,%xmm12 667 pxor %xmm13,%xmm8 668 movdqa %xmm6,%xmm13 669 pand %xmm5,%xmm11 670 movdqa %xmm2,%xmm14 671 pand %xmm1,%xmm12 672 pand %xmm0,%xmm13 673 por %xmm4,%xmm14 674 pxor %xmm11,%xmm10 675 pxor %xmm12,%xmm9 676 pxor %xmm13,%xmm8 677 pxor %xmm14,%xmm7 678 679 680 681 682 683 movdqa %xmm10,%xmm11 684 pand %xmm8,%xmm10 685 pxor %xmm9,%xmm11 686 687 movdqa %xmm7,%xmm13 688 movdqa %xmm11,%xmm14 689 pxor %xmm10,%xmm13 690 pand %xmm13,%xmm14 691 692 movdqa %xmm8,%xmm12 693 pxor %xmm9,%xmm14 694 pxor %xmm7,%xmm12 695 696 pxor %xmm9,%xmm10 697 698 pand %xmm10,%xmm12 699 700 movdqa %xmm13,%xmm9 701 pxor %xmm7,%xmm12 702 703 pxor %xmm12,%xmm9 704 pxor %xmm12,%xmm8 705 706 pand %xmm7,%xmm9 707 708 pxor %xmm9,%xmm13 709 pxor %xmm9,%xmm8 710 711 pand %xmm14,%xmm13 712 713 pxor %xmm11,%xmm13 714 movdqa %xmm4,%xmm11 715 movdqa %xmm0,%xmm7 716 movdqa %xmm14,%xmm9 717 pxor %xmm13,%xmm9 718 pand %xmm4,%xmm9 719 pxor %xmm0,%xmm4 720 pand %xmm14,%xmm0 721 pand %xmm13,%xmm4 722 pxor %xmm0,%xmm4 723 pxor %xmm9,%xmm0 724 pxor %xmm1,%xmm11 725 pxor %xmm5,%xmm7 726 pxor %xmm12,%xmm14 727 pxor %xmm8,%xmm13 728 movdqa %xmm14,%xmm10 729 movdqa %xmm12,%xmm9 730 pxor %xmm13,%xmm10 731 pxor %xmm8,%xmm9 732 pand %xmm11,%xmm10 733 pand %xmm1,%xmm9 734 pxor %xmm7,%xmm11 735 pxor %xmm5,%xmm1 736 pand %xmm14,%xmm7 737 pand %xmm12,%xmm5 738 pand %xmm13,%xmm11 739 pand %xmm8,%xmm1 740 pxor %xmm11,%xmm7 741 pxor %xmm5,%xmm1 742 pxor %xmm10,%xmm11 743 pxor %xmm9,%xmm5 744 pxor %xmm11,%xmm4 745 pxor %xmm11,%xmm1 746 pxor %xmm7,%xmm0 747 pxor %xmm7,%xmm5 748 749 movdqa %xmm2,%xmm11 750 movdqa %xmm6,%xmm7 751 pxor %xmm15,%xmm11 752 pxor %xmm3,%xmm7 753 movdqa %xmm14,%xmm10 754 movdqa %xmm12,%xmm9 755 pxor %xmm13,%xmm10 756 pxor %xmm8,%xmm9 757 pand %xmm11,%xmm10 758 pand %xmm15,%xmm9 759 pxor %xmm7,%xmm11 760 pxor %xmm3,%xmm15 761 pand %xmm14,%xmm7 762 pand %xmm12,%xmm3 763 pand %xmm13,%xmm11 764 pand %xmm8,%xmm15 765 pxor %xmm11,%xmm7 766 pxor %xmm3,%xmm15 767 pxor %xmm10,%xmm11 768 pxor %xmm9,%xmm3 769 pxor %xmm12,%xmm14 770 pxor %xmm8,%xmm13 771 movdqa %xmm14,%xmm10 772 pxor %xmm13,%xmm10 773 pand %xmm2,%xmm10 774 pxor %xmm6,%xmm2 775 pand %xmm14,%xmm6 776 pand %xmm13,%xmm2 777 pxor %xmm6,%xmm2 778 pxor %xmm10,%xmm6 779 pxor %xmm11,%xmm2 780 pxor %xmm11,%xmm15 781 pxor %xmm7,%xmm6 782 pxor %xmm7,%xmm3 783 pxor %xmm6,%xmm0 784 pxor %xmm4,%xmm5 785 786 pxor %xmm0,%xmm3 787 pxor %xmm6,%xmm1 788 pxor %xmm6,%xmm4 789 pxor %xmm1,%xmm3 790 pxor %xmm15,%xmm6 791 pxor %xmm4,%xmm3 792 pxor %xmm5,%xmm2 793 pxor %xmm0,%xmm5 794 pxor %xmm3,%xmm2 795 796 pxor %xmm15,%xmm3 797 pxor %xmm2,%xmm6 798 decl %r10d 799 jl .Ldec_done 800 801 pshufd $0x4E,%xmm15,%xmm7 802 pshufd $0x4E,%xmm2,%xmm13 803 pxor %xmm15,%xmm7 804 pshufd $0x4E,%xmm4,%xmm14 805 pxor %xmm2,%xmm13 806 pshufd $0x4E,%xmm0,%xmm8 807 pxor %xmm4,%xmm14 808 pshufd $0x4E,%xmm5,%xmm9 809 pxor %xmm0,%xmm8 810 pshufd $0x4E,%xmm3,%xmm10 811 pxor %xmm5,%xmm9 812 pxor %xmm13,%xmm15 813 pxor %xmm13,%xmm0 814 pshufd $0x4E,%xmm1,%xmm11 815 pxor %xmm3,%xmm10 816 pxor %xmm7,%xmm5 817 pxor %xmm8,%xmm3 818 pshufd $0x4E,%xmm6,%xmm12 819 pxor %xmm1,%xmm11 820 pxor %xmm14,%xmm0 821 pxor %xmm9,%xmm1 822 pxor %xmm6,%xmm12 823 824 pxor %xmm14,%xmm5 825 pxor %xmm13,%xmm3 826 pxor %xmm13,%xmm1 827 pxor %xmm10,%xmm6 828 pxor %xmm11,%xmm2 829 pxor %xmm14,%xmm1 830 pxor %xmm14,%xmm6 831 pxor %xmm12,%xmm4 832 pshufd $0x93,%xmm15,%xmm7 833 pshufd $0x93,%xmm0,%xmm8 834 pxor %xmm7,%xmm15 835 pshufd $0x93,%xmm5,%xmm9 836 pxor %xmm8,%xmm0 837 pshufd $0x93,%xmm3,%xmm10 838 pxor %xmm9,%xmm5 839 pshufd $0x93,%xmm1,%xmm11 840 pxor %xmm10,%xmm3 841 pshufd $0x93,%xmm6,%xmm12 842 pxor %xmm11,%xmm1 843 pshufd $0x93,%xmm2,%xmm13 844 pxor %xmm12,%xmm6 845 pshufd $0x93,%xmm4,%xmm14 846 pxor %xmm13,%xmm2 847 pxor %xmm14,%xmm4 848 849 pxor %xmm15,%xmm8 850 pxor %xmm4,%xmm7 851 pxor %xmm4,%xmm8 852 pshufd $0x4E,%xmm15,%xmm15 853 pxor %xmm0,%xmm9 854 pshufd $0x4E,%xmm0,%xmm0 855 pxor %xmm1,%xmm12 856 pxor %xmm7,%xmm15 857 pxor %xmm6,%xmm13 858 pxor %xmm8,%xmm0 859 pxor %xmm3,%xmm11 860 pshufd $0x4E,%xmm1,%xmm7 861 pxor %xmm2,%xmm14 862 pshufd $0x4E,%xmm6,%xmm8 863 pxor %xmm5,%xmm10 864 pshufd $0x4E,%xmm3,%xmm1 865 pxor %xmm4,%xmm10 866 pshufd $0x4E,%xmm4,%xmm6 867 pxor %xmm4,%xmm11 868 pshufd $0x4E,%xmm2,%xmm3 869 pxor %xmm11,%xmm7 870 pshufd $0x4E,%xmm5,%xmm2 871 pxor %xmm12,%xmm8 872 pxor %xmm1,%xmm10 873 pxor %xmm14,%xmm6 874 pxor %xmm3,%xmm13 875 movdqa %xmm7,%xmm3 876 pxor %xmm9,%xmm2 877 movdqa %xmm13,%xmm5 878 movdqa %xmm8,%xmm4 879 movdqa %xmm2,%xmm1 880 movdqa %xmm10,%xmm2 881 movdqa -16(%r11),%xmm7 882 jnz .Ldec_loop 883 movdqa -32(%r11),%xmm7 884 jmp .Ldec_loop 885.align 16 886.Ldec_done: 887 movdqa 0(%r11),%xmm7 888 movdqa 16(%r11),%xmm8 889 movdqa %xmm2,%xmm9 890 psrlq $1,%xmm2 891 movdqa %xmm1,%xmm10 892 psrlq $1,%xmm1 893 pxor %xmm4,%xmm2 894 pxor %xmm6,%xmm1 895 pand %xmm7,%xmm2 896 pand %xmm7,%xmm1 897 pxor %xmm2,%xmm4 898 psllq $1,%xmm2 899 pxor %xmm1,%xmm6 900 psllq $1,%xmm1 901 pxor %xmm9,%xmm2 902 pxor %xmm10,%xmm1 903 movdqa %xmm5,%xmm9 904 psrlq $1,%xmm5 905 movdqa %xmm15,%xmm10 906 psrlq $1,%xmm15 907 pxor %xmm3,%xmm5 908 pxor %xmm0,%xmm15 909 pand %xmm7,%xmm5 910 pand %xmm7,%xmm15 911 pxor %xmm5,%xmm3 912 psllq $1,%xmm5 913 pxor %xmm15,%xmm0 914 psllq $1,%xmm15 915 pxor %xmm9,%xmm5 916 pxor %xmm10,%xmm15 917 movdqa 32(%r11),%xmm7 918 movdqa %xmm6,%xmm9 919 psrlq $2,%xmm6 920 movdqa %xmm1,%xmm10 921 psrlq $2,%xmm1 922 pxor %xmm4,%xmm6 923 pxor %xmm2,%xmm1 924 pand %xmm8,%xmm6 925 pand %xmm8,%xmm1 926 pxor %xmm6,%xmm4 927 psllq $2,%xmm6 928 pxor %xmm1,%xmm2 929 psllq $2,%xmm1 930 pxor %xmm9,%xmm6 931 pxor %xmm10,%xmm1 932 movdqa %xmm0,%xmm9 933 psrlq $2,%xmm0 934 movdqa %xmm15,%xmm10 935 psrlq $2,%xmm15 936 pxor %xmm3,%xmm0 937 pxor %xmm5,%xmm15 938 pand %xmm8,%xmm0 939 pand %xmm8,%xmm15 940 pxor %xmm0,%xmm3 941 psllq $2,%xmm0 942 pxor %xmm15,%xmm5 943 psllq $2,%xmm15 944 pxor %xmm9,%xmm0 945 pxor %xmm10,%xmm15 946 movdqa %xmm3,%xmm9 947 psrlq $4,%xmm3 948 movdqa %xmm5,%xmm10 949 psrlq $4,%xmm5 950 pxor %xmm4,%xmm3 951 pxor %xmm2,%xmm5 952 pand %xmm7,%xmm3 953 pand %xmm7,%xmm5 954 pxor %xmm3,%xmm4 955 psllq $4,%xmm3 956 pxor %xmm5,%xmm2 957 psllq $4,%xmm5 958 pxor %xmm9,%xmm3 959 pxor %xmm10,%xmm5 960 movdqa %xmm0,%xmm9 961 psrlq $4,%xmm0 962 movdqa %xmm15,%xmm10 963 psrlq $4,%xmm15 964 pxor %xmm6,%xmm0 965 pxor %xmm1,%xmm15 966 pand %xmm7,%xmm0 967 pand %xmm7,%xmm15 968 pxor %xmm0,%xmm6 969 psllq $4,%xmm0 970 pxor %xmm15,%xmm1 971 psllq $4,%xmm15 972 pxor %xmm9,%xmm0 973 pxor %xmm10,%xmm15 974 movdqa (%rax),%xmm7 975 pxor %xmm7,%xmm5 976 pxor %xmm7,%xmm3 977 pxor %xmm7,%xmm1 978 pxor %xmm7,%xmm6 979 pxor %xmm7,%xmm2 980 pxor %xmm7,%xmm4 981 pxor %xmm7,%xmm15 982 pxor %xmm7,%xmm0 983 .byte 0xf3,0xc3 984.size _bsaes_decrypt8,.-_bsaes_decrypt8 985.type _bsaes_key_convert,@function 986.align 16 987_bsaes_key_convert: 988 leaq .Lmasks(%rip),%r11 989 movdqu (%rcx),%xmm7 990 leaq 16(%rcx),%rcx 991 movdqa 0(%r11),%xmm0 992 movdqa 16(%r11),%xmm1 993 movdqa 32(%r11),%xmm2 994 movdqa 48(%r11),%xmm3 995 movdqa 64(%r11),%xmm4 996 pcmpeqd %xmm5,%xmm5 997 998 movdqu (%rcx),%xmm6 999 movdqa %xmm7,(%rax) 1000 leaq 16(%rax),%rax 1001 decl %r10d 1002 jmp .Lkey_loop 1003.align 16 1004.Lkey_loop: 1005.byte 102,15,56,0,244 1006 1007 movdqa %xmm0,%xmm8 1008 movdqa %xmm1,%xmm9 1009 1010 pand %xmm6,%xmm8 1011 pand %xmm6,%xmm9 1012 movdqa %xmm2,%xmm10 1013 pcmpeqb %xmm0,%xmm8 1014 psllq $4,%xmm0 1015 movdqa %xmm3,%xmm11 1016 pcmpeqb %xmm1,%xmm9 1017 psllq $4,%xmm1 1018 1019 pand %xmm6,%xmm10 1020 pand %xmm6,%xmm11 1021 movdqa %xmm0,%xmm12 1022 pcmpeqb %xmm2,%xmm10 1023 psllq $4,%xmm2 1024 movdqa %xmm1,%xmm13 1025 pcmpeqb %xmm3,%xmm11 1026 psllq $4,%xmm3 1027 1028 movdqa %xmm2,%xmm14 1029 movdqa %xmm3,%xmm15 1030 pxor %xmm5,%xmm8 1031 pxor %xmm5,%xmm9 1032 1033 pand %xmm6,%xmm12 1034 pand %xmm6,%xmm13 1035 movdqa %xmm8,0(%rax) 1036 pcmpeqb %xmm0,%xmm12 1037 psrlq $4,%xmm0 1038 movdqa %xmm9,16(%rax) 1039 pcmpeqb %xmm1,%xmm13 1040 psrlq $4,%xmm1 1041 leaq 16(%rcx),%rcx 1042 1043 pand %xmm6,%xmm14 1044 pand %xmm6,%xmm15 1045 movdqa %xmm10,32(%rax) 1046 pcmpeqb %xmm2,%xmm14 1047 psrlq $4,%xmm2 1048 movdqa %xmm11,48(%rax) 1049 pcmpeqb %xmm3,%xmm15 1050 psrlq $4,%xmm3 1051 movdqu (%rcx),%xmm6 1052 1053 pxor %xmm5,%xmm13 1054 pxor %xmm5,%xmm14 1055 movdqa %xmm12,64(%rax) 1056 movdqa %xmm13,80(%rax) 1057 movdqa %xmm14,96(%rax) 1058 movdqa %xmm15,112(%rax) 1059 leaq 128(%rax),%rax 1060 decl %r10d 1061 jnz .Lkey_loop 1062 1063 movdqa 80(%r11),%xmm7 1064 1065 .byte 0xf3,0xc3 1066.size _bsaes_key_convert,.-_bsaes_key_convert 1067 1068.globl bsaes_cbc_encrypt 1069.type bsaes_cbc_encrypt,@function 1070.align 16 1071bsaes_cbc_encrypt: 1072 cmpl $0,%r9d 1073 jne asm_AES_cbc_encrypt 1074 cmpq $128,%rdx 1075 jb asm_AES_cbc_encrypt 1076 1077 movq %rsp,%rax 1078.Lcbc_dec_prologue: 1079 pushq %rbp 1080 pushq %rbx 1081 pushq %r12 1082 pushq %r13 1083 pushq %r14 1084 pushq %r15 1085 leaq -72(%rsp),%rsp 1086 movq %rsp,%rbp 1087 movl 240(%rcx),%eax 1088 movq %rdi,%r12 1089 movq %rsi,%r13 1090 movq %rdx,%r14 1091 movq %rcx,%r15 1092 movq %r8,%rbx 1093 shrq $4,%r14 1094 1095 movl %eax,%edx 1096 shlq $7,%rax 1097 subq $96,%rax 1098 subq %rax,%rsp 1099 1100 movq %rsp,%rax 1101 movq %r15,%rcx 1102 movl %edx,%r10d 1103 call _bsaes_key_convert 1104 pxor (%rsp),%xmm7 1105 movdqa %xmm6,(%rax) 1106 movdqa %xmm7,(%rsp) 1107 1108 movdqu (%rbx),%xmm14 1109 subq $8,%r14 1110.Lcbc_dec_loop: 1111 movdqu 0(%r12),%xmm15 1112 movdqu 16(%r12),%xmm0 1113 movdqu 32(%r12),%xmm1 1114 movdqu 48(%r12),%xmm2 1115 movdqu 64(%r12),%xmm3 1116 movdqu 80(%r12),%xmm4 1117 movq %rsp,%rax 1118 movdqu 96(%r12),%xmm5 1119 movl %edx,%r10d 1120 movdqu 112(%r12),%xmm6 1121 movdqa %xmm14,32(%rbp) 1122 1123 call _bsaes_decrypt8 1124 1125 pxor 32(%rbp),%xmm15 1126 movdqu 0(%r12),%xmm7 1127 movdqu 16(%r12),%xmm8 1128 pxor %xmm7,%xmm0 1129 movdqu 32(%r12),%xmm9 1130 pxor %xmm8,%xmm5 1131 movdqu 48(%r12),%xmm10 1132 pxor %xmm9,%xmm3 1133 movdqu 64(%r12),%xmm11 1134 pxor %xmm10,%xmm1 1135 movdqu 80(%r12),%xmm12 1136 pxor %xmm11,%xmm6 1137 movdqu 96(%r12),%xmm13 1138 pxor %xmm12,%xmm2 1139 movdqu 112(%r12),%xmm14 1140 pxor %xmm13,%xmm4 1141 movdqu %xmm15,0(%r13) 1142 leaq 128(%r12),%r12 1143 movdqu %xmm0,16(%r13) 1144 movdqu %xmm5,32(%r13) 1145 movdqu %xmm3,48(%r13) 1146 movdqu %xmm1,64(%r13) 1147 movdqu %xmm6,80(%r13) 1148 movdqu %xmm2,96(%r13) 1149 movdqu %xmm4,112(%r13) 1150 leaq 128(%r13),%r13 1151 subq $8,%r14 1152 jnc .Lcbc_dec_loop 1153 1154 addq $8,%r14 1155 jz .Lcbc_dec_done 1156 1157 movdqu 0(%r12),%xmm15 1158 movq %rsp,%rax 1159 movl %edx,%r10d 1160 cmpq $2,%r14 1161 jb .Lcbc_dec_one 1162 movdqu 16(%r12),%xmm0 1163 je .Lcbc_dec_two 1164 movdqu 32(%r12),%xmm1 1165 cmpq $4,%r14 1166 jb .Lcbc_dec_three 1167 movdqu 48(%r12),%xmm2 1168 je .Lcbc_dec_four 1169 movdqu 64(%r12),%xmm3 1170 cmpq $6,%r14 1171 jb .Lcbc_dec_five 1172 movdqu 80(%r12),%xmm4 1173 je .Lcbc_dec_six 1174 movdqu 96(%r12),%xmm5 1175 movdqa %xmm14,32(%rbp) 1176 call _bsaes_decrypt8 1177 pxor 32(%rbp),%xmm15 1178 movdqu 0(%r12),%xmm7 1179 movdqu 16(%r12),%xmm8 1180 pxor %xmm7,%xmm0 1181 movdqu 32(%r12),%xmm9 1182 pxor %xmm8,%xmm5 1183 movdqu 48(%r12),%xmm10 1184 pxor %xmm9,%xmm3 1185 movdqu 64(%r12),%xmm11 1186 pxor %xmm10,%xmm1 1187 movdqu 80(%r12),%xmm12 1188 pxor %xmm11,%xmm6 1189 movdqu 96(%r12),%xmm14 1190 pxor %xmm12,%xmm2 1191 movdqu %xmm15,0(%r13) 1192 movdqu %xmm0,16(%r13) 1193 movdqu %xmm5,32(%r13) 1194 movdqu %xmm3,48(%r13) 1195 movdqu %xmm1,64(%r13) 1196 movdqu %xmm6,80(%r13) 1197 movdqu %xmm2,96(%r13) 1198 jmp .Lcbc_dec_done 1199.align 16 1200.Lcbc_dec_six: 1201 movdqa %xmm14,32(%rbp) 1202 call _bsaes_decrypt8 1203 pxor 32(%rbp),%xmm15 1204 movdqu 0(%r12),%xmm7 1205 movdqu 16(%r12),%xmm8 1206 pxor %xmm7,%xmm0 1207 movdqu 32(%r12),%xmm9 1208 pxor %xmm8,%xmm5 1209 movdqu 48(%r12),%xmm10 1210 pxor %xmm9,%xmm3 1211 movdqu 64(%r12),%xmm11 1212 pxor %xmm10,%xmm1 1213 movdqu 80(%r12),%xmm14 1214 pxor %xmm11,%xmm6 1215 movdqu %xmm15,0(%r13) 1216 movdqu %xmm0,16(%r13) 1217 movdqu %xmm5,32(%r13) 1218 movdqu %xmm3,48(%r13) 1219 movdqu %xmm1,64(%r13) 1220 movdqu %xmm6,80(%r13) 1221 jmp .Lcbc_dec_done 1222.align 16 1223.Lcbc_dec_five: 1224 movdqa %xmm14,32(%rbp) 1225 call _bsaes_decrypt8 1226 pxor 32(%rbp),%xmm15 1227 movdqu 0(%r12),%xmm7 1228 movdqu 16(%r12),%xmm8 1229 pxor %xmm7,%xmm0 1230 movdqu 32(%r12),%xmm9 1231 pxor %xmm8,%xmm5 1232 movdqu 48(%r12),%xmm10 1233 pxor %xmm9,%xmm3 1234 movdqu 64(%r12),%xmm14 1235 pxor %xmm10,%xmm1 1236 movdqu %xmm15,0(%r13) 1237 movdqu %xmm0,16(%r13) 1238 movdqu %xmm5,32(%r13) 1239 movdqu %xmm3,48(%r13) 1240 movdqu %xmm1,64(%r13) 1241 jmp .Lcbc_dec_done 1242.align 16 1243.Lcbc_dec_four: 1244 movdqa %xmm14,32(%rbp) 1245 call _bsaes_decrypt8 1246 pxor 32(%rbp),%xmm15 1247 movdqu 0(%r12),%xmm7 1248 movdqu 16(%r12),%xmm8 1249 pxor %xmm7,%xmm0 1250 movdqu 32(%r12),%xmm9 1251 pxor %xmm8,%xmm5 1252 movdqu 48(%r12),%xmm14 1253 pxor %xmm9,%xmm3 1254 movdqu %xmm15,0(%r13) 1255 movdqu %xmm0,16(%r13) 1256 movdqu %xmm5,32(%r13) 1257 movdqu %xmm3,48(%r13) 1258 jmp .Lcbc_dec_done 1259.align 16 1260.Lcbc_dec_three: 1261 movdqa %xmm14,32(%rbp) 1262 call _bsaes_decrypt8 1263 pxor 32(%rbp),%xmm15 1264 movdqu 0(%r12),%xmm7 1265 movdqu 16(%r12),%xmm8 1266 pxor %xmm7,%xmm0 1267 movdqu 32(%r12),%xmm14 1268 pxor %xmm8,%xmm5 1269 movdqu %xmm15,0(%r13) 1270 movdqu %xmm0,16(%r13) 1271 movdqu %xmm5,32(%r13) 1272 jmp .Lcbc_dec_done 1273.align 16 1274.Lcbc_dec_two: 1275 movdqa %xmm14,32(%rbp) 1276 call _bsaes_decrypt8 1277 pxor 32(%rbp),%xmm15 1278 movdqu 0(%r12),%xmm7 1279 movdqu 16(%r12),%xmm14 1280 pxor %xmm7,%xmm0 1281 movdqu %xmm15,0(%r13) 1282 movdqu %xmm0,16(%r13) 1283 jmp .Lcbc_dec_done 1284.align 16 1285.Lcbc_dec_one: 1286 leaq (%r12),%rdi 1287 leaq 32(%rbp),%rsi 1288 leaq (%r15),%rdx 1289 call asm_AES_decrypt 1290 pxor 32(%rbp),%xmm14 1291 movdqu %xmm14,(%r13) 1292 movdqa %xmm15,%xmm14 1293 1294.Lcbc_dec_done: 1295 movdqu %xmm14,(%rbx) 1296 leaq (%rsp),%rax 1297 pxor %xmm0,%xmm0 1298.Lcbc_dec_bzero: 1299 movdqa %xmm0,0(%rax) 1300 movdqa %xmm0,16(%rax) 1301 leaq 32(%rax),%rax 1302 cmpq %rax,%rbp 1303 ja .Lcbc_dec_bzero 1304 1305 leaq (%rbp),%rsp 1306 movq 72(%rsp),%r15 1307 movq 80(%rsp),%r14 1308 movq 88(%rsp),%r13 1309 movq 96(%rsp),%r12 1310 movq 104(%rsp),%rbx 1311 movq 112(%rsp),%rax 1312 leaq 120(%rsp),%rsp 1313 movq %rax,%rbp 1314.Lcbc_dec_epilogue: 1315 .byte 0xf3,0xc3 1316.size bsaes_cbc_encrypt,.-bsaes_cbc_encrypt 1317 1318.globl bsaes_ctr32_encrypt_blocks 1319.type bsaes_ctr32_encrypt_blocks,@function 1320.align 16 1321bsaes_ctr32_encrypt_blocks: 1322 movq %rsp,%rax 1323.Lctr_enc_prologue: 1324 pushq %rbp 1325 pushq %rbx 1326 pushq %r12 1327 pushq %r13 1328 pushq %r14 1329 pushq %r15 1330 leaq -72(%rsp),%rsp 1331 movq %rsp,%rbp 1332 movdqu (%r8),%xmm0 1333 movl 240(%rcx),%eax 1334 movq %rdi,%r12 1335 movq %rsi,%r13 1336 movq %rdx,%r14 1337 movq %rcx,%r15 1338 movdqa %xmm0,32(%rbp) 1339 cmpq $8,%rdx 1340 jb .Lctr_enc_short 1341 1342 movl %eax,%ebx 1343 shlq $7,%rax 1344 subq $96,%rax 1345 subq %rax,%rsp 1346 1347 movq %rsp,%rax 1348 movq %r15,%rcx 1349 movl %ebx,%r10d 1350 call _bsaes_key_convert 1351 pxor %xmm6,%xmm7 1352 movdqa %xmm7,(%rax) 1353 1354 movdqa (%rsp),%xmm8 1355 leaq .LADD1(%rip),%r11 1356 movdqa 32(%rbp),%xmm15 1357 movdqa -32(%r11),%xmm7 1358.byte 102,68,15,56,0,199 1359.byte 102,68,15,56,0,255 1360 movdqa %xmm8,(%rsp) 1361 jmp .Lctr_enc_loop 1362.align 16 1363.Lctr_enc_loop: 1364 movdqa %xmm15,32(%rbp) 1365 movdqa %xmm15,%xmm0 1366 movdqa %xmm15,%xmm1 1367 paddd 0(%r11),%xmm0 1368 movdqa %xmm15,%xmm2 1369 paddd 16(%r11),%xmm1 1370 movdqa %xmm15,%xmm3 1371 paddd 32(%r11),%xmm2 1372 movdqa %xmm15,%xmm4 1373 paddd 48(%r11),%xmm3 1374 movdqa %xmm15,%xmm5 1375 paddd 64(%r11),%xmm4 1376 movdqa %xmm15,%xmm6 1377 paddd 80(%r11),%xmm5 1378 paddd 96(%r11),%xmm6 1379 1380 1381 1382 movdqa (%rsp),%xmm8 1383 leaq 16(%rsp),%rax 1384 movdqa -16(%r11),%xmm7 1385 pxor %xmm8,%xmm15 1386 pxor %xmm8,%xmm0 1387 pxor %xmm8,%xmm1 1388 pxor %xmm8,%xmm2 1389.byte 102,68,15,56,0,255 1390.byte 102,15,56,0,199 1391 pxor %xmm8,%xmm3 1392 pxor %xmm8,%xmm4 1393.byte 102,15,56,0,207 1394.byte 102,15,56,0,215 1395 pxor %xmm8,%xmm5 1396 pxor %xmm8,%xmm6 1397.byte 102,15,56,0,223 1398.byte 102,15,56,0,231 1399.byte 102,15,56,0,239 1400.byte 102,15,56,0,247 1401 leaq .LBS0(%rip),%r11 1402 movl %ebx,%r10d 1403 1404 call _bsaes_encrypt8_bitslice 1405 1406 subq $8,%r14 1407 jc .Lctr_enc_loop_done 1408 1409 movdqu 0(%r12),%xmm7 1410 movdqu 16(%r12),%xmm8 1411 movdqu 32(%r12),%xmm9 1412 movdqu 48(%r12),%xmm10 1413 movdqu 64(%r12),%xmm11 1414 movdqu 80(%r12),%xmm12 1415 movdqu 96(%r12),%xmm13 1416 movdqu 112(%r12),%xmm14 1417 leaq 128(%r12),%r12 1418 pxor %xmm15,%xmm7 1419 movdqa 32(%rbp),%xmm15 1420 pxor %xmm8,%xmm0 1421 movdqu %xmm7,0(%r13) 1422 pxor %xmm9,%xmm3 1423 movdqu %xmm0,16(%r13) 1424 pxor %xmm10,%xmm5 1425 movdqu %xmm3,32(%r13) 1426 pxor %xmm11,%xmm2 1427 movdqu %xmm5,48(%r13) 1428 pxor %xmm12,%xmm6 1429 movdqu %xmm2,64(%r13) 1430 pxor %xmm13,%xmm1 1431 movdqu %xmm6,80(%r13) 1432 pxor %xmm14,%xmm4 1433 movdqu %xmm1,96(%r13) 1434 leaq .LADD1(%rip),%r11 1435 movdqu %xmm4,112(%r13) 1436 leaq 128(%r13),%r13 1437 paddd 112(%r11),%xmm15 1438 jnz .Lctr_enc_loop 1439 1440 jmp .Lctr_enc_done 1441.align 16 1442.Lctr_enc_loop_done: 1443 addq $8,%r14 1444 movdqu 0(%r12),%xmm7 1445 pxor %xmm7,%xmm15 1446 movdqu %xmm15,0(%r13) 1447 cmpq $2,%r14 1448 jb .Lctr_enc_done 1449 movdqu 16(%r12),%xmm8 1450 pxor %xmm8,%xmm0 1451 movdqu %xmm0,16(%r13) 1452 je .Lctr_enc_done 1453 movdqu 32(%r12),%xmm9 1454 pxor %xmm9,%xmm3 1455 movdqu %xmm3,32(%r13) 1456 cmpq $4,%r14 1457 jb .Lctr_enc_done 1458 movdqu 48(%r12),%xmm10 1459 pxor %xmm10,%xmm5 1460 movdqu %xmm5,48(%r13) 1461 je .Lctr_enc_done 1462 movdqu 64(%r12),%xmm11 1463 pxor %xmm11,%xmm2 1464 movdqu %xmm2,64(%r13) 1465 cmpq $6,%r14 1466 jb .Lctr_enc_done 1467 movdqu 80(%r12),%xmm12 1468 pxor %xmm12,%xmm6 1469 movdqu %xmm6,80(%r13) 1470 je .Lctr_enc_done 1471 movdqu 96(%r12),%xmm13 1472 pxor %xmm13,%xmm1 1473 movdqu %xmm1,96(%r13) 1474 jmp .Lctr_enc_done 1475 1476.align 16 1477.Lctr_enc_short: 1478 leaq 32(%rbp),%rdi 1479 leaq 48(%rbp),%rsi 1480 leaq (%r15),%rdx 1481 call asm_AES_encrypt 1482 movdqu (%r12),%xmm0 1483 leaq 16(%r12),%r12 1484 movl 44(%rbp),%eax 1485 bswapl %eax 1486 pxor 48(%rbp),%xmm0 1487 incl %eax 1488 movdqu %xmm0,(%r13) 1489 bswapl %eax 1490 leaq 16(%r13),%r13 1491 movl %eax,44(%rsp) 1492 decq %r14 1493 jnz .Lctr_enc_short 1494 1495.Lctr_enc_done: 1496 leaq (%rsp),%rax 1497 pxor %xmm0,%xmm0 1498.Lctr_enc_bzero: 1499 movdqa %xmm0,0(%rax) 1500 movdqa %xmm0,16(%rax) 1501 leaq 32(%rax),%rax 1502 cmpq %rax,%rbp 1503 ja .Lctr_enc_bzero 1504 1505 leaq (%rbp),%rsp 1506 movq 72(%rsp),%r15 1507 movq 80(%rsp),%r14 1508 movq 88(%rsp),%r13 1509 movq 96(%rsp),%r12 1510 movq 104(%rsp),%rbx 1511 movq 112(%rsp),%rax 1512 leaq 120(%rsp),%rsp 1513 movq %rax,%rbp 1514.Lctr_enc_epilogue: 1515 .byte 0xf3,0xc3 1516.size bsaes_ctr32_encrypt_blocks,.-bsaes_ctr32_encrypt_blocks 1517.globl bsaes_xts_encrypt 1518.type bsaes_xts_encrypt,@function 1519.align 16 1520bsaes_xts_encrypt: 1521 movq %rsp,%rax 1522.Lxts_enc_prologue: 1523 pushq %rbp 1524 pushq %rbx 1525 pushq %r12 1526 pushq %r13 1527 pushq %r14 1528 pushq %r15 1529 leaq -72(%rsp),%rsp 1530 movq %rsp,%rbp 1531 movq %rdi,%r12 1532 movq %rsi,%r13 1533 movq %rdx,%r14 1534 movq %rcx,%r15 1535 1536 leaq (%r9),%rdi 1537 leaq 32(%rbp),%rsi 1538 leaq (%r8),%rdx 1539 call asm_AES_encrypt 1540 1541 movl 240(%r15),%eax 1542 movq %r14,%rbx 1543 1544 movl %eax,%edx 1545 shlq $7,%rax 1546 subq $96,%rax 1547 subq %rax,%rsp 1548 1549 movq %rsp,%rax 1550 movq %r15,%rcx 1551 movl %edx,%r10d 1552 call _bsaes_key_convert 1553 pxor %xmm6,%xmm7 1554 movdqa %xmm7,(%rax) 1555 1556 andq $-16,%r14 1557 subq $0x80,%rsp 1558 movdqa 32(%rbp),%xmm6 1559 1560 pxor %xmm14,%xmm14 1561 movdqa .Lxts_magic(%rip),%xmm12 1562 pcmpgtd %xmm6,%xmm14 1563 1564 subq $0x80,%r14 1565 jc .Lxts_enc_short 1566 jmp .Lxts_enc_loop 1567 1568.align 16 1569.Lxts_enc_loop: 1570 pshufd $0x13,%xmm14,%xmm13 1571 pxor %xmm14,%xmm14 1572 movdqa %xmm6,%xmm15 1573 movdqa %xmm6,0(%rsp) 1574 paddq %xmm6,%xmm6 1575 pand %xmm12,%xmm13 1576 pcmpgtd %xmm6,%xmm14 1577 pxor %xmm13,%xmm6 1578 pshufd $0x13,%xmm14,%xmm13 1579 pxor %xmm14,%xmm14 1580 movdqa %xmm6,%xmm0 1581 movdqa %xmm6,16(%rsp) 1582 paddq %xmm6,%xmm6 1583 pand %xmm12,%xmm13 1584 pcmpgtd %xmm6,%xmm14 1585 pxor %xmm13,%xmm6 1586 movdqu 0(%r12),%xmm7 1587 pshufd $0x13,%xmm14,%xmm13 1588 pxor %xmm14,%xmm14 1589 movdqa %xmm6,%xmm1 1590 movdqa %xmm6,32(%rsp) 1591 paddq %xmm6,%xmm6 1592 pand %xmm12,%xmm13 1593 pcmpgtd %xmm6,%xmm14 1594 pxor %xmm13,%xmm6 1595 movdqu 16(%r12),%xmm8 1596 pxor %xmm7,%xmm15 1597 pshufd $0x13,%xmm14,%xmm13 1598 pxor %xmm14,%xmm14 1599 movdqa %xmm6,%xmm2 1600 movdqa %xmm6,48(%rsp) 1601 paddq %xmm6,%xmm6 1602 pand %xmm12,%xmm13 1603 pcmpgtd %xmm6,%xmm14 1604 pxor %xmm13,%xmm6 1605 movdqu 32(%r12),%xmm9 1606 pxor %xmm8,%xmm0 1607 pshufd $0x13,%xmm14,%xmm13 1608 pxor %xmm14,%xmm14 1609 movdqa %xmm6,%xmm3 1610 movdqa %xmm6,64(%rsp) 1611 paddq %xmm6,%xmm6 1612 pand %xmm12,%xmm13 1613 pcmpgtd %xmm6,%xmm14 1614 pxor %xmm13,%xmm6 1615 movdqu 48(%r12),%xmm10 1616 pxor %xmm9,%xmm1 1617 pshufd $0x13,%xmm14,%xmm13 1618 pxor %xmm14,%xmm14 1619 movdqa %xmm6,%xmm4 1620 movdqa %xmm6,80(%rsp) 1621 paddq %xmm6,%xmm6 1622 pand %xmm12,%xmm13 1623 pcmpgtd %xmm6,%xmm14 1624 pxor %xmm13,%xmm6 1625 movdqu 64(%r12),%xmm11 1626 pxor %xmm10,%xmm2 1627 pshufd $0x13,%xmm14,%xmm13 1628 pxor %xmm14,%xmm14 1629 movdqa %xmm6,%xmm5 1630 movdqa %xmm6,96(%rsp) 1631 paddq %xmm6,%xmm6 1632 pand %xmm12,%xmm13 1633 pcmpgtd %xmm6,%xmm14 1634 pxor %xmm13,%xmm6 1635 movdqu 80(%r12),%xmm12 1636 pxor %xmm11,%xmm3 1637 movdqu 96(%r12),%xmm13 1638 pxor %xmm12,%xmm4 1639 movdqu 112(%r12),%xmm14 1640 leaq 128(%r12),%r12 1641 movdqa %xmm6,112(%rsp) 1642 pxor %xmm13,%xmm5 1643 leaq 128(%rsp),%rax 1644 pxor %xmm14,%xmm6 1645 movl %edx,%r10d 1646 1647 call _bsaes_encrypt8 1648 1649 pxor 0(%rsp),%xmm15 1650 pxor 16(%rsp),%xmm0 1651 movdqu %xmm15,0(%r13) 1652 pxor 32(%rsp),%xmm3 1653 movdqu %xmm0,16(%r13) 1654 pxor 48(%rsp),%xmm5 1655 movdqu %xmm3,32(%r13) 1656 pxor 64(%rsp),%xmm2 1657 movdqu %xmm5,48(%r13) 1658 pxor 80(%rsp),%xmm6 1659 movdqu %xmm2,64(%r13) 1660 pxor 96(%rsp),%xmm1 1661 movdqu %xmm6,80(%r13) 1662 pxor 112(%rsp),%xmm4 1663 movdqu %xmm1,96(%r13) 1664 movdqu %xmm4,112(%r13) 1665 leaq 128(%r13),%r13 1666 1667 movdqa 112(%rsp),%xmm6 1668 pxor %xmm14,%xmm14 1669 movdqa .Lxts_magic(%rip),%xmm12 1670 pcmpgtd %xmm6,%xmm14 1671 pshufd $0x13,%xmm14,%xmm13 1672 pxor %xmm14,%xmm14 1673 paddq %xmm6,%xmm6 1674 pand %xmm12,%xmm13 1675 pcmpgtd %xmm6,%xmm14 1676 pxor %xmm13,%xmm6 1677 1678 subq $0x80,%r14 1679 jnc .Lxts_enc_loop 1680 1681.Lxts_enc_short: 1682 addq $0x80,%r14 1683 jz .Lxts_enc_done 1684 pshufd $0x13,%xmm14,%xmm13 1685 pxor %xmm14,%xmm14 1686 movdqa %xmm6,%xmm15 1687 movdqa %xmm6,0(%rsp) 1688 paddq %xmm6,%xmm6 1689 pand %xmm12,%xmm13 1690 pcmpgtd %xmm6,%xmm14 1691 pxor %xmm13,%xmm6 1692 pshufd $0x13,%xmm14,%xmm13 1693 pxor %xmm14,%xmm14 1694 movdqa %xmm6,%xmm0 1695 movdqa %xmm6,16(%rsp) 1696 paddq %xmm6,%xmm6 1697 pand %xmm12,%xmm13 1698 pcmpgtd %xmm6,%xmm14 1699 pxor %xmm13,%xmm6 1700 movdqu 0(%r12),%xmm7 1701 cmpq $16,%r14 1702 je .Lxts_enc_1 1703 pshufd $0x13,%xmm14,%xmm13 1704 pxor %xmm14,%xmm14 1705 movdqa %xmm6,%xmm1 1706 movdqa %xmm6,32(%rsp) 1707 paddq %xmm6,%xmm6 1708 pand %xmm12,%xmm13 1709 pcmpgtd %xmm6,%xmm14 1710 pxor %xmm13,%xmm6 1711 movdqu 16(%r12),%xmm8 1712 cmpq $32,%r14 1713 je .Lxts_enc_2 1714 pxor %xmm7,%xmm15 1715 pshufd $0x13,%xmm14,%xmm13 1716 pxor %xmm14,%xmm14 1717 movdqa %xmm6,%xmm2 1718 movdqa %xmm6,48(%rsp) 1719 paddq %xmm6,%xmm6 1720 pand %xmm12,%xmm13 1721 pcmpgtd %xmm6,%xmm14 1722 pxor %xmm13,%xmm6 1723 movdqu 32(%r12),%xmm9 1724 cmpq $48,%r14 1725 je .Lxts_enc_3 1726 pxor %xmm8,%xmm0 1727 pshufd $0x13,%xmm14,%xmm13 1728 pxor %xmm14,%xmm14 1729 movdqa %xmm6,%xmm3 1730 movdqa %xmm6,64(%rsp) 1731 paddq %xmm6,%xmm6 1732 pand %xmm12,%xmm13 1733 pcmpgtd %xmm6,%xmm14 1734 pxor %xmm13,%xmm6 1735 movdqu 48(%r12),%xmm10 1736 cmpq $64,%r14 1737 je .Lxts_enc_4 1738 pxor %xmm9,%xmm1 1739 pshufd $0x13,%xmm14,%xmm13 1740 pxor %xmm14,%xmm14 1741 movdqa %xmm6,%xmm4 1742 movdqa %xmm6,80(%rsp) 1743 paddq %xmm6,%xmm6 1744 pand %xmm12,%xmm13 1745 pcmpgtd %xmm6,%xmm14 1746 pxor %xmm13,%xmm6 1747 movdqu 64(%r12),%xmm11 1748 cmpq $80,%r14 1749 je .Lxts_enc_5 1750 pxor %xmm10,%xmm2 1751 pshufd $0x13,%xmm14,%xmm13 1752 pxor %xmm14,%xmm14 1753 movdqa %xmm6,%xmm5 1754 movdqa %xmm6,96(%rsp) 1755 paddq %xmm6,%xmm6 1756 pand %xmm12,%xmm13 1757 pcmpgtd %xmm6,%xmm14 1758 pxor %xmm13,%xmm6 1759 movdqu 80(%r12),%xmm12 1760 cmpq $96,%r14 1761 je .Lxts_enc_6 1762 pxor %xmm11,%xmm3 1763 movdqu 96(%r12),%xmm13 1764 pxor %xmm12,%xmm4 1765 movdqa %xmm6,112(%rsp) 1766 leaq 112(%r12),%r12 1767 pxor %xmm13,%xmm5 1768 leaq 128(%rsp),%rax 1769 movl %edx,%r10d 1770 1771 call _bsaes_encrypt8 1772 1773 pxor 0(%rsp),%xmm15 1774 pxor 16(%rsp),%xmm0 1775 movdqu %xmm15,0(%r13) 1776 pxor 32(%rsp),%xmm3 1777 movdqu %xmm0,16(%r13) 1778 pxor 48(%rsp),%xmm5 1779 movdqu %xmm3,32(%r13) 1780 pxor 64(%rsp),%xmm2 1781 movdqu %xmm5,48(%r13) 1782 pxor 80(%rsp),%xmm6 1783 movdqu %xmm2,64(%r13) 1784 pxor 96(%rsp),%xmm1 1785 movdqu %xmm6,80(%r13) 1786 movdqu %xmm1,96(%r13) 1787 leaq 112(%r13),%r13 1788 1789 movdqa 112(%rsp),%xmm6 1790 jmp .Lxts_enc_done 1791.align 16 1792.Lxts_enc_6: 1793 pxor %xmm11,%xmm3 1794 leaq 96(%r12),%r12 1795 pxor %xmm12,%xmm4 1796 leaq 128(%rsp),%rax 1797 movl %edx,%r10d 1798 1799 call _bsaes_encrypt8 1800 1801 pxor 0(%rsp),%xmm15 1802 pxor 16(%rsp),%xmm0 1803 movdqu %xmm15,0(%r13) 1804 pxor 32(%rsp),%xmm3 1805 movdqu %xmm0,16(%r13) 1806 pxor 48(%rsp),%xmm5 1807 movdqu %xmm3,32(%r13) 1808 pxor 64(%rsp),%xmm2 1809 movdqu %xmm5,48(%r13) 1810 pxor 80(%rsp),%xmm6 1811 movdqu %xmm2,64(%r13) 1812 movdqu %xmm6,80(%r13) 1813 leaq 96(%r13),%r13 1814 1815 movdqa 96(%rsp),%xmm6 1816 jmp .Lxts_enc_done 1817.align 16 1818.Lxts_enc_5: 1819 pxor %xmm10,%xmm2 1820 leaq 80(%r12),%r12 1821 pxor %xmm11,%xmm3 1822 leaq 128(%rsp),%rax 1823 movl %edx,%r10d 1824 1825 call _bsaes_encrypt8 1826 1827 pxor 0(%rsp),%xmm15 1828 pxor 16(%rsp),%xmm0 1829 movdqu %xmm15,0(%r13) 1830 pxor 32(%rsp),%xmm3 1831 movdqu %xmm0,16(%r13) 1832 pxor 48(%rsp),%xmm5 1833 movdqu %xmm3,32(%r13) 1834 pxor 64(%rsp),%xmm2 1835 movdqu %xmm5,48(%r13) 1836 movdqu %xmm2,64(%r13) 1837 leaq 80(%r13),%r13 1838 1839 movdqa 80(%rsp),%xmm6 1840 jmp .Lxts_enc_done 1841.align 16 1842.Lxts_enc_4: 1843 pxor %xmm9,%xmm1 1844 leaq 64(%r12),%r12 1845 pxor %xmm10,%xmm2 1846 leaq 128(%rsp),%rax 1847 movl %edx,%r10d 1848 1849 call _bsaes_encrypt8 1850 1851 pxor 0(%rsp),%xmm15 1852 pxor 16(%rsp),%xmm0 1853 movdqu %xmm15,0(%r13) 1854 pxor 32(%rsp),%xmm3 1855 movdqu %xmm0,16(%r13) 1856 pxor 48(%rsp),%xmm5 1857 movdqu %xmm3,32(%r13) 1858 movdqu %xmm5,48(%r13) 1859 leaq 64(%r13),%r13 1860 1861 movdqa 64(%rsp),%xmm6 1862 jmp .Lxts_enc_done 1863.align 16 1864.Lxts_enc_3: 1865 pxor %xmm8,%xmm0 1866 leaq 48(%r12),%r12 1867 pxor %xmm9,%xmm1 1868 leaq 128(%rsp),%rax 1869 movl %edx,%r10d 1870 1871 call _bsaes_encrypt8 1872 1873 pxor 0(%rsp),%xmm15 1874 pxor 16(%rsp),%xmm0 1875 movdqu %xmm15,0(%r13) 1876 pxor 32(%rsp),%xmm3 1877 movdqu %xmm0,16(%r13) 1878 movdqu %xmm3,32(%r13) 1879 leaq 48(%r13),%r13 1880 1881 movdqa 48(%rsp),%xmm6 1882 jmp .Lxts_enc_done 1883.align 16 1884.Lxts_enc_2: 1885 pxor %xmm7,%xmm15 1886 leaq 32(%r12),%r12 1887 pxor %xmm8,%xmm0 1888 leaq 128(%rsp),%rax 1889 movl %edx,%r10d 1890 1891 call _bsaes_encrypt8 1892 1893 pxor 0(%rsp),%xmm15 1894 pxor 16(%rsp),%xmm0 1895 movdqu %xmm15,0(%r13) 1896 movdqu %xmm0,16(%r13) 1897 leaq 32(%r13),%r13 1898 1899 movdqa 32(%rsp),%xmm6 1900 jmp .Lxts_enc_done 1901.align 16 1902.Lxts_enc_1: 1903 pxor %xmm15,%xmm7 1904 leaq 16(%r12),%r12 1905 movdqa %xmm7,32(%rbp) 1906 leaq 32(%rbp),%rdi 1907 leaq 32(%rbp),%rsi 1908 leaq (%r15),%rdx 1909 call asm_AES_encrypt 1910 pxor 32(%rbp),%xmm15 1911 1912 1913 1914 1915 1916 movdqu %xmm15,0(%r13) 1917 leaq 16(%r13),%r13 1918 1919 movdqa 16(%rsp),%xmm6 1920 1921.Lxts_enc_done: 1922 andl $15,%ebx 1923 jz .Lxts_enc_ret 1924 movq %r13,%rdx 1925 1926.Lxts_enc_steal: 1927 movzbl (%r12),%eax 1928 movzbl -16(%rdx),%ecx 1929 leaq 1(%r12),%r12 1930 movb %al,-16(%rdx) 1931 movb %cl,0(%rdx) 1932 leaq 1(%rdx),%rdx 1933 subl $1,%ebx 1934 jnz .Lxts_enc_steal 1935 1936 movdqu -16(%r13),%xmm15 1937 leaq 32(%rbp),%rdi 1938 pxor %xmm6,%xmm15 1939 leaq 32(%rbp),%rsi 1940 movdqa %xmm15,32(%rbp) 1941 leaq (%r15),%rdx 1942 call asm_AES_encrypt 1943 pxor 32(%rbp),%xmm6 1944 movdqu %xmm6,-16(%r13) 1945 1946.Lxts_enc_ret: 1947 leaq (%rsp),%rax 1948 pxor %xmm0,%xmm0 1949.Lxts_enc_bzero: 1950 movdqa %xmm0,0(%rax) 1951 movdqa %xmm0,16(%rax) 1952 leaq 32(%rax),%rax 1953 cmpq %rax,%rbp 1954 ja .Lxts_enc_bzero 1955 1956 leaq (%rbp),%rsp 1957 movq 72(%rsp),%r15 1958 movq 80(%rsp),%r14 1959 movq 88(%rsp),%r13 1960 movq 96(%rsp),%r12 1961 movq 104(%rsp),%rbx 1962 movq 112(%rsp),%rax 1963 leaq 120(%rsp),%rsp 1964 movq %rax,%rbp 1965.Lxts_enc_epilogue: 1966 .byte 0xf3,0xc3 1967.size bsaes_xts_encrypt,.-bsaes_xts_encrypt 1968 1969.globl bsaes_xts_decrypt 1970.type bsaes_xts_decrypt,@function 1971.align 16 1972bsaes_xts_decrypt: 1973 movq %rsp,%rax 1974.Lxts_dec_prologue: 1975 pushq %rbp 1976 pushq %rbx 1977 pushq %r12 1978 pushq %r13 1979 pushq %r14 1980 pushq %r15 1981 leaq -72(%rsp),%rsp 1982 movq %rsp,%rbp 1983 movq %rdi,%r12 1984 movq %rsi,%r13 1985 movq %rdx,%r14 1986 movq %rcx,%r15 1987 1988 leaq (%r9),%rdi 1989 leaq 32(%rbp),%rsi 1990 leaq (%r8),%rdx 1991 call asm_AES_encrypt 1992 1993 movl 240(%r15),%eax 1994 movq %r14,%rbx 1995 1996 movl %eax,%edx 1997 shlq $7,%rax 1998 subq $96,%rax 1999 subq %rax,%rsp 2000 2001 movq %rsp,%rax 2002 movq %r15,%rcx 2003 movl %edx,%r10d 2004 call _bsaes_key_convert 2005 pxor (%rsp),%xmm7 2006 movdqa %xmm6,(%rax) 2007 movdqa %xmm7,(%rsp) 2008 2009 xorl %eax,%eax 2010 andq $-16,%r14 2011 testl $15,%ebx 2012 setnz %al 2013 shlq $4,%rax 2014 subq %rax,%r14 2015 2016 subq $0x80,%rsp 2017 movdqa 32(%rbp),%xmm6 2018 2019 pxor %xmm14,%xmm14 2020 movdqa .Lxts_magic(%rip),%xmm12 2021 pcmpgtd %xmm6,%xmm14 2022 2023 subq $0x80,%r14 2024 jc .Lxts_dec_short 2025 jmp .Lxts_dec_loop 2026 2027.align 16 2028.Lxts_dec_loop: 2029 pshufd $0x13,%xmm14,%xmm13 2030 pxor %xmm14,%xmm14 2031 movdqa %xmm6,%xmm15 2032 movdqa %xmm6,0(%rsp) 2033 paddq %xmm6,%xmm6 2034 pand %xmm12,%xmm13 2035 pcmpgtd %xmm6,%xmm14 2036 pxor %xmm13,%xmm6 2037 pshufd $0x13,%xmm14,%xmm13 2038 pxor %xmm14,%xmm14 2039 movdqa %xmm6,%xmm0 2040 movdqa %xmm6,16(%rsp) 2041 paddq %xmm6,%xmm6 2042 pand %xmm12,%xmm13 2043 pcmpgtd %xmm6,%xmm14 2044 pxor %xmm13,%xmm6 2045 movdqu 0(%r12),%xmm7 2046 pshufd $0x13,%xmm14,%xmm13 2047 pxor %xmm14,%xmm14 2048 movdqa %xmm6,%xmm1 2049 movdqa %xmm6,32(%rsp) 2050 paddq %xmm6,%xmm6 2051 pand %xmm12,%xmm13 2052 pcmpgtd %xmm6,%xmm14 2053 pxor %xmm13,%xmm6 2054 movdqu 16(%r12),%xmm8 2055 pxor %xmm7,%xmm15 2056 pshufd $0x13,%xmm14,%xmm13 2057 pxor %xmm14,%xmm14 2058 movdqa %xmm6,%xmm2 2059 movdqa %xmm6,48(%rsp) 2060 paddq %xmm6,%xmm6 2061 pand %xmm12,%xmm13 2062 pcmpgtd %xmm6,%xmm14 2063 pxor %xmm13,%xmm6 2064 movdqu 32(%r12),%xmm9 2065 pxor %xmm8,%xmm0 2066 pshufd $0x13,%xmm14,%xmm13 2067 pxor %xmm14,%xmm14 2068 movdqa %xmm6,%xmm3 2069 movdqa %xmm6,64(%rsp) 2070 paddq %xmm6,%xmm6 2071 pand %xmm12,%xmm13 2072 pcmpgtd %xmm6,%xmm14 2073 pxor %xmm13,%xmm6 2074 movdqu 48(%r12),%xmm10 2075 pxor %xmm9,%xmm1 2076 pshufd $0x13,%xmm14,%xmm13 2077 pxor %xmm14,%xmm14 2078 movdqa %xmm6,%xmm4 2079 movdqa %xmm6,80(%rsp) 2080 paddq %xmm6,%xmm6 2081 pand %xmm12,%xmm13 2082 pcmpgtd %xmm6,%xmm14 2083 pxor %xmm13,%xmm6 2084 movdqu 64(%r12),%xmm11 2085 pxor %xmm10,%xmm2 2086 pshufd $0x13,%xmm14,%xmm13 2087 pxor %xmm14,%xmm14 2088 movdqa %xmm6,%xmm5 2089 movdqa %xmm6,96(%rsp) 2090 paddq %xmm6,%xmm6 2091 pand %xmm12,%xmm13 2092 pcmpgtd %xmm6,%xmm14 2093 pxor %xmm13,%xmm6 2094 movdqu 80(%r12),%xmm12 2095 pxor %xmm11,%xmm3 2096 movdqu 96(%r12),%xmm13 2097 pxor %xmm12,%xmm4 2098 movdqu 112(%r12),%xmm14 2099 leaq 128(%r12),%r12 2100 movdqa %xmm6,112(%rsp) 2101 pxor %xmm13,%xmm5 2102 leaq 128(%rsp),%rax 2103 pxor %xmm14,%xmm6 2104 movl %edx,%r10d 2105 2106 call _bsaes_decrypt8 2107 2108 pxor 0(%rsp),%xmm15 2109 pxor 16(%rsp),%xmm0 2110 movdqu %xmm15,0(%r13) 2111 pxor 32(%rsp),%xmm5 2112 movdqu %xmm0,16(%r13) 2113 pxor 48(%rsp),%xmm3 2114 movdqu %xmm5,32(%r13) 2115 pxor 64(%rsp),%xmm1 2116 movdqu %xmm3,48(%r13) 2117 pxor 80(%rsp),%xmm6 2118 movdqu %xmm1,64(%r13) 2119 pxor 96(%rsp),%xmm2 2120 movdqu %xmm6,80(%r13) 2121 pxor 112(%rsp),%xmm4 2122 movdqu %xmm2,96(%r13) 2123 movdqu %xmm4,112(%r13) 2124 leaq 128(%r13),%r13 2125 2126 movdqa 112(%rsp),%xmm6 2127 pxor %xmm14,%xmm14 2128 movdqa .Lxts_magic(%rip),%xmm12 2129 pcmpgtd %xmm6,%xmm14 2130 pshufd $0x13,%xmm14,%xmm13 2131 pxor %xmm14,%xmm14 2132 paddq %xmm6,%xmm6 2133 pand %xmm12,%xmm13 2134 pcmpgtd %xmm6,%xmm14 2135 pxor %xmm13,%xmm6 2136 2137 subq $0x80,%r14 2138 jnc .Lxts_dec_loop 2139 2140.Lxts_dec_short: 2141 addq $0x80,%r14 2142 jz .Lxts_dec_done 2143 pshufd $0x13,%xmm14,%xmm13 2144 pxor %xmm14,%xmm14 2145 movdqa %xmm6,%xmm15 2146 movdqa %xmm6,0(%rsp) 2147 paddq %xmm6,%xmm6 2148 pand %xmm12,%xmm13 2149 pcmpgtd %xmm6,%xmm14 2150 pxor %xmm13,%xmm6 2151 pshufd $0x13,%xmm14,%xmm13 2152 pxor %xmm14,%xmm14 2153 movdqa %xmm6,%xmm0 2154 movdqa %xmm6,16(%rsp) 2155 paddq %xmm6,%xmm6 2156 pand %xmm12,%xmm13 2157 pcmpgtd %xmm6,%xmm14 2158 pxor %xmm13,%xmm6 2159 movdqu 0(%r12),%xmm7 2160 cmpq $16,%r14 2161 je .Lxts_dec_1 2162 pshufd $0x13,%xmm14,%xmm13 2163 pxor %xmm14,%xmm14 2164 movdqa %xmm6,%xmm1 2165 movdqa %xmm6,32(%rsp) 2166 paddq %xmm6,%xmm6 2167 pand %xmm12,%xmm13 2168 pcmpgtd %xmm6,%xmm14 2169 pxor %xmm13,%xmm6 2170 movdqu 16(%r12),%xmm8 2171 cmpq $32,%r14 2172 je .Lxts_dec_2 2173 pxor %xmm7,%xmm15 2174 pshufd $0x13,%xmm14,%xmm13 2175 pxor %xmm14,%xmm14 2176 movdqa %xmm6,%xmm2 2177 movdqa %xmm6,48(%rsp) 2178 paddq %xmm6,%xmm6 2179 pand %xmm12,%xmm13 2180 pcmpgtd %xmm6,%xmm14 2181 pxor %xmm13,%xmm6 2182 movdqu 32(%r12),%xmm9 2183 cmpq $48,%r14 2184 je .Lxts_dec_3 2185 pxor %xmm8,%xmm0 2186 pshufd $0x13,%xmm14,%xmm13 2187 pxor %xmm14,%xmm14 2188 movdqa %xmm6,%xmm3 2189 movdqa %xmm6,64(%rsp) 2190 paddq %xmm6,%xmm6 2191 pand %xmm12,%xmm13 2192 pcmpgtd %xmm6,%xmm14 2193 pxor %xmm13,%xmm6 2194 movdqu 48(%r12),%xmm10 2195 cmpq $64,%r14 2196 je .Lxts_dec_4 2197 pxor %xmm9,%xmm1 2198 pshufd $0x13,%xmm14,%xmm13 2199 pxor %xmm14,%xmm14 2200 movdqa %xmm6,%xmm4 2201 movdqa %xmm6,80(%rsp) 2202 paddq %xmm6,%xmm6 2203 pand %xmm12,%xmm13 2204 pcmpgtd %xmm6,%xmm14 2205 pxor %xmm13,%xmm6 2206 movdqu 64(%r12),%xmm11 2207 cmpq $80,%r14 2208 je .Lxts_dec_5 2209 pxor %xmm10,%xmm2 2210 pshufd $0x13,%xmm14,%xmm13 2211 pxor %xmm14,%xmm14 2212 movdqa %xmm6,%xmm5 2213 movdqa %xmm6,96(%rsp) 2214 paddq %xmm6,%xmm6 2215 pand %xmm12,%xmm13 2216 pcmpgtd %xmm6,%xmm14 2217 pxor %xmm13,%xmm6 2218 movdqu 80(%r12),%xmm12 2219 cmpq $96,%r14 2220 je .Lxts_dec_6 2221 pxor %xmm11,%xmm3 2222 movdqu 96(%r12),%xmm13 2223 pxor %xmm12,%xmm4 2224 movdqa %xmm6,112(%rsp) 2225 leaq 112(%r12),%r12 2226 pxor %xmm13,%xmm5 2227 leaq 128(%rsp),%rax 2228 movl %edx,%r10d 2229 2230 call _bsaes_decrypt8 2231 2232 pxor 0(%rsp),%xmm15 2233 pxor 16(%rsp),%xmm0 2234 movdqu %xmm15,0(%r13) 2235 pxor 32(%rsp),%xmm5 2236 movdqu %xmm0,16(%r13) 2237 pxor 48(%rsp),%xmm3 2238 movdqu %xmm5,32(%r13) 2239 pxor 64(%rsp),%xmm1 2240 movdqu %xmm3,48(%r13) 2241 pxor 80(%rsp),%xmm6 2242 movdqu %xmm1,64(%r13) 2243 pxor 96(%rsp),%xmm2 2244 movdqu %xmm6,80(%r13) 2245 movdqu %xmm2,96(%r13) 2246 leaq 112(%r13),%r13 2247 2248 movdqa 112(%rsp),%xmm6 2249 jmp .Lxts_dec_done 2250.align 16 2251.Lxts_dec_6: 2252 pxor %xmm11,%xmm3 2253 leaq 96(%r12),%r12 2254 pxor %xmm12,%xmm4 2255 leaq 128(%rsp),%rax 2256 movl %edx,%r10d 2257 2258 call _bsaes_decrypt8 2259 2260 pxor 0(%rsp),%xmm15 2261 pxor 16(%rsp),%xmm0 2262 movdqu %xmm15,0(%r13) 2263 pxor 32(%rsp),%xmm5 2264 movdqu %xmm0,16(%r13) 2265 pxor 48(%rsp),%xmm3 2266 movdqu %xmm5,32(%r13) 2267 pxor 64(%rsp),%xmm1 2268 movdqu %xmm3,48(%r13) 2269 pxor 80(%rsp),%xmm6 2270 movdqu %xmm1,64(%r13) 2271 movdqu %xmm6,80(%r13) 2272 leaq 96(%r13),%r13 2273 2274 movdqa 96(%rsp),%xmm6 2275 jmp .Lxts_dec_done 2276.align 16 2277.Lxts_dec_5: 2278 pxor %xmm10,%xmm2 2279 leaq 80(%r12),%r12 2280 pxor %xmm11,%xmm3 2281 leaq 128(%rsp),%rax 2282 movl %edx,%r10d 2283 2284 call _bsaes_decrypt8 2285 2286 pxor 0(%rsp),%xmm15 2287 pxor 16(%rsp),%xmm0 2288 movdqu %xmm15,0(%r13) 2289 pxor 32(%rsp),%xmm5 2290 movdqu %xmm0,16(%r13) 2291 pxor 48(%rsp),%xmm3 2292 movdqu %xmm5,32(%r13) 2293 pxor 64(%rsp),%xmm1 2294 movdqu %xmm3,48(%r13) 2295 movdqu %xmm1,64(%r13) 2296 leaq 80(%r13),%r13 2297 2298 movdqa 80(%rsp),%xmm6 2299 jmp .Lxts_dec_done 2300.align 16 2301.Lxts_dec_4: 2302 pxor %xmm9,%xmm1 2303 leaq 64(%r12),%r12 2304 pxor %xmm10,%xmm2 2305 leaq 128(%rsp),%rax 2306 movl %edx,%r10d 2307 2308 call _bsaes_decrypt8 2309 2310 pxor 0(%rsp),%xmm15 2311 pxor 16(%rsp),%xmm0 2312 movdqu %xmm15,0(%r13) 2313 pxor 32(%rsp),%xmm5 2314 movdqu %xmm0,16(%r13) 2315 pxor 48(%rsp),%xmm3 2316 movdqu %xmm5,32(%r13) 2317 movdqu %xmm3,48(%r13) 2318 leaq 64(%r13),%r13 2319 2320 movdqa 64(%rsp),%xmm6 2321 jmp .Lxts_dec_done 2322.align 16 2323.Lxts_dec_3: 2324 pxor %xmm8,%xmm0 2325 leaq 48(%r12),%r12 2326 pxor %xmm9,%xmm1 2327 leaq 128(%rsp),%rax 2328 movl %edx,%r10d 2329 2330 call _bsaes_decrypt8 2331 2332 pxor 0(%rsp),%xmm15 2333 pxor 16(%rsp),%xmm0 2334 movdqu %xmm15,0(%r13) 2335 pxor 32(%rsp),%xmm5 2336 movdqu %xmm0,16(%r13) 2337 movdqu %xmm5,32(%r13) 2338 leaq 48(%r13),%r13 2339 2340 movdqa 48(%rsp),%xmm6 2341 jmp .Lxts_dec_done 2342.align 16 2343.Lxts_dec_2: 2344 pxor %xmm7,%xmm15 2345 leaq 32(%r12),%r12 2346 pxor %xmm8,%xmm0 2347 leaq 128(%rsp),%rax 2348 movl %edx,%r10d 2349 2350 call _bsaes_decrypt8 2351 2352 pxor 0(%rsp),%xmm15 2353 pxor 16(%rsp),%xmm0 2354 movdqu %xmm15,0(%r13) 2355 movdqu %xmm0,16(%r13) 2356 leaq 32(%r13),%r13 2357 2358 movdqa 32(%rsp),%xmm6 2359 jmp .Lxts_dec_done 2360.align 16 2361.Lxts_dec_1: 2362 pxor %xmm15,%xmm7 2363 leaq 16(%r12),%r12 2364 movdqa %xmm7,32(%rbp) 2365 leaq 32(%rbp),%rdi 2366 leaq 32(%rbp),%rsi 2367 leaq (%r15),%rdx 2368 call asm_AES_decrypt 2369 pxor 32(%rbp),%xmm15 2370 2371 2372 2373 2374 2375 movdqu %xmm15,0(%r13) 2376 leaq 16(%r13),%r13 2377 2378 movdqa 16(%rsp),%xmm6 2379 2380.Lxts_dec_done: 2381 andl $15,%ebx 2382 jz .Lxts_dec_ret 2383 2384 pxor %xmm14,%xmm14 2385 movdqa .Lxts_magic(%rip),%xmm12 2386 pcmpgtd %xmm6,%xmm14 2387 pshufd $0x13,%xmm14,%xmm13 2388 movdqa %xmm6,%xmm5 2389 paddq %xmm6,%xmm6 2390 pand %xmm12,%xmm13 2391 movdqu (%r12),%xmm15 2392 pxor %xmm13,%xmm6 2393 2394 leaq 32(%rbp),%rdi 2395 pxor %xmm6,%xmm15 2396 leaq 32(%rbp),%rsi 2397 movdqa %xmm15,32(%rbp) 2398 leaq (%r15),%rdx 2399 call asm_AES_decrypt 2400 pxor 32(%rbp),%xmm6 2401 movq %r13,%rdx 2402 movdqu %xmm6,(%r13) 2403 2404.Lxts_dec_steal: 2405 movzbl 16(%r12),%eax 2406 movzbl (%rdx),%ecx 2407 leaq 1(%r12),%r12 2408 movb %al,(%rdx) 2409 movb %cl,16(%rdx) 2410 leaq 1(%rdx),%rdx 2411 subl $1,%ebx 2412 jnz .Lxts_dec_steal 2413 2414 movdqu (%r13),%xmm15 2415 leaq 32(%rbp),%rdi 2416 pxor %xmm5,%xmm15 2417 leaq 32(%rbp),%rsi 2418 movdqa %xmm15,32(%rbp) 2419 leaq (%r15),%rdx 2420 call asm_AES_decrypt 2421 pxor 32(%rbp),%xmm5 2422 movdqu %xmm5,(%r13) 2423 2424.Lxts_dec_ret: 2425 leaq (%rsp),%rax 2426 pxor %xmm0,%xmm0 2427.Lxts_dec_bzero: 2428 movdqa %xmm0,0(%rax) 2429 movdqa %xmm0,16(%rax) 2430 leaq 32(%rax),%rax 2431 cmpq %rax,%rbp 2432 ja .Lxts_dec_bzero 2433 2434 leaq (%rbp),%rsp 2435 movq 72(%rsp),%r15 2436 movq 80(%rsp),%r14 2437 movq 88(%rsp),%r13 2438 movq 96(%rsp),%r12 2439 movq 104(%rsp),%rbx 2440 movq 112(%rsp),%rax 2441 leaq 120(%rsp),%rsp 2442 movq %rax,%rbp 2443.Lxts_dec_epilogue: 2444 .byte 0xf3,0xc3 2445.size bsaes_xts_decrypt,.-bsaes_xts_decrypt 2446.type _bsaes_const,@object 2447.align 64 2448_bsaes_const: 2449.LM0ISR: 2450.quad 0x0a0e0206070b0f03, 0x0004080c0d010509 2451.LISRM0: 2452.quad 0x01040b0e0205080f, 0x0306090c00070a0d 2453.LISR: 2454.quad 0x0504070602010003, 0x0f0e0d0c080b0a09 2455.LBS0: 2456.quad 0x5555555555555555, 0x5555555555555555 2457.LBS1: 2458.quad 0x3333333333333333, 0x3333333333333333 2459.LBS2: 2460.quad 0x0f0f0f0f0f0f0f0f, 0x0f0f0f0f0f0f0f0f 2461.LSR: 2462.quad 0x0504070600030201, 0x0f0e0d0c0a09080b 2463.LSRM0: 2464.quad 0x0304090e00050a0f, 0x01060b0c0207080d 2465.LM0SR: 2466.quad 0x0a0e02060f03070b, 0x0004080c05090d01 2467.LSWPUP: 2468.quad 0x0706050403020100, 0x0c0d0e0f0b0a0908 2469.LSWPUPM0SR: 2470.quad 0x0a0d02060c03070b, 0x0004080f05090e01 2471.LADD1: 2472.quad 0x0000000000000000, 0x0000000100000000 2473.LADD2: 2474.quad 0x0000000000000000, 0x0000000200000000 2475.LADD3: 2476.quad 0x0000000000000000, 0x0000000300000000 2477.LADD4: 2478.quad 0x0000000000000000, 0x0000000400000000 2479.LADD5: 2480.quad 0x0000000000000000, 0x0000000500000000 2481.LADD6: 2482.quad 0x0000000000000000, 0x0000000600000000 2483.LADD7: 2484.quad 0x0000000000000000, 0x0000000700000000 2485.LADD8: 2486.quad 0x0000000000000000, 0x0000000800000000 2487.Lxts_magic: 2488.long 0x87,0,1,0 2489.Lmasks: 2490.quad 0x0101010101010101, 0x0101010101010101 2491.quad 0x0202020202020202, 0x0202020202020202 2492.quad 0x0404040404040404, 0x0404040404040404 2493.quad 0x0808080808080808, 0x0808080808080808 2494.LM0: 2495.quad 0x02060a0e03070b0f, 0x0004080c0105090d 2496.L63: 2497.quad 0x6363636363636363, 0x6363636363636363 2498.byte 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44,32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32,65,110,100,121,32,80,111,108,121,97,107,111,118,0 2499.align 64 2500.size _bsaes_const,.-_bsaes_const 2501