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