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