1238405Sjkim # $FreeBSD$ 2238405Sjkim.text 3238405Sjkim 4238405Sjkim.type MULADD_128x512,@function 5238405Sjkim.align 16 6238405SjkimMULADD_128x512: 7238405Sjkim movq 0(%rsi),%rax 8238405Sjkim mulq %rbp 9238405Sjkim addq %rax,%r8 10238405Sjkim adcq $0,%rdx 11238405Sjkim movq %r8,0(%rcx) 12238405Sjkim movq %rdx,%rbx 13238405Sjkim 14238405Sjkim movq 8(%rsi),%rax 15238405Sjkim mulq %rbp 16238405Sjkim addq %rax,%r9 17238405Sjkim adcq $0,%rdx 18238405Sjkim addq %rbx,%r9 19238405Sjkim adcq $0,%rdx 20238405Sjkim movq %rdx,%rbx 21238405Sjkim 22238405Sjkim movq 16(%rsi),%rax 23238405Sjkim mulq %rbp 24238405Sjkim addq %rax,%r10 25238405Sjkim adcq $0,%rdx 26238405Sjkim addq %rbx,%r10 27238405Sjkim adcq $0,%rdx 28238405Sjkim movq %rdx,%rbx 29238405Sjkim 30238405Sjkim movq 24(%rsi),%rax 31238405Sjkim mulq %rbp 32238405Sjkim addq %rax,%r11 33238405Sjkim adcq $0,%rdx 34238405Sjkim addq %rbx,%r11 35238405Sjkim adcq $0,%rdx 36238405Sjkim movq %rdx,%rbx 37238405Sjkim 38238405Sjkim movq 32(%rsi),%rax 39238405Sjkim mulq %rbp 40238405Sjkim addq %rax,%r12 41238405Sjkim adcq $0,%rdx 42238405Sjkim addq %rbx,%r12 43238405Sjkim adcq $0,%rdx 44238405Sjkim movq %rdx,%rbx 45238405Sjkim 46238405Sjkim movq 40(%rsi),%rax 47238405Sjkim mulq %rbp 48238405Sjkim addq %rax,%r13 49238405Sjkim adcq $0,%rdx 50238405Sjkim addq %rbx,%r13 51238405Sjkim adcq $0,%rdx 52238405Sjkim movq %rdx,%rbx 53238405Sjkim 54238405Sjkim movq 48(%rsi),%rax 55238405Sjkim mulq %rbp 56238405Sjkim addq %rax,%r14 57238405Sjkim adcq $0,%rdx 58238405Sjkim addq %rbx,%r14 59238405Sjkim adcq $0,%rdx 60238405Sjkim movq %rdx,%rbx 61238405Sjkim 62238405Sjkim movq 56(%rsi),%rax 63238405Sjkim mulq %rbp 64238405Sjkim addq %rax,%r15 65238405Sjkim adcq $0,%rdx 66238405Sjkim addq %rbx,%r15 67238405Sjkim adcq $0,%rdx 68238405Sjkim movq %rdx,%r8 69238405Sjkim movq 8(%rdi),%rbp 70238405Sjkim movq 0(%rsi),%rax 71238405Sjkim mulq %rbp 72238405Sjkim addq %rax,%r9 73238405Sjkim adcq $0,%rdx 74238405Sjkim movq %r9,8(%rcx) 75238405Sjkim movq %rdx,%rbx 76238405Sjkim 77238405Sjkim movq 8(%rsi),%rax 78238405Sjkim mulq %rbp 79238405Sjkim addq %rax,%r10 80238405Sjkim adcq $0,%rdx 81238405Sjkim addq %rbx,%r10 82238405Sjkim adcq $0,%rdx 83238405Sjkim movq %rdx,%rbx 84238405Sjkim 85238405Sjkim movq 16(%rsi),%rax 86238405Sjkim mulq %rbp 87238405Sjkim addq %rax,%r11 88238405Sjkim adcq $0,%rdx 89238405Sjkim addq %rbx,%r11 90238405Sjkim adcq $0,%rdx 91238405Sjkim movq %rdx,%rbx 92238405Sjkim 93238405Sjkim movq 24(%rsi),%rax 94238405Sjkim mulq %rbp 95238405Sjkim addq %rax,%r12 96238405Sjkim adcq $0,%rdx 97238405Sjkim addq %rbx,%r12 98238405Sjkim adcq $0,%rdx 99238405Sjkim movq %rdx,%rbx 100238405Sjkim 101238405Sjkim movq 32(%rsi),%rax 102238405Sjkim mulq %rbp 103238405Sjkim addq %rax,%r13 104238405Sjkim adcq $0,%rdx 105238405Sjkim addq %rbx,%r13 106238405Sjkim adcq $0,%rdx 107238405Sjkim movq %rdx,%rbx 108238405Sjkim 109238405Sjkim movq 40(%rsi),%rax 110238405Sjkim mulq %rbp 111238405Sjkim addq %rax,%r14 112238405Sjkim adcq $0,%rdx 113238405Sjkim addq %rbx,%r14 114238405Sjkim adcq $0,%rdx 115238405Sjkim movq %rdx,%rbx 116238405Sjkim 117238405Sjkim movq 48(%rsi),%rax 118238405Sjkim mulq %rbp 119238405Sjkim addq %rax,%r15 120238405Sjkim adcq $0,%rdx 121238405Sjkim addq %rbx,%r15 122238405Sjkim adcq $0,%rdx 123238405Sjkim movq %rdx,%rbx 124238405Sjkim 125238405Sjkim movq 56(%rsi),%rax 126238405Sjkim mulq %rbp 127238405Sjkim addq %rax,%r8 128238405Sjkim adcq $0,%rdx 129238405Sjkim addq %rbx,%r8 130238405Sjkim adcq $0,%rdx 131238405Sjkim movq %rdx,%r9 132238405Sjkim .byte 0xf3,0xc3 133238405Sjkim.size MULADD_128x512,.-MULADD_128x512 134238405Sjkim.type mont_reduce,@function 135238405Sjkim.align 16 136238405Sjkimmont_reduce: 137238405Sjkim leaq 192(%rsp),%rdi 138238405Sjkim movq 32(%rsp),%rsi 139238405Sjkim addq $576,%rsi 140238405Sjkim leaq 520(%rsp),%rcx 141238405Sjkim 142238405Sjkim movq 96(%rcx),%rbp 143238405Sjkim movq 0(%rsi),%rax 144238405Sjkim mulq %rbp 145238405Sjkim movq (%rcx),%r8 146238405Sjkim addq %rax,%r8 147238405Sjkim adcq $0,%rdx 148238405Sjkim movq %r8,0(%rdi) 149238405Sjkim movq %rdx,%rbx 150238405Sjkim 151238405Sjkim movq 8(%rsi),%rax 152238405Sjkim mulq %rbp 153238405Sjkim movq 8(%rcx),%r9 154238405Sjkim addq %rax,%r9 155238405Sjkim adcq $0,%rdx 156238405Sjkim addq %rbx,%r9 157238405Sjkim adcq $0,%rdx 158238405Sjkim movq %rdx,%rbx 159238405Sjkim 160238405Sjkim movq 16(%rsi),%rax 161238405Sjkim mulq %rbp 162238405Sjkim movq 16(%rcx),%r10 163238405Sjkim addq %rax,%r10 164238405Sjkim adcq $0,%rdx 165238405Sjkim addq %rbx,%r10 166238405Sjkim adcq $0,%rdx 167238405Sjkim movq %rdx,%rbx 168238405Sjkim 169238405Sjkim movq 24(%rsi),%rax 170238405Sjkim mulq %rbp 171238405Sjkim movq 24(%rcx),%r11 172238405Sjkim addq %rax,%r11 173238405Sjkim adcq $0,%rdx 174238405Sjkim addq %rbx,%r11 175238405Sjkim adcq $0,%rdx 176238405Sjkim movq %rdx,%rbx 177238405Sjkim 178238405Sjkim movq 32(%rsi),%rax 179238405Sjkim mulq %rbp 180238405Sjkim movq 32(%rcx),%r12 181238405Sjkim addq %rax,%r12 182238405Sjkim adcq $0,%rdx 183238405Sjkim addq %rbx,%r12 184238405Sjkim adcq $0,%rdx 185238405Sjkim movq %rdx,%rbx 186238405Sjkim 187238405Sjkim movq 40(%rsi),%rax 188238405Sjkim mulq %rbp 189238405Sjkim movq 40(%rcx),%r13 190238405Sjkim addq %rax,%r13 191238405Sjkim adcq $0,%rdx 192238405Sjkim addq %rbx,%r13 193238405Sjkim adcq $0,%rdx 194238405Sjkim movq %rdx,%rbx 195238405Sjkim 196238405Sjkim movq 48(%rsi),%rax 197238405Sjkim mulq %rbp 198238405Sjkim movq 48(%rcx),%r14 199238405Sjkim addq %rax,%r14 200238405Sjkim adcq $0,%rdx 201238405Sjkim addq %rbx,%r14 202238405Sjkim adcq $0,%rdx 203238405Sjkim movq %rdx,%rbx 204238405Sjkim 205238405Sjkim movq 56(%rsi),%rax 206238405Sjkim mulq %rbp 207238405Sjkim movq 56(%rcx),%r15 208238405Sjkim addq %rax,%r15 209238405Sjkim adcq $0,%rdx 210238405Sjkim addq %rbx,%r15 211238405Sjkim adcq $0,%rdx 212238405Sjkim movq %rdx,%r8 213238405Sjkim movq 104(%rcx),%rbp 214238405Sjkim movq 0(%rsi),%rax 215238405Sjkim mulq %rbp 216238405Sjkim addq %rax,%r9 217238405Sjkim adcq $0,%rdx 218238405Sjkim movq %r9,8(%rdi) 219238405Sjkim movq %rdx,%rbx 220238405Sjkim 221238405Sjkim movq 8(%rsi),%rax 222238405Sjkim mulq %rbp 223238405Sjkim addq %rax,%r10 224238405Sjkim adcq $0,%rdx 225238405Sjkim addq %rbx,%r10 226238405Sjkim adcq $0,%rdx 227238405Sjkim movq %rdx,%rbx 228238405Sjkim 229238405Sjkim movq 16(%rsi),%rax 230238405Sjkim mulq %rbp 231238405Sjkim addq %rax,%r11 232238405Sjkim adcq $0,%rdx 233238405Sjkim addq %rbx,%r11 234238405Sjkim adcq $0,%rdx 235238405Sjkim movq %rdx,%rbx 236238405Sjkim 237238405Sjkim movq 24(%rsi),%rax 238238405Sjkim mulq %rbp 239238405Sjkim addq %rax,%r12 240238405Sjkim adcq $0,%rdx 241238405Sjkim addq %rbx,%r12 242238405Sjkim adcq $0,%rdx 243238405Sjkim movq %rdx,%rbx 244238405Sjkim 245238405Sjkim movq 32(%rsi),%rax 246238405Sjkim mulq %rbp 247238405Sjkim addq %rax,%r13 248238405Sjkim adcq $0,%rdx 249238405Sjkim addq %rbx,%r13 250238405Sjkim adcq $0,%rdx 251238405Sjkim movq %rdx,%rbx 252238405Sjkim 253238405Sjkim movq 40(%rsi),%rax 254238405Sjkim mulq %rbp 255238405Sjkim addq %rax,%r14 256238405Sjkim adcq $0,%rdx 257238405Sjkim addq %rbx,%r14 258238405Sjkim adcq $0,%rdx 259238405Sjkim movq %rdx,%rbx 260238405Sjkim 261238405Sjkim movq 48(%rsi),%rax 262238405Sjkim mulq %rbp 263238405Sjkim addq %rax,%r15 264238405Sjkim adcq $0,%rdx 265238405Sjkim addq %rbx,%r15 266238405Sjkim adcq $0,%rdx 267238405Sjkim movq %rdx,%rbx 268238405Sjkim 269238405Sjkim movq 56(%rsi),%rax 270238405Sjkim mulq %rbp 271238405Sjkim addq %rax,%r8 272238405Sjkim adcq $0,%rdx 273238405Sjkim addq %rbx,%r8 274238405Sjkim adcq $0,%rdx 275238405Sjkim movq %rdx,%r9 276238405Sjkim movq 112(%rcx),%rbp 277238405Sjkim movq 0(%rsi),%rax 278238405Sjkim mulq %rbp 279238405Sjkim addq %rax,%r10 280238405Sjkim adcq $0,%rdx 281238405Sjkim movq %r10,16(%rdi) 282238405Sjkim movq %rdx,%rbx 283238405Sjkim 284238405Sjkim movq 8(%rsi),%rax 285238405Sjkim mulq %rbp 286238405Sjkim addq %rax,%r11 287238405Sjkim adcq $0,%rdx 288238405Sjkim addq %rbx,%r11 289238405Sjkim adcq $0,%rdx 290238405Sjkim movq %rdx,%rbx 291238405Sjkim 292238405Sjkim movq 16(%rsi),%rax 293238405Sjkim mulq %rbp 294238405Sjkim addq %rax,%r12 295238405Sjkim adcq $0,%rdx 296238405Sjkim addq %rbx,%r12 297238405Sjkim adcq $0,%rdx 298238405Sjkim movq %rdx,%rbx 299238405Sjkim 300238405Sjkim movq 24(%rsi),%rax 301238405Sjkim mulq %rbp 302238405Sjkim addq %rax,%r13 303238405Sjkim adcq $0,%rdx 304238405Sjkim addq %rbx,%r13 305238405Sjkim adcq $0,%rdx 306238405Sjkim movq %rdx,%rbx 307238405Sjkim 308238405Sjkim movq 32(%rsi),%rax 309238405Sjkim mulq %rbp 310238405Sjkim addq %rax,%r14 311238405Sjkim adcq $0,%rdx 312238405Sjkim addq %rbx,%r14 313238405Sjkim adcq $0,%rdx 314238405Sjkim movq %rdx,%rbx 315238405Sjkim 316238405Sjkim movq 40(%rsi),%rax 317238405Sjkim mulq %rbp 318238405Sjkim addq %rax,%r15 319238405Sjkim adcq $0,%rdx 320238405Sjkim addq %rbx,%r15 321238405Sjkim adcq $0,%rdx 322238405Sjkim movq %rdx,%rbx 323238405Sjkim 324238405Sjkim movq 48(%rsi),%rax 325238405Sjkim mulq %rbp 326238405Sjkim addq %rax,%r8 327238405Sjkim adcq $0,%rdx 328238405Sjkim addq %rbx,%r8 329238405Sjkim adcq $0,%rdx 330238405Sjkim movq %rdx,%rbx 331238405Sjkim 332238405Sjkim movq 56(%rsi),%rax 333238405Sjkim mulq %rbp 334238405Sjkim addq %rax,%r9 335238405Sjkim adcq $0,%rdx 336238405Sjkim addq %rbx,%r9 337238405Sjkim adcq $0,%rdx 338238405Sjkim movq %rdx,%r10 339238405Sjkim movq 120(%rcx),%rbp 340238405Sjkim movq 0(%rsi),%rax 341238405Sjkim mulq %rbp 342238405Sjkim addq %rax,%r11 343238405Sjkim adcq $0,%rdx 344238405Sjkim movq %r11,24(%rdi) 345238405Sjkim movq %rdx,%rbx 346238405Sjkim 347238405Sjkim movq 8(%rsi),%rax 348238405Sjkim mulq %rbp 349238405Sjkim addq %rax,%r12 350238405Sjkim adcq $0,%rdx 351238405Sjkim addq %rbx,%r12 352238405Sjkim adcq $0,%rdx 353238405Sjkim movq %rdx,%rbx 354238405Sjkim 355238405Sjkim movq 16(%rsi),%rax 356238405Sjkim mulq %rbp 357238405Sjkim addq %rax,%r13 358238405Sjkim adcq $0,%rdx 359238405Sjkim addq %rbx,%r13 360238405Sjkim adcq $0,%rdx 361238405Sjkim movq %rdx,%rbx 362238405Sjkim 363238405Sjkim movq 24(%rsi),%rax 364238405Sjkim mulq %rbp 365238405Sjkim addq %rax,%r14 366238405Sjkim adcq $0,%rdx 367238405Sjkim addq %rbx,%r14 368238405Sjkim adcq $0,%rdx 369238405Sjkim movq %rdx,%rbx 370238405Sjkim 371238405Sjkim movq 32(%rsi),%rax 372238405Sjkim mulq %rbp 373238405Sjkim addq %rax,%r15 374238405Sjkim adcq $0,%rdx 375238405Sjkim addq %rbx,%r15 376238405Sjkim adcq $0,%rdx 377238405Sjkim movq %rdx,%rbx 378238405Sjkim 379238405Sjkim movq 40(%rsi),%rax 380238405Sjkim mulq %rbp 381238405Sjkim addq %rax,%r8 382238405Sjkim adcq $0,%rdx 383238405Sjkim addq %rbx,%r8 384238405Sjkim adcq $0,%rdx 385238405Sjkim movq %rdx,%rbx 386238405Sjkim 387238405Sjkim movq 48(%rsi),%rax 388238405Sjkim mulq %rbp 389238405Sjkim addq %rax,%r9 390238405Sjkim adcq $0,%rdx 391238405Sjkim addq %rbx,%r9 392238405Sjkim adcq $0,%rdx 393238405Sjkim movq %rdx,%rbx 394238405Sjkim 395238405Sjkim movq 56(%rsi),%rax 396238405Sjkim mulq %rbp 397238405Sjkim addq %rax,%r10 398238405Sjkim adcq $0,%rdx 399238405Sjkim addq %rbx,%r10 400238405Sjkim adcq $0,%rdx 401238405Sjkim movq %rdx,%r11 402238405Sjkim xorq %rax,%rax 403238405Sjkim 404238405Sjkim addq 64(%rcx),%r8 405238405Sjkim adcq 72(%rcx),%r9 406238405Sjkim adcq 80(%rcx),%r10 407238405Sjkim adcq 88(%rcx),%r11 408238405Sjkim adcq $0,%rax 409238405Sjkim 410238405Sjkim 411238405Sjkim 412238405Sjkim 413238405Sjkim movq %r8,64(%rdi) 414238405Sjkim movq %r9,72(%rdi) 415238405Sjkim movq %r10,%rbp 416238405Sjkim movq %r11,88(%rdi) 417238405Sjkim 418238405Sjkim movq %rax,384(%rsp) 419238405Sjkim 420238405Sjkim movq 0(%rdi),%r8 421238405Sjkim movq 8(%rdi),%r9 422238405Sjkim movq 16(%rdi),%r10 423238405Sjkim movq 24(%rdi),%r11 424238405Sjkim 425238405Sjkim 426238405Sjkim 427238405Sjkim 428238405Sjkim 429238405Sjkim 430238405Sjkim 431238405Sjkim 432238405Sjkim addq $80,%rdi 433238405Sjkim 434238405Sjkim addq $64,%rsi 435238405Sjkim leaq 296(%rsp),%rcx 436238405Sjkim 437238405Sjkim call MULADD_128x512 438238405Sjkim 439238405Sjkim movq 384(%rsp),%rax 440238405Sjkim 441238405Sjkim 442238405Sjkim addq -16(%rdi),%r8 443238405Sjkim adcq -8(%rdi),%r9 444238405Sjkim movq %r8,64(%rcx) 445238405Sjkim movq %r9,72(%rcx) 446238405Sjkim 447238405Sjkim adcq %rax,%rax 448238405Sjkim movq %rax,384(%rsp) 449238405Sjkim 450238405Sjkim leaq 192(%rsp),%rdi 451238405Sjkim addq $64,%rsi 452238405Sjkim 453238405Sjkim 454238405Sjkim 455238405Sjkim 456238405Sjkim 457238405Sjkim movq (%rsi),%r8 458238405Sjkim movq 8(%rsi),%rbx 459238405Sjkim 460238405Sjkim movq (%rcx),%rax 461238405Sjkim mulq %r8 462238405Sjkim movq %rax,%rbp 463238405Sjkim movq %rdx,%r9 464238405Sjkim 465238405Sjkim movq 8(%rcx),%rax 466238405Sjkim mulq %r8 467238405Sjkim addq %rax,%r9 468238405Sjkim 469238405Sjkim movq (%rcx),%rax 470238405Sjkim mulq %rbx 471238405Sjkim addq %rax,%r9 472238405Sjkim 473238405Sjkim movq %r9,8(%rdi) 474238405Sjkim 475238405Sjkim 476238405Sjkim subq $192,%rsi 477238405Sjkim 478238405Sjkim movq (%rcx),%r8 479238405Sjkim movq 8(%rcx),%r9 480238405Sjkim 481238405Sjkim call MULADD_128x512 482238405Sjkim 483238405Sjkim 484238405Sjkim 485238405Sjkim 486238405Sjkim movq 0(%rsi),%rax 487238405Sjkim movq 8(%rsi),%rbx 488238405Sjkim movq 16(%rsi),%rdi 489238405Sjkim movq 24(%rsi),%rdx 490238405Sjkim 491238405Sjkim 492238405Sjkim movq 384(%rsp),%rbp 493238405Sjkim 494238405Sjkim addq 64(%rcx),%r8 495238405Sjkim adcq 72(%rcx),%r9 496238405Sjkim 497238405Sjkim 498238405Sjkim adcq %rbp,%rbp 499238405Sjkim 500238405Sjkim 501238405Sjkim 502238405Sjkim shlq $3,%rbp 503238405Sjkim movq 32(%rsp),%rcx 504238405Sjkim addq %rcx,%rbp 505238405Sjkim 506238405Sjkim 507238405Sjkim xorq %rsi,%rsi 508238405Sjkim 509238405Sjkim addq 0(%rbp),%r10 510238405Sjkim adcq 64(%rbp),%r11 511238405Sjkim adcq 128(%rbp),%r12 512238405Sjkim adcq 192(%rbp),%r13 513238405Sjkim adcq 256(%rbp),%r14 514238405Sjkim adcq 320(%rbp),%r15 515238405Sjkim adcq 384(%rbp),%r8 516238405Sjkim adcq 448(%rbp),%r9 517238405Sjkim 518238405Sjkim 519238405Sjkim 520238405Sjkim sbbq $0,%rsi 521238405Sjkim 522238405Sjkim 523238405Sjkim andq %rsi,%rax 524238405Sjkim andq %rsi,%rbx 525238405Sjkim andq %rsi,%rdi 526238405Sjkim andq %rsi,%rdx 527238405Sjkim 528238405Sjkim movq $1,%rbp 529238405Sjkim subq %rax,%r10 530238405Sjkim sbbq %rbx,%r11 531238405Sjkim sbbq %rdi,%r12 532238405Sjkim sbbq %rdx,%r13 533238405Sjkim 534238405Sjkim 535238405Sjkim 536238405Sjkim 537238405Sjkim sbbq $0,%rbp 538238405Sjkim 539238405Sjkim 540238405Sjkim 541238405Sjkim addq $512,%rcx 542238405Sjkim movq 32(%rcx),%rax 543238405Sjkim movq 40(%rcx),%rbx 544238405Sjkim movq 48(%rcx),%rdi 545238405Sjkim movq 56(%rcx),%rdx 546238405Sjkim 547238405Sjkim 548238405Sjkim 549238405Sjkim andq %rsi,%rax 550238405Sjkim andq %rsi,%rbx 551238405Sjkim andq %rsi,%rdi 552238405Sjkim andq %rsi,%rdx 553238405Sjkim 554238405Sjkim 555238405Sjkim 556238405Sjkim subq $1,%rbp 557238405Sjkim 558238405Sjkim sbbq %rax,%r14 559238405Sjkim sbbq %rbx,%r15 560238405Sjkim sbbq %rdi,%r8 561238405Sjkim sbbq %rdx,%r9 562238405Sjkim 563238405Sjkim 564238405Sjkim 565238405Sjkim movq 144(%rsp),%rsi 566238405Sjkim movq %r10,0(%rsi) 567238405Sjkim movq %r11,8(%rsi) 568238405Sjkim movq %r12,16(%rsi) 569238405Sjkim movq %r13,24(%rsi) 570238405Sjkim movq %r14,32(%rsi) 571238405Sjkim movq %r15,40(%rsi) 572238405Sjkim movq %r8,48(%rsi) 573238405Sjkim movq %r9,56(%rsi) 574238405Sjkim 575238405Sjkim .byte 0xf3,0xc3 576238405Sjkim.size mont_reduce,.-mont_reduce 577238405Sjkim.type mont_mul_a3b,@function 578238405Sjkim.align 16 579238405Sjkimmont_mul_a3b: 580238405Sjkim 581238405Sjkim 582238405Sjkim 583238405Sjkim 584238405Sjkim movq 0(%rdi),%rbp 585238405Sjkim 586238405Sjkim movq %r10,%rax 587238405Sjkim mulq %rbp 588238405Sjkim movq %rax,520(%rsp) 589238405Sjkim movq %rdx,%r10 590238405Sjkim movq %r11,%rax 591238405Sjkim mulq %rbp 592238405Sjkim addq %rax,%r10 593238405Sjkim adcq $0,%rdx 594238405Sjkim movq %rdx,%r11 595238405Sjkim movq %r12,%rax 596238405Sjkim mulq %rbp 597238405Sjkim addq %rax,%r11 598238405Sjkim adcq $0,%rdx 599238405Sjkim movq %rdx,%r12 600238405Sjkim movq %r13,%rax 601238405Sjkim mulq %rbp 602238405Sjkim addq %rax,%r12 603238405Sjkim adcq $0,%rdx 604238405Sjkim movq %rdx,%r13 605238405Sjkim movq %r14,%rax 606238405Sjkim mulq %rbp 607238405Sjkim addq %rax,%r13 608238405Sjkim adcq $0,%rdx 609238405Sjkim movq %rdx,%r14 610238405Sjkim movq %r15,%rax 611238405Sjkim mulq %rbp 612238405Sjkim addq %rax,%r14 613238405Sjkim adcq $0,%rdx 614238405Sjkim movq %rdx,%r15 615238405Sjkim movq %r8,%rax 616238405Sjkim mulq %rbp 617238405Sjkim addq %rax,%r15 618238405Sjkim adcq $0,%rdx 619238405Sjkim movq %rdx,%r8 620238405Sjkim movq %r9,%rax 621238405Sjkim mulq %rbp 622238405Sjkim addq %rax,%r8 623238405Sjkim adcq $0,%rdx 624238405Sjkim movq %rdx,%r9 625238405Sjkim movq 8(%rdi),%rbp 626238405Sjkim movq 0(%rsi),%rax 627238405Sjkim mulq %rbp 628238405Sjkim addq %rax,%r10 629238405Sjkim adcq $0,%rdx 630238405Sjkim movq %r10,528(%rsp) 631238405Sjkim movq %rdx,%rbx 632238405Sjkim 633238405Sjkim movq 8(%rsi),%rax 634238405Sjkim mulq %rbp 635238405Sjkim addq %rax,%r11 636238405Sjkim adcq $0,%rdx 637238405Sjkim addq %rbx,%r11 638238405Sjkim adcq $0,%rdx 639238405Sjkim movq %rdx,%rbx 640238405Sjkim 641238405Sjkim movq 16(%rsi),%rax 642238405Sjkim mulq %rbp 643238405Sjkim addq %rax,%r12 644238405Sjkim adcq $0,%rdx 645238405Sjkim addq %rbx,%r12 646238405Sjkim adcq $0,%rdx 647238405Sjkim movq %rdx,%rbx 648238405Sjkim 649238405Sjkim movq 24(%rsi),%rax 650238405Sjkim mulq %rbp 651238405Sjkim addq %rax,%r13 652238405Sjkim adcq $0,%rdx 653238405Sjkim addq %rbx,%r13 654238405Sjkim adcq $0,%rdx 655238405Sjkim movq %rdx,%rbx 656238405Sjkim 657238405Sjkim movq 32(%rsi),%rax 658238405Sjkim mulq %rbp 659238405Sjkim addq %rax,%r14 660238405Sjkim adcq $0,%rdx 661238405Sjkim addq %rbx,%r14 662238405Sjkim adcq $0,%rdx 663238405Sjkim movq %rdx,%rbx 664238405Sjkim 665238405Sjkim movq 40(%rsi),%rax 666238405Sjkim mulq %rbp 667238405Sjkim addq %rax,%r15 668238405Sjkim adcq $0,%rdx 669238405Sjkim addq %rbx,%r15 670238405Sjkim adcq $0,%rdx 671238405Sjkim movq %rdx,%rbx 672238405Sjkim 673238405Sjkim movq 48(%rsi),%rax 674238405Sjkim mulq %rbp 675238405Sjkim addq %rax,%r8 676238405Sjkim adcq $0,%rdx 677238405Sjkim addq %rbx,%r8 678238405Sjkim adcq $0,%rdx 679238405Sjkim movq %rdx,%rbx 680238405Sjkim 681238405Sjkim movq 56(%rsi),%rax 682238405Sjkim mulq %rbp 683238405Sjkim addq %rax,%r9 684238405Sjkim adcq $0,%rdx 685238405Sjkim addq %rbx,%r9 686238405Sjkim adcq $0,%rdx 687238405Sjkim movq %rdx,%r10 688238405Sjkim movq 16(%rdi),%rbp 689238405Sjkim movq 0(%rsi),%rax 690238405Sjkim mulq %rbp 691238405Sjkim addq %rax,%r11 692238405Sjkim adcq $0,%rdx 693238405Sjkim movq %r11,536(%rsp) 694238405Sjkim movq %rdx,%rbx 695238405Sjkim 696238405Sjkim movq 8(%rsi),%rax 697238405Sjkim mulq %rbp 698238405Sjkim addq %rax,%r12 699238405Sjkim adcq $0,%rdx 700238405Sjkim addq %rbx,%r12 701238405Sjkim adcq $0,%rdx 702238405Sjkim movq %rdx,%rbx 703238405Sjkim 704238405Sjkim movq 16(%rsi),%rax 705238405Sjkim mulq %rbp 706238405Sjkim addq %rax,%r13 707238405Sjkim adcq $0,%rdx 708238405Sjkim addq %rbx,%r13 709238405Sjkim adcq $0,%rdx 710238405Sjkim movq %rdx,%rbx 711238405Sjkim 712238405Sjkim movq 24(%rsi),%rax 713238405Sjkim mulq %rbp 714238405Sjkim addq %rax,%r14 715238405Sjkim adcq $0,%rdx 716238405Sjkim addq %rbx,%r14 717238405Sjkim adcq $0,%rdx 718238405Sjkim movq %rdx,%rbx 719238405Sjkim 720238405Sjkim movq 32(%rsi),%rax 721238405Sjkim mulq %rbp 722238405Sjkim addq %rax,%r15 723238405Sjkim adcq $0,%rdx 724238405Sjkim addq %rbx,%r15 725238405Sjkim adcq $0,%rdx 726238405Sjkim movq %rdx,%rbx 727238405Sjkim 728238405Sjkim movq 40(%rsi),%rax 729238405Sjkim mulq %rbp 730238405Sjkim addq %rax,%r8 731238405Sjkim adcq $0,%rdx 732238405Sjkim addq %rbx,%r8 733238405Sjkim adcq $0,%rdx 734238405Sjkim movq %rdx,%rbx 735238405Sjkim 736238405Sjkim movq 48(%rsi),%rax 737238405Sjkim mulq %rbp 738238405Sjkim addq %rax,%r9 739238405Sjkim adcq $0,%rdx 740238405Sjkim addq %rbx,%r9 741238405Sjkim adcq $0,%rdx 742238405Sjkim movq %rdx,%rbx 743238405Sjkim 744238405Sjkim movq 56(%rsi),%rax 745238405Sjkim mulq %rbp 746238405Sjkim addq %rax,%r10 747238405Sjkim adcq $0,%rdx 748238405Sjkim addq %rbx,%r10 749238405Sjkim adcq $0,%rdx 750238405Sjkim movq %rdx,%r11 751238405Sjkim movq 24(%rdi),%rbp 752238405Sjkim movq 0(%rsi),%rax 753238405Sjkim mulq %rbp 754238405Sjkim addq %rax,%r12 755238405Sjkim adcq $0,%rdx 756238405Sjkim movq %r12,544(%rsp) 757238405Sjkim movq %rdx,%rbx 758238405Sjkim 759238405Sjkim movq 8(%rsi),%rax 760238405Sjkim mulq %rbp 761238405Sjkim addq %rax,%r13 762238405Sjkim adcq $0,%rdx 763238405Sjkim addq %rbx,%r13 764238405Sjkim adcq $0,%rdx 765238405Sjkim movq %rdx,%rbx 766238405Sjkim 767238405Sjkim movq 16(%rsi),%rax 768238405Sjkim mulq %rbp 769238405Sjkim addq %rax,%r14 770238405Sjkim adcq $0,%rdx 771238405Sjkim addq %rbx,%r14 772238405Sjkim adcq $0,%rdx 773238405Sjkim movq %rdx,%rbx 774238405Sjkim 775238405Sjkim movq 24(%rsi),%rax 776238405Sjkim mulq %rbp 777238405Sjkim addq %rax,%r15 778238405Sjkim adcq $0,%rdx 779238405Sjkim addq %rbx,%r15 780238405Sjkim adcq $0,%rdx 781238405Sjkim movq %rdx,%rbx 782238405Sjkim 783238405Sjkim movq 32(%rsi),%rax 784238405Sjkim mulq %rbp 785238405Sjkim addq %rax,%r8 786238405Sjkim adcq $0,%rdx 787238405Sjkim addq %rbx,%r8 788238405Sjkim adcq $0,%rdx 789238405Sjkim movq %rdx,%rbx 790238405Sjkim 791238405Sjkim movq 40(%rsi),%rax 792238405Sjkim mulq %rbp 793238405Sjkim addq %rax,%r9 794238405Sjkim adcq $0,%rdx 795238405Sjkim addq %rbx,%r9 796238405Sjkim adcq $0,%rdx 797238405Sjkim movq %rdx,%rbx 798238405Sjkim 799238405Sjkim movq 48(%rsi),%rax 800238405Sjkim mulq %rbp 801238405Sjkim addq %rax,%r10 802238405Sjkim adcq $0,%rdx 803238405Sjkim addq %rbx,%r10 804238405Sjkim adcq $0,%rdx 805238405Sjkim movq %rdx,%rbx 806238405Sjkim 807238405Sjkim movq 56(%rsi),%rax 808238405Sjkim mulq %rbp 809238405Sjkim addq %rax,%r11 810238405Sjkim adcq $0,%rdx 811238405Sjkim addq %rbx,%r11 812238405Sjkim adcq $0,%rdx 813238405Sjkim movq %rdx,%r12 814238405Sjkim movq 32(%rdi),%rbp 815238405Sjkim movq 0(%rsi),%rax 816238405Sjkim mulq %rbp 817238405Sjkim addq %rax,%r13 818238405Sjkim adcq $0,%rdx 819238405Sjkim movq %r13,552(%rsp) 820238405Sjkim movq %rdx,%rbx 821238405Sjkim 822238405Sjkim movq 8(%rsi),%rax 823238405Sjkim mulq %rbp 824238405Sjkim addq %rax,%r14 825238405Sjkim adcq $0,%rdx 826238405Sjkim addq %rbx,%r14 827238405Sjkim adcq $0,%rdx 828238405Sjkim movq %rdx,%rbx 829238405Sjkim 830238405Sjkim movq 16(%rsi),%rax 831238405Sjkim mulq %rbp 832238405Sjkim addq %rax,%r15 833238405Sjkim adcq $0,%rdx 834238405Sjkim addq %rbx,%r15 835238405Sjkim adcq $0,%rdx 836238405Sjkim movq %rdx,%rbx 837238405Sjkim 838238405Sjkim movq 24(%rsi),%rax 839238405Sjkim mulq %rbp 840238405Sjkim addq %rax,%r8 841238405Sjkim adcq $0,%rdx 842238405Sjkim addq %rbx,%r8 843238405Sjkim adcq $0,%rdx 844238405Sjkim movq %rdx,%rbx 845238405Sjkim 846238405Sjkim movq 32(%rsi),%rax 847238405Sjkim mulq %rbp 848238405Sjkim addq %rax,%r9 849238405Sjkim adcq $0,%rdx 850238405Sjkim addq %rbx,%r9 851238405Sjkim adcq $0,%rdx 852238405Sjkim movq %rdx,%rbx 853238405Sjkim 854238405Sjkim movq 40(%rsi),%rax 855238405Sjkim mulq %rbp 856238405Sjkim addq %rax,%r10 857238405Sjkim adcq $0,%rdx 858238405Sjkim addq %rbx,%r10 859238405Sjkim adcq $0,%rdx 860238405Sjkim movq %rdx,%rbx 861238405Sjkim 862238405Sjkim movq 48(%rsi),%rax 863238405Sjkim mulq %rbp 864238405Sjkim addq %rax,%r11 865238405Sjkim adcq $0,%rdx 866238405Sjkim addq %rbx,%r11 867238405Sjkim adcq $0,%rdx 868238405Sjkim movq %rdx,%rbx 869238405Sjkim 870238405Sjkim movq 56(%rsi),%rax 871238405Sjkim mulq %rbp 872238405Sjkim addq %rax,%r12 873238405Sjkim adcq $0,%rdx 874238405Sjkim addq %rbx,%r12 875238405Sjkim adcq $0,%rdx 876238405Sjkim movq %rdx,%r13 877238405Sjkim movq 40(%rdi),%rbp 878238405Sjkim movq 0(%rsi),%rax 879238405Sjkim mulq %rbp 880238405Sjkim addq %rax,%r14 881238405Sjkim adcq $0,%rdx 882238405Sjkim movq %r14,560(%rsp) 883238405Sjkim movq %rdx,%rbx 884238405Sjkim 885238405Sjkim movq 8(%rsi),%rax 886238405Sjkim mulq %rbp 887238405Sjkim addq %rax,%r15 888238405Sjkim adcq $0,%rdx 889238405Sjkim addq %rbx,%r15 890238405Sjkim adcq $0,%rdx 891238405Sjkim movq %rdx,%rbx 892238405Sjkim 893238405Sjkim movq 16(%rsi),%rax 894238405Sjkim mulq %rbp 895238405Sjkim addq %rax,%r8 896238405Sjkim adcq $0,%rdx 897238405Sjkim addq %rbx,%r8 898238405Sjkim adcq $0,%rdx 899238405Sjkim movq %rdx,%rbx 900238405Sjkim 901238405Sjkim movq 24(%rsi),%rax 902238405Sjkim mulq %rbp 903238405Sjkim addq %rax,%r9 904238405Sjkim adcq $0,%rdx 905238405Sjkim addq %rbx,%r9 906238405Sjkim adcq $0,%rdx 907238405Sjkim movq %rdx,%rbx 908238405Sjkim 909238405Sjkim movq 32(%rsi),%rax 910238405Sjkim mulq %rbp 911238405Sjkim addq %rax,%r10 912238405Sjkim adcq $0,%rdx 913238405Sjkim addq %rbx,%r10 914238405Sjkim adcq $0,%rdx 915238405Sjkim movq %rdx,%rbx 916238405Sjkim 917238405Sjkim movq 40(%rsi),%rax 918238405Sjkim mulq %rbp 919238405Sjkim addq %rax,%r11 920238405Sjkim adcq $0,%rdx 921238405Sjkim addq %rbx,%r11 922238405Sjkim adcq $0,%rdx 923238405Sjkim movq %rdx,%rbx 924238405Sjkim 925238405Sjkim movq 48(%rsi),%rax 926238405Sjkim mulq %rbp 927238405Sjkim addq %rax,%r12 928238405Sjkim adcq $0,%rdx 929238405Sjkim addq %rbx,%r12 930238405Sjkim adcq $0,%rdx 931238405Sjkim movq %rdx,%rbx 932238405Sjkim 933238405Sjkim movq 56(%rsi),%rax 934238405Sjkim mulq %rbp 935238405Sjkim addq %rax,%r13 936238405Sjkim adcq $0,%rdx 937238405Sjkim addq %rbx,%r13 938238405Sjkim adcq $0,%rdx 939238405Sjkim movq %rdx,%r14 940238405Sjkim movq 48(%rdi),%rbp 941238405Sjkim movq 0(%rsi),%rax 942238405Sjkim mulq %rbp 943238405Sjkim addq %rax,%r15 944238405Sjkim adcq $0,%rdx 945238405Sjkim movq %r15,568(%rsp) 946238405Sjkim movq %rdx,%rbx 947238405Sjkim 948238405Sjkim movq 8(%rsi),%rax 949238405Sjkim mulq %rbp 950238405Sjkim addq %rax,%r8 951238405Sjkim adcq $0,%rdx 952238405Sjkim addq %rbx,%r8 953238405Sjkim adcq $0,%rdx 954238405Sjkim movq %rdx,%rbx 955238405Sjkim 956238405Sjkim movq 16(%rsi),%rax 957238405Sjkim mulq %rbp 958238405Sjkim addq %rax,%r9 959238405Sjkim adcq $0,%rdx 960238405Sjkim addq %rbx,%r9 961238405Sjkim adcq $0,%rdx 962238405Sjkim movq %rdx,%rbx 963238405Sjkim 964238405Sjkim movq 24(%rsi),%rax 965238405Sjkim mulq %rbp 966238405Sjkim addq %rax,%r10 967238405Sjkim adcq $0,%rdx 968238405Sjkim addq %rbx,%r10 969238405Sjkim adcq $0,%rdx 970238405Sjkim movq %rdx,%rbx 971238405Sjkim 972238405Sjkim movq 32(%rsi),%rax 973238405Sjkim mulq %rbp 974238405Sjkim addq %rax,%r11 975238405Sjkim adcq $0,%rdx 976238405Sjkim addq %rbx,%r11 977238405Sjkim adcq $0,%rdx 978238405Sjkim movq %rdx,%rbx 979238405Sjkim 980238405Sjkim movq 40(%rsi),%rax 981238405Sjkim mulq %rbp 982238405Sjkim addq %rax,%r12 983238405Sjkim adcq $0,%rdx 984238405Sjkim addq %rbx,%r12 985238405Sjkim adcq $0,%rdx 986238405Sjkim movq %rdx,%rbx 987238405Sjkim 988238405Sjkim movq 48(%rsi),%rax 989238405Sjkim mulq %rbp 990238405Sjkim addq %rax,%r13 991238405Sjkim adcq $0,%rdx 992238405Sjkim addq %rbx,%r13 993238405Sjkim adcq $0,%rdx 994238405Sjkim movq %rdx,%rbx 995238405Sjkim 996238405Sjkim movq 56(%rsi),%rax 997238405Sjkim mulq %rbp 998238405Sjkim addq %rax,%r14 999238405Sjkim adcq $0,%rdx 1000238405Sjkim addq %rbx,%r14 1001238405Sjkim adcq $0,%rdx 1002238405Sjkim movq %rdx,%r15 1003238405Sjkim movq 56(%rdi),%rbp 1004238405Sjkim movq 0(%rsi),%rax 1005238405Sjkim mulq %rbp 1006238405Sjkim addq %rax,%r8 1007238405Sjkim adcq $0,%rdx 1008238405Sjkim movq %r8,576(%rsp) 1009238405Sjkim movq %rdx,%rbx 1010238405Sjkim 1011238405Sjkim movq 8(%rsi),%rax 1012238405Sjkim mulq %rbp 1013238405Sjkim addq %rax,%r9 1014238405Sjkim adcq $0,%rdx 1015238405Sjkim addq %rbx,%r9 1016238405Sjkim adcq $0,%rdx 1017238405Sjkim movq %rdx,%rbx 1018238405Sjkim 1019238405Sjkim movq 16(%rsi),%rax 1020238405Sjkim mulq %rbp 1021238405Sjkim addq %rax,%r10 1022238405Sjkim adcq $0,%rdx 1023238405Sjkim addq %rbx,%r10 1024238405Sjkim adcq $0,%rdx 1025238405Sjkim movq %rdx,%rbx 1026238405Sjkim 1027238405Sjkim movq 24(%rsi),%rax 1028238405Sjkim mulq %rbp 1029238405Sjkim addq %rax,%r11 1030238405Sjkim adcq $0,%rdx 1031238405Sjkim addq %rbx,%r11 1032238405Sjkim adcq $0,%rdx 1033238405Sjkim movq %rdx,%rbx 1034238405Sjkim 1035238405Sjkim movq 32(%rsi),%rax 1036238405Sjkim mulq %rbp 1037238405Sjkim addq %rax,%r12 1038238405Sjkim adcq $0,%rdx 1039238405Sjkim addq %rbx,%r12 1040238405Sjkim adcq $0,%rdx 1041238405Sjkim movq %rdx,%rbx 1042238405Sjkim 1043238405Sjkim movq 40(%rsi),%rax 1044238405Sjkim mulq %rbp 1045238405Sjkim addq %rax,%r13 1046238405Sjkim adcq $0,%rdx 1047238405Sjkim addq %rbx,%r13 1048238405Sjkim adcq $0,%rdx 1049238405Sjkim movq %rdx,%rbx 1050238405Sjkim 1051238405Sjkim movq 48(%rsi),%rax 1052238405Sjkim mulq %rbp 1053238405Sjkim addq %rax,%r14 1054238405Sjkim adcq $0,%rdx 1055238405Sjkim addq %rbx,%r14 1056238405Sjkim adcq $0,%rdx 1057238405Sjkim movq %rdx,%rbx 1058238405Sjkim 1059238405Sjkim movq 56(%rsi),%rax 1060238405Sjkim mulq %rbp 1061238405Sjkim addq %rax,%r15 1062238405Sjkim adcq $0,%rdx 1063238405Sjkim addq %rbx,%r15 1064238405Sjkim adcq $0,%rdx 1065238405Sjkim movq %rdx,%r8 1066238405Sjkim movq %r9,584(%rsp) 1067238405Sjkim movq %r10,592(%rsp) 1068238405Sjkim movq %r11,600(%rsp) 1069238405Sjkim movq %r12,608(%rsp) 1070238405Sjkim movq %r13,616(%rsp) 1071238405Sjkim movq %r14,624(%rsp) 1072238405Sjkim movq %r15,632(%rsp) 1073238405Sjkim movq %r8,640(%rsp) 1074238405Sjkim 1075238405Sjkim 1076238405Sjkim 1077238405Sjkim 1078238405Sjkim 1079238405Sjkim jmp mont_reduce 1080238405Sjkim 1081238405Sjkim 1082238405Sjkim.size mont_mul_a3b,.-mont_mul_a3b 1083238405Sjkim.type sqr_reduce,@function 1084238405Sjkim.align 16 1085238405Sjkimsqr_reduce: 1086238405Sjkim movq 16(%rsp),%rcx 1087238405Sjkim 1088238405Sjkim 1089238405Sjkim 1090238405Sjkim movq %r10,%rbx 1091238405Sjkim 1092238405Sjkim movq %r11,%rax 1093238405Sjkim mulq %rbx 1094238405Sjkim movq %rax,528(%rsp) 1095238405Sjkim movq %rdx,%r10 1096238405Sjkim movq %r12,%rax 1097238405Sjkim mulq %rbx 1098238405Sjkim addq %rax,%r10 1099238405Sjkim adcq $0,%rdx 1100238405Sjkim movq %rdx,%r11 1101238405Sjkim movq %r13,%rax 1102238405Sjkim mulq %rbx 1103238405Sjkim addq %rax,%r11 1104238405Sjkim adcq $0,%rdx 1105238405Sjkim movq %rdx,%r12 1106238405Sjkim movq %r14,%rax 1107238405Sjkim mulq %rbx 1108238405Sjkim addq %rax,%r12 1109238405Sjkim adcq $0,%rdx 1110238405Sjkim movq %rdx,%r13 1111238405Sjkim movq %r15,%rax 1112238405Sjkim mulq %rbx 1113238405Sjkim addq %rax,%r13 1114238405Sjkim adcq $0,%rdx 1115238405Sjkim movq %rdx,%r14 1116238405Sjkim movq %r8,%rax 1117238405Sjkim mulq %rbx 1118238405Sjkim addq %rax,%r14 1119238405Sjkim adcq $0,%rdx 1120238405Sjkim movq %rdx,%r15 1121238405Sjkim movq %r9,%rax 1122238405Sjkim mulq %rbx 1123238405Sjkim addq %rax,%r15 1124238405Sjkim adcq $0,%rdx 1125238405Sjkim movq %rdx,%rsi 1126238405Sjkim 1127238405Sjkim movq %r10,536(%rsp) 1128238405Sjkim 1129238405Sjkim 1130238405Sjkim 1131238405Sjkim 1132238405Sjkim 1133238405Sjkim movq 8(%rcx),%rbx 1134238405Sjkim 1135238405Sjkim movq 16(%rcx),%rax 1136238405Sjkim mulq %rbx 1137238405Sjkim addq %rax,%r11 1138238405Sjkim adcq $0,%rdx 1139238405Sjkim movq %r11,544(%rsp) 1140238405Sjkim 1141238405Sjkim movq %rdx,%r10 1142238405Sjkim movq 24(%rcx),%rax 1143238405Sjkim mulq %rbx 1144238405Sjkim addq %rax,%r12 1145238405Sjkim adcq $0,%rdx 1146238405Sjkim addq %r10,%r12 1147238405Sjkim adcq $0,%rdx 1148238405Sjkim movq %r12,552(%rsp) 1149238405Sjkim 1150238405Sjkim movq %rdx,%r10 1151238405Sjkim movq 32(%rcx),%rax 1152238405Sjkim mulq %rbx 1153238405Sjkim addq %rax,%r13 1154238405Sjkim adcq $0,%rdx 1155238405Sjkim addq %r10,%r13 1156238405Sjkim adcq $0,%rdx 1157238405Sjkim 1158238405Sjkim movq %rdx,%r10 1159238405Sjkim movq 40(%rcx),%rax 1160238405Sjkim mulq %rbx 1161238405Sjkim addq %rax,%r14 1162238405Sjkim adcq $0,%rdx 1163238405Sjkim addq %r10,%r14 1164238405Sjkim adcq $0,%rdx 1165238405Sjkim 1166238405Sjkim movq %rdx,%r10 1167238405Sjkim movq %r8,%rax 1168238405Sjkim mulq %rbx 1169238405Sjkim addq %rax,%r15 1170238405Sjkim adcq $0,%rdx 1171238405Sjkim addq %r10,%r15 1172238405Sjkim adcq $0,%rdx 1173238405Sjkim 1174238405Sjkim movq %rdx,%r10 1175238405Sjkim movq %r9,%rax 1176238405Sjkim mulq %rbx 1177238405Sjkim addq %rax,%rsi 1178238405Sjkim adcq $0,%rdx 1179238405Sjkim addq %r10,%rsi 1180238405Sjkim adcq $0,%rdx 1181238405Sjkim 1182238405Sjkim movq %rdx,%r11 1183238405Sjkim 1184238405Sjkim 1185238405Sjkim 1186238405Sjkim 1187238405Sjkim movq 16(%rcx),%rbx 1188238405Sjkim 1189238405Sjkim movq 24(%rcx),%rax 1190238405Sjkim mulq %rbx 1191238405Sjkim addq %rax,%r13 1192238405Sjkim adcq $0,%rdx 1193238405Sjkim movq %r13,560(%rsp) 1194238405Sjkim 1195238405Sjkim movq %rdx,%r10 1196238405Sjkim movq 32(%rcx),%rax 1197238405Sjkim mulq %rbx 1198238405Sjkim addq %rax,%r14 1199238405Sjkim adcq $0,%rdx 1200238405Sjkim addq %r10,%r14 1201238405Sjkim adcq $0,%rdx 1202238405Sjkim movq %r14,568(%rsp) 1203238405Sjkim 1204238405Sjkim movq %rdx,%r10 1205238405Sjkim movq 40(%rcx),%rax 1206238405Sjkim mulq %rbx 1207238405Sjkim addq %rax,%r15 1208238405Sjkim adcq $0,%rdx 1209238405Sjkim addq %r10,%r15 1210238405Sjkim adcq $0,%rdx 1211238405Sjkim 1212238405Sjkim movq %rdx,%r10 1213238405Sjkim movq %r8,%rax 1214238405Sjkim mulq %rbx 1215238405Sjkim addq %rax,%rsi 1216238405Sjkim adcq $0,%rdx 1217238405Sjkim addq %r10,%rsi 1218238405Sjkim adcq $0,%rdx 1219238405Sjkim 1220238405Sjkim movq %rdx,%r10 1221238405Sjkim movq %r9,%rax 1222238405Sjkim mulq %rbx 1223238405Sjkim addq %rax,%r11 1224238405Sjkim adcq $0,%rdx 1225238405Sjkim addq %r10,%r11 1226238405Sjkim adcq $0,%rdx 1227238405Sjkim 1228238405Sjkim movq %rdx,%r12 1229238405Sjkim 1230238405Sjkim 1231238405Sjkim 1232238405Sjkim 1233238405Sjkim 1234238405Sjkim movq 24(%rcx),%rbx 1235238405Sjkim 1236238405Sjkim movq 32(%rcx),%rax 1237238405Sjkim mulq %rbx 1238238405Sjkim addq %rax,%r15 1239238405Sjkim adcq $0,%rdx 1240238405Sjkim movq %r15,576(%rsp) 1241238405Sjkim 1242238405Sjkim movq %rdx,%r10 1243238405Sjkim movq 40(%rcx),%rax 1244238405Sjkim mulq %rbx 1245238405Sjkim addq %rax,%rsi 1246238405Sjkim adcq $0,%rdx 1247238405Sjkim addq %r10,%rsi 1248238405Sjkim adcq $0,%rdx 1249238405Sjkim movq %rsi,584(%rsp) 1250238405Sjkim 1251238405Sjkim movq %rdx,%r10 1252238405Sjkim movq %r8,%rax 1253238405Sjkim mulq %rbx 1254238405Sjkim addq %rax,%r11 1255238405Sjkim adcq $0,%rdx 1256238405Sjkim addq %r10,%r11 1257238405Sjkim adcq $0,%rdx 1258238405Sjkim 1259238405Sjkim movq %rdx,%r10 1260238405Sjkim movq %r9,%rax 1261238405Sjkim mulq %rbx 1262238405Sjkim addq %rax,%r12 1263238405Sjkim adcq $0,%rdx 1264238405Sjkim addq %r10,%r12 1265238405Sjkim adcq $0,%rdx 1266238405Sjkim 1267238405Sjkim movq %rdx,%r15 1268238405Sjkim 1269238405Sjkim 1270238405Sjkim 1271238405Sjkim 1272238405Sjkim movq 32(%rcx),%rbx 1273238405Sjkim 1274238405Sjkim movq 40(%rcx),%rax 1275238405Sjkim mulq %rbx 1276238405Sjkim addq %rax,%r11 1277238405Sjkim adcq $0,%rdx 1278238405Sjkim movq %r11,592(%rsp) 1279238405Sjkim 1280238405Sjkim movq %rdx,%r10 1281238405Sjkim movq %r8,%rax 1282238405Sjkim mulq %rbx 1283238405Sjkim addq %rax,%r12 1284238405Sjkim adcq $0,%rdx 1285238405Sjkim addq %r10,%r12 1286238405Sjkim adcq $0,%rdx 1287238405Sjkim movq %r12,600(%rsp) 1288238405Sjkim 1289238405Sjkim movq %rdx,%r10 1290238405Sjkim movq %r9,%rax 1291238405Sjkim mulq %rbx 1292238405Sjkim addq %rax,%r15 1293238405Sjkim adcq $0,%rdx 1294238405Sjkim addq %r10,%r15 1295238405Sjkim adcq $0,%rdx 1296238405Sjkim 1297238405Sjkim movq %rdx,%r11 1298238405Sjkim 1299238405Sjkim 1300238405Sjkim 1301238405Sjkim 1302238405Sjkim movq 40(%rcx),%rbx 1303238405Sjkim 1304238405Sjkim movq %r8,%rax 1305238405Sjkim mulq %rbx 1306238405Sjkim addq %rax,%r15 1307238405Sjkim adcq $0,%rdx 1308238405Sjkim movq %r15,608(%rsp) 1309238405Sjkim 1310238405Sjkim movq %rdx,%r10 1311238405Sjkim movq %r9,%rax 1312238405Sjkim mulq %rbx 1313238405Sjkim addq %rax,%r11 1314238405Sjkim adcq $0,%rdx 1315238405Sjkim addq %r10,%r11 1316238405Sjkim adcq $0,%rdx 1317238405Sjkim movq %r11,616(%rsp) 1318238405Sjkim 1319238405Sjkim movq %rdx,%r12 1320238405Sjkim 1321238405Sjkim 1322238405Sjkim 1323238405Sjkim 1324238405Sjkim movq %r8,%rbx 1325238405Sjkim 1326238405Sjkim movq %r9,%rax 1327238405Sjkim mulq %rbx 1328238405Sjkim addq %rax,%r12 1329238405Sjkim adcq $0,%rdx 1330238405Sjkim movq %r12,624(%rsp) 1331238405Sjkim 1332238405Sjkim movq %rdx,632(%rsp) 1333238405Sjkim 1334238405Sjkim 1335238405Sjkim movq 528(%rsp),%r10 1336238405Sjkim movq 536(%rsp),%r11 1337238405Sjkim movq 544(%rsp),%r12 1338238405Sjkim movq 552(%rsp),%r13 1339238405Sjkim movq 560(%rsp),%r14 1340238405Sjkim movq 568(%rsp),%r15 1341238405Sjkim 1342238405Sjkim movq 24(%rcx),%rax 1343238405Sjkim mulq %rax 1344238405Sjkim movq %rax,%rdi 1345238405Sjkim movq %rdx,%r8 1346238405Sjkim 1347238405Sjkim addq %r10,%r10 1348238405Sjkim adcq %r11,%r11 1349238405Sjkim adcq %r12,%r12 1350238405Sjkim adcq %r13,%r13 1351238405Sjkim adcq %r14,%r14 1352238405Sjkim adcq %r15,%r15 1353238405Sjkim adcq $0,%r8 1354238405Sjkim 1355238405Sjkim movq 0(%rcx),%rax 1356238405Sjkim mulq %rax 1357238405Sjkim movq %rax,520(%rsp) 1358238405Sjkim movq %rdx,%rbx 1359238405Sjkim 1360238405Sjkim movq 8(%rcx),%rax 1361238405Sjkim mulq %rax 1362238405Sjkim 1363238405Sjkim addq %rbx,%r10 1364238405Sjkim adcq %rax,%r11 1365238405Sjkim adcq $0,%rdx 1366238405Sjkim 1367238405Sjkim movq %rdx,%rbx 1368238405Sjkim movq %r10,528(%rsp) 1369238405Sjkim movq %r11,536(%rsp) 1370238405Sjkim 1371238405Sjkim movq 16(%rcx),%rax 1372238405Sjkim mulq %rax 1373238405Sjkim 1374238405Sjkim addq %rbx,%r12 1375238405Sjkim adcq %rax,%r13 1376238405Sjkim adcq $0,%rdx 1377238405Sjkim 1378238405Sjkim movq %rdx,%rbx 1379238405Sjkim 1380238405Sjkim movq %r12,544(%rsp) 1381238405Sjkim movq %r13,552(%rsp) 1382238405Sjkim 1383238405Sjkim xorq %rbp,%rbp 1384238405Sjkim addq %rbx,%r14 1385238405Sjkim adcq %rdi,%r15 1386238405Sjkim adcq $0,%rbp 1387238405Sjkim 1388238405Sjkim movq %r14,560(%rsp) 1389238405Sjkim movq %r15,568(%rsp) 1390238405Sjkim 1391238405Sjkim 1392238405Sjkim 1393238405Sjkim 1394238405Sjkim movq 576(%rsp),%r10 1395238405Sjkim movq 584(%rsp),%r11 1396238405Sjkim movq 592(%rsp),%r12 1397238405Sjkim movq 600(%rsp),%r13 1398238405Sjkim movq 608(%rsp),%r14 1399238405Sjkim movq 616(%rsp),%r15 1400238405Sjkim movq 624(%rsp),%rdi 1401238405Sjkim movq 632(%rsp),%rsi 1402238405Sjkim 1403238405Sjkim movq %r9,%rax 1404238405Sjkim mulq %rax 1405238405Sjkim movq %rax,%r9 1406238405Sjkim movq %rdx,%rbx 1407238405Sjkim 1408238405Sjkim addq %r10,%r10 1409238405Sjkim adcq %r11,%r11 1410238405Sjkim adcq %r12,%r12 1411238405Sjkim adcq %r13,%r13 1412238405Sjkim adcq %r14,%r14 1413238405Sjkim adcq %r15,%r15 1414238405Sjkim adcq %rdi,%rdi 1415238405Sjkim adcq %rsi,%rsi 1416238405Sjkim adcq $0,%rbx 1417238405Sjkim 1418238405Sjkim addq %rbp,%r10 1419238405Sjkim 1420238405Sjkim movq 32(%rcx),%rax 1421238405Sjkim mulq %rax 1422238405Sjkim 1423238405Sjkim addq %r8,%r10 1424238405Sjkim adcq %rax,%r11 1425238405Sjkim adcq $0,%rdx 1426238405Sjkim 1427238405Sjkim movq %rdx,%rbp 1428238405Sjkim 1429238405Sjkim movq %r10,576(%rsp) 1430238405Sjkim movq %r11,584(%rsp) 1431238405Sjkim 1432238405Sjkim movq 40(%rcx),%rax 1433238405Sjkim mulq %rax 1434238405Sjkim 1435238405Sjkim addq %rbp,%r12 1436238405Sjkim adcq %rax,%r13 1437238405Sjkim adcq $0,%rdx 1438238405Sjkim 1439238405Sjkim movq %rdx,%rbp 1440238405Sjkim 1441238405Sjkim movq %r12,592(%rsp) 1442238405Sjkim movq %r13,600(%rsp) 1443238405Sjkim 1444238405Sjkim movq 48(%rcx),%rax 1445238405Sjkim mulq %rax 1446238405Sjkim 1447238405Sjkim addq %rbp,%r14 1448238405Sjkim adcq %rax,%r15 1449238405Sjkim adcq $0,%rdx 1450238405Sjkim 1451238405Sjkim movq %r14,608(%rsp) 1452238405Sjkim movq %r15,616(%rsp) 1453238405Sjkim 1454238405Sjkim addq %rdx,%rdi 1455238405Sjkim adcq %r9,%rsi 1456238405Sjkim adcq $0,%rbx 1457238405Sjkim 1458238405Sjkim movq %rdi,624(%rsp) 1459238405Sjkim movq %rsi,632(%rsp) 1460238405Sjkim movq %rbx,640(%rsp) 1461238405Sjkim 1462238405Sjkim jmp mont_reduce 1463238405Sjkim 1464238405Sjkim 1465238405Sjkim.size sqr_reduce,.-sqr_reduce 1466238405Sjkim.globl mod_exp_512 1467238405Sjkim.type mod_exp_512,@function 1468238405Sjkimmod_exp_512: 1469238405Sjkim pushq %rbp 1470238405Sjkim pushq %rbx 1471238405Sjkim pushq %r12 1472238405Sjkim pushq %r13 1473238405Sjkim pushq %r14 1474238405Sjkim pushq %r15 1475238405Sjkim 1476238405Sjkim 1477238405Sjkim movq %rsp,%r8 1478238405Sjkim subq $2688,%rsp 1479238405Sjkim andq $-64,%rsp 1480238405Sjkim 1481238405Sjkim 1482238405Sjkim movq %r8,0(%rsp) 1483238405Sjkim movq %rdi,8(%rsp) 1484238405Sjkim movq %rsi,16(%rsp) 1485238405Sjkim movq %rcx,24(%rsp) 1486238405Sjkim.Lbody: 1487238405Sjkim 1488238405Sjkim 1489238405Sjkim 1490238405Sjkim pxor %xmm4,%xmm4 1491238405Sjkim movdqu 0(%rsi),%xmm0 1492238405Sjkim movdqu 16(%rsi),%xmm1 1493238405Sjkim movdqu 32(%rsi),%xmm2 1494238405Sjkim movdqu 48(%rsi),%xmm3 1495238405Sjkim movdqa %xmm4,512(%rsp) 1496238405Sjkim movdqa %xmm4,528(%rsp) 1497238405Sjkim movdqa %xmm4,608(%rsp) 1498238405Sjkim movdqa %xmm4,624(%rsp) 1499238405Sjkim movdqa %xmm0,544(%rsp) 1500238405Sjkim movdqa %xmm1,560(%rsp) 1501238405Sjkim movdqa %xmm2,576(%rsp) 1502238405Sjkim movdqa %xmm3,592(%rsp) 1503238405Sjkim 1504238405Sjkim 1505238405Sjkim movdqu 0(%rdx),%xmm0 1506238405Sjkim movdqu 16(%rdx),%xmm1 1507238405Sjkim movdqu 32(%rdx),%xmm2 1508238405Sjkim movdqu 48(%rdx),%xmm3 1509238405Sjkim 1510238405Sjkim leaq 384(%rsp),%rbx 1511238405Sjkim movq %rbx,136(%rsp) 1512238405Sjkim call mont_reduce 1513238405Sjkim 1514238405Sjkim 1515238405Sjkim leaq 448(%rsp),%rcx 1516238405Sjkim xorq %rax,%rax 1517238405Sjkim movq %rax,0(%rcx) 1518238405Sjkim movq %rax,8(%rcx) 1519238405Sjkim movq %rax,24(%rcx) 1520238405Sjkim movq %rax,32(%rcx) 1521238405Sjkim movq %rax,40(%rcx) 1522238405Sjkim movq %rax,48(%rcx) 1523238405Sjkim movq %rax,56(%rcx) 1524238405Sjkim movq %rax,128(%rsp) 1525238405Sjkim movq $1,16(%rcx) 1526238405Sjkim 1527238405Sjkim leaq 640(%rsp),%rbp 1528238405Sjkim movq %rcx,%rsi 1529238405Sjkim movq %rbp,%rdi 1530238405Sjkim movq $8,%rax 1531238405Sjkimloop_0: 1532238405Sjkim movq (%rcx),%rbx 1533238405Sjkim movw %bx,(%rdi) 1534238405Sjkim shrq $16,%rbx 1535238405Sjkim movw %bx,64(%rdi) 1536238405Sjkim shrq $16,%rbx 1537238405Sjkim movw %bx,128(%rdi) 1538238405Sjkim shrq $16,%rbx 1539238405Sjkim movw %bx,192(%rdi) 1540238405Sjkim leaq 8(%rcx),%rcx 1541238405Sjkim leaq 256(%rdi),%rdi 1542238405Sjkim decq %rax 1543238405Sjkim jnz loop_0 1544238405Sjkim movq $31,%rax 1545238405Sjkim movq %rax,32(%rsp) 1546238405Sjkim movq %rbp,40(%rsp) 1547238405Sjkim 1548238405Sjkim movq %rsi,136(%rsp) 1549238405Sjkim movq 0(%rsi),%r10 1550238405Sjkim movq 8(%rsi),%r11 1551238405Sjkim movq 16(%rsi),%r12 1552238405Sjkim movq 24(%rsi),%r13 1553238405Sjkim movq 32(%rsi),%r14 1554238405Sjkim movq 40(%rsi),%r15 1555238405Sjkim movq 48(%rsi),%r8 1556238405Sjkim movq 56(%rsi),%r9 1557238405Sjkiminit_loop: 1558238405Sjkim leaq 384(%rsp),%rdi 1559238405Sjkim call mont_mul_a3b 1560238405Sjkim leaq 448(%rsp),%rsi 1561238405Sjkim movq 40(%rsp),%rbp 1562238405Sjkim addq $2,%rbp 1563238405Sjkim movq %rbp,40(%rsp) 1564238405Sjkim movq %rsi,%rcx 1565238405Sjkim movq $8,%rax 1566238405Sjkimloop_1: 1567238405Sjkim movq (%rcx),%rbx 1568238405Sjkim movw %bx,(%rbp) 1569238405Sjkim shrq $16,%rbx 1570238405Sjkim movw %bx,64(%rbp) 1571238405Sjkim shrq $16,%rbx 1572238405Sjkim movw %bx,128(%rbp) 1573238405Sjkim shrq $16,%rbx 1574238405Sjkim movw %bx,192(%rbp) 1575238405Sjkim leaq 8(%rcx),%rcx 1576238405Sjkim leaq 256(%rbp),%rbp 1577238405Sjkim decq %rax 1578238405Sjkim jnz loop_1 1579238405Sjkim movq 32(%rsp),%rax 1580238405Sjkim subq $1,%rax 1581238405Sjkim movq %rax,32(%rsp) 1582238405Sjkim jne init_loop 1583238405Sjkim 1584238405Sjkim 1585238405Sjkim 1586238405Sjkim movdqa %xmm0,64(%rsp) 1587238405Sjkim movdqa %xmm1,80(%rsp) 1588238405Sjkim movdqa %xmm2,96(%rsp) 1589238405Sjkim movdqa %xmm3,112(%rsp) 1590238405Sjkim 1591238405Sjkim 1592238405Sjkim 1593238405Sjkim 1594238405Sjkim 1595238405Sjkim movl 126(%rsp),%eax 1596238405Sjkim movq %rax,%rdx 1597238405Sjkim shrq $11,%rax 1598238405Sjkim andl $2047,%edx 1599238405Sjkim movl %edx,126(%rsp) 1600238405Sjkim leaq 640(%rsp,%rax,2),%rsi 1601238405Sjkim movq 8(%rsp),%rdx 1602238405Sjkim movq $4,%rbp 1603238405Sjkimloop_2: 1604238405Sjkim movzwq 192(%rsi),%rbx 1605238405Sjkim movzwq 448(%rsi),%rax 1606238405Sjkim shlq $16,%rbx 1607238405Sjkim shlq $16,%rax 1608238405Sjkim movw 128(%rsi),%bx 1609238405Sjkim movw 384(%rsi),%ax 1610238405Sjkim shlq $16,%rbx 1611238405Sjkim shlq $16,%rax 1612238405Sjkim movw 64(%rsi),%bx 1613238405Sjkim movw 320(%rsi),%ax 1614238405Sjkim shlq $16,%rbx 1615238405Sjkim shlq $16,%rax 1616238405Sjkim movw 0(%rsi),%bx 1617238405Sjkim movw 256(%rsi),%ax 1618238405Sjkim movq %rbx,0(%rdx) 1619238405Sjkim movq %rax,8(%rdx) 1620238405Sjkim leaq 512(%rsi),%rsi 1621238405Sjkim leaq 16(%rdx),%rdx 1622238405Sjkim subq $1,%rbp 1623238405Sjkim jnz loop_2 1624238405Sjkim movq $505,48(%rsp) 1625238405Sjkim 1626238405Sjkim movq 8(%rsp),%rcx 1627238405Sjkim movq %rcx,136(%rsp) 1628238405Sjkim movq 0(%rcx),%r10 1629238405Sjkim movq 8(%rcx),%r11 1630238405Sjkim movq 16(%rcx),%r12 1631238405Sjkim movq 24(%rcx),%r13 1632238405Sjkim movq 32(%rcx),%r14 1633238405Sjkim movq 40(%rcx),%r15 1634238405Sjkim movq 48(%rcx),%r8 1635238405Sjkim movq 56(%rcx),%r9 1636238405Sjkim jmp sqr_2 1637238405Sjkim 1638238405Sjkimmain_loop_a3b: 1639238405Sjkim call sqr_reduce 1640238405Sjkim call sqr_reduce 1641238405Sjkim call sqr_reduce 1642238405Sjkimsqr_2: 1643238405Sjkim call sqr_reduce 1644238405Sjkim call sqr_reduce 1645238405Sjkim 1646238405Sjkim 1647238405Sjkim 1648238405Sjkim movq 48(%rsp),%rcx 1649238405Sjkim movq %rcx,%rax 1650238405Sjkim shrq $4,%rax 1651238405Sjkim movl 64(%rsp,%rax,2),%edx 1652238405Sjkim andq $15,%rcx 1653238405Sjkim shrq %cl,%rdx 1654238405Sjkim andq $31,%rdx 1655238405Sjkim 1656238405Sjkim leaq 640(%rsp,%rdx,2),%rsi 1657238405Sjkim leaq 448(%rsp),%rdx 1658238405Sjkim movq %rdx,%rdi 1659238405Sjkim movq $4,%rbp 1660238405Sjkimloop_3: 1661238405Sjkim movzwq 192(%rsi),%rbx 1662238405Sjkim movzwq 448(%rsi),%rax 1663238405Sjkim shlq $16,%rbx 1664238405Sjkim shlq $16,%rax 1665238405Sjkim movw 128(%rsi),%bx 1666238405Sjkim movw 384(%rsi),%ax 1667238405Sjkim shlq $16,%rbx 1668238405Sjkim shlq $16,%rax 1669238405Sjkim movw 64(%rsi),%bx 1670238405Sjkim movw 320(%rsi),%ax 1671238405Sjkim shlq $16,%rbx 1672238405Sjkim shlq $16,%rax 1673238405Sjkim movw 0(%rsi),%bx 1674238405Sjkim movw 256(%rsi),%ax 1675238405Sjkim movq %rbx,0(%rdx) 1676238405Sjkim movq %rax,8(%rdx) 1677238405Sjkim leaq 512(%rsi),%rsi 1678238405Sjkim leaq 16(%rdx),%rdx 1679238405Sjkim subq $1,%rbp 1680238405Sjkim jnz loop_3 1681238405Sjkim movq 8(%rsp),%rsi 1682238405Sjkim call mont_mul_a3b 1683238405Sjkim 1684238405Sjkim 1685238405Sjkim 1686238405Sjkim movq 48(%rsp),%rcx 1687238405Sjkim subq $5,%rcx 1688238405Sjkim movq %rcx,48(%rsp) 1689238405Sjkim jge main_loop_a3b 1690238405Sjkim 1691238405Sjkim 1692238405Sjkim 1693238405Sjkimend_main_loop_a3b: 1694238405Sjkim 1695238405Sjkim 1696238405Sjkim movq 8(%rsp),%rdx 1697238405Sjkim pxor %xmm4,%xmm4 1698238405Sjkim movdqu 0(%rdx),%xmm0 1699238405Sjkim movdqu 16(%rdx),%xmm1 1700238405Sjkim movdqu 32(%rdx),%xmm2 1701238405Sjkim movdqu 48(%rdx),%xmm3 1702238405Sjkim movdqa %xmm4,576(%rsp) 1703238405Sjkim movdqa %xmm4,592(%rsp) 1704238405Sjkim movdqa %xmm4,608(%rsp) 1705238405Sjkim movdqa %xmm4,624(%rsp) 1706238405Sjkim movdqa %xmm0,512(%rsp) 1707238405Sjkim movdqa %xmm1,528(%rsp) 1708238405Sjkim movdqa %xmm2,544(%rsp) 1709238405Sjkim movdqa %xmm3,560(%rsp) 1710238405Sjkim call mont_reduce 1711238405Sjkim 1712238405Sjkim 1713238405Sjkim 1714238405Sjkim movq 8(%rsp),%rax 1715238405Sjkim movq 0(%rax),%r8 1716238405Sjkim movq 8(%rax),%r9 1717238405Sjkim movq 16(%rax),%r10 1718238405Sjkim movq 24(%rax),%r11 1719238405Sjkim movq 32(%rax),%r12 1720238405Sjkim movq 40(%rax),%r13 1721238405Sjkim movq 48(%rax),%r14 1722238405Sjkim movq 56(%rax),%r15 1723238405Sjkim 1724238405Sjkim 1725238405Sjkim movq 24(%rsp),%rbx 1726238405Sjkim addq $512,%rbx 1727238405Sjkim 1728238405Sjkim subq 0(%rbx),%r8 1729238405Sjkim sbbq 8(%rbx),%r9 1730238405Sjkim sbbq 16(%rbx),%r10 1731238405Sjkim sbbq 24(%rbx),%r11 1732238405Sjkim sbbq 32(%rbx),%r12 1733238405Sjkim sbbq 40(%rbx),%r13 1734238405Sjkim sbbq 48(%rbx),%r14 1735238405Sjkim sbbq 56(%rbx),%r15 1736238405Sjkim 1737238405Sjkim 1738238405Sjkim movq 0(%rax),%rsi 1739238405Sjkim movq 8(%rax),%rdi 1740238405Sjkim movq 16(%rax),%rcx 1741238405Sjkim movq 24(%rax),%rdx 1742238405Sjkim cmovncq %r8,%rsi 1743238405Sjkim cmovncq %r9,%rdi 1744238405Sjkim cmovncq %r10,%rcx 1745238405Sjkim cmovncq %r11,%rdx 1746238405Sjkim movq %rsi,0(%rax) 1747238405Sjkim movq %rdi,8(%rax) 1748238405Sjkim movq %rcx,16(%rax) 1749238405Sjkim movq %rdx,24(%rax) 1750238405Sjkim 1751238405Sjkim movq 32(%rax),%rsi 1752238405Sjkim movq 40(%rax),%rdi 1753238405Sjkim movq 48(%rax),%rcx 1754238405Sjkim movq 56(%rax),%rdx 1755238405Sjkim cmovncq %r12,%rsi 1756238405Sjkim cmovncq %r13,%rdi 1757238405Sjkim cmovncq %r14,%rcx 1758238405Sjkim cmovncq %r15,%rdx 1759238405Sjkim movq %rsi,32(%rax) 1760238405Sjkim movq %rdi,40(%rax) 1761238405Sjkim movq %rcx,48(%rax) 1762238405Sjkim movq %rdx,56(%rax) 1763238405Sjkim 1764238405Sjkim movq 0(%rsp),%rsi 1765238405Sjkim movq 0(%rsi),%r15 1766238405Sjkim movq 8(%rsi),%r14 1767238405Sjkim movq 16(%rsi),%r13 1768238405Sjkim movq 24(%rsi),%r12 1769238405Sjkim movq 32(%rsi),%rbx 1770238405Sjkim movq 40(%rsi),%rbp 1771238405Sjkim leaq 48(%rsi),%rsp 1772238405Sjkim.Lepilogue: 1773238405Sjkim .byte 0xf3,0xc3 1774238405Sjkim.size mod_exp_512, . - mod_exp_512 1775