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