1 2# qhasm: int32 a 3 4# qhasm: int32 p 5 6# qhasm: int32 s 7 8# qhasm: int32 t 9 10# qhasm: int32 w 11 12# qhasm: int32 r 13 14# qhasm: int32 v 15 16# qhasm: stack32 arg1 17 18# qhasm: stack32 arg2 19 20# qhasm: stack32 arg3 21 22# qhasm: stack32 arg4 23 24# qhasm: input arg1 25 26# qhasm: input arg2 27 28# qhasm: input arg3 29 30# qhasm: input arg4 31 32# qhasm: int32 eax 33 34# qhasm: int32 ebx 35 36# qhasm: int32 esi 37 38# qhasm: int32 edi 39 40# qhasm: int32 ebp 41 42# qhasm: caller eax 43 44# qhasm: caller ebx 45 46# qhasm: caller esi 47 48# qhasm: caller edi 49 50# qhasm: caller ebp 51 52# qhasm: int32 k 53 54# qhasm: int32 kbits 55 56# qhasm: int32 iv 57 58# qhasm: int32 i 59 60# qhasm: stack32 x_backup 61 62# qhasm: int32 x 63 64# qhasm: stack32 m_backup 65 66# qhasm: int32 m 67 68# qhasm: stack32 out_backup 69 70# qhasm: int32 out 71 72# qhasm: stack32 bytes_backup 73 74# qhasm: int32 bytes 75 76# qhasm: stack32 eax_stack 77 78# qhasm: stack32 ebx_stack 79 80# qhasm: stack32 esi_stack 81 82# qhasm: stack32 edi_stack 83 84# qhasm: stack32 ebp_stack 85 86# qhasm: int32 in0 87 88# qhasm: int32 in1 89 90# qhasm: int32 in2 91 92# qhasm: int32 in3 93 94# qhasm: int32 in4 95 96# qhasm: int32 in5 97 98# qhasm: int32 in6 99 100# qhasm: int32 in7 101 102# qhasm: int32 in8 103 104# qhasm: int32 in9 105 106# qhasm: int32 in10 107 108# qhasm: int32 in11 109 110# qhasm: int32 in12 111 112# qhasm: int32 in13 113 114# qhasm: int32 in14 115 116# qhasm: int32 in15 117 118# qhasm: stack32 x0 119 120# qhasm: stack32 x1 121 122# qhasm: stack32 x2 123 124# qhasm: stack32 x3 125 126# qhasm: stack32 x4 127 128# qhasm: stack32 x5 129 130# qhasm: stack32 x6 131 132# qhasm: stack32 x7 133 134# qhasm: stack32 x8 135 136# qhasm: stack32 x9 137 138# qhasm: stack32 x10 139 140# qhasm: stack32 x11 141 142# qhasm: stack32 x12 143 144# qhasm: stack32 x13 145 146# qhasm: stack32 x14 147 148# qhasm: stack32 x15 149 150# qhasm: stack32 j0 151 152# qhasm: stack32 j1 153 154# qhasm: stack32 j2 155 156# qhasm: stack32 j3 157 158# qhasm: stack32 j4 159 160# qhasm: stack32 j5 161 162# qhasm: stack32 j6 163 164# qhasm: stack32 j7 165 166# qhasm: stack32 j8 167 168# qhasm: stack32 j9 169 170# qhasm: stack32 j10 171 172# qhasm: stack32 j11 173 174# qhasm: stack32 j12 175 176# qhasm: stack32 j13 177 178# qhasm: stack32 j14 179 180# qhasm: stack32 j15 181 182# qhasm: stack512 tmp 183 184# qhasm: stack32 ctarget 185 186# qhasm: enter ECRYPT_keystream_bytes 187.text 188.p2align 5 189.globl _ECRYPT_keystream_bytes 190.globl ECRYPT_keystream_bytes 191_ECRYPT_keystream_bytes: 192ECRYPT_keystream_bytes: 193mov %esp,%eax 194and $31,%eax 195add $256,%eax 196sub %eax,%esp 197 198# qhasm: eax_stack = eax 199# asm 1: movl <eax=int32#1,>eax_stack=stack32#1 200# asm 2: movl <eax=%eax,>eax_stack=0(%esp) 201movl %eax,0(%esp) 202 203# qhasm: ebx_stack = ebx 204# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2 205# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp) 206movl %ebx,4(%esp) 207 208# qhasm: esi_stack = esi 209# asm 1: movl <esi=int32#5,>esi_stack=stack32#3 210# asm 2: movl <esi=%esi,>esi_stack=8(%esp) 211movl %esi,8(%esp) 212 213# qhasm: edi_stack = edi 214# asm 1: movl <edi=int32#6,>edi_stack=stack32#4 215# asm 2: movl <edi=%edi,>edi_stack=12(%esp) 216movl %edi,12(%esp) 217 218# qhasm: ebp_stack = ebp 219# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5 220# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp) 221movl %ebp,16(%esp) 222 223# qhasm: x = arg1 224# asm 1: movl <arg1=stack32#-1,>x=int32#3 225# asm 2: movl <arg1=4(%esp,%eax),>x=%edx 226movl 4(%esp,%eax),%edx 227 228# qhasm: m = arg2 229# asm 1: movl <arg2=stack32#-2,>m=int32#5 230# asm 2: movl <arg2=8(%esp,%eax),>m=%esi 231movl 8(%esp,%eax),%esi 232 233# qhasm: out = m 234# asm 1: mov <m=int32#5,>out=int32#6 235# asm 2: mov <m=%esi,>out=%edi 236mov %esi,%edi 237 238# qhasm: bytes = arg3 239# asm 1: movl <arg3=stack32#-3,>bytes=int32#4 240# asm 2: movl <arg3=12(%esp,%eax),>bytes=%ebx 241movl 12(%esp,%eax),%ebx 242 243# qhasm: unsigned>? bytes - 0 244# asm 1: cmp $0,<bytes=int32#4 245# asm 2: cmp $0,<bytes=%ebx 246cmp $0,%ebx 247# comment:fp stack unchanged by jump 248 249# qhasm: goto done if !unsigned> 250jbe ._done 251 252# qhasm: a = 0 253# asm 1: mov $0,>a=int32#1 254# asm 2: mov $0,>a=%eax 255mov $0,%eax 256 257# qhasm: i = bytes 258# asm 1: mov <bytes=int32#4,>i=int32#2 259# asm 2: mov <bytes=%ebx,>i=%ecx 260mov %ebx,%ecx 261 262# qhasm: while (i) { *out++ = a; --i } 263rep stosb 264 265# qhasm: out -= bytes 266# asm 1: sub <bytes=int32#4,<out=int32#6 267# asm 2: sub <bytes=%ebx,<out=%edi 268sub %ebx,%edi 269 270# qhasm: x0 = a 271# asm 1: movl <a=int32#1,>x0=stack32#6 272# asm 2: movl <a=%eax,>x0=20(%esp) 273movl %eax,20(%esp) 274 275# qhasm: x1 = a 276# asm 1: movl <a=int32#1,>x1=stack32#7 277# asm 2: movl <a=%eax,>x1=24(%esp) 278movl %eax,24(%esp) 279 280# qhasm: x2 = a 281# asm 1: movl <a=int32#1,>x2=stack32#8 282# asm 2: movl <a=%eax,>x2=28(%esp) 283movl %eax,28(%esp) 284 285# qhasm: x3 = a 286# asm 1: movl <a=int32#1,>x3=stack32#9 287# asm 2: movl <a=%eax,>x3=32(%esp) 288movl %eax,32(%esp) 289 290# qhasm: x4 = a 291# asm 1: movl <a=int32#1,>x4=stack32#10 292# asm 2: movl <a=%eax,>x4=36(%esp) 293movl %eax,36(%esp) 294 295# qhasm: x5 = a 296# asm 1: movl <a=int32#1,>x5=stack32#11 297# asm 2: movl <a=%eax,>x5=40(%esp) 298movl %eax,40(%esp) 299 300# qhasm: x6 = a 301# asm 1: movl <a=int32#1,>x6=stack32#12 302# asm 2: movl <a=%eax,>x6=44(%esp) 303movl %eax,44(%esp) 304 305# qhasm: x7 = a 306# asm 1: movl <a=int32#1,>x7=stack32#13 307# asm 2: movl <a=%eax,>x7=48(%esp) 308movl %eax,48(%esp) 309 310# qhasm: x8 = a 311# asm 1: movl <a=int32#1,>x8=stack32#14 312# asm 2: movl <a=%eax,>x8=52(%esp) 313movl %eax,52(%esp) 314 315# qhasm: x9 = a 316# asm 1: movl <a=int32#1,>x9=stack32#15 317# asm 2: movl <a=%eax,>x9=56(%esp) 318movl %eax,56(%esp) 319 320# qhasm: x10 = a 321# asm 1: movl <a=int32#1,>x10=stack32#16 322# asm 2: movl <a=%eax,>x10=60(%esp) 323movl %eax,60(%esp) 324 325# qhasm: x11 = a 326# asm 1: movl <a=int32#1,>x11=stack32#17 327# asm 2: movl <a=%eax,>x11=64(%esp) 328movl %eax,64(%esp) 329 330# qhasm: x12 = a 331# asm 1: movl <a=int32#1,>x12=stack32#18 332# asm 2: movl <a=%eax,>x12=68(%esp) 333movl %eax,68(%esp) 334 335# qhasm: x13 = a 336# asm 1: movl <a=int32#1,>x13=stack32#19 337# asm 2: movl <a=%eax,>x13=72(%esp) 338movl %eax,72(%esp) 339 340# qhasm: x14 = a 341# asm 1: movl <a=int32#1,>x14=stack32#20 342# asm 2: movl <a=%eax,>x14=76(%esp) 343movl %eax,76(%esp) 344 345# qhasm: x15 = a 346# asm 1: movl <a=int32#1,>x15=stack32#21 347# asm 2: movl <a=%eax,>x15=80(%esp) 348movl %eax,80(%esp) 349# comment:fp stack unchanged by jump 350 351# qhasm: goto start 352jmp ._start 353 354# qhasm: enter ECRYPT_decrypt_bytes 355.text 356.p2align 5 357.globl _ECRYPT_decrypt_bytes 358.globl ECRYPT_decrypt_bytes 359_ECRYPT_decrypt_bytes: 360ECRYPT_decrypt_bytes: 361mov %esp,%eax 362and $31,%eax 363add $256,%eax 364sub %eax,%esp 365 366# qhasm: eax_stack = eax 367# asm 1: movl <eax=int32#1,>eax_stack=stack32#1 368# asm 2: movl <eax=%eax,>eax_stack=0(%esp) 369movl %eax,0(%esp) 370 371# qhasm: ebx_stack = ebx 372# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2 373# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp) 374movl %ebx,4(%esp) 375 376# qhasm: esi_stack = esi 377# asm 1: movl <esi=int32#5,>esi_stack=stack32#3 378# asm 2: movl <esi=%esi,>esi_stack=8(%esp) 379movl %esi,8(%esp) 380 381# qhasm: edi_stack = edi 382# asm 1: movl <edi=int32#6,>edi_stack=stack32#4 383# asm 2: movl <edi=%edi,>edi_stack=12(%esp) 384movl %edi,12(%esp) 385 386# qhasm: ebp_stack = ebp 387# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5 388# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp) 389movl %ebp,16(%esp) 390 391# qhasm: x = arg1 392# asm 1: movl <arg1=stack32#-1,>x=int32#3 393# asm 2: movl <arg1=4(%esp,%eax),>x=%edx 394movl 4(%esp,%eax),%edx 395 396# qhasm: m = arg2 397# asm 1: movl <arg2=stack32#-2,>m=int32#5 398# asm 2: movl <arg2=8(%esp,%eax),>m=%esi 399movl 8(%esp,%eax),%esi 400 401# qhasm: out = arg3 402# asm 1: movl <arg3=stack32#-3,>out=int32#6 403# asm 2: movl <arg3=12(%esp,%eax),>out=%edi 404movl 12(%esp,%eax),%edi 405 406# qhasm: bytes = arg4 407# asm 1: movl <arg4=stack32#-4,>bytes=int32#4 408# asm 2: movl <arg4=16(%esp,%eax),>bytes=%ebx 409movl 16(%esp,%eax),%ebx 410 411# qhasm: unsigned>? bytes - 0 412# asm 1: cmp $0,<bytes=int32#4 413# asm 2: cmp $0,<bytes=%ebx 414cmp $0,%ebx 415# comment:fp stack unchanged by jump 416 417# qhasm: goto done if !unsigned> 418jbe ._done 419# comment:fp stack unchanged by jump 420 421# qhasm: goto start 422jmp ._start 423 424# qhasm: enter ECRYPT_encrypt_bytes 425.text 426.p2align 5 427.globl _ECRYPT_encrypt_bytes 428.globl ECRYPT_encrypt_bytes 429_ECRYPT_encrypt_bytes: 430ECRYPT_encrypt_bytes: 431mov %esp,%eax 432and $31,%eax 433add $256,%eax 434sub %eax,%esp 435 436# qhasm: eax_stack = eax 437# asm 1: movl <eax=int32#1,>eax_stack=stack32#1 438# asm 2: movl <eax=%eax,>eax_stack=0(%esp) 439movl %eax,0(%esp) 440 441# qhasm: ebx_stack = ebx 442# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2 443# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp) 444movl %ebx,4(%esp) 445 446# qhasm: esi_stack = esi 447# asm 1: movl <esi=int32#5,>esi_stack=stack32#3 448# asm 2: movl <esi=%esi,>esi_stack=8(%esp) 449movl %esi,8(%esp) 450 451# qhasm: edi_stack = edi 452# asm 1: movl <edi=int32#6,>edi_stack=stack32#4 453# asm 2: movl <edi=%edi,>edi_stack=12(%esp) 454movl %edi,12(%esp) 455 456# qhasm: ebp_stack = ebp 457# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5 458# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp) 459movl %ebp,16(%esp) 460 461# qhasm: x = arg1 462# asm 1: movl <arg1=stack32#-1,>x=int32#3 463# asm 2: movl <arg1=4(%esp,%eax),>x=%edx 464movl 4(%esp,%eax),%edx 465 466# qhasm: m = arg2 467# asm 1: movl <arg2=stack32#-2,>m=int32#5 468# asm 2: movl <arg2=8(%esp,%eax),>m=%esi 469movl 8(%esp,%eax),%esi 470 471# qhasm: out = arg3 472# asm 1: movl <arg3=stack32#-3,>out=int32#6 473# asm 2: movl <arg3=12(%esp,%eax),>out=%edi 474movl 12(%esp,%eax),%edi 475 476# qhasm: bytes = arg4 477# asm 1: movl <arg4=stack32#-4,>bytes=int32#4 478# asm 2: movl <arg4=16(%esp,%eax),>bytes=%ebx 479movl 16(%esp,%eax),%ebx 480 481# qhasm: unsigned>? bytes - 0 482# asm 1: cmp $0,<bytes=int32#4 483# asm 2: cmp $0,<bytes=%ebx 484cmp $0,%ebx 485# comment:fp stack unchanged by jump 486 487# qhasm: goto done if !unsigned> 488jbe ._done 489# comment:fp stack unchanged by fallthrough 490 491# qhasm: start: 492._start: 493 494# qhasm: in0 = *(uint32 *) (x + 0) 495# asm 1: movl 0(<x=int32#3),>in0=int32#1 496# asm 2: movl 0(<x=%edx),>in0=%eax 497movl 0(%edx),%eax 498 499# qhasm: in1 = *(uint32 *) (x + 4) 500# asm 1: movl 4(<x=int32#3),>in1=int32#2 501# asm 2: movl 4(<x=%edx),>in1=%ecx 502movl 4(%edx),%ecx 503 504# qhasm: in2 = *(uint32 *) (x + 8) 505# asm 1: movl 8(<x=int32#3),>in2=int32#7 506# asm 2: movl 8(<x=%edx),>in2=%ebp 507movl 8(%edx),%ebp 508 509# qhasm: j0 = in0 510# asm 1: movl <in0=int32#1,>j0=stack32#22 511# asm 2: movl <in0=%eax,>j0=84(%esp) 512movl %eax,84(%esp) 513 514# qhasm: in3 = *(uint32 *) (x + 12) 515# asm 1: movl 12(<x=int32#3),>in3=int32#1 516# asm 2: movl 12(<x=%edx),>in3=%eax 517movl 12(%edx),%eax 518 519# qhasm: j1 = in1 520# asm 1: movl <in1=int32#2,>j1=stack32#23 521# asm 2: movl <in1=%ecx,>j1=88(%esp) 522movl %ecx,88(%esp) 523 524# qhasm: in4 = *(uint32 *) (x + 16) 525# asm 1: movl 16(<x=int32#3),>in4=int32#2 526# asm 2: movl 16(<x=%edx),>in4=%ecx 527movl 16(%edx),%ecx 528 529# qhasm: j2 = in2 530# asm 1: movl <in2=int32#7,>j2=stack32#24 531# asm 2: movl <in2=%ebp,>j2=92(%esp) 532movl %ebp,92(%esp) 533 534# qhasm: in5 = *(uint32 *) (x + 20) 535# asm 1: movl 20(<x=int32#3),>in5=int32#7 536# asm 2: movl 20(<x=%edx),>in5=%ebp 537movl 20(%edx),%ebp 538 539# qhasm: j3 = in3 540# asm 1: movl <in3=int32#1,>j3=stack32#25 541# asm 2: movl <in3=%eax,>j3=96(%esp) 542movl %eax,96(%esp) 543 544# qhasm: in6 = *(uint32 *) (x + 24) 545# asm 1: movl 24(<x=int32#3),>in6=int32#1 546# asm 2: movl 24(<x=%edx),>in6=%eax 547movl 24(%edx),%eax 548 549# qhasm: j4 = in4 550# asm 1: movl <in4=int32#2,>j4=stack32#26 551# asm 2: movl <in4=%ecx,>j4=100(%esp) 552movl %ecx,100(%esp) 553 554# qhasm: in7 = *(uint32 *) (x + 28) 555# asm 1: movl 28(<x=int32#3),>in7=int32#2 556# asm 2: movl 28(<x=%edx),>in7=%ecx 557movl 28(%edx),%ecx 558 559# qhasm: j5 = in5 560# asm 1: movl <in5=int32#7,>j5=stack32#27 561# asm 2: movl <in5=%ebp,>j5=104(%esp) 562movl %ebp,104(%esp) 563 564# qhasm: in8 = *(uint32 *) (x + 32) 565# asm 1: movl 32(<x=int32#3),>in8=int32#7 566# asm 2: movl 32(<x=%edx),>in8=%ebp 567movl 32(%edx),%ebp 568 569# qhasm: j6 = in6 570# asm 1: movl <in6=int32#1,>j6=stack32#28 571# asm 2: movl <in6=%eax,>j6=108(%esp) 572movl %eax,108(%esp) 573 574# qhasm: in9 = *(uint32 *) (x + 36) 575# asm 1: movl 36(<x=int32#3),>in9=int32#1 576# asm 2: movl 36(<x=%edx),>in9=%eax 577movl 36(%edx),%eax 578 579# qhasm: j7 = in7 580# asm 1: movl <in7=int32#2,>j7=stack32#29 581# asm 2: movl <in7=%ecx,>j7=112(%esp) 582movl %ecx,112(%esp) 583 584# qhasm: in10 = *(uint32 *) (x + 40) 585# asm 1: movl 40(<x=int32#3),>in10=int32#2 586# asm 2: movl 40(<x=%edx),>in10=%ecx 587movl 40(%edx),%ecx 588 589# qhasm: j8 = in8 590# asm 1: movl <in8=int32#7,>j8=stack32#30 591# asm 2: movl <in8=%ebp,>j8=116(%esp) 592movl %ebp,116(%esp) 593 594# qhasm: in11 = *(uint32 *) (x + 44) 595# asm 1: movl 44(<x=int32#3),>in11=int32#7 596# asm 2: movl 44(<x=%edx),>in11=%ebp 597movl 44(%edx),%ebp 598 599# qhasm: j9 = in9 600# asm 1: movl <in9=int32#1,>j9=stack32#31 601# asm 2: movl <in9=%eax,>j9=120(%esp) 602movl %eax,120(%esp) 603 604# qhasm: in12 = *(uint32 *) (x + 48) 605# asm 1: movl 48(<x=int32#3),>in12=int32#1 606# asm 2: movl 48(<x=%edx),>in12=%eax 607movl 48(%edx),%eax 608 609# qhasm: j10 = in10 610# asm 1: movl <in10=int32#2,>j10=stack32#32 611# asm 2: movl <in10=%ecx,>j10=124(%esp) 612movl %ecx,124(%esp) 613 614# qhasm: in13 = *(uint32 *) (x + 52) 615# asm 1: movl 52(<x=int32#3),>in13=int32#2 616# asm 2: movl 52(<x=%edx),>in13=%ecx 617movl 52(%edx),%ecx 618 619# qhasm: j11 = in11 620# asm 1: movl <in11=int32#7,>j11=stack32#33 621# asm 2: movl <in11=%ebp,>j11=128(%esp) 622movl %ebp,128(%esp) 623 624# qhasm: in14 = *(uint32 *) (x + 56) 625# asm 1: movl 56(<x=int32#3),>in14=int32#7 626# asm 2: movl 56(<x=%edx),>in14=%ebp 627movl 56(%edx),%ebp 628 629# qhasm: j12 = in12 630# asm 1: movl <in12=int32#1,>j12=stack32#34 631# asm 2: movl <in12=%eax,>j12=132(%esp) 632movl %eax,132(%esp) 633 634# qhasm: in15 = *(uint32 *) (x + 60) 635# asm 1: movl 60(<x=int32#3),>in15=int32#1 636# asm 2: movl 60(<x=%edx),>in15=%eax 637movl 60(%edx),%eax 638 639# qhasm: j13 = in13 640# asm 1: movl <in13=int32#2,>j13=stack32#35 641# asm 2: movl <in13=%ecx,>j13=136(%esp) 642movl %ecx,136(%esp) 643 644# qhasm: j14 = in14 645# asm 1: movl <in14=int32#7,>j14=stack32#36 646# asm 2: movl <in14=%ebp,>j14=140(%esp) 647movl %ebp,140(%esp) 648 649# qhasm: j15 = in15 650# asm 1: movl <in15=int32#1,>j15=stack32#37 651# asm 2: movl <in15=%eax,>j15=144(%esp) 652movl %eax,144(%esp) 653 654# qhasm: x_backup = x 655# asm 1: movl <x=int32#3,>x_backup=stack32#38 656# asm 2: movl <x=%edx,>x_backup=148(%esp) 657movl %edx,148(%esp) 658 659# qhasm: bytesatleast1: 660._bytesatleast1: 661 662# qhasm: unsigned<? bytes - 64 663# asm 1: cmp $64,<bytes=int32#4 664# asm 2: cmp $64,<bytes=%ebx 665cmp $64,%ebx 666# comment:fp stack unchanged by jump 667 668# qhasm: goto nocopy if !unsigned< 669jae ._nocopy 670 671# qhasm: ctarget = out 672# asm 1: movl <out=int32#6,>ctarget=stack32#39 673# asm 2: movl <out=%edi,>ctarget=152(%esp) 674movl %edi,152(%esp) 675 676# qhasm: out = &tmp 677# asm 1: leal <tmp=stack512#1,>out=int32#6 678# asm 2: leal <tmp=192(%esp),>out=%edi 679leal 192(%esp),%edi 680 681# qhasm: i = bytes 682# asm 1: mov <bytes=int32#4,>i=int32#2 683# asm 2: mov <bytes=%ebx,>i=%ecx 684mov %ebx,%ecx 685 686# qhasm: while (i) { *out++ = *m++; --i } 687rep movsb 688 689# qhasm: out = &tmp 690# asm 1: leal <tmp=stack512#1,>out=int32#6 691# asm 2: leal <tmp=192(%esp),>out=%edi 692leal 192(%esp),%edi 693 694# qhasm: m = &tmp 695# asm 1: leal <tmp=stack512#1,>m=int32#5 696# asm 2: leal <tmp=192(%esp),>m=%esi 697leal 192(%esp),%esi 698# comment:fp stack unchanged by fallthrough 699 700# qhasm: nocopy: 701._nocopy: 702 703# qhasm: out_backup = out 704# asm 1: movl <out=int32#6,>out_backup=stack32#40 705# asm 2: movl <out=%edi,>out_backup=156(%esp) 706movl %edi,156(%esp) 707 708# qhasm: m_backup = m 709# asm 1: movl <m=int32#5,>m_backup=stack32#41 710# asm 2: movl <m=%esi,>m_backup=160(%esp) 711movl %esi,160(%esp) 712 713# qhasm: bytes_backup = bytes 714# asm 1: movl <bytes=int32#4,>bytes_backup=stack32#42 715# asm 2: movl <bytes=%ebx,>bytes_backup=164(%esp) 716movl %ebx,164(%esp) 717 718# qhasm: in0 = j0 719# asm 1: movl <j0=stack32#22,>in0=int32#1 720# asm 2: movl <j0=84(%esp),>in0=%eax 721movl 84(%esp),%eax 722 723# qhasm: in1 = j1 724# asm 1: movl <j1=stack32#23,>in1=int32#2 725# asm 2: movl <j1=88(%esp),>in1=%ecx 726movl 88(%esp),%ecx 727 728# qhasm: in2 = j2 729# asm 1: movl <j2=stack32#24,>in2=int32#3 730# asm 2: movl <j2=92(%esp),>in2=%edx 731movl 92(%esp),%edx 732 733# qhasm: in3 = j3 734# asm 1: movl <j3=stack32#25,>in3=int32#4 735# asm 2: movl <j3=96(%esp),>in3=%ebx 736movl 96(%esp),%ebx 737 738# qhasm: x0 = in0 739# asm 1: movl <in0=int32#1,>x0=stack32#6 740# asm 2: movl <in0=%eax,>x0=20(%esp) 741movl %eax,20(%esp) 742 743# qhasm: x1 = in1 744# asm 1: movl <in1=int32#2,>x1=stack32#7 745# asm 2: movl <in1=%ecx,>x1=24(%esp) 746movl %ecx,24(%esp) 747 748# qhasm: x2 = in2 749# asm 1: movl <in2=int32#3,>x2=stack32#8 750# asm 2: movl <in2=%edx,>x2=28(%esp) 751movl %edx,28(%esp) 752 753# qhasm: x3 = in3 754# asm 1: movl <in3=int32#4,>x3=stack32#9 755# asm 2: movl <in3=%ebx,>x3=32(%esp) 756movl %ebx,32(%esp) 757 758# qhasm: in4 = j4 759# asm 1: movl <j4=stack32#26,>in4=int32#1 760# asm 2: movl <j4=100(%esp),>in4=%eax 761movl 100(%esp),%eax 762 763# qhasm: in5 = j5 764# asm 1: movl <j5=stack32#27,>in5=int32#2 765# asm 2: movl <j5=104(%esp),>in5=%ecx 766movl 104(%esp),%ecx 767 768# qhasm: in6 = j6 769# asm 1: movl <j6=stack32#28,>in6=int32#3 770# asm 2: movl <j6=108(%esp),>in6=%edx 771movl 108(%esp),%edx 772 773# qhasm: in7 = j7 774# asm 1: movl <j7=stack32#29,>in7=int32#4 775# asm 2: movl <j7=112(%esp),>in7=%ebx 776movl 112(%esp),%ebx 777 778# qhasm: x4 = in4 779# asm 1: movl <in4=int32#1,>x4=stack32#10 780# asm 2: movl <in4=%eax,>x4=36(%esp) 781movl %eax,36(%esp) 782 783# qhasm: x5 = in5 784# asm 1: movl <in5=int32#2,>x5=stack32#11 785# asm 2: movl <in5=%ecx,>x5=40(%esp) 786movl %ecx,40(%esp) 787 788# qhasm: x6 = in6 789# asm 1: movl <in6=int32#3,>x6=stack32#12 790# asm 2: movl <in6=%edx,>x6=44(%esp) 791movl %edx,44(%esp) 792 793# qhasm: x7 = in7 794# asm 1: movl <in7=int32#4,>x7=stack32#13 795# asm 2: movl <in7=%ebx,>x7=48(%esp) 796movl %ebx,48(%esp) 797 798# qhasm: in8 = j8 799# asm 1: movl <j8=stack32#30,>in8=int32#1 800# asm 2: movl <j8=116(%esp),>in8=%eax 801movl 116(%esp),%eax 802 803# qhasm: in9 = j9 804# asm 1: movl <j9=stack32#31,>in9=int32#2 805# asm 2: movl <j9=120(%esp),>in9=%ecx 806movl 120(%esp),%ecx 807 808# qhasm: in10 = j10 809# asm 1: movl <j10=stack32#32,>in10=int32#3 810# asm 2: movl <j10=124(%esp),>in10=%edx 811movl 124(%esp),%edx 812 813# qhasm: in11 = j11 814# asm 1: movl <j11=stack32#33,>in11=int32#4 815# asm 2: movl <j11=128(%esp),>in11=%ebx 816movl 128(%esp),%ebx 817 818# qhasm: x8 = in8 819# asm 1: movl <in8=int32#1,>x8=stack32#14 820# asm 2: movl <in8=%eax,>x8=52(%esp) 821movl %eax,52(%esp) 822 823# qhasm: x9 = in9 824# asm 1: movl <in9=int32#2,>x9=stack32#15 825# asm 2: movl <in9=%ecx,>x9=56(%esp) 826movl %ecx,56(%esp) 827 828# qhasm: x10 = in10 829# asm 1: movl <in10=int32#3,>x10=stack32#16 830# asm 2: movl <in10=%edx,>x10=60(%esp) 831movl %edx,60(%esp) 832 833# qhasm: x11 = in11 834# asm 1: movl <in11=int32#4,>x11=stack32#17 835# asm 2: movl <in11=%ebx,>x11=64(%esp) 836movl %ebx,64(%esp) 837 838# qhasm: in12 = j12 839# asm 1: movl <j12=stack32#34,>in12=int32#1 840# asm 2: movl <j12=132(%esp),>in12=%eax 841movl 132(%esp),%eax 842 843# qhasm: in13 = j13 844# asm 1: movl <j13=stack32#35,>in13=int32#2 845# asm 2: movl <j13=136(%esp),>in13=%ecx 846movl 136(%esp),%ecx 847 848# qhasm: in14 = j14 849# asm 1: movl <j14=stack32#36,>in14=int32#3 850# asm 2: movl <j14=140(%esp),>in14=%edx 851movl 140(%esp),%edx 852 853# qhasm: in15 = j15 854# asm 1: movl <j15=stack32#37,>in15=int32#4 855# asm 2: movl <j15=144(%esp),>in15=%ebx 856movl 144(%esp),%ebx 857 858# qhasm: x12 = in12 859# asm 1: movl <in12=int32#1,>x12=stack32#18 860# asm 2: movl <in12=%eax,>x12=68(%esp) 861movl %eax,68(%esp) 862 863# qhasm: x13 = in13 864# asm 1: movl <in13=int32#2,>x13=stack32#19 865# asm 2: movl <in13=%ecx,>x13=72(%esp) 866movl %ecx,72(%esp) 867 868# qhasm: x14 = in14 869# asm 1: movl <in14=int32#3,>x14=stack32#20 870# asm 2: movl <in14=%edx,>x14=76(%esp) 871movl %edx,76(%esp) 872 873# qhasm: x15 = in15 874# asm 1: movl <in15=int32#4,>x15=stack32#21 875# asm 2: movl <in15=%ebx,>x15=80(%esp) 876movl %ebx,80(%esp) 877 878# qhasm: i = 20 879# asm 1: mov $20,>i=int32#2 880# asm 2: mov $20,>i=%ecx 881mov $20,%ecx 882 883# qhasm: p = x0 884# asm 1: movl <x0=stack32#6,>p=int32#1 885# asm 2: movl <x0=20(%esp),>p=%eax 886movl 20(%esp),%eax 887 888# qhasm: s = x5 889# asm 1: movl <x5=stack32#11,>s=int32#3 890# asm 2: movl <x5=40(%esp),>s=%edx 891.byte 0xf3 892movl 40(%esp),%edx 893 894# qhasm: t = x10 895# asm 1: movl <x10=stack32#16,>t=int32#4 896# asm 2: movl <x10=60(%esp),>t=%ebx 897.byte 0xf3 898movl 60(%esp),%ebx 899 900# qhasm: w = x15 901# asm 1: movl <x15=stack32#21,>w=int32#5 902# asm 2: movl <x15=80(%esp),>w=%esi 903.byte 0xf3 904movl 80(%esp),%esi 905 906# qhasm: mainloop: 907._mainloop: 908 909# qhasm: x0 = p 910# asm 1: movl <p=int32#1,>x0=stack32#6 911# asm 2: movl <p=%eax,>x0=20(%esp) 912movl %eax,20(%esp) 913 914# qhasm: x10 = t 915# asm 1: movl <t=int32#4,>x10=stack32#11 916# asm 2: movl <t=%ebx,>x10=40(%esp) 917movl %ebx,40(%esp) 918 919# qhasm: p += x12 920# asm 1: addl <x12=stack32#18,<p=int32#1 921# asm 2: addl <x12=68(%esp),<p=%eax 922addl 68(%esp),%eax 923 924# qhasm: x5 = s 925# asm 1: movl <s=int32#3,>x5=stack32#16 926# asm 2: movl <s=%edx,>x5=60(%esp) 927movl %edx,60(%esp) 928 929# qhasm: t += x6 930# asm 1: addl <x6=stack32#12,<t=int32#4 931# asm 2: addl <x6=44(%esp),<t=%ebx 932addl 44(%esp),%ebx 933 934# qhasm: x15 = w 935# asm 1: movl <w=int32#5,>x15=stack32#21 936# asm 2: movl <w=%esi,>x15=80(%esp) 937movl %esi,80(%esp) 938 939# qhasm: r = x1 940# asm 1: movl <x1=stack32#7,>r=int32#6 941# asm 2: movl <x1=24(%esp),>r=%edi 942.byte 0xf3 943movl 24(%esp),%edi 944 945# qhasm: r += s 946# asm 1: add <s=int32#3,<r=int32#6 947# asm 2: add <s=%edx,<r=%edi 948.byte 0xf3 949add %edx,%edi 950 951# qhasm: v = x11 952# asm 1: movl <x11=stack32#17,>v=int32#7 953# asm 2: movl <x11=64(%esp),>v=%ebp 954movl 64(%esp),%ebp 955 956# qhasm: v += w 957# asm 1: add <w=int32#5,<v=int32#7 958# asm 2: add <w=%esi,<v=%ebp 959add %esi,%ebp 960 961# qhasm: p <<<= 7 962# asm 1: rol $7,<p=int32#1 963# asm 2: rol $7,<p=%eax 964rol $7,%eax 965 966# qhasm: p ^= x4 967# asm 1: xorl <x4=stack32#10,<p=int32#1 968# asm 2: xorl <x4=36(%esp),<p=%eax 969xorl 36(%esp),%eax 970 971# qhasm: t <<<= 7 972# asm 1: rol $7,<t=int32#4 973# asm 2: rol $7,<t=%ebx 974rol $7,%ebx 975 976# qhasm: t ^= x14 977# asm 1: xorl <x14=stack32#20,<t=int32#4 978# asm 2: xorl <x14=76(%esp),<t=%ebx 979xorl 76(%esp),%ebx 980 981# qhasm: r <<<= 7 982# asm 1: rol $7,<r=int32#6 983# asm 2: rol $7,<r=%edi 984.byte 0xf3 985rol $7,%edi 986 987# qhasm: r ^= x9 988# asm 1: xorl <x9=stack32#15,<r=int32#6 989# asm 2: xorl <x9=56(%esp),<r=%edi 990xorl 56(%esp),%edi 991 992# qhasm: v <<<= 7 993# asm 1: rol $7,<v=int32#7 994# asm 2: rol $7,<v=%ebp 995.byte 0xf3 996rol $7,%ebp 997 998# qhasm: v ^= x3 999# asm 1: xorl <x3=stack32#9,<v=int32#7 1000# asm 2: xorl <x3=32(%esp),<v=%ebp 1001xorl 32(%esp),%ebp 1002 1003# qhasm: x4 = p 1004# asm 1: movl <p=int32#1,>x4=stack32#9 1005# asm 2: movl <p=%eax,>x4=32(%esp) 1006movl %eax,32(%esp) 1007 1008# qhasm: x14 = t 1009# asm 1: movl <t=int32#4,>x14=stack32#10 1010# asm 2: movl <t=%ebx,>x14=36(%esp) 1011movl %ebx,36(%esp) 1012 1013# qhasm: p += x0 1014# asm 1: addl <x0=stack32#6,<p=int32#1 1015# asm 2: addl <x0=20(%esp),<p=%eax 1016addl 20(%esp),%eax 1017 1018# qhasm: x9 = r 1019# asm 1: movl <r=int32#6,>x9=stack32#15 1020# asm 2: movl <r=%edi,>x9=56(%esp) 1021movl %edi,56(%esp) 1022 1023# qhasm: t += x10 1024# asm 1: addl <x10=stack32#11,<t=int32#4 1025# asm 2: addl <x10=40(%esp),<t=%ebx 1026addl 40(%esp),%ebx 1027 1028# qhasm: x3 = v 1029# asm 1: movl <v=int32#7,>x3=stack32#20 1030# asm 2: movl <v=%ebp,>x3=76(%esp) 1031movl %ebp,76(%esp) 1032 1033# qhasm: p <<<= 9 1034# asm 1: rol $9,<p=int32#1 1035# asm 2: rol $9,<p=%eax 1036.byte 0xf3 1037rol $9,%eax 1038 1039# qhasm: p ^= x8 1040# asm 1: xorl <x8=stack32#14,<p=int32#1 1041# asm 2: xorl <x8=52(%esp),<p=%eax 1042xorl 52(%esp),%eax 1043 1044# qhasm: t <<<= 9 1045# asm 1: rol $9,<t=int32#4 1046# asm 2: rol $9,<t=%ebx 1047rol $9,%ebx 1048 1049# qhasm: t ^= x2 1050# asm 1: xorl <x2=stack32#8,<t=int32#4 1051# asm 2: xorl <x2=28(%esp),<t=%ebx 1052xorl 28(%esp),%ebx 1053 1054# qhasm: s += r 1055# asm 1: add <r=int32#6,<s=int32#3 1056# asm 2: add <r=%edi,<s=%edx 1057add %edi,%edx 1058 1059# qhasm: s <<<= 9 1060# asm 1: rol $9,<s=int32#3 1061# asm 2: rol $9,<s=%edx 1062rol $9,%edx 1063 1064# qhasm: s ^= x13 1065# asm 1: xorl <x13=stack32#19,<s=int32#3 1066# asm 2: xorl <x13=72(%esp),<s=%edx 1067xorl 72(%esp),%edx 1068 1069# qhasm: w += v 1070# asm 1: add <v=int32#7,<w=int32#5 1071# asm 2: add <v=%ebp,<w=%esi 1072.byte 0xf3 1073add %ebp,%esi 1074 1075# qhasm: w <<<= 9 1076# asm 1: rol $9,<w=int32#5 1077# asm 2: rol $9,<w=%esi 1078.byte 0xf3 1079rol $9,%esi 1080 1081# qhasm: w ^= x7 1082# asm 1: xorl <x7=stack32#13,<w=int32#5 1083# asm 2: xorl <x7=48(%esp),<w=%esi 1084.byte 0xf3 1085xorl 48(%esp),%esi 1086 1087# qhasm: x8 = p 1088# asm 1: movl <p=int32#1,>x8=stack32#8 1089# asm 2: movl <p=%eax,>x8=28(%esp) 1090movl %eax,28(%esp) 1091 1092# qhasm: x2 = t 1093# asm 1: movl <t=int32#4,>x2=stack32#13 1094# asm 2: movl <t=%ebx,>x2=48(%esp) 1095movl %ebx,48(%esp) 1096 1097# qhasm: p += x4 1098# asm 1: addl <x4=stack32#9,<p=int32#1 1099# asm 2: addl <x4=32(%esp),<p=%eax 1100addl 32(%esp),%eax 1101 1102# qhasm: x13 = s 1103# asm 1: movl <s=int32#3,>x13=stack32#14 1104# asm 2: movl <s=%edx,>x13=52(%esp) 1105movl %edx,52(%esp) 1106 1107# qhasm: t += x14 1108# asm 1: addl <x14=stack32#10,<t=int32#4 1109# asm 2: addl <x14=36(%esp),<t=%ebx 1110addl 36(%esp),%ebx 1111 1112# qhasm: x7 = w 1113# asm 1: movl <w=int32#5,>x7=stack32#19 1114# asm 2: movl <w=%esi,>x7=72(%esp) 1115movl %esi,72(%esp) 1116 1117# qhasm: p <<<= 13 1118# asm 1: rol $13,<p=int32#1 1119# asm 2: rol $13,<p=%eax 1120.byte 0xf3 1121rol $13,%eax 1122 1123# qhasm: p ^= x12 1124# asm 1: xorl <x12=stack32#18,<p=int32#1 1125# asm 2: xorl <x12=68(%esp),<p=%eax 1126xorl 68(%esp),%eax 1127 1128# qhasm: t <<<= 13 1129# asm 1: rol $13,<t=int32#4 1130# asm 2: rol $13,<t=%ebx 1131rol $13,%ebx 1132 1133# qhasm: t ^= x6 1134# asm 1: xorl <x6=stack32#12,<t=int32#4 1135# asm 2: xorl <x6=44(%esp),<t=%ebx 1136xorl 44(%esp),%ebx 1137 1138# qhasm: r += s 1139# asm 1: add <s=int32#3,<r=int32#6 1140# asm 2: add <s=%edx,<r=%edi 1141add %edx,%edi 1142 1143# qhasm: r <<<= 13 1144# asm 1: rol $13,<r=int32#6 1145# asm 2: rol $13,<r=%edi 1146rol $13,%edi 1147 1148# qhasm: r ^= x1 1149# asm 1: xorl <x1=stack32#7,<r=int32#6 1150# asm 2: xorl <x1=24(%esp),<r=%edi 1151xorl 24(%esp),%edi 1152 1153# qhasm: v += w 1154# asm 1: add <w=int32#5,<v=int32#7 1155# asm 2: add <w=%esi,<v=%ebp 1156.byte 0xf3 1157add %esi,%ebp 1158 1159# qhasm: v <<<= 13 1160# asm 1: rol $13,<v=int32#7 1161# asm 2: rol $13,<v=%ebp 1162.byte 0xf3 1163rol $13,%ebp 1164 1165# qhasm: v ^= x11 1166# asm 1: xorl <x11=stack32#17,<v=int32#7 1167# asm 2: xorl <x11=64(%esp),<v=%ebp 1168.byte 0xf3 1169xorl 64(%esp),%ebp 1170 1171# qhasm: x12 = p 1172# asm 1: movl <p=int32#1,>x12=stack32#7 1173# asm 2: movl <p=%eax,>x12=24(%esp) 1174movl %eax,24(%esp) 1175 1176# qhasm: x6 = t 1177# asm 1: movl <t=int32#4,>x6=stack32#12 1178# asm 2: movl <t=%ebx,>x6=44(%esp) 1179movl %ebx,44(%esp) 1180 1181# qhasm: p += x8 1182# asm 1: addl <x8=stack32#8,<p=int32#1 1183# asm 2: addl <x8=28(%esp),<p=%eax 1184addl 28(%esp),%eax 1185 1186# qhasm: x1 = r 1187# asm 1: movl <r=int32#6,>x1=stack32#17 1188# asm 2: movl <r=%edi,>x1=64(%esp) 1189movl %edi,64(%esp) 1190 1191# qhasm: t += x2 1192# asm 1: addl <x2=stack32#13,<t=int32#4 1193# asm 2: addl <x2=48(%esp),<t=%ebx 1194addl 48(%esp),%ebx 1195 1196# qhasm: x11 = v 1197# asm 1: movl <v=int32#7,>x11=stack32#18 1198# asm 2: movl <v=%ebp,>x11=68(%esp) 1199movl %ebp,68(%esp) 1200 1201# qhasm: p <<<= 18 1202# asm 1: rol $18,<p=int32#1 1203# asm 2: rol $18,<p=%eax 1204.byte 0xf3 1205rol $18,%eax 1206 1207# qhasm: p ^= x0 1208# asm 1: xorl <x0=stack32#6,<p=int32#1 1209# asm 2: xorl <x0=20(%esp),<p=%eax 1210xorl 20(%esp),%eax 1211 1212# qhasm: t <<<= 18 1213# asm 1: rol $18,<t=int32#4 1214# asm 2: rol $18,<t=%ebx 1215.byte 0xf3 1216rol $18,%ebx 1217 1218# qhasm: t ^= x10 1219# asm 1: xorl <x10=stack32#11,<t=int32#4 1220# asm 2: xorl <x10=40(%esp),<t=%ebx 1221xorl 40(%esp),%ebx 1222 1223# qhasm: s += r 1224# asm 1: add <r=int32#6,<s=int32#3 1225# asm 2: add <r=%edi,<s=%edx 1226add %edi,%edx 1227 1228# qhasm: s <<<= 18 1229# asm 1: rol $18,<s=int32#3 1230# asm 2: rol $18,<s=%edx 1231.byte 0xf3 1232rol $18,%edx 1233 1234# qhasm: s ^= x5 1235# asm 1: xorl <x5=stack32#16,<s=int32#3 1236# asm 2: xorl <x5=60(%esp),<s=%edx 1237xorl 60(%esp),%edx 1238 1239# qhasm: w += v 1240# asm 1: add <v=int32#7,<w=int32#5 1241# asm 2: add <v=%ebp,<w=%esi 1242add %ebp,%esi 1243 1244# qhasm: w <<<= 18 1245# asm 1: rol $18,<w=int32#5 1246# asm 2: rol $18,<w=%esi 1247.byte 0xf3 1248rol $18,%esi 1249 1250# qhasm: w ^= x15 1251# asm 1: xorl <x15=stack32#21,<w=int32#5 1252# asm 2: xorl <x15=80(%esp),<w=%esi 1253xorl 80(%esp),%esi 1254 1255# qhasm: x0 = p 1256# asm 1: movl <p=int32#1,>x0=stack32#6 1257# asm 2: movl <p=%eax,>x0=20(%esp) 1258movl %eax,20(%esp) 1259 1260# qhasm: x10 = t 1261# asm 1: movl <t=int32#4,>x10=stack32#11 1262# asm 2: movl <t=%ebx,>x10=40(%esp) 1263movl %ebx,40(%esp) 1264 1265# qhasm: p += x3 1266# asm 1: addl <x3=stack32#20,<p=int32#1 1267# asm 2: addl <x3=76(%esp),<p=%eax 1268addl 76(%esp),%eax 1269 1270# qhasm: p <<<= 7 1271# asm 1: rol $7,<p=int32#1 1272# asm 2: rol $7,<p=%eax 1273.byte 0xf3 1274rol $7,%eax 1275 1276# qhasm: x5 = s 1277# asm 1: movl <s=int32#3,>x5=stack32#16 1278# asm 2: movl <s=%edx,>x5=60(%esp) 1279movl %edx,60(%esp) 1280 1281# qhasm: t += x9 1282# asm 1: addl <x9=stack32#15,<t=int32#4 1283# asm 2: addl <x9=56(%esp),<t=%ebx 1284addl 56(%esp),%ebx 1285 1286# qhasm: x15 = w 1287# asm 1: movl <w=int32#5,>x15=stack32#21 1288# asm 2: movl <w=%esi,>x15=80(%esp) 1289movl %esi,80(%esp) 1290 1291# qhasm: r = x4 1292# asm 1: movl <x4=stack32#9,>r=int32#6 1293# asm 2: movl <x4=32(%esp),>r=%edi 1294movl 32(%esp),%edi 1295 1296# qhasm: r += s 1297# asm 1: add <s=int32#3,<r=int32#6 1298# asm 2: add <s=%edx,<r=%edi 1299add %edx,%edi 1300 1301# qhasm: v = x14 1302# asm 1: movl <x14=stack32#10,>v=int32#7 1303# asm 2: movl <x14=36(%esp),>v=%ebp 1304movl 36(%esp),%ebp 1305 1306# qhasm: v += w 1307# asm 1: add <w=int32#5,<v=int32#7 1308# asm 2: add <w=%esi,<v=%ebp 1309add %esi,%ebp 1310 1311# qhasm: p ^= x1 1312# asm 1: xorl <x1=stack32#17,<p=int32#1 1313# asm 2: xorl <x1=64(%esp),<p=%eax 1314xorl 64(%esp),%eax 1315 1316# qhasm: t <<<= 7 1317# asm 1: rol $7,<t=int32#4 1318# asm 2: rol $7,<t=%ebx 1319.byte 0xf3 1320rol $7,%ebx 1321 1322# qhasm: t ^= x11 1323# asm 1: xorl <x11=stack32#18,<t=int32#4 1324# asm 2: xorl <x11=68(%esp),<t=%ebx 1325xorl 68(%esp),%ebx 1326 1327# qhasm: r <<<= 7 1328# asm 1: rol $7,<r=int32#6 1329# asm 2: rol $7,<r=%edi 1330.byte 0xf3 1331rol $7,%edi 1332 1333# qhasm: r ^= x6 1334# asm 1: xorl <x6=stack32#12,<r=int32#6 1335# asm 2: xorl <x6=44(%esp),<r=%edi 1336xorl 44(%esp),%edi 1337 1338# qhasm: v <<<= 7 1339# asm 1: rol $7,<v=int32#7 1340# asm 2: rol $7,<v=%ebp 1341.byte 0xf3 1342rol $7,%ebp 1343 1344# qhasm: v ^= x12 1345# asm 1: xorl <x12=stack32#7,<v=int32#7 1346# asm 2: xorl <x12=24(%esp),<v=%ebp 1347xorl 24(%esp),%ebp 1348 1349# qhasm: x1 = p 1350# asm 1: movl <p=int32#1,>x1=stack32#7 1351# asm 2: movl <p=%eax,>x1=24(%esp) 1352movl %eax,24(%esp) 1353 1354# qhasm: x11 = t 1355# asm 1: movl <t=int32#4,>x11=stack32#12 1356# asm 2: movl <t=%ebx,>x11=44(%esp) 1357movl %ebx,44(%esp) 1358 1359# qhasm: p += x0 1360# asm 1: addl <x0=stack32#6,<p=int32#1 1361# asm 2: addl <x0=20(%esp),<p=%eax 1362addl 20(%esp),%eax 1363 1364# qhasm: x6 = r 1365# asm 1: movl <r=int32#6,>x6=stack32#17 1366# asm 2: movl <r=%edi,>x6=64(%esp) 1367movl %edi,64(%esp) 1368 1369# qhasm: t += x10 1370# asm 1: addl <x10=stack32#11,<t=int32#4 1371# asm 2: addl <x10=40(%esp),<t=%ebx 1372addl 40(%esp),%ebx 1373 1374# qhasm: x12 = v 1375# asm 1: movl <v=int32#7,>x12=stack32#18 1376# asm 2: movl <v=%ebp,>x12=68(%esp) 1377movl %ebp,68(%esp) 1378 1379# qhasm: p <<<= 9 1380# asm 1: rol $9,<p=int32#1 1381# asm 2: rol $9,<p=%eax 1382.byte 0xf3 1383rol $9,%eax 1384 1385# qhasm: p ^= x2 1386# asm 1: xorl <x2=stack32#13,<p=int32#1 1387# asm 2: xorl <x2=48(%esp),<p=%eax 1388xorl 48(%esp),%eax 1389 1390# qhasm: t <<<= 9 1391# asm 1: rol $9,<t=int32#4 1392# asm 2: rol $9,<t=%ebx 1393.byte 0xf3 1394rol $9,%ebx 1395 1396# qhasm: t ^= x8 1397# asm 1: xorl <x8=stack32#8,<t=int32#4 1398# asm 2: xorl <x8=28(%esp),<t=%ebx 1399xorl 28(%esp),%ebx 1400 1401# qhasm: s += r 1402# asm 1: add <r=int32#6,<s=int32#3 1403# asm 2: add <r=%edi,<s=%edx 1404add %edi,%edx 1405 1406# qhasm: s <<<= 9 1407# asm 1: rol $9,<s=int32#3 1408# asm 2: rol $9,<s=%edx 1409.byte 0xf3 1410rol $9,%edx 1411 1412# qhasm: s ^= x7 1413# asm 1: xorl <x7=stack32#19,<s=int32#3 1414# asm 2: xorl <x7=72(%esp),<s=%edx 1415xorl 72(%esp),%edx 1416 1417# qhasm: w += v 1418# asm 1: add <v=int32#7,<w=int32#5 1419# asm 2: add <v=%ebp,<w=%esi 1420add %ebp,%esi 1421 1422# qhasm: w <<<= 9 1423# asm 1: rol $9,<w=int32#5 1424# asm 2: rol $9,<w=%esi 1425.byte 0xf3 1426rol $9,%esi 1427 1428# qhasm: w ^= x13 1429# asm 1: xorl <x13=stack32#14,<w=int32#5 1430# asm 2: xorl <x13=52(%esp),<w=%esi 1431xorl 52(%esp),%esi 1432 1433# qhasm: x2 = p 1434# asm 1: movl <p=int32#1,>x2=stack32#8 1435# asm 2: movl <p=%eax,>x2=28(%esp) 1436movl %eax,28(%esp) 1437 1438# qhasm: x8 = t 1439# asm 1: movl <t=int32#4,>x8=stack32#13 1440# asm 2: movl <t=%ebx,>x8=48(%esp) 1441movl %ebx,48(%esp) 1442 1443# qhasm: p += x1 1444# asm 1: addl <x1=stack32#7,<p=int32#1 1445# asm 2: addl <x1=24(%esp),<p=%eax 1446addl 24(%esp),%eax 1447 1448# qhasm: x7 = s 1449# asm 1: movl <s=int32#3,>x7=stack32#14 1450# asm 2: movl <s=%edx,>x7=52(%esp) 1451movl %edx,52(%esp) 1452 1453# qhasm: t += x11 1454# asm 1: addl <x11=stack32#12,<t=int32#4 1455# asm 2: addl <x11=44(%esp),<t=%ebx 1456addl 44(%esp),%ebx 1457 1458# qhasm: x13 = w 1459# asm 1: movl <w=int32#5,>x13=stack32#19 1460# asm 2: movl <w=%esi,>x13=72(%esp) 1461movl %esi,72(%esp) 1462 1463# qhasm: p <<<= 13 1464# asm 1: rol $13,<p=int32#1 1465# asm 2: rol $13,<p=%eax 1466rol $13,%eax 1467 1468# qhasm: p ^= x3 1469# asm 1: xorl <x3=stack32#20,<p=int32#1 1470# asm 2: xorl <x3=76(%esp),<p=%eax 1471xorl 76(%esp),%eax 1472 1473# qhasm: t <<<= 13 1474# asm 1: rol $13,<t=int32#4 1475# asm 2: rol $13,<t=%ebx 1476rol $13,%ebx 1477 1478# qhasm: t ^= x9 1479# asm 1: xorl <x9=stack32#15,<t=int32#4 1480# asm 2: xorl <x9=56(%esp),<t=%ebx 1481xorl 56(%esp),%ebx 1482 1483# qhasm: r += s 1484# asm 1: add <s=int32#3,<r=int32#6 1485# asm 2: add <s=%edx,<r=%edi 1486add %edx,%edi 1487 1488# qhasm: r <<<= 13 1489# asm 1: rol $13,<r=int32#6 1490# asm 2: rol $13,<r=%edi 1491rol $13,%edi 1492 1493# qhasm: r ^= x4 1494# asm 1: xorl <x4=stack32#9,<r=int32#6 1495# asm 2: xorl <x4=32(%esp),<r=%edi 1496xorl 32(%esp),%edi 1497 1498# qhasm: v += w 1499# asm 1: add <w=int32#5,<v=int32#7 1500# asm 2: add <w=%esi,<v=%ebp 1501add %esi,%ebp 1502 1503# qhasm: v <<<= 13 1504# asm 1: rol $13,<v=int32#7 1505# asm 2: rol $13,<v=%ebp 1506rol $13,%ebp 1507 1508# qhasm: v ^= x14 1509# asm 1: xorl <x14=stack32#10,<v=int32#7 1510# asm 2: xorl <x14=36(%esp),<v=%ebp 1511xorl 36(%esp),%ebp 1512 1513# qhasm: x3 = p 1514# asm 1: movl <p=int32#1,>x3=stack32#9 1515# asm 2: movl <p=%eax,>x3=32(%esp) 1516movl %eax,32(%esp) 1517 1518# qhasm: x9 = t 1519# asm 1: movl <t=int32#4,>x9=stack32#10 1520# asm 2: movl <t=%ebx,>x9=36(%esp) 1521movl %ebx,36(%esp) 1522 1523# qhasm: p += x2 1524# asm 1: addl <x2=stack32#8,<p=int32#1 1525# asm 2: addl <x2=28(%esp),<p=%eax 1526addl 28(%esp),%eax 1527 1528# qhasm: x4 = r 1529# asm 1: movl <r=int32#6,>x4=stack32#15 1530# asm 2: movl <r=%edi,>x4=56(%esp) 1531movl %edi,56(%esp) 1532 1533# qhasm: t += x8 1534# asm 1: addl <x8=stack32#13,<t=int32#4 1535# asm 2: addl <x8=48(%esp),<t=%ebx 1536addl 48(%esp),%ebx 1537 1538# qhasm: x14 = v 1539# asm 1: movl <v=int32#7,>x14=stack32#20 1540# asm 2: movl <v=%ebp,>x14=76(%esp) 1541movl %ebp,76(%esp) 1542 1543# qhasm: p <<<= 18 1544# asm 1: rol $18,<p=int32#1 1545# asm 2: rol $18,<p=%eax 1546.byte 0xf3 1547rol $18,%eax 1548 1549# qhasm: p ^= x0 1550# asm 1: xorl <x0=stack32#6,<p=int32#1 1551# asm 2: xorl <x0=20(%esp),<p=%eax 1552xorl 20(%esp),%eax 1553 1554# qhasm: t <<<= 18 1555# asm 1: rol $18,<t=int32#4 1556# asm 2: rol $18,<t=%ebx 1557rol $18,%ebx 1558 1559# qhasm: t ^= x10 1560# asm 1: xorl <x10=stack32#11,<t=int32#4 1561# asm 2: xorl <x10=40(%esp),<t=%ebx 1562xorl 40(%esp),%ebx 1563 1564# qhasm: s += r 1565# asm 1: add <r=int32#6,<s=int32#3 1566# asm 2: add <r=%edi,<s=%edx 1567add %edi,%edx 1568 1569# qhasm: s <<<= 18 1570# asm 1: rol $18,<s=int32#3 1571# asm 2: rol $18,<s=%edx 1572rol $18,%edx 1573 1574# qhasm: s ^= x5 1575# asm 1: xorl <x5=stack32#16,<s=int32#3 1576# asm 2: xorl <x5=60(%esp),<s=%edx 1577xorl 60(%esp),%edx 1578 1579# qhasm: w += v 1580# asm 1: add <v=int32#7,<w=int32#5 1581# asm 2: add <v=%ebp,<w=%esi 1582.byte 0xf3 1583add %ebp,%esi 1584 1585# qhasm: w <<<= 18 1586# asm 1: rol $18,<w=int32#5 1587# asm 2: rol $18,<w=%esi 1588.byte 0xf3 1589rol $18,%esi 1590 1591# qhasm: w ^= x15 1592# asm 1: xorl <x15=stack32#21,<w=int32#5 1593# asm 2: xorl <x15=80(%esp),<w=%esi 1594.byte 0xf3 1595xorl 80(%esp),%esi 1596 1597# qhasm: x0 = p 1598# asm 1: movl <p=int32#1,>x0=stack32#6 1599# asm 2: movl <p=%eax,>x0=20(%esp) 1600movl %eax,20(%esp) 1601 1602# qhasm: x10 = t 1603# asm 1: movl <t=int32#4,>x10=stack32#11 1604# asm 2: movl <t=%ebx,>x10=40(%esp) 1605movl %ebx,40(%esp) 1606 1607# qhasm: p += x12 1608# asm 1: addl <x12=stack32#18,<p=int32#1 1609# asm 2: addl <x12=68(%esp),<p=%eax 1610addl 68(%esp),%eax 1611 1612# qhasm: x5 = s 1613# asm 1: movl <s=int32#3,>x5=stack32#16 1614# asm 2: movl <s=%edx,>x5=60(%esp) 1615movl %edx,60(%esp) 1616 1617# qhasm: t += x6 1618# asm 1: addl <x6=stack32#17,<t=int32#4 1619# asm 2: addl <x6=64(%esp),<t=%ebx 1620addl 64(%esp),%ebx 1621 1622# qhasm: x15 = w 1623# asm 1: movl <w=int32#5,>x15=stack32#21 1624# asm 2: movl <w=%esi,>x15=80(%esp) 1625movl %esi,80(%esp) 1626 1627# qhasm: r = x1 1628# asm 1: movl <x1=stack32#7,>r=int32#6 1629# asm 2: movl <x1=24(%esp),>r=%edi 1630movl 24(%esp),%edi 1631 1632# qhasm: r += s 1633# asm 1: add <s=int32#3,<r=int32#6 1634# asm 2: add <s=%edx,<r=%edi 1635add %edx,%edi 1636 1637# qhasm: v = x11 1638# asm 1: movl <x11=stack32#12,>v=int32#7 1639# asm 2: movl <x11=44(%esp),>v=%ebp 1640movl 44(%esp),%ebp 1641 1642# qhasm: v += w 1643# asm 1: add <w=int32#5,<v=int32#7 1644# asm 2: add <w=%esi,<v=%ebp 1645add %esi,%ebp 1646 1647# qhasm: p <<<= 7 1648# asm 1: rol $7,<p=int32#1 1649# asm 2: rol $7,<p=%eax 1650.byte 0xf3 1651rol $7,%eax 1652 1653# qhasm: p ^= x4 1654# asm 1: xorl <x4=stack32#15,<p=int32#1 1655# asm 2: xorl <x4=56(%esp),<p=%eax 1656xorl 56(%esp),%eax 1657 1658# qhasm: t <<<= 7 1659# asm 1: rol $7,<t=int32#4 1660# asm 2: rol $7,<t=%ebx 1661.byte 0xf3 1662rol $7,%ebx 1663 1664# qhasm: t ^= x14 1665# asm 1: xorl <x14=stack32#20,<t=int32#4 1666# asm 2: xorl <x14=76(%esp),<t=%ebx 1667xorl 76(%esp),%ebx 1668 1669# qhasm: r <<<= 7 1670# asm 1: rol $7,<r=int32#6 1671# asm 2: rol $7,<r=%edi 1672.byte 0xf3 1673rol $7,%edi 1674 1675# qhasm: r ^= x9 1676# asm 1: xorl <x9=stack32#10,<r=int32#6 1677# asm 2: xorl <x9=36(%esp),<r=%edi 1678xorl 36(%esp),%edi 1679 1680# qhasm: v <<<= 7 1681# asm 1: rol $7,<v=int32#7 1682# asm 2: rol $7,<v=%ebp 1683.byte 0xf3 1684rol $7,%ebp 1685 1686# qhasm: v ^= x3 1687# asm 1: xorl <x3=stack32#9,<v=int32#7 1688# asm 2: xorl <x3=32(%esp),<v=%ebp 1689xorl 32(%esp),%ebp 1690 1691# qhasm: x4 = p 1692# asm 1: movl <p=int32#1,>x4=stack32#9 1693# asm 2: movl <p=%eax,>x4=32(%esp) 1694movl %eax,32(%esp) 1695 1696# qhasm: x14 = t 1697# asm 1: movl <t=int32#4,>x14=stack32#10 1698# asm 2: movl <t=%ebx,>x14=36(%esp) 1699movl %ebx,36(%esp) 1700 1701# qhasm: p += x0 1702# asm 1: addl <x0=stack32#6,<p=int32#1 1703# asm 2: addl <x0=20(%esp),<p=%eax 1704addl 20(%esp),%eax 1705 1706# qhasm: x9 = r 1707# asm 1: movl <r=int32#6,>x9=stack32#15 1708# asm 2: movl <r=%edi,>x9=56(%esp) 1709movl %edi,56(%esp) 1710 1711# qhasm: t += x10 1712# asm 1: addl <x10=stack32#11,<t=int32#4 1713# asm 2: addl <x10=40(%esp),<t=%ebx 1714addl 40(%esp),%ebx 1715 1716# qhasm: x3 = v 1717# asm 1: movl <v=int32#7,>x3=stack32#20 1718# asm 2: movl <v=%ebp,>x3=76(%esp) 1719movl %ebp,76(%esp) 1720 1721# qhasm: p <<<= 9 1722# asm 1: rol $9,<p=int32#1 1723# asm 2: rol $9,<p=%eax 1724.byte 0xf3 1725rol $9,%eax 1726 1727# qhasm: p ^= x8 1728# asm 1: xorl <x8=stack32#13,<p=int32#1 1729# asm 2: xorl <x8=48(%esp),<p=%eax 1730xorl 48(%esp),%eax 1731 1732# qhasm: t <<<= 9 1733# asm 1: rol $9,<t=int32#4 1734# asm 2: rol $9,<t=%ebx 1735rol $9,%ebx 1736 1737# qhasm: t ^= x2 1738# asm 1: xorl <x2=stack32#8,<t=int32#4 1739# asm 2: xorl <x2=28(%esp),<t=%ebx 1740xorl 28(%esp),%ebx 1741 1742# qhasm: s += r 1743# asm 1: add <r=int32#6,<s=int32#3 1744# asm 2: add <r=%edi,<s=%edx 1745add %edi,%edx 1746 1747# qhasm: s <<<= 9 1748# asm 1: rol $9,<s=int32#3 1749# asm 2: rol $9,<s=%edx 1750rol $9,%edx 1751 1752# qhasm: s ^= x13 1753# asm 1: xorl <x13=stack32#19,<s=int32#3 1754# asm 2: xorl <x13=72(%esp),<s=%edx 1755xorl 72(%esp),%edx 1756 1757# qhasm: w += v 1758# asm 1: add <v=int32#7,<w=int32#5 1759# asm 2: add <v=%ebp,<w=%esi 1760.byte 0xf3 1761add %ebp,%esi 1762 1763# qhasm: w <<<= 9 1764# asm 1: rol $9,<w=int32#5 1765# asm 2: rol $9,<w=%esi 1766.byte 0xf3 1767rol $9,%esi 1768 1769# qhasm: w ^= x7 1770# asm 1: xorl <x7=stack32#14,<w=int32#5 1771# asm 2: xorl <x7=52(%esp),<w=%esi 1772.byte 0xf3 1773xorl 52(%esp),%esi 1774 1775# qhasm: x8 = p 1776# asm 1: movl <p=int32#1,>x8=stack32#8 1777# asm 2: movl <p=%eax,>x8=28(%esp) 1778movl %eax,28(%esp) 1779 1780# qhasm: x2 = t 1781# asm 1: movl <t=int32#4,>x2=stack32#13 1782# asm 2: movl <t=%ebx,>x2=48(%esp) 1783movl %ebx,48(%esp) 1784 1785# qhasm: p += x4 1786# asm 1: addl <x4=stack32#9,<p=int32#1 1787# asm 2: addl <x4=32(%esp),<p=%eax 1788addl 32(%esp),%eax 1789 1790# qhasm: x13 = s 1791# asm 1: movl <s=int32#3,>x13=stack32#14 1792# asm 2: movl <s=%edx,>x13=52(%esp) 1793movl %edx,52(%esp) 1794 1795# qhasm: t += x14 1796# asm 1: addl <x14=stack32#10,<t=int32#4 1797# asm 2: addl <x14=36(%esp),<t=%ebx 1798addl 36(%esp),%ebx 1799 1800# qhasm: x7 = w 1801# asm 1: movl <w=int32#5,>x7=stack32#19 1802# asm 2: movl <w=%esi,>x7=72(%esp) 1803movl %esi,72(%esp) 1804 1805# qhasm: p <<<= 13 1806# asm 1: rol $13,<p=int32#1 1807# asm 2: rol $13,<p=%eax 1808.byte 0xf3 1809rol $13,%eax 1810 1811# qhasm: p ^= x12 1812# asm 1: xorl <x12=stack32#18,<p=int32#1 1813# asm 2: xorl <x12=68(%esp),<p=%eax 1814xorl 68(%esp),%eax 1815 1816# qhasm: t <<<= 13 1817# asm 1: rol $13,<t=int32#4 1818# asm 2: rol $13,<t=%ebx 1819.byte 0xf3 1820rol $13,%ebx 1821 1822# qhasm: t ^= x6 1823# asm 1: xorl <x6=stack32#17,<t=int32#4 1824# asm 2: xorl <x6=64(%esp),<t=%ebx 1825xorl 64(%esp),%ebx 1826 1827# qhasm: r += s 1828# asm 1: add <s=int32#3,<r=int32#6 1829# asm 2: add <s=%edx,<r=%edi 1830add %edx,%edi 1831 1832# qhasm: r <<<= 13 1833# asm 1: rol $13,<r=int32#6 1834# asm 2: rol $13,<r=%edi 1835.byte 0xf3 1836rol $13,%edi 1837 1838# qhasm: r ^= x1 1839# asm 1: xorl <x1=stack32#7,<r=int32#6 1840# asm 2: xorl <x1=24(%esp),<r=%edi 1841xorl 24(%esp),%edi 1842 1843# qhasm: v += w 1844# asm 1: add <w=int32#5,<v=int32#7 1845# asm 2: add <w=%esi,<v=%ebp 1846add %esi,%ebp 1847 1848# qhasm: v <<<= 13 1849# asm 1: rol $13,<v=int32#7 1850# asm 2: rol $13,<v=%ebp 1851.byte 0xf3 1852rol $13,%ebp 1853 1854# qhasm: v ^= x11 1855# asm 1: xorl <x11=stack32#12,<v=int32#7 1856# asm 2: xorl <x11=44(%esp),<v=%ebp 1857xorl 44(%esp),%ebp 1858 1859# qhasm: x12 = p 1860# asm 1: movl <p=int32#1,>x12=stack32#7 1861# asm 2: movl <p=%eax,>x12=24(%esp) 1862movl %eax,24(%esp) 1863 1864# qhasm: x6 = t 1865# asm 1: movl <t=int32#4,>x6=stack32#12 1866# asm 2: movl <t=%ebx,>x6=44(%esp) 1867movl %ebx,44(%esp) 1868 1869# qhasm: p += x8 1870# asm 1: addl <x8=stack32#8,<p=int32#1 1871# asm 2: addl <x8=28(%esp),<p=%eax 1872addl 28(%esp),%eax 1873 1874# qhasm: x1 = r 1875# asm 1: movl <r=int32#6,>x1=stack32#17 1876# asm 2: movl <r=%edi,>x1=64(%esp) 1877movl %edi,64(%esp) 1878 1879# qhasm: t += x2 1880# asm 1: addl <x2=stack32#13,<t=int32#4 1881# asm 2: addl <x2=48(%esp),<t=%ebx 1882addl 48(%esp),%ebx 1883 1884# qhasm: x11 = v 1885# asm 1: movl <v=int32#7,>x11=stack32#18 1886# asm 2: movl <v=%ebp,>x11=68(%esp) 1887movl %ebp,68(%esp) 1888 1889# qhasm: p <<<= 18 1890# asm 1: rol $18,<p=int32#1 1891# asm 2: rol $18,<p=%eax 1892rol $18,%eax 1893 1894# qhasm: p ^= x0 1895# asm 1: xorl <x0=stack32#6,<p=int32#1 1896# asm 2: xorl <x0=20(%esp),<p=%eax 1897xorl 20(%esp),%eax 1898 1899# qhasm: t <<<= 18 1900# asm 1: rol $18,<t=int32#4 1901# asm 2: rol $18,<t=%ebx 1902rol $18,%ebx 1903 1904# qhasm: t ^= x10 1905# asm 1: xorl <x10=stack32#11,<t=int32#4 1906# asm 2: xorl <x10=40(%esp),<t=%ebx 1907xorl 40(%esp),%ebx 1908 1909# qhasm: s += r 1910# asm 1: add <r=int32#6,<s=int32#3 1911# asm 2: add <r=%edi,<s=%edx 1912add %edi,%edx 1913 1914# qhasm: s <<<= 18 1915# asm 1: rol $18,<s=int32#3 1916# asm 2: rol $18,<s=%edx 1917rol $18,%edx 1918 1919# qhasm: s ^= x5 1920# asm 1: xorl <x5=stack32#16,<s=int32#3 1921# asm 2: xorl <x5=60(%esp),<s=%edx 1922xorl 60(%esp),%edx 1923 1924# qhasm: w += v 1925# asm 1: add <v=int32#7,<w=int32#5 1926# asm 2: add <v=%ebp,<w=%esi 1927add %ebp,%esi 1928 1929# qhasm: w <<<= 18 1930# asm 1: rol $18,<w=int32#5 1931# asm 2: rol $18,<w=%esi 1932rol $18,%esi 1933 1934# qhasm: w ^= x15 1935# asm 1: xorl <x15=stack32#21,<w=int32#5 1936# asm 2: xorl <x15=80(%esp),<w=%esi 1937xorl 80(%esp),%esi 1938 1939# qhasm: x0 = p 1940# asm 1: movl <p=int32#1,>x0=stack32#6 1941# asm 2: movl <p=%eax,>x0=20(%esp) 1942movl %eax,20(%esp) 1943 1944# qhasm: x10 = t 1945# asm 1: movl <t=int32#4,>x10=stack32#16 1946# asm 2: movl <t=%ebx,>x10=60(%esp) 1947movl %ebx,60(%esp) 1948 1949# qhasm: p += x3 1950# asm 1: addl <x3=stack32#20,<p=int32#1 1951# asm 2: addl <x3=76(%esp),<p=%eax 1952addl 76(%esp),%eax 1953 1954# qhasm: p <<<= 7 1955# asm 1: rol $7,<p=int32#1 1956# asm 2: rol $7,<p=%eax 1957.byte 0xf3 1958rol $7,%eax 1959 1960# qhasm: x5 = s 1961# asm 1: movl <s=int32#3,>x5=stack32#11 1962# asm 2: movl <s=%edx,>x5=40(%esp) 1963movl %edx,40(%esp) 1964 1965# qhasm: t += x9 1966# asm 1: addl <x9=stack32#15,<t=int32#4 1967# asm 2: addl <x9=56(%esp),<t=%ebx 1968addl 56(%esp),%ebx 1969 1970# qhasm: x15 = w 1971# asm 1: movl <w=int32#5,>x15=stack32#21 1972# asm 2: movl <w=%esi,>x15=80(%esp) 1973movl %esi,80(%esp) 1974 1975# qhasm: r = x4 1976# asm 1: movl <x4=stack32#9,>r=int32#6 1977# asm 2: movl <x4=32(%esp),>r=%edi 1978movl 32(%esp),%edi 1979 1980# qhasm: r += s 1981# asm 1: add <s=int32#3,<r=int32#6 1982# asm 2: add <s=%edx,<r=%edi 1983add %edx,%edi 1984 1985# qhasm: v = x14 1986# asm 1: movl <x14=stack32#10,>v=int32#7 1987# asm 2: movl <x14=36(%esp),>v=%ebp 1988movl 36(%esp),%ebp 1989 1990# qhasm: v += w 1991# asm 1: add <w=int32#5,<v=int32#7 1992# asm 2: add <w=%esi,<v=%ebp 1993add %esi,%ebp 1994 1995# qhasm: p ^= x1 1996# asm 1: xorl <x1=stack32#17,<p=int32#1 1997# asm 2: xorl <x1=64(%esp),<p=%eax 1998xorl 64(%esp),%eax 1999 2000# qhasm: t <<<= 7 2001# asm 1: rol $7,<t=int32#4 2002# asm 2: rol $7,<t=%ebx 2003.byte 0xf3 2004rol $7,%ebx 2005 2006# qhasm: t ^= x11 2007# asm 1: xorl <x11=stack32#18,<t=int32#4 2008# asm 2: xorl <x11=68(%esp),<t=%ebx 2009xorl 68(%esp),%ebx 2010 2011# qhasm: r <<<= 7 2012# asm 1: rol $7,<r=int32#6 2013# asm 2: rol $7,<r=%edi 2014.byte 0xf3 2015rol $7,%edi 2016 2017# qhasm: r ^= x6 2018# asm 1: xorl <x6=stack32#12,<r=int32#6 2019# asm 2: xorl <x6=44(%esp),<r=%edi 2020xorl 44(%esp),%edi 2021 2022# qhasm: v <<<= 7 2023# asm 1: rol $7,<v=int32#7 2024# asm 2: rol $7,<v=%ebp 2025.byte 0xf3 2026rol $7,%ebp 2027 2028# qhasm: v ^= x12 2029# asm 1: xorl <x12=stack32#7,<v=int32#7 2030# asm 2: xorl <x12=24(%esp),<v=%ebp 2031xorl 24(%esp),%ebp 2032 2033# qhasm: x1 = p 2034# asm 1: movl <p=int32#1,>x1=stack32#7 2035# asm 2: movl <p=%eax,>x1=24(%esp) 2036movl %eax,24(%esp) 2037 2038# qhasm: x11 = t 2039# asm 1: movl <t=int32#4,>x11=stack32#17 2040# asm 2: movl <t=%ebx,>x11=64(%esp) 2041movl %ebx,64(%esp) 2042 2043# qhasm: p += x0 2044# asm 1: addl <x0=stack32#6,<p=int32#1 2045# asm 2: addl <x0=20(%esp),<p=%eax 2046addl 20(%esp),%eax 2047 2048# qhasm: x6 = r 2049# asm 1: movl <r=int32#6,>x6=stack32#12 2050# asm 2: movl <r=%edi,>x6=44(%esp) 2051movl %edi,44(%esp) 2052 2053# qhasm: t += x10 2054# asm 1: addl <x10=stack32#16,<t=int32#4 2055# asm 2: addl <x10=60(%esp),<t=%ebx 2056addl 60(%esp),%ebx 2057 2058# qhasm: x12 = v 2059# asm 1: movl <v=int32#7,>x12=stack32#18 2060# asm 2: movl <v=%ebp,>x12=68(%esp) 2061movl %ebp,68(%esp) 2062 2063# qhasm: p <<<= 9 2064# asm 1: rol $9,<p=int32#1 2065# asm 2: rol $9,<p=%eax 2066.byte 0xf3 2067rol $9,%eax 2068 2069# qhasm: p ^= x2 2070# asm 1: xorl <x2=stack32#13,<p=int32#1 2071# asm 2: xorl <x2=48(%esp),<p=%eax 2072xorl 48(%esp),%eax 2073 2074# qhasm: t <<<= 9 2075# asm 1: rol $9,<t=int32#4 2076# asm 2: rol $9,<t=%ebx 2077rol $9,%ebx 2078 2079# qhasm: t ^= x8 2080# asm 1: xorl <x8=stack32#8,<t=int32#4 2081# asm 2: xorl <x8=28(%esp),<t=%ebx 2082xorl 28(%esp),%ebx 2083 2084# qhasm: s += r 2085# asm 1: add <r=int32#6,<s=int32#3 2086# asm 2: add <r=%edi,<s=%edx 2087add %edi,%edx 2088 2089# qhasm: s <<<= 9 2090# asm 1: rol $9,<s=int32#3 2091# asm 2: rol $9,<s=%edx 2092rol $9,%edx 2093 2094# qhasm: s ^= x7 2095# asm 1: xorl <x7=stack32#19,<s=int32#3 2096# asm 2: xorl <x7=72(%esp),<s=%edx 2097.byte 0xf3 2098xorl 72(%esp),%edx 2099 2100# qhasm: w += v 2101# asm 1: add <v=int32#7,<w=int32#5 2102# asm 2: add <v=%ebp,<w=%esi 2103.byte 0xf3 2104add %ebp,%esi 2105 2106# qhasm: w <<<= 9 2107# asm 1: rol $9,<w=int32#5 2108# asm 2: rol $9,<w=%esi 2109.byte 0xf3 2110rol $9,%esi 2111 2112# qhasm: w ^= x13 2113# asm 1: xorl <x13=stack32#14,<w=int32#5 2114# asm 2: xorl <x13=52(%esp),<w=%esi 2115xorl 52(%esp),%esi 2116 2117# qhasm: x2 = p 2118# asm 1: movl <p=int32#1,>x2=stack32#8 2119# asm 2: movl <p=%eax,>x2=28(%esp) 2120movl %eax,28(%esp) 2121 2122# qhasm: x8 = t 2123# asm 1: movl <t=int32#4,>x8=stack32#14 2124# asm 2: movl <t=%ebx,>x8=52(%esp) 2125movl %ebx,52(%esp) 2126 2127# qhasm: p += x1 2128# asm 1: addl <x1=stack32#7,<p=int32#1 2129# asm 2: addl <x1=24(%esp),<p=%eax 2130addl 24(%esp),%eax 2131 2132# qhasm: x7 = s 2133# asm 1: movl <s=int32#3,>x7=stack32#13 2134# asm 2: movl <s=%edx,>x7=48(%esp) 2135movl %edx,48(%esp) 2136 2137# qhasm: t += x11 2138# asm 1: addl <x11=stack32#17,<t=int32#4 2139# asm 2: addl <x11=64(%esp),<t=%ebx 2140addl 64(%esp),%ebx 2141 2142# qhasm: x13 = w 2143# asm 1: movl <w=int32#5,>x13=stack32#19 2144# asm 2: movl <w=%esi,>x13=72(%esp) 2145movl %esi,72(%esp) 2146 2147# qhasm: p <<<= 13 2148# asm 1: rol $13,<p=int32#1 2149# asm 2: rol $13,<p=%eax 2150.byte 0xf3 2151rol $13,%eax 2152 2153# qhasm: p ^= x3 2154# asm 1: xorl <x3=stack32#20,<p=int32#1 2155# asm 2: xorl <x3=76(%esp),<p=%eax 2156xorl 76(%esp),%eax 2157 2158# qhasm: t <<<= 13 2159# asm 1: rol $13,<t=int32#4 2160# asm 2: rol $13,<t=%ebx 2161rol $13,%ebx 2162 2163# qhasm: t ^= x9 2164# asm 1: xorl <x9=stack32#15,<t=int32#4 2165# asm 2: xorl <x9=56(%esp),<t=%ebx 2166xorl 56(%esp),%ebx 2167 2168# qhasm: r += s 2169# asm 1: add <s=int32#3,<r=int32#6 2170# asm 2: add <s=%edx,<r=%edi 2171add %edx,%edi 2172 2173# qhasm: r <<<= 13 2174# asm 1: rol $13,<r=int32#6 2175# asm 2: rol $13,<r=%edi 2176rol $13,%edi 2177 2178# qhasm: r ^= x4 2179# asm 1: xorl <x4=stack32#9,<r=int32#6 2180# asm 2: xorl <x4=32(%esp),<r=%edi 2181xorl 32(%esp),%edi 2182 2183# qhasm: v += w 2184# asm 1: add <w=int32#5,<v=int32#7 2185# asm 2: add <w=%esi,<v=%ebp 2186.byte 0xf3 2187add %esi,%ebp 2188 2189# qhasm: v <<<= 13 2190# asm 1: rol $13,<v=int32#7 2191# asm 2: rol $13,<v=%ebp 2192.byte 0xf3 2193rol $13,%ebp 2194 2195# qhasm: v ^= x14 2196# asm 1: xorl <x14=stack32#10,<v=int32#7 2197# asm 2: xorl <x14=36(%esp),<v=%ebp 2198.byte 0xf3 2199xorl 36(%esp),%ebp 2200 2201# qhasm: x3 = p 2202# asm 1: movl <p=int32#1,>x3=stack32#9 2203# asm 2: movl <p=%eax,>x3=32(%esp) 2204movl %eax,32(%esp) 2205 2206# qhasm: x9 = t 2207# asm 1: movl <t=int32#4,>x9=stack32#15 2208# asm 2: movl <t=%ebx,>x9=56(%esp) 2209movl %ebx,56(%esp) 2210 2211# qhasm: p += x2 2212# asm 1: addl <x2=stack32#8,<p=int32#1 2213# asm 2: addl <x2=28(%esp),<p=%eax 2214addl 28(%esp),%eax 2215 2216# qhasm: x4 = r 2217# asm 1: movl <r=int32#6,>x4=stack32#10 2218# asm 2: movl <r=%edi,>x4=36(%esp) 2219movl %edi,36(%esp) 2220 2221# qhasm: t += x8 2222# asm 1: addl <x8=stack32#14,<t=int32#4 2223# asm 2: addl <x8=52(%esp),<t=%ebx 2224addl 52(%esp),%ebx 2225 2226# qhasm: x14 = v 2227# asm 1: movl <v=int32#7,>x14=stack32#20 2228# asm 2: movl <v=%ebp,>x14=76(%esp) 2229movl %ebp,76(%esp) 2230 2231# qhasm: p <<<= 18 2232# asm 1: rol $18,<p=int32#1 2233# asm 2: rol $18,<p=%eax 2234.byte 0xf3 2235rol $18,%eax 2236 2237# qhasm: p ^= x0 2238# asm 1: xorl <x0=stack32#6,<p=int32#1 2239# asm 2: xorl <x0=20(%esp),<p=%eax 2240xorl 20(%esp),%eax 2241 2242# qhasm: t <<<= 18 2243# asm 1: rol $18,<t=int32#4 2244# asm 2: rol $18,<t=%ebx 2245.byte 0xf3 2246rol $18,%ebx 2247 2248# qhasm: t ^= x10 2249# asm 1: xorl <x10=stack32#16,<t=int32#4 2250# asm 2: xorl <x10=60(%esp),<t=%ebx 2251xorl 60(%esp),%ebx 2252 2253# qhasm: s += r 2254# asm 1: add <r=int32#6,<s=int32#3 2255# asm 2: add <r=%edi,<s=%edx 2256add %edi,%edx 2257 2258# qhasm: s <<<= 18 2259# asm 1: rol $18,<s=int32#3 2260# asm 2: rol $18,<s=%edx 2261.byte 0xf3 2262rol $18,%edx 2263 2264# qhasm: s ^= x5 2265# asm 1: xorl <x5=stack32#11,<s=int32#3 2266# asm 2: xorl <x5=40(%esp),<s=%edx 2267xorl 40(%esp),%edx 2268 2269# qhasm: w += v 2270# asm 1: add <v=int32#7,<w=int32#5 2271# asm 2: add <v=%ebp,<w=%esi 2272add %ebp,%esi 2273 2274# qhasm: w <<<= 18 2275# asm 1: rol $18,<w=int32#5 2276# asm 2: rol $18,<w=%esi 2277rol $18,%esi 2278 2279# qhasm: w ^= x15 2280# asm 1: xorl <x15=stack32#21,<w=int32#5 2281# asm 2: xorl <x15=80(%esp),<w=%esi 2282xorl 80(%esp),%esi 2283 2284# qhasm: unsigned>? i -= 4 2285# asm 1: sub $4,<i=int32#2 2286# asm 2: sub $4,<i=%ecx 2287sub $4,%ecx 2288# comment:fp stack unchanged by jump 2289 2290# qhasm: goto mainloop if unsigned> 2291ja ._mainloop 2292 2293# qhasm: x0 = p 2294# asm 1: movl <p=int32#1,>x0=stack32#6 2295# asm 2: movl <p=%eax,>x0=20(%esp) 2296movl %eax,20(%esp) 2297 2298# qhasm: x5 = s 2299# asm 1: movl <s=int32#3,>x5=stack32#11 2300# asm 2: movl <s=%edx,>x5=40(%esp) 2301movl %edx,40(%esp) 2302 2303# qhasm: x10 = t 2304# asm 1: movl <t=int32#4,>x10=stack32#16 2305# asm 2: movl <t=%ebx,>x10=60(%esp) 2306movl %ebx,60(%esp) 2307 2308# qhasm: x15 = w 2309# asm 1: movl <w=int32#5,>x15=stack32#21 2310# asm 2: movl <w=%esi,>x15=80(%esp) 2311movl %esi,80(%esp) 2312 2313# qhasm: out = out_backup 2314# asm 1: movl <out_backup=stack32#40,>out=int32#6 2315# asm 2: movl <out_backup=156(%esp),>out=%edi 2316movl 156(%esp),%edi 2317 2318# qhasm: m = m_backup 2319# asm 1: movl <m_backup=stack32#41,>m=int32#5 2320# asm 2: movl <m_backup=160(%esp),>m=%esi 2321movl 160(%esp),%esi 2322 2323# qhasm: in0 = x0 2324# asm 1: movl <x0=stack32#6,>in0=int32#1 2325# asm 2: movl <x0=20(%esp),>in0=%eax 2326movl 20(%esp),%eax 2327 2328# qhasm: in1 = x1 2329# asm 1: movl <x1=stack32#7,>in1=int32#2 2330# asm 2: movl <x1=24(%esp),>in1=%ecx 2331movl 24(%esp),%ecx 2332 2333# qhasm: in0 += j0 2334# asm 1: addl <j0=stack32#22,<in0=int32#1 2335# asm 2: addl <j0=84(%esp),<in0=%eax 2336addl 84(%esp),%eax 2337 2338# qhasm: in1 += j1 2339# asm 1: addl <j1=stack32#23,<in1=int32#2 2340# asm 2: addl <j1=88(%esp),<in1=%ecx 2341addl 88(%esp),%ecx 2342 2343# qhasm: in0 ^= *(uint32 *) (m + 0) 2344# asm 1: xorl 0(<m=int32#5),<in0=int32#1 2345# asm 2: xorl 0(<m=%esi),<in0=%eax 2346xorl 0(%esi),%eax 2347 2348# qhasm: in1 ^= *(uint32 *) (m + 4) 2349# asm 1: xorl 4(<m=int32#5),<in1=int32#2 2350# asm 2: xorl 4(<m=%esi),<in1=%ecx 2351xorl 4(%esi),%ecx 2352 2353# qhasm: *(uint32 *) (out + 0) = in0 2354# asm 1: movl <in0=int32#1,0(<out=int32#6) 2355# asm 2: movl <in0=%eax,0(<out=%edi) 2356movl %eax,0(%edi) 2357 2358# qhasm: *(uint32 *) (out + 4) = in1 2359# asm 1: movl <in1=int32#2,4(<out=int32#6) 2360# asm 2: movl <in1=%ecx,4(<out=%edi) 2361movl %ecx,4(%edi) 2362 2363# qhasm: in2 = x2 2364# asm 1: movl <x2=stack32#8,>in2=int32#7 2365# asm 2: movl <x2=28(%esp),>in2=%ebp 2366movl 28(%esp),%ebp 2367 2368# qhasm: in3 = x3 2369# asm 1: movl <x3=stack32#9,>in3=int32#1 2370# asm 2: movl <x3=32(%esp),>in3=%eax 2371movl 32(%esp),%eax 2372 2373# qhasm: in2 += j2 2374# asm 1: addl <j2=stack32#24,<in2=int32#7 2375# asm 2: addl <j2=92(%esp),<in2=%ebp 2376addl 92(%esp),%ebp 2377 2378# qhasm: in3 += j3 2379# asm 1: addl <j3=stack32#25,<in3=int32#1 2380# asm 2: addl <j3=96(%esp),<in3=%eax 2381addl 96(%esp),%eax 2382 2383# qhasm: in2 ^= *(uint32 *) (m + 8) 2384# asm 1: xorl 8(<m=int32#5),<in2=int32#7 2385# asm 2: xorl 8(<m=%esi),<in2=%ebp 2386xorl 8(%esi),%ebp 2387 2388# qhasm: in3 ^= *(uint32 *) (m + 12) 2389# asm 1: xorl 12(<m=int32#5),<in3=int32#1 2390# asm 2: xorl 12(<m=%esi),<in3=%eax 2391xorl 12(%esi),%eax 2392 2393# qhasm: *(uint32 *) (out + 8) = in2 2394# asm 1: movl <in2=int32#7,8(<out=int32#6) 2395# asm 2: movl <in2=%ebp,8(<out=%edi) 2396movl %ebp,8(%edi) 2397 2398# qhasm: *(uint32 *) (out + 12) = in3 2399# asm 1: movl <in3=int32#1,12(<out=int32#6) 2400# asm 2: movl <in3=%eax,12(<out=%edi) 2401movl %eax,12(%edi) 2402 2403# qhasm: in4 = x4 2404# asm 1: movl <x4=stack32#10,>in4=int32#2 2405# asm 2: movl <x4=36(%esp),>in4=%ecx 2406movl 36(%esp),%ecx 2407 2408# qhasm: in5 = x5 2409# asm 1: movl <x5=stack32#11,>in5=int32#7 2410# asm 2: movl <x5=40(%esp),>in5=%ebp 2411movl 40(%esp),%ebp 2412 2413# qhasm: in4 += j4 2414# asm 1: addl <j4=stack32#26,<in4=int32#2 2415# asm 2: addl <j4=100(%esp),<in4=%ecx 2416addl 100(%esp),%ecx 2417 2418# qhasm: in5 += j5 2419# asm 1: addl <j5=stack32#27,<in5=int32#7 2420# asm 2: addl <j5=104(%esp),<in5=%ebp 2421addl 104(%esp),%ebp 2422 2423# qhasm: in4 ^= *(uint32 *) (m + 16) 2424# asm 1: xorl 16(<m=int32#5),<in4=int32#2 2425# asm 2: xorl 16(<m=%esi),<in4=%ecx 2426xorl 16(%esi),%ecx 2427 2428# qhasm: in5 ^= *(uint32 *) (m + 20) 2429# asm 1: xorl 20(<m=int32#5),<in5=int32#7 2430# asm 2: xorl 20(<m=%esi),<in5=%ebp 2431xorl 20(%esi),%ebp 2432 2433# qhasm: *(uint32 *) (out + 16) = in4 2434# asm 1: movl <in4=int32#2,16(<out=int32#6) 2435# asm 2: movl <in4=%ecx,16(<out=%edi) 2436movl %ecx,16(%edi) 2437 2438# qhasm: *(uint32 *) (out + 20) = in5 2439# asm 1: movl <in5=int32#7,20(<out=int32#6) 2440# asm 2: movl <in5=%ebp,20(<out=%edi) 2441movl %ebp,20(%edi) 2442 2443# qhasm: in6 = x6 2444# asm 1: movl <x6=stack32#12,>in6=int32#1 2445# asm 2: movl <x6=44(%esp),>in6=%eax 2446movl 44(%esp),%eax 2447 2448# qhasm: in7 = x7 2449# asm 1: movl <x7=stack32#13,>in7=int32#2 2450# asm 2: movl <x7=48(%esp),>in7=%ecx 2451movl 48(%esp),%ecx 2452 2453# qhasm: in6 += j6 2454# asm 1: addl <j6=stack32#28,<in6=int32#1 2455# asm 2: addl <j6=108(%esp),<in6=%eax 2456addl 108(%esp),%eax 2457 2458# qhasm: in7 += j7 2459# asm 1: addl <j7=stack32#29,<in7=int32#2 2460# asm 2: addl <j7=112(%esp),<in7=%ecx 2461addl 112(%esp),%ecx 2462 2463# qhasm: in6 ^= *(uint32 *) (m + 24) 2464# asm 1: xorl 24(<m=int32#5),<in6=int32#1 2465# asm 2: xorl 24(<m=%esi),<in6=%eax 2466xorl 24(%esi),%eax 2467 2468# qhasm: in7 ^= *(uint32 *) (m + 28) 2469# asm 1: xorl 28(<m=int32#5),<in7=int32#2 2470# asm 2: xorl 28(<m=%esi),<in7=%ecx 2471xorl 28(%esi),%ecx 2472 2473# qhasm: *(uint32 *) (out + 24) = in6 2474# asm 1: movl <in6=int32#1,24(<out=int32#6) 2475# asm 2: movl <in6=%eax,24(<out=%edi) 2476movl %eax,24(%edi) 2477 2478# qhasm: *(uint32 *) (out + 28) = in7 2479# asm 1: movl <in7=int32#2,28(<out=int32#6) 2480# asm 2: movl <in7=%ecx,28(<out=%edi) 2481movl %ecx,28(%edi) 2482 2483# qhasm: in8 = x8 2484# asm 1: movl <x8=stack32#14,>in8=int32#1 2485# asm 2: movl <x8=52(%esp),>in8=%eax 2486movl 52(%esp),%eax 2487 2488# qhasm: in9 = x9 2489# asm 1: movl <x9=stack32#15,>in9=int32#2 2490# asm 2: movl <x9=56(%esp),>in9=%ecx 2491movl 56(%esp),%ecx 2492 2493# qhasm: in8 += j8 2494# asm 1: addl <j8=stack32#30,<in8=int32#1 2495# asm 2: addl <j8=116(%esp),<in8=%eax 2496addl 116(%esp),%eax 2497 2498# qhasm: in9 += j9 2499# asm 1: addl <j9=stack32#31,<in9=int32#2 2500# asm 2: addl <j9=120(%esp),<in9=%ecx 2501addl 120(%esp),%ecx 2502 2503# qhasm: in8 ^= *(uint32 *) (m + 32) 2504# asm 1: xorl 32(<m=int32#5),<in8=int32#1 2505# asm 2: xorl 32(<m=%esi),<in8=%eax 2506xorl 32(%esi),%eax 2507 2508# qhasm: in9 ^= *(uint32 *) (m + 36) 2509# asm 1: xorl 36(<m=int32#5),<in9=int32#2 2510# asm 2: xorl 36(<m=%esi),<in9=%ecx 2511xorl 36(%esi),%ecx 2512 2513# qhasm: *(uint32 *) (out + 32) = in8 2514# asm 1: movl <in8=int32#1,32(<out=int32#6) 2515# asm 2: movl <in8=%eax,32(<out=%edi) 2516movl %eax,32(%edi) 2517 2518# qhasm: *(uint32 *) (out + 36) = in9 2519# asm 1: movl <in9=int32#2,36(<out=int32#6) 2520# asm 2: movl <in9=%ecx,36(<out=%edi) 2521movl %ecx,36(%edi) 2522 2523# qhasm: in10 = x10 2524# asm 1: movl <x10=stack32#16,>in10=int32#2 2525# asm 2: movl <x10=60(%esp),>in10=%ecx 2526movl 60(%esp),%ecx 2527 2528# qhasm: in11 = x11 2529# asm 1: movl <x11=stack32#17,>in11=int32#7 2530# asm 2: movl <x11=64(%esp),>in11=%ebp 2531movl 64(%esp),%ebp 2532 2533# qhasm: in10 += j10 2534# asm 1: addl <j10=stack32#32,<in10=int32#2 2535# asm 2: addl <j10=124(%esp),<in10=%ecx 2536addl 124(%esp),%ecx 2537 2538# qhasm: in11 += j11 2539# asm 1: addl <j11=stack32#33,<in11=int32#7 2540# asm 2: addl <j11=128(%esp),<in11=%ebp 2541addl 128(%esp),%ebp 2542 2543# qhasm: in10 ^= *(uint32 *) (m + 40) 2544# asm 1: xorl 40(<m=int32#5),<in10=int32#2 2545# asm 2: xorl 40(<m=%esi),<in10=%ecx 2546xorl 40(%esi),%ecx 2547 2548# qhasm: in11 ^= *(uint32 *) (m + 44) 2549# asm 1: xorl 44(<m=int32#5),<in11=int32#7 2550# asm 2: xorl 44(<m=%esi),<in11=%ebp 2551xorl 44(%esi),%ebp 2552 2553# qhasm: *(uint32 *) (out + 40) = in10 2554# asm 1: movl <in10=int32#2,40(<out=int32#6) 2555# asm 2: movl <in10=%ecx,40(<out=%edi) 2556movl %ecx,40(%edi) 2557 2558# qhasm: *(uint32 *) (out + 44) = in11 2559# asm 1: movl <in11=int32#7,44(<out=int32#6) 2560# asm 2: movl <in11=%ebp,44(<out=%edi) 2561movl %ebp,44(%edi) 2562 2563# qhasm: in12 = x12 2564# asm 1: movl <x12=stack32#18,>in12=int32#1 2565# asm 2: movl <x12=68(%esp),>in12=%eax 2566movl 68(%esp),%eax 2567 2568# qhasm: in13 = x13 2569# asm 1: movl <x13=stack32#19,>in13=int32#2 2570# asm 2: movl <x13=72(%esp),>in13=%ecx 2571movl 72(%esp),%ecx 2572 2573# qhasm: in12 += j12 2574# asm 1: addl <j12=stack32#34,<in12=int32#1 2575# asm 2: addl <j12=132(%esp),<in12=%eax 2576addl 132(%esp),%eax 2577 2578# qhasm: in13 += j13 2579# asm 1: addl <j13=stack32#35,<in13=int32#2 2580# asm 2: addl <j13=136(%esp),<in13=%ecx 2581addl 136(%esp),%ecx 2582 2583# qhasm: in12 ^= *(uint32 *) (m + 48) 2584# asm 1: xorl 48(<m=int32#5),<in12=int32#1 2585# asm 2: xorl 48(<m=%esi),<in12=%eax 2586xorl 48(%esi),%eax 2587 2588# qhasm: in13 ^= *(uint32 *) (m + 52) 2589# asm 1: xorl 52(<m=int32#5),<in13=int32#2 2590# asm 2: xorl 52(<m=%esi),<in13=%ecx 2591xorl 52(%esi),%ecx 2592 2593# qhasm: *(uint32 *) (out + 48) = in12 2594# asm 1: movl <in12=int32#1,48(<out=int32#6) 2595# asm 2: movl <in12=%eax,48(<out=%edi) 2596movl %eax,48(%edi) 2597 2598# qhasm: *(uint32 *) (out + 52) = in13 2599# asm 1: movl <in13=int32#2,52(<out=int32#6) 2600# asm 2: movl <in13=%ecx,52(<out=%edi) 2601movl %ecx,52(%edi) 2602 2603# qhasm: in14 = x14 2604# asm 1: movl <x14=stack32#20,>in14=int32#7 2605# asm 2: movl <x14=76(%esp),>in14=%ebp 2606movl 76(%esp),%ebp 2607 2608# qhasm: in15 = x15 2609# asm 1: movl <x15=stack32#21,>in15=int32#1 2610# asm 2: movl <x15=80(%esp),>in15=%eax 2611movl 80(%esp),%eax 2612 2613# qhasm: in14 += j14 2614# asm 1: addl <j14=stack32#36,<in14=int32#7 2615# asm 2: addl <j14=140(%esp),<in14=%ebp 2616addl 140(%esp),%ebp 2617 2618# qhasm: in15 += j15 2619# asm 1: addl <j15=stack32#37,<in15=int32#1 2620# asm 2: addl <j15=144(%esp),<in15=%eax 2621addl 144(%esp),%eax 2622 2623# qhasm: in14 ^= *(uint32 *) (m + 56) 2624# asm 1: xorl 56(<m=int32#5),<in14=int32#7 2625# asm 2: xorl 56(<m=%esi),<in14=%ebp 2626xorl 56(%esi),%ebp 2627 2628# qhasm: in15 ^= *(uint32 *) (m + 60) 2629# asm 1: xorl 60(<m=int32#5),<in15=int32#1 2630# asm 2: xorl 60(<m=%esi),<in15=%eax 2631xorl 60(%esi),%eax 2632 2633# qhasm: *(uint32 *) (out + 56) = in14 2634# asm 1: movl <in14=int32#7,56(<out=int32#6) 2635# asm 2: movl <in14=%ebp,56(<out=%edi) 2636movl %ebp,56(%edi) 2637 2638# qhasm: *(uint32 *) (out + 60) = in15 2639# asm 1: movl <in15=int32#1,60(<out=int32#6) 2640# asm 2: movl <in15=%eax,60(<out=%edi) 2641movl %eax,60(%edi) 2642 2643# qhasm: bytes = bytes_backup 2644# asm 1: movl <bytes_backup=stack32#42,>bytes=int32#4 2645# asm 2: movl <bytes_backup=164(%esp),>bytes=%ebx 2646movl 164(%esp),%ebx 2647 2648# qhasm: in8 = j8 2649# asm 1: movl <j8=stack32#30,>in8=int32#7 2650# asm 2: movl <j8=116(%esp),>in8=%ebp 2651movl 116(%esp),%ebp 2652 2653# qhasm: in9 = j9 2654# asm 1: movl <j9=stack32#31,>in9=int32#1 2655# asm 2: movl <j9=120(%esp),>in9=%eax 2656movl 120(%esp),%eax 2657 2658# qhasm: in8 += 1 2659# asm 1: add $1,<in8=int32#7 2660# asm 2: add $1,<in8=%ebp 2661add $1,%ebp 2662 2663# qhasm: in9 += 0 + carry 2664# asm 1: adc $0,<in9=int32#1 2665# asm 2: adc $0,<in9=%eax 2666adc $0,%eax 2667 2668# qhasm: j8 = in8 2669# asm 1: movl <in8=int32#7,>j8=stack32#30 2670# asm 2: movl <in8=%ebp,>j8=116(%esp) 2671movl %ebp,116(%esp) 2672 2673# qhasm: j9 = in9 2674# asm 1: movl <in9=int32#1,>j9=stack32#31 2675# asm 2: movl <in9=%eax,>j9=120(%esp) 2676movl %eax,120(%esp) 2677 2678# qhasm: unsigned>? unsigned<? bytes - 64 2679# asm 1: cmp $64,<bytes=int32#4 2680# asm 2: cmp $64,<bytes=%ebx 2681cmp $64,%ebx 2682# comment:fp stack unchanged by jump 2683 2684# qhasm: goto bytesatleast65 if unsigned> 2685ja ._bytesatleast65 2686# comment:fp stack unchanged by jump 2687 2688# qhasm: goto bytesatleast64 if !unsigned< 2689jae ._bytesatleast64 2690 2691# qhasm: m = out 2692# asm 1: mov <out=int32#6,>m=int32#5 2693# asm 2: mov <out=%edi,>m=%esi 2694mov %edi,%esi 2695 2696# qhasm: out = ctarget 2697# asm 1: movl <ctarget=stack32#39,>out=int32#6 2698# asm 2: movl <ctarget=152(%esp),>out=%edi 2699movl 152(%esp),%edi 2700 2701# qhasm: i = bytes 2702# asm 1: mov <bytes=int32#4,>i=int32#2 2703# asm 2: mov <bytes=%ebx,>i=%ecx 2704mov %ebx,%ecx 2705 2706# qhasm: while (i) { *out++ = *m++; --i } 2707rep movsb 2708# comment:fp stack unchanged by fallthrough 2709 2710# qhasm: bytesatleast64: 2711._bytesatleast64: 2712 2713# qhasm: x = x_backup 2714# asm 1: movl <x_backup=stack32#38,>x=int32#3 2715# asm 2: movl <x_backup=148(%esp),>x=%edx 2716movl 148(%esp),%edx 2717 2718# qhasm: in8 = j8 2719# asm 1: movl <j8=stack32#30,>in8=int32#1 2720# asm 2: movl <j8=116(%esp),>in8=%eax 2721movl 116(%esp),%eax 2722 2723# qhasm: in9 = j9 2724# asm 1: movl <j9=stack32#31,>in9=int32#2 2725# asm 2: movl <j9=120(%esp),>in9=%ecx 2726movl 120(%esp),%ecx 2727 2728# qhasm: *(uint32 *) (x + 32) = in8 2729# asm 1: movl <in8=int32#1,32(<x=int32#3) 2730# asm 2: movl <in8=%eax,32(<x=%edx) 2731movl %eax,32(%edx) 2732 2733# qhasm: *(uint32 *) (x + 36) = in9 2734# asm 1: movl <in9=int32#2,36(<x=int32#3) 2735# asm 2: movl <in9=%ecx,36(<x=%edx) 2736movl %ecx,36(%edx) 2737# comment:fp stack unchanged by fallthrough 2738 2739# qhasm: done: 2740._done: 2741 2742# qhasm: eax = eax_stack 2743# asm 1: movl <eax_stack=stack32#1,>eax=int32#1 2744# asm 2: movl <eax_stack=0(%esp),>eax=%eax 2745movl 0(%esp),%eax 2746 2747# qhasm: ebx = ebx_stack 2748# asm 1: movl <ebx_stack=stack32#2,>ebx=int32#4 2749# asm 2: movl <ebx_stack=4(%esp),>ebx=%ebx 2750movl 4(%esp),%ebx 2751 2752# qhasm: esi = esi_stack 2753# asm 1: movl <esi_stack=stack32#3,>esi=int32#5 2754# asm 2: movl <esi_stack=8(%esp),>esi=%esi 2755movl 8(%esp),%esi 2756 2757# qhasm: edi = edi_stack 2758# asm 1: movl <edi_stack=stack32#4,>edi=int32#6 2759# asm 2: movl <edi_stack=12(%esp),>edi=%edi 2760movl 12(%esp),%edi 2761 2762# qhasm: ebp = ebp_stack 2763# asm 1: movl <ebp_stack=stack32#5,>ebp=int32#7 2764# asm 2: movl <ebp_stack=16(%esp),>ebp=%ebp 2765movl 16(%esp),%ebp 2766 2767# qhasm: leave 2768add %eax,%esp 2769ret 2770 2771# qhasm: bytesatleast65: 2772._bytesatleast65: 2773 2774# qhasm: bytes -= 64 2775# asm 1: sub $64,<bytes=int32#4 2776# asm 2: sub $64,<bytes=%ebx 2777sub $64,%ebx 2778 2779# qhasm: out += 64 2780# asm 1: add $64,<out=int32#6 2781# asm 2: add $64,<out=%edi 2782add $64,%edi 2783 2784# qhasm: m += 64 2785# asm 1: add $64,<m=int32#5 2786# asm 2: add $64,<m=%esi 2787add $64,%esi 2788# comment:fp stack unchanged by jump 2789 2790# qhasm: goto bytesatleast1 2791jmp ._bytesatleast1 2792 2793# qhasm: enter ECRYPT_init 2794.text 2795.p2align 5 2796.globl _ECRYPT_init 2797.globl ECRYPT_init 2798_ECRYPT_init: 2799ECRYPT_init: 2800mov %esp,%eax 2801and $31,%eax 2802add $256,%eax 2803sub %eax,%esp 2804 2805# qhasm: leave 2806add %eax,%esp 2807ret 2808 2809# qhasm: enter ECRYPT_keysetup 2810.text 2811.p2align 5 2812.globl _ECRYPT_keysetup 2813.globl ECRYPT_keysetup 2814_ECRYPT_keysetup: 2815ECRYPT_keysetup: 2816mov %esp,%eax 2817and $31,%eax 2818add $256,%eax 2819sub %eax,%esp 2820 2821# qhasm: eax_stack = eax 2822# asm 1: movl <eax=int32#1,>eax_stack=stack32#1 2823# asm 2: movl <eax=%eax,>eax_stack=0(%esp) 2824movl %eax,0(%esp) 2825 2826# qhasm: ebx_stack = ebx 2827# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2 2828# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp) 2829movl %ebx,4(%esp) 2830 2831# qhasm: esi_stack = esi 2832# asm 1: movl <esi=int32#5,>esi_stack=stack32#3 2833# asm 2: movl <esi=%esi,>esi_stack=8(%esp) 2834movl %esi,8(%esp) 2835 2836# qhasm: edi_stack = edi 2837# asm 1: movl <edi=int32#6,>edi_stack=stack32#4 2838# asm 2: movl <edi=%edi,>edi_stack=12(%esp) 2839movl %edi,12(%esp) 2840 2841# qhasm: ebp_stack = ebp 2842# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5 2843# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp) 2844movl %ebp,16(%esp) 2845 2846# qhasm: k = arg2 2847# asm 1: movl <arg2=stack32#-2,>k=int32#2 2848# asm 2: movl <arg2=8(%esp,%eax),>k=%ecx 2849movl 8(%esp,%eax),%ecx 2850 2851# qhasm: kbits = arg3 2852# asm 1: movl <arg3=stack32#-3,>kbits=int32#3 2853# asm 2: movl <arg3=12(%esp,%eax),>kbits=%edx 2854movl 12(%esp,%eax),%edx 2855 2856# qhasm: x = arg1 2857# asm 1: movl <arg1=stack32#-1,>x=int32#1 2858# asm 2: movl <arg1=4(%esp,%eax),>x=%eax 2859movl 4(%esp,%eax),%eax 2860 2861# qhasm: in1 = *(uint32 *) (k + 0) 2862# asm 1: movl 0(<k=int32#2),>in1=int32#4 2863# asm 2: movl 0(<k=%ecx),>in1=%ebx 2864movl 0(%ecx),%ebx 2865 2866# qhasm: in2 = *(uint32 *) (k + 4) 2867# asm 1: movl 4(<k=int32#2),>in2=int32#5 2868# asm 2: movl 4(<k=%ecx),>in2=%esi 2869movl 4(%ecx),%esi 2870 2871# qhasm: in3 = *(uint32 *) (k + 8) 2872# asm 1: movl 8(<k=int32#2),>in3=int32#6 2873# asm 2: movl 8(<k=%ecx),>in3=%edi 2874movl 8(%ecx),%edi 2875 2876# qhasm: in4 = *(uint32 *) (k + 12) 2877# asm 1: movl 12(<k=int32#2),>in4=int32#7 2878# asm 2: movl 12(<k=%ecx),>in4=%ebp 2879movl 12(%ecx),%ebp 2880 2881# qhasm: *(uint32 *) (x + 4) = in1 2882# asm 1: movl <in1=int32#4,4(<x=int32#1) 2883# asm 2: movl <in1=%ebx,4(<x=%eax) 2884movl %ebx,4(%eax) 2885 2886# qhasm: *(uint32 *) (x + 8) = in2 2887# asm 1: movl <in2=int32#5,8(<x=int32#1) 2888# asm 2: movl <in2=%esi,8(<x=%eax) 2889movl %esi,8(%eax) 2890 2891# qhasm: *(uint32 *) (x + 12) = in3 2892# asm 1: movl <in3=int32#6,12(<x=int32#1) 2893# asm 2: movl <in3=%edi,12(<x=%eax) 2894movl %edi,12(%eax) 2895 2896# qhasm: *(uint32 *) (x + 16) = in4 2897# asm 1: movl <in4=int32#7,16(<x=int32#1) 2898# asm 2: movl <in4=%ebp,16(<x=%eax) 2899movl %ebp,16(%eax) 2900 2901# qhasm: unsigned<? kbits - 256 2902# asm 1: cmp $256,<kbits=int32#3 2903# asm 2: cmp $256,<kbits=%edx 2904cmp $256,%edx 2905# comment:fp stack unchanged by jump 2906 2907# qhasm: goto kbits128 if unsigned< 2908jb ._kbits128 2909 2910# qhasm: kbits256: 2911._kbits256: 2912 2913# qhasm: in11 = *(uint32 *) (k + 16) 2914# asm 1: movl 16(<k=int32#2),>in11=int32#3 2915# asm 2: movl 16(<k=%ecx),>in11=%edx 2916movl 16(%ecx),%edx 2917 2918# qhasm: in12 = *(uint32 *) (k + 20) 2919# asm 1: movl 20(<k=int32#2),>in12=int32#4 2920# asm 2: movl 20(<k=%ecx),>in12=%ebx 2921movl 20(%ecx),%ebx 2922 2923# qhasm: in13 = *(uint32 *) (k + 24) 2924# asm 1: movl 24(<k=int32#2),>in13=int32#5 2925# asm 2: movl 24(<k=%ecx),>in13=%esi 2926movl 24(%ecx),%esi 2927 2928# qhasm: in14 = *(uint32 *) (k + 28) 2929# asm 1: movl 28(<k=int32#2),>in14=int32#2 2930# asm 2: movl 28(<k=%ecx),>in14=%ecx 2931movl 28(%ecx),%ecx 2932 2933# qhasm: *(uint32 *) (x + 44) = in11 2934# asm 1: movl <in11=int32#3,44(<x=int32#1) 2935# asm 2: movl <in11=%edx,44(<x=%eax) 2936movl %edx,44(%eax) 2937 2938# qhasm: *(uint32 *) (x + 48) = in12 2939# asm 1: movl <in12=int32#4,48(<x=int32#1) 2940# asm 2: movl <in12=%ebx,48(<x=%eax) 2941movl %ebx,48(%eax) 2942 2943# qhasm: *(uint32 *) (x + 52) = in13 2944# asm 1: movl <in13=int32#5,52(<x=int32#1) 2945# asm 2: movl <in13=%esi,52(<x=%eax) 2946movl %esi,52(%eax) 2947 2948# qhasm: *(uint32 *) (x + 56) = in14 2949# asm 1: movl <in14=int32#2,56(<x=int32#1) 2950# asm 2: movl <in14=%ecx,56(<x=%eax) 2951movl %ecx,56(%eax) 2952 2953# qhasm: in0 = 1634760805 2954# asm 1: mov $1634760805,>in0=int32#2 2955# asm 2: mov $1634760805,>in0=%ecx 2956mov $1634760805,%ecx 2957 2958# qhasm: in5 = 857760878 2959# asm 1: mov $857760878,>in5=int32#3 2960# asm 2: mov $857760878,>in5=%edx 2961mov $857760878,%edx 2962 2963# qhasm: in10 = 2036477234 2964# asm 1: mov $2036477234,>in10=int32#4 2965# asm 2: mov $2036477234,>in10=%ebx 2966mov $2036477234,%ebx 2967 2968# qhasm: in15 = 1797285236 2969# asm 1: mov $1797285236,>in15=int32#5 2970# asm 2: mov $1797285236,>in15=%esi 2971mov $1797285236,%esi 2972 2973# qhasm: *(uint32 *) (x + 0) = in0 2974# asm 1: movl <in0=int32#2,0(<x=int32#1) 2975# asm 2: movl <in0=%ecx,0(<x=%eax) 2976movl %ecx,0(%eax) 2977 2978# qhasm: *(uint32 *) (x + 20) = in5 2979# asm 1: movl <in5=int32#3,20(<x=int32#1) 2980# asm 2: movl <in5=%edx,20(<x=%eax) 2981movl %edx,20(%eax) 2982 2983# qhasm: *(uint32 *) (x + 40) = in10 2984# asm 1: movl <in10=int32#4,40(<x=int32#1) 2985# asm 2: movl <in10=%ebx,40(<x=%eax) 2986movl %ebx,40(%eax) 2987 2988# qhasm: *(uint32 *) (x + 60) = in15 2989# asm 1: movl <in15=int32#5,60(<x=int32#1) 2990# asm 2: movl <in15=%esi,60(<x=%eax) 2991movl %esi,60(%eax) 2992# comment:fp stack unchanged by jump 2993 2994# qhasm: goto keysetupdone 2995jmp ._keysetupdone 2996 2997# qhasm: kbits128: 2998._kbits128: 2999 3000# qhasm: in11 = *(uint32 *) (k + 0) 3001# asm 1: movl 0(<k=int32#2),>in11=int32#3 3002# asm 2: movl 0(<k=%ecx),>in11=%edx 3003movl 0(%ecx),%edx 3004 3005# qhasm: in12 = *(uint32 *) (k + 4) 3006# asm 1: movl 4(<k=int32#2),>in12=int32#4 3007# asm 2: movl 4(<k=%ecx),>in12=%ebx 3008movl 4(%ecx),%ebx 3009 3010# qhasm: in13 = *(uint32 *) (k + 8) 3011# asm 1: movl 8(<k=int32#2),>in13=int32#5 3012# asm 2: movl 8(<k=%ecx),>in13=%esi 3013movl 8(%ecx),%esi 3014 3015# qhasm: in14 = *(uint32 *) (k + 12) 3016# asm 1: movl 12(<k=int32#2),>in14=int32#2 3017# asm 2: movl 12(<k=%ecx),>in14=%ecx 3018movl 12(%ecx),%ecx 3019 3020# qhasm: *(uint32 *) (x + 44) = in11 3021# asm 1: movl <in11=int32#3,44(<x=int32#1) 3022# asm 2: movl <in11=%edx,44(<x=%eax) 3023movl %edx,44(%eax) 3024 3025# qhasm: *(uint32 *) (x + 48) = in12 3026# asm 1: movl <in12=int32#4,48(<x=int32#1) 3027# asm 2: movl <in12=%ebx,48(<x=%eax) 3028movl %ebx,48(%eax) 3029 3030# qhasm: *(uint32 *) (x + 52) = in13 3031# asm 1: movl <in13=int32#5,52(<x=int32#1) 3032# asm 2: movl <in13=%esi,52(<x=%eax) 3033movl %esi,52(%eax) 3034 3035# qhasm: *(uint32 *) (x + 56) = in14 3036# asm 1: movl <in14=int32#2,56(<x=int32#1) 3037# asm 2: movl <in14=%ecx,56(<x=%eax) 3038movl %ecx,56(%eax) 3039 3040# qhasm: in0 = 1634760805 3041# asm 1: mov $1634760805,>in0=int32#2 3042# asm 2: mov $1634760805,>in0=%ecx 3043mov $1634760805,%ecx 3044 3045# qhasm: in5 = 824206446 3046# asm 1: mov $824206446,>in5=int32#3 3047# asm 2: mov $824206446,>in5=%edx 3048mov $824206446,%edx 3049 3050# qhasm: in10 = 2036477238 3051# asm 1: mov $2036477238,>in10=int32#4 3052# asm 2: mov $2036477238,>in10=%ebx 3053mov $2036477238,%ebx 3054 3055# qhasm: in15 = 1797285236 3056# asm 1: mov $1797285236,>in15=int32#5 3057# asm 2: mov $1797285236,>in15=%esi 3058mov $1797285236,%esi 3059 3060# qhasm: *(uint32 *) (x + 0) = in0 3061# asm 1: movl <in0=int32#2,0(<x=int32#1) 3062# asm 2: movl <in0=%ecx,0(<x=%eax) 3063movl %ecx,0(%eax) 3064 3065# qhasm: *(uint32 *) (x + 20) = in5 3066# asm 1: movl <in5=int32#3,20(<x=int32#1) 3067# asm 2: movl <in5=%edx,20(<x=%eax) 3068movl %edx,20(%eax) 3069 3070# qhasm: *(uint32 *) (x + 40) = in10 3071# asm 1: movl <in10=int32#4,40(<x=int32#1) 3072# asm 2: movl <in10=%ebx,40(<x=%eax) 3073movl %ebx,40(%eax) 3074 3075# qhasm: *(uint32 *) (x + 60) = in15 3076# asm 1: movl <in15=int32#5,60(<x=int32#1) 3077# asm 2: movl <in15=%esi,60(<x=%eax) 3078movl %esi,60(%eax) 3079 3080# qhasm: keysetupdone: 3081._keysetupdone: 3082 3083# qhasm: eax = eax_stack 3084# asm 1: movl <eax_stack=stack32#1,>eax=int32#1 3085# asm 2: movl <eax_stack=0(%esp),>eax=%eax 3086movl 0(%esp),%eax 3087 3088# qhasm: ebx = ebx_stack 3089# asm 1: movl <ebx_stack=stack32#2,>ebx=int32#4 3090# asm 2: movl <ebx_stack=4(%esp),>ebx=%ebx 3091movl 4(%esp),%ebx 3092 3093# qhasm: esi = esi_stack 3094# asm 1: movl <esi_stack=stack32#3,>esi=int32#5 3095# asm 2: movl <esi_stack=8(%esp),>esi=%esi 3096movl 8(%esp),%esi 3097 3098# qhasm: edi = edi_stack 3099# asm 1: movl <edi_stack=stack32#4,>edi=int32#6 3100# asm 2: movl <edi_stack=12(%esp),>edi=%edi 3101movl 12(%esp),%edi 3102 3103# qhasm: ebp = ebp_stack 3104# asm 1: movl <ebp_stack=stack32#5,>ebp=int32#7 3105# asm 2: movl <ebp_stack=16(%esp),>ebp=%ebp 3106movl 16(%esp),%ebp 3107 3108# qhasm: leave 3109add %eax,%esp 3110ret 3111 3112# qhasm: enter ECRYPT_ivsetup 3113.text 3114.p2align 5 3115.globl _ECRYPT_ivsetup 3116.globl ECRYPT_ivsetup 3117_ECRYPT_ivsetup: 3118ECRYPT_ivsetup: 3119mov %esp,%eax 3120and $31,%eax 3121add $256,%eax 3122sub %eax,%esp 3123 3124# qhasm: eax_stack = eax 3125# asm 1: movl <eax=int32#1,>eax_stack=stack32#1 3126# asm 2: movl <eax=%eax,>eax_stack=0(%esp) 3127movl %eax,0(%esp) 3128 3129# qhasm: ebx_stack = ebx 3130# asm 1: movl <ebx=int32#4,>ebx_stack=stack32#2 3131# asm 2: movl <ebx=%ebx,>ebx_stack=4(%esp) 3132movl %ebx,4(%esp) 3133 3134# qhasm: esi_stack = esi 3135# asm 1: movl <esi=int32#5,>esi_stack=stack32#3 3136# asm 2: movl <esi=%esi,>esi_stack=8(%esp) 3137movl %esi,8(%esp) 3138 3139# qhasm: edi_stack = edi 3140# asm 1: movl <edi=int32#6,>edi_stack=stack32#4 3141# asm 2: movl <edi=%edi,>edi_stack=12(%esp) 3142movl %edi,12(%esp) 3143 3144# qhasm: ebp_stack = ebp 3145# asm 1: movl <ebp=int32#7,>ebp_stack=stack32#5 3146# asm 2: movl <ebp=%ebp,>ebp_stack=16(%esp) 3147movl %ebp,16(%esp) 3148 3149# qhasm: iv = arg2 3150# asm 1: movl <arg2=stack32#-2,>iv=int32#2 3151# asm 2: movl <arg2=8(%esp,%eax),>iv=%ecx 3152movl 8(%esp,%eax),%ecx 3153 3154# qhasm: x = arg1 3155# asm 1: movl <arg1=stack32#-1,>x=int32#1 3156# asm 2: movl <arg1=4(%esp,%eax),>x=%eax 3157movl 4(%esp,%eax),%eax 3158 3159# qhasm: in6 = *(uint32 *) (iv + 0) 3160# asm 1: movl 0(<iv=int32#2),>in6=int32#3 3161# asm 2: movl 0(<iv=%ecx),>in6=%edx 3162movl 0(%ecx),%edx 3163 3164# qhasm: in7 = *(uint32 *) (iv + 4) 3165# asm 1: movl 4(<iv=int32#2),>in7=int32#2 3166# asm 2: movl 4(<iv=%ecx),>in7=%ecx 3167movl 4(%ecx),%ecx 3168 3169# qhasm: in8 = 0 3170# asm 1: mov $0,>in8=int32#4 3171# asm 2: mov $0,>in8=%ebx 3172mov $0,%ebx 3173 3174# qhasm: in9 = 0 3175# asm 1: mov $0,>in9=int32#5 3176# asm 2: mov $0,>in9=%esi 3177mov $0,%esi 3178 3179# qhasm: *(uint32 *) (x + 24) = in6 3180# asm 1: movl <in6=int32#3,24(<x=int32#1) 3181# asm 2: movl <in6=%edx,24(<x=%eax) 3182movl %edx,24(%eax) 3183 3184# qhasm: *(uint32 *) (x + 28) = in7 3185# asm 1: movl <in7=int32#2,28(<x=int32#1) 3186# asm 2: movl <in7=%ecx,28(<x=%eax) 3187movl %ecx,28(%eax) 3188 3189# qhasm: *(uint32 *) (x + 32) = in8 3190# asm 1: movl <in8=int32#4,32(<x=int32#1) 3191# asm 2: movl <in8=%ebx,32(<x=%eax) 3192movl %ebx,32(%eax) 3193 3194# qhasm: *(uint32 *) (x + 36) = in9 3195# asm 1: movl <in9=int32#5,36(<x=int32#1) 3196# asm 2: movl <in9=%esi,36(<x=%eax) 3197movl %esi,36(%eax) 3198 3199# qhasm: eax = eax_stack 3200# asm 1: movl <eax_stack=stack32#1,>eax=int32#1 3201# asm 2: movl <eax_stack=0(%esp),>eax=%eax 3202movl 0(%esp),%eax 3203 3204# qhasm: ebx = ebx_stack 3205# asm 1: movl <ebx_stack=stack32#2,>ebx=int32#4 3206# asm 2: movl <ebx_stack=4(%esp),>ebx=%ebx 3207movl 4(%esp),%ebx 3208 3209# qhasm: esi = esi_stack 3210# asm 1: movl <esi_stack=stack32#3,>esi=int32#5 3211# asm 2: movl <esi_stack=8(%esp),>esi=%esi 3212movl 8(%esp),%esi 3213 3214# qhasm: edi = edi_stack 3215# asm 1: movl <edi_stack=stack32#4,>edi=int32#6 3216# asm 2: movl <edi_stack=12(%esp),>edi=%edi 3217movl 12(%esp),%edi 3218 3219# qhasm: ebp = ebp_stack 3220# asm 1: movl <ebp_stack=stack32#5,>ebp=int32#7 3221# asm 2: movl <ebp_stack=16(%esp),>ebp=%ebp 3222movl 16(%esp),%ebp 3223 3224# qhasm: leave 3225add %eax,%esp 3226ret 3227