1bc3d5698SJohn Baldwin/* Do not modify. This file is auto-generated from x25519-x86_64.pl. */ 2bc3d5698SJohn Baldwin.text 3bc3d5698SJohn Baldwin 4bc3d5698SJohn Baldwin.globl x25519_fe51_mul 5bc3d5698SJohn Baldwin.type x25519_fe51_mul,@function 6bc3d5698SJohn Baldwin.align 32 7bc3d5698SJohn Baldwinx25519_fe51_mul: 8bc3d5698SJohn Baldwin.cfi_startproc 9bc3d5698SJohn Baldwin pushq %rbp 10bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 11bc3d5698SJohn Baldwin.cfi_offset %rbp,-16 12bc3d5698SJohn Baldwin pushq %rbx 13bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 14bc3d5698SJohn Baldwin.cfi_offset %rbx,-24 15bc3d5698SJohn Baldwin pushq %r12 16bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 17bc3d5698SJohn Baldwin.cfi_offset %r12,-32 18bc3d5698SJohn Baldwin pushq %r13 19bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 20bc3d5698SJohn Baldwin.cfi_offset %r13,-40 21bc3d5698SJohn Baldwin pushq %r14 22bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 23bc3d5698SJohn Baldwin.cfi_offset %r14,-48 24bc3d5698SJohn Baldwin pushq %r15 25bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 26bc3d5698SJohn Baldwin.cfi_offset %r15,-56 27bc3d5698SJohn Baldwin leaq -40(%rsp),%rsp 28bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 40 29bc3d5698SJohn Baldwin.Lfe51_mul_body: 30bc3d5698SJohn Baldwin 31bc3d5698SJohn Baldwin movq 0(%rsi),%rax 32bc3d5698SJohn Baldwin movq 0(%rdx),%r11 33bc3d5698SJohn Baldwin movq 8(%rdx),%r12 34bc3d5698SJohn Baldwin movq 16(%rdx),%r13 35bc3d5698SJohn Baldwin movq 24(%rdx),%rbp 36bc3d5698SJohn Baldwin movq 32(%rdx),%r14 37bc3d5698SJohn Baldwin 38bc3d5698SJohn Baldwin movq %rdi,32(%rsp) 39bc3d5698SJohn Baldwin movq %rax,%rdi 40bc3d5698SJohn Baldwin mulq %r11 41bc3d5698SJohn Baldwin movq %r11,0(%rsp) 42bc3d5698SJohn Baldwin movq %rax,%rbx 43bc3d5698SJohn Baldwin movq %rdi,%rax 44bc3d5698SJohn Baldwin movq %rdx,%rcx 45bc3d5698SJohn Baldwin mulq %r12 46bc3d5698SJohn Baldwin movq %r12,8(%rsp) 47bc3d5698SJohn Baldwin movq %rax,%r8 48bc3d5698SJohn Baldwin movq %rdi,%rax 49bc3d5698SJohn Baldwin leaq (%r14,%r14,8),%r15 50bc3d5698SJohn Baldwin movq %rdx,%r9 51bc3d5698SJohn Baldwin mulq %r13 52bc3d5698SJohn Baldwin movq %r13,16(%rsp) 53bc3d5698SJohn Baldwin movq %rax,%r10 54bc3d5698SJohn Baldwin movq %rdi,%rax 55bc3d5698SJohn Baldwin leaq (%r14,%r15,2),%rdi 56bc3d5698SJohn Baldwin movq %rdx,%r11 57bc3d5698SJohn Baldwin mulq %rbp 58bc3d5698SJohn Baldwin movq %rax,%r12 59bc3d5698SJohn Baldwin movq 0(%rsi),%rax 60bc3d5698SJohn Baldwin movq %rdx,%r13 61bc3d5698SJohn Baldwin mulq %r14 62bc3d5698SJohn Baldwin movq %rax,%r14 63bc3d5698SJohn Baldwin movq 8(%rsi),%rax 64bc3d5698SJohn Baldwin movq %rdx,%r15 65bc3d5698SJohn Baldwin 66bc3d5698SJohn Baldwin mulq %rdi 67bc3d5698SJohn Baldwin addq %rax,%rbx 68bc3d5698SJohn Baldwin movq 16(%rsi),%rax 69bc3d5698SJohn Baldwin adcq %rdx,%rcx 70bc3d5698SJohn Baldwin mulq %rdi 71bc3d5698SJohn Baldwin addq %rax,%r8 72bc3d5698SJohn Baldwin movq 24(%rsi),%rax 73bc3d5698SJohn Baldwin adcq %rdx,%r9 74bc3d5698SJohn Baldwin mulq %rdi 75bc3d5698SJohn Baldwin addq %rax,%r10 76bc3d5698SJohn Baldwin movq 32(%rsi),%rax 77bc3d5698SJohn Baldwin adcq %rdx,%r11 78bc3d5698SJohn Baldwin mulq %rdi 79bc3d5698SJohn Baldwin imulq $19,%rbp,%rdi 80bc3d5698SJohn Baldwin addq %rax,%r12 81bc3d5698SJohn Baldwin movq 8(%rsi),%rax 82bc3d5698SJohn Baldwin adcq %rdx,%r13 83bc3d5698SJohn Baldwin mulq %rbp 84bc3d5698SJohn Baldwin movq 16(%rsp),%rbp 85bc3d5698SJohn Baldwin addq %rax,%r14 86bc3d5698SJohn Baldwin movq 16(%rsi),%rax 87bc3d5698SJohn Baldwin adcq %rdx,%r15 88bc3d5698SJohn Baldwin 89bc3d5698SJohn Baldwin mulq %rdi 90bc3d5698SJohn Baldwin addq %rax,%rbx 91bc3d5698SJohn Baldwin movq 24(%rsi),%rax 92bc3d5698SJohn Baldwin adcq %rdx,%rcx 93bc3d5698SJohn Baldwin mulq %rdi 94bc3d5698SJohn Baldwin addq %rax,%r8 95bc3d5698SJohn Baldwin movq 32(%rsi),%rax 96bc3d5698SJohn Baldwin adcq %rdx,%r9 97bc3d5698SJohn Baldwin mulq %rdi 98bc3d5698SJohn Baldwin imulq $19,%rbp,%rdi 99bc3d5698SJohn Baldwin addq %rax,%r10 100bc3d5698SJohn Baldwin movq 8(%rsi),%rax 101bc3d5698SJohn Baldwin adcq %rdx,%r11 102bc3d5698SJohn Baldwin mulq %rbp 103bc3d5698SJohn Baldwin addq %rax,%r12 104bc3d5698SJohn Baldwin movq 16(%rsi),%rax 105bc3d5698SJohn Baldwin adcq %rdx,%r13 106bc3d5698SJohn Baldwin mulq %rbp 107bc3d5698SJohn Baldwin movq 8(%rsp),%rbp 108bc3d5698SJohn Baldwin addq %rax,%r14 109bc3d5698SJohn Baldwin movq 24(%rsi),%rax 110bc3d5698SJohn Baldwin adcq %rdx,%r15 111bc3d5698SJohn Baldwin 112bc3d5698SJohn Baldwin mulq %rdi 113bc3d5698SJohn Baldwin addq %rax,%rbx 114bc3d5698SJohn Baldwin movq 32(%rsi),%rax 115bc3d5698SJohn Baldwin adcq %rdx,%rcx 116bc3d5698SJohn Baldwin mulq %rdi 117bc3d5698SJohn Baldwin addq %rax,%r8 118bc3d5698SJohn Baldwin movq 8(%rsi),%rax 119bc3d5698SJohn Baldwin adcq %rdx,%r9 120bc3d5698SJohn Baldwin mulq %rbp 121bc3d5698SJohn Baldwin imulq $19,%rbp,%rdi 122bc3d5698SJohn Baldwin addq %rax,%r10 123bc3d5698SJohn Baldwin movq 16(%rsi),%rax 124bc3d5698SJohn Baldwin adcq %rdx,%r11 125bc3d5698SJohn Baldwin mulq %rbp 126bc3d5698SJohn Baldwin addq %rax,%r12 127bc3d5698SJohn Baldwin movq 24(%rsi),%rax 128bc3d5698SJohn Baldwin adcq %rdx,%r13 129bc3d5698SJohn Baldwin mulq %rbp 130bc3d5698SJohn Baldwin movq 0(%rsp),%rbp 131bc3d5698SJohn Baldwin addq %rax,%r14 132bc3d5698SJohn Baldwin movq 32(%rsi),%rax 133bc3d5698SJohn Baldwin adcq %rdx,%r15 134bc3d5698SJohn Baldwin 135bc3d5698SJohn Baldwin mulq %rdi 136bc3d5698SJohn Baldwin addq %rax,%rbx 137bc3d5698SJohn Baldwin movq 8(%rsi),%rax 138bc3d5698SJohn Baldwin adcq %rdx,%rcx 139bc3d5698SJohn Baldwin mulq %rbp 140bc3d5698SJohn Baldwin addq %rax,%r8 141bc3d5698SJohn Baldwin movq 16(%rsi),%rax 142bc3d5698SJohn Baldwin adcq %rdx,%r9 143bc3d5698SJohn Baldwin mulq %rbp 144bc3d5698SJohn Baldwin addq %rax,%r10 145bc3d5698SJohn Baldwin movq 24(%rsi),%rax 146bc3d5698SJohn Baldwin adcq %rdx,%r11 147bc3d5698SJohn Baldwin mulq %rbp 148bc3d5698SJohn Baldwin addq %rax,%r12 149bc3d5698SJohn Baldwin movq 32(%rsi),%rax 150bc3d5698SJohn Baldwin adcq %rdx,%r13 151bc3d5698SJohn Baldwin mulq %rbp 152bc3d5698SJohn Baldwin addq %rax,%r14 153bc3d5698SJohn Baldwin adcq %rdx,%r15 154bc3d5698SJohn Baldwin 155bc3d5698SJohn Baldwin movq 32(%rsp),%rdi 156bc3d5698SJohn Baldwin jmp .Lreduce51 157bc3d5698SJohn Baldwin.Lfe51_mul_epilogue: 158bc3d5698SJohn Baldwin.cfi_endproc 159bc3d5698SJohn Baldwin.size x25519_fe51_mul,.-x25519_fe51_mul 160bc3d5698SJohn Baldwin 161bc3d5698SJohn Baldwin.globl x25519_fe51_sqr 162bc3d5698SJohn Baldwin.type x25519_fe51_sqr,@function 163bc3d5698SJohn Baldwin.align 32 164bc3d5698SJohn Baldwinx25519_fe51_sqr: 165bc3d5698SJohn Baldwin.cfi_startproc 166bc3d5698SJohn Baldwin pushq %rbp 167bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 168bc3d5698SJohn Baldwin.cfi_offset %rbp,-16 169bc3d5698SJohn Baldwin pushq %rbx 170bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 171bc3d5698SJohn Baldwin.cfi_offset %rbx,-24 172bc3d5698SJohn Baldwin pushq %r12 173bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 174bc3d5698SJohn Baldwin.cfi_offset %r12,-32 175bc3d5698SJohn Baldwin pushq %r13 176bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 177bc3d5698SJohn Baldwin.cfi_offset %r13,-40 178bc3d5698SJohn Baldwin pushq %r14 179bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 180bc3d5698SJohn Baldwin.cfi_offset %r14,-48 181bc3d5698SJohn Baldwin pushq %r15 182bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 183bc3d5698SJohn Baldwin.cfi_offset %r15,-56 184bc3d5698SJohn Baldwin leaq -40(%rsp),%rsp 185bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 40 186bc3d5698SJohn Baldwin.Lfe51_sqr_body: 187bc3d5698SJohn Baldwin 188bc3d5698SJohn Baldwin movq 0(%rsi),%rax 189bc3d5698SJohn Baldwin movq 16(%rsi),%r15 190bc3d5698SJohn Baldwin movq 32(%rsi),%rbp 191bc3d5698SJohn Baldwin 192bc3d5698SJohn Baldwin movq %rdi,32(%rsp) 193bc3d5698SJohn Baldwin leaq (%rax,%rax,1),%r14 194bc3d5698SJohn Baldwin mulq %rax 195bc3d5698SJohn Baldwin movq %rax,%rbx 196bc3d5698SJohn Baldwin movq 8(%rsi),%rax 197bc3d5698SJohn Baldwin movq %rdx,%rcx 198bc3d5698SJohn Baldwin mulq %r14 199bc3d5698SJohn Baldwin movq %rax,%r8 200bc3d5698SJohn Baldwin movq %r15,%rax 201bc3d5698SJohn Baldwin movq %r15,0(%rsp) 202bc3d5698SJohn Baldwin movq %rdx,%r9 203bc3d5698SJohn Baldwin mulq %r14 204bc3d5698SJohn Baldwin movq %rax,%r10 205bc3d5698SJohn Baldwin movq 24(%rsi),%rax 206bc3d5698SJohn Baldwin movq %rdx,%r11 207bc3d5698SJohn Baldwin imulq $19,%rbp,%rdi 208bc3d5698SJohn Baldwin mulq %r14 209bc3d5698SJohn Baldwin movq %rax,%r12 210bc3d5698SJohn Baldwin movq %rbp,%rax 211bc3d5698SJohn Baldwin movq %rdx,%r13 212bc3d5698SJohn Baldwin mulq %r14 213bc3d5698SJohn Baldwin movq %rax,%r14 214bc3d5698SJohn Baldwin movq %rbp,%rax 215bc3d5698SJohn Baldwin movq %rdx,%r15 216bc3d5698SJohn Baldwin 217bc3d5698SJohn Baldwin mulq %rdi 218bc3d5698SJohn Baldwin addq %rax,%r12 219bc3d5698SJohn Baldwin movq 8(%rsi),%rax 220bc3d5698SJohn Baldwin adcq %rdx,%r13 221bc3d5698SJohn Baldwin 222bc3d5698SJohn Baldwin movq 24(%rsi),%rsi 223bc3d5698SJohn Baldwin leaq (%rax,%rax,1),%rbp 224bc3d5698SJohn Baldwin mulq %rax 225bc3d5698SJohn Baldwin addq %rax,%r10 226bc3d5698SJohn Baldwin movq 0(%rsp),%rax 227bc3d5698SJohn Baldwin adcq %rdx,%r11 228bc3d5698SJohn Baldwin mulq %rbp 229bc3d5698SJohn Baldwin addq %rax,%r12 230bc3d5698SJohn Baldwin movq %rbp,%rax 231bc3d5698SJohn Baldwin adcq %rdx,%r13 232bc3d5698SJohn Baldwin mulq %rsi 233bc3d5698SJohn Baldwin addq %rax,%r14 234bc3d5698SJohn Baldwin movq %rbp,%rax 235bc3d5698SJohn Baldwin adcq %rdx,%r15 236bc3d5698SJohn Baldwin imulq $19,%rsi,%rbp 237bc3d5698SJohn Baldwin mulq %rdi 238bc3d5698SJohn Baldwin addq %rax,%rbx 239bc3d5698SJohn Baldwin leaq (%rsi,%rsi,1),%rax 240bc3d5698SJohn Baldwin adcq %rdx,%rcx 241bc3d5698SJohn Baldwin 242bc3d5698SJohn Baldwin mulq %rdi 243bc3d5698SJohn Baldwin addq %rax,%r10 244bc3d5698SJohn Baldwin movq %rsi,%rax 245bc3d5698SJohn Baldwin adcq %rdx,%r11 246bc3d5698SJohn Baldwin mulq %rbp 247bc3d5698SJohn Baldwin addq %rax,%r8 248bc3d5698SJohn Baldwin movq 0(%rsp),%rax 249bc3d5698SJohn Baldwin adcq %rdx,%r9 250bc3d5698SJohn Baldwin 251bc3d5698SJohn Baldwin leaq (%rax,%rax,1),%rsi 252bc3d5698SJohn Baldwin mulq %rax 253bc3d5698SJohn Baldwin addq %rax,%r14 254bc3d5698SJohn Baldwin movq %rbp,%rax 255bc3d5698SJohn Baldwin adcq %rdx,%r15 256bc3d5698SJohn Baldwin mulq %rsi 257bc3d5698SJohn Baldwin addq %rax,%rbx 258bc3d5698SJohn Baldwin movq %rsi,%rax 259bc3d5698SJohn Baldwin adcq %rdx,%rcx 260bc3d5698SJohn Baldwin mulq %rdi 261bc3d5698SJohn Baldwin addq %rax,%r8 262bc3d5698SJohn Baldwin adcq %rdx,%r9 263bc3d5698SJohn Baldwin 264bc3d5698SJohn Baldwin movq 32(%rsp),%rdi 265bc3d5698SJohn Baldwin jmp .Lreduce51 266bc3d5698SJohn Baldwin 267bc3d5698SJohn Baldwin.align 32 268bc3d5698SJohn Baldwin.Lreduce51: 269bc3d5698SJohn Baldwin movq $0x7ffffffffffff,%rbp 270bc3d5698SJohn Baldwin 271bc3d5698SJohn Baldwin movq %r10,%rdx 272bc3d5698SJohn Baldwin shrq $51,%r10 273bc3d5698SJohn Baldwin shlq $13,%r11 274bc3d5698SJohn Baldwin andq %rbp,%rdx 275bc3d5698SJohn Baldwin orq %r10,%r11 276bc3d5698SJohn Baldwin addq %r11,%r12 277bc3d5698SJohn Baldwin adcq $0,%r13 278bc3d5698SJohn Baldwin 279bc3d5698SJohn Baldwin movq %rbx,%rax 280bc3d5698SJohn Baldwin shrq $51,%rbx 281bc3d5698SJohn Baldwin shlq $13,%rcx 282bc3d5698SJohn Baldwin andq %rbp,%rax 283bc3d5698SJohn Baldwin orq %rbx,%rcx 284bc3d5698SJohn Baldwin addq %rcx,%r8 285bc3d5698SJohn Baldwin adcq $0,%r9 286bc3d5698SJohn Baldwin 287bc3d5698SJohn Baldwin movq %r12,%rbx 288bc3d5698SJohn Baldwin shrq $51,%r12 289bc3d5698SJohn Baldwin shlq $13,%r13 290bc3d5698SJohn Baldwin andq %rbp,%rbx 291bc3d5698SJohn Baldwin orq %r12,%r13 292bc3d5698SJohn Baldwin addq %r13,%r14 293bc3d5698SJohn Baldwin adcq $0,%r15 294bc3d5698SJohn Baldwin 295bc3d5698SJohn Baldwin movq %r8,%rcx 296bc3d5698SJohn Baldwin shrq $51,%r8 297bc3d5698SJohn Baldwin shlq $13,%r9 298bc3d5698SJohn Baldwin andq %rbp,%rcx 299bc3d5698SJohn Baldwin orq %r8,%r9 300bc3d5698SJohn Baldwin addq %r9,%rdx 301bc3d5698SJohn Baldwin 302bc3d5698SJohn Baldwin movq %r14,%r10 303bc3d5698SJohn Baldwin shrq $51,%r14 304bc3d5698SJohn Baldwin shlq $13,%r15 305bc3d5698SJohn Baldwin andq %rbp,%r10 306bc3d5698SJohn Baldwin orq %r14,%r15 307bc3d5698SJohn Baldwin 308bc3d5698SJohn Baldwin leaq (%r15,%r15,8),%r14 309bc3d5698SJohn Baldwin leaq (%r15,%r14,2),%r15 310bc3d5698SJohn Baldwin addq %r15,%rax 311bc3d5698SJohn Baldwin 312bc3d5698SJohn Baldwin movq %rdx,%r8 313bc3d5698SJohn Baldwin andq %rbp,%rdx 314bc3d5698SJohn Baldwin shrq $51,%r8 315bc3d5698SJohn Baldwin addq %r8,%rbx 316bc3d5698SJohn Baldwin 317bc3d5698SJohn Baldwin movq %rax,%r9 318bc3d5698SJohn Baldwin andq %rbp,%rax 319bc3d5698SJohn Baldwin shrq $51,%r9 320bc3d5698SJohn Baldwin addq %r9,%rcx 321bc3d5698SJohn Baldwin 322bc3d5698SJohn Baldwin movq %rax,0(%rdi) 323bc3d5698SJohn Baldwin movq %rcx,8(%rdi) 324bc3d5698SJohn Baldwin movq %rdx,16(%rdi) 325bc3d5698SJohn Baldwin movq %rbx,24(%rdi) 326bc3d5698SJohn Baldwin movq %r10,32(%rdi) 327bc3d5698SJohn Baldwin 328bc3d5698SJohn Baldwin movq 40(%rsp),%r15 329bc3d5698SJohn Baldwin.cfi_restore %r15 330bc3d5698SJohn Baldwin movq 48(%rsp),%r14 331bc3d5698SJohn Baldwin.cfi_restore %r14 332bc3d5698SJohn Baldwin movq 56(%rsp),%r13 333bc3d5698SJohn Baldwin.cfi_restore %r13 334bc3d5698SJohn Baldwin movq 64(%rsp),%r12 335bc3d5698SJohn Baldwin.cfi_restore %r12 336bc3d5698SJohn Baldwin movq 72(%rsp),%rbx 337bc3d5698SJohn Baldwin.cfi_restore %rbx 338bc3d5698SJohn Baldwin movq 80(%rsp),%rbp 339bc3d5698SJohn Baldwin.cfi_restore %rbp 340bc3d5698SJohn Baldwin leaq 88(%rsp),%rsp 341bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 88 342bc3d5698SJohn Baldwin.Lfe51_sqr_epilogue: 343bc3d5698SJohn Baldwin .byte 0xf3,0xc3 344bc3d5698SJohn Baldwin.cfi_endproc 345bc3d5698SJohn Baldwin.size x25519_fe51_sqr,.-x25519_fe51_sqr 346bc3d5698SJohn Baldwin 347bc3d5698SJohn Baldwin.globl x25519_fe51_mul121666 348bc3d5698SJohn Baldwin.type x25519_fe51_mul121666,@function 349bc3d5698SJohn Baldwin.align 32 350bc3d5698SJohn Baldwinx25519_fe51_mul121666: 351bc3d5698SJohn Baldwin.cfi_startproc 352bc3d5698SJohn Baldwin pushq %rbp 353bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 354bc3d5698SJohn Baldwin.cfi_offset %rbp,-16 355bc3d5698SJohn Baldwin pushq %rbx 356bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 357bc3d5698SJohn Baldwin.cfi_offset %rbx,-24 358bc3d5698SJohn Baldwin pushq %r12 359bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 360bc3d5698SJohn Baldwin.cfi_offset %r12,-32 361bc3d5698SJohn Baldwin pushq %r13 362bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 363bc3d5698SJohn Baldwin.cfi_offset %r13,-40 364bc3d5698SJohn Baldwin pushq %r14 365bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 366bc3d5698SJohn Baldwin.cfi_offset %r14,-48 367bc3d5698SJohn Baldwin pushq %r15 368bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 369bc3d5698SJohn Baldwin.cfi_offset %r15,-56 370bc3d5698SJohn Baldwin leaq -40(%rsp),%rsp 371bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 40 372bc3d5698SJohn Baldwin.Lfe51_mul121666_body: 373bc3d5698SJohn Baldwin movl $121666,%eax 374bc3d5698SJohn Baldwin 375bc3d5698SJohn Baldwin mulq 0(%rsi) 376bc3d5698SJohn Baldwin movq %rax,%rbx 377bc3d5698SJohn Baldwin movl $121666,%eax 378bc3d5698SJohn Baldwin movq %rdx,%rcx 379bc3d5698SJohn Baldwin mulq 8(%rsi) 380bc3d5698SJohn Baldwin movq %rax,%r8 381bc3d5698SJohn Baldwin movl $121666,%eax 382bc3d5698SJohn Baldwin movq %rdx,%r9 383bc3d5698SJohn Baldwin mulq 16(%rsi) 384bc3d5698SJohn Baldwin movq %rax,%r10 385bc3d5698SJohn Baldwin movl $121666,%eax 386bc3d5698SJohn Baldwin movq %rdx,%r11 387bc3d5698SJohn Baldwin mulq 24(%rsi) 388bc3d5698SJohn Baldwin movq %rax,%r12 389bc3d5698SJohn Baldwin movl $121666,%eax 390bc3d5698SJohn Baldwin movq %rdx,%r13 391bc3d5698SJohn Baldwin mulq 32(%rsi) 392bc3d5698SJohn Baldwin movq %rax,%r14 393bc3d5698SJohn Baldwin movq %rdx,%r15 394bc3d5698SJohn Baldwin 395bc3d5698SJohn Baldwin jmp .Lreduce51 396bc3d5698SJohn Baldwin.Lfe51_mul121666_epilogue: 397bc3d5698SJohn Baldwin.cfi_endproc 398bc3d5698SJohn Baldwin.size x25519_fe51_mul121666,.-x25519_fe51_mul121666 399bc3d5698SJohn Baldwin 400bc3d5698SJohn Baldwin.globl x25519_fe64_eligible 401bc3d5698SJohn Baldwin.type x25519_fe64_eligible,@function 402bc3d5698SJohn Baldwin.align 32 403bc3d5698SJohn Baldwinx25519_fe64_eligible: 404bc3d5698SJohn Baldwin.cfi_startproc 405bc3d5698SJohn Baldwin movl OPENSSL_ia32cap_P+8(%rip),%ecx 406bc3d5698SJohn Baldwin xorl %eax,%eax 407bc3d5698SJohn Baldwin andl $0x80100,%ecx 408bc3d5698SJohn Baldwin cmpl $0x80100,%ecx 409bc3d5698SJohn Baldwin cmovel %ecx,%eax 410bc3d5698SJohn Baldwin .byte 0xf3,0xc3 411bc3d5698SJohn Baldwin.cfi_endproc 412bc3d5698SJohn Baldwin.size x25519_fe64_eligible,.-x25519_fe64_eligible 413bc3d5698SJohn Baldwin 414bc3d5698SJohn Baldwin.globl x25519_fe64_mul 415bc3d5698SJohn Baldwin.type x25519_fe64_mul,@function 416bc3d5698SJohn Baldwin.align 32 417bc3d5698SJohn Baldwinx25519_fe64_mul: 418bc3d5698SJohn Baldwin.cfi_startproc 419bc3d5698SJohn Baldwin pushq %rbp 420bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 421bc3d5698SJohn Baldwin.cfi_offset %rbp,-16 422bc3d5698SJohn Baldwin pushq %rbx 423bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 424bc3d5698SJohn Baldwin.cfi_offset %rbx,-24 425bc3d5698SJohn Baldwin pushq %r12 426bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 427bc3d5698SJohn Baldwin.cfi_offset %r12,-32 428bc3d5698SJohn Baldwin pushq %r13 429bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 430bc3d5698SJohn Baldwin.cfi_offset %r13,-40 431bc3d5698SJohn Baldwin pushq %r14 432bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 433bc3d5698SJohn Baldwin.cfi_offset %r14,-48 434bc3d5698SJohn Baldwin pushq %r15 435bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 436bc3d5698SJohn Baldwin.cfi_offset %r15,-56 437bc3d5698SJohn Baldwin pushq %rdi 438bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 439bc3d5698SJohn Baldwin.cfi_offset %rdi,-64 440bc3d5698SJohn Baldwin leaq -16(%rsp),%rsp 441bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 16 442bc3d5698SJohn Baldwin.Lfe64_mul_body: 443bc3d5698SJohn Baldwin 444bc3d5698SJohn Baldwin movq %rdx,%rax 445bc3d5698SJohn Baldwin movq 0(%rdx),%rbp 446bc3d5698SJohn Baldwin movq 0(%rsi),%rdx 447bc3d5698SJohn Baldwin movq 8(%rax),%rcx 448bc3d5698SJohn Baldwin movq 16(%rax),%r14 449bc3d5698SJohn Baldwin movq 24(%rax),%r15 450bc3d5698SJohn Baldwin 451bc3d5698SJohn Baldwin mulxq %rbp,%r8,%rax 452bc3d5698SJohn Baldwin xorl %edi,%edi 453bc3d5698SJohn Baldwin mulxq %rcx,%r9,%rbx 454bc3d5698SJohn Baldwin adcxq %rax,%r9 455bc3d5698SJohn Baldwin mulxq %r14,%r10,%rax 456bc3d5698SJohn Baldwin adcxq %rbx,%r10 457bc3d5698SJohn Baldwin mulxq %r15,%r11,%r12 458bc3d5698SJohn Baldwin movq 8(%rsi),%rdx 459bc3d5698SJohn Baldwin adcxq %rax,%r11 460bc3d5698SJohn Baldwin movq %r14,(%rsp) 461bc3d5698SJohn Baldwin adcxq %rdi,%r12 462bc3d5698SJohn Baldwin 463bc3d5698SJohn Baldwin mulxq %rbp,%rax,%rbx 464bc3d5698SJohn Baldwin adoxq %rax,%r9 465bc3d5698SJohn Baldwin adcxq %rbx,%r10 466bc3d5698SJohn Baldwin mulxq %rcx,%rax,%rbx 467bc3d5698SJohn Baldwin adoxq %rax,%r10 468bc3d5698SJohn Baldwin adcxq %rbx,%r11 469bc3d5698SJohn Baldwin mulxq %r14,%rax,%rbx 470bc3d5698SJohn Baldwin adoxq %rax,%r11 471bc3d5698SJohn Baldwin adcxq %rbx,%r12 472bc3d5698SJohn Baldwin mulxq %r15,%rax,%r13 473bc3d5698SJohn Baldwin movq 16(%rsi),%rdx 474bc3d5698SJohn Baldwin adoxq %rax,%r12 475bc3d5698SJohn Baldwin adcxq %rdi,%r13 476bc3d5698SJohn Baldwin adoxq %rdi,%r13 477bc3d5698SJohn Baldwin 478bc3d5698SJohn Baldwin mulxq %rbp,%rax,%rbx 479bc3d5698SJohn Baldwin adcxq %rax,%r10 480bc3d5698SJohn Baldwin adoxq %rbx,%r11 481bc3d5698SJohn Baldwin mulxq %rcx,%rax,%rbx 482bc3d5698SJohn Baldwin adcxq %rax,%r11 483bc3d5698SJohn Baldwin adoxq %rbx,%r12 484bc3d5698SJohn Baldwin mulxq %r14,%rax,%rbx 485bc3d5698SJohn Baldwin adcxq %rax,%r12 486bc3d5698SJohn Baldwin adoxq %rbx,%r13 487bc3d5698SJohn Baldwin mulxq %r15,%rax,%r14 488bc3d5698SJohn Baldwin movq 24(%rsi),%rdx 489bc3d5698SJohn Baldwin adcxq %rax,%r13 490bc3d5698SJohn Baldwin adoxq %rdi,%r14 491bc3d5698SJohn Baldwin adcxq %rdi,%r14 492bc3d5698SJohn Baldwin 493bc3d5698SJohn Baldwin mulxq %rbp,%rax,%rbx 494bc3d5698SJohn Baldwin adoxq %rax,%r11 495bc3d5698SJohn Baldwin adcxq %rbx,%r12 496bc3d5698SJohn Baldwin mulxq %rcx,%rax,%rbx 497bc3d5698SJohn Baldwin adoxq %rax,%r12 498bc3d5698SJohn Baldwin adcxq %rbx,%r13 499bc3d5698SJohn Baldwin mulxq (%rsp),%rax,%rbx 500bc3d5698SJohn Baldwin adoxq %rax,%r13 501bc3d5698SJohn Baldwin adcxq %rbx,%r14 502bc3d5698SJohn Baldwin mulxq %r15,%rax,%r15 503bc3d5698SJohn Baldwin movl $38,%edx 504bc3d5698SJohn Baldwin adoxq %rax,%r14 505bc3d5698SJohn Baldwin adcxq %rdi,%r15 506bc3d5698SJohn Baldwin adoxq %rdi,%r15 507bc3d5698SJohn Baldwin 508bc3d5698SJohn Baldwin jmp .Lreduce64 509bc3d5698SJohn Baldwin.Lfe64_mul_epilogue: 510bc3d5698SJohn Baldwin.cfi_endproc 511bc3d5698SJohn Baldwin.size x25519_fe64_mul,.-x25519_fe64_mul 512bc3d5698SJohn Baldwin 513bc3d5698SJohn Baldwin.globl x25519_fe64_sqr 514bc3d5698SJohn Baldwin.type x25519_fe64_sqr,@function 515bc3d5698SJohn Baldwin.align 32 516bc3d5698SJohn Baldwinx25519_fe64_sqr: 517bc3d5698SJohn Baldwin.cfi_startproc 518bc3d5698SJohn Baldwin pushq %rbp 519bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 520bc3d5698SJohn Baldwin.cfi_offset %rbp,-16 521bc3d5698SJohn Baldwin pushq %rbx 522bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 523bc3d5698SJohn Baldwin.cfi_offset %rbx,-24 524bc3d5698SJohn Baldwin pushq %r12 525bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 526bc3d5698SJohn Baldwin.cfi_offset %r12,-32 527bc3d5698SJohn Baldwin pushq %r13 528bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 529bc3d5698SJohn Baldwin.cfi_offset %r13,-40 530bc3d5698SJohn Baldwin pushq %r14 531bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 532bc3d5698SJohn Baldwin.cfi_offset %r14,-48 533bc3d5698SJohn Baldwin pushq %r15 534bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 535bc3d5698SJohn Baldwin.cfi_offset %r15,-56 536bc3d5698SJohn Baldwin pushq %rdi 537bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 538bc3d5698SJohn Baldwin.cfi_offset %rdi,-64 539bc3d5698SJohn Baldwin leaq -16(%rsp),%rsp 540bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 16 541bc3d5698SJohn Baldwin.Lfe64_sqr_body: 542bc3d5698SJohn Baldwin 543bc3d5698SJohn Baldwin movq 0(%rsi),%rdx 544bc3d5698SJohn Baldwin movq 8(%rsi),%rcx 545bc3d5698SJohn Baldwin movq 16(%rsi),%rbp 546bc3d5698SJohn Baldwin movq 24(%rsi),%rsi 547bc3d5698SJohn Baldwin 548bc3d5698SJohn Baldwin 549bc3d5698SJohn Baldwin mulxq %rdx,%r8,%r15 550bc3d5698SJohn Baldwin mulxq %rcx,%r9,%rax 551bc3d5698SJohn Baldwin xorl %edi,%edi 552bc3d5698SJohn Baldwin mulxq %rbp,%r10,%rbx 553bc3d5698SJohn Baldwin adcxq %rax,%r10 554bc3d5698SJohn Baldwin mulxq %rsi,%r11,%r12 555bc3d5698SJohn Baldwin movq %rcx,%rdx 556bc3d5698SJohn Baldwin adcxq %rbx,%r11 557bc3d5698SJohn Baldwin adcxq %rdi,%r12 558bc3d5698SJohn Baldwin 559bc3d5698SJohn Baldwin 560bc3d5698SJohn Baldwin mulxq %rbp,%rax,%rbx 561bc3d5698SJohn Baldwin adoxq %rax,%r11 562bc3d5698SJohn Baldwin adcxq %rbx,%r12 563bc3d5698SJohn Baldwin mulxq %rsi,%rax,%r13 564bc3d5698SJohn Baldwin movq %rbp,%rdx 565bc3d5698SJohn Baldwin adoxq %rax,%r12 566bc3d5698SJohn Baldwin adcxq %rdi,%r13 567bc3d5698SJohn Baldwin 568bc3d5698SJohn Baldwin 569bc3d5698SJohn Baldwin mulxq %rsi,%rax,%r14 570bc3d5698SJohn Baldwin movq %rcx,%rdx 571bc3d5698SJohn Baldwin adoxq %rax,%r13 572bc3d5698SJohn Baldwin adcxq %rdi,%r14 573bc3d5698SJohn Baldwin adoxq %rdi,%r14 574bc3d5698SJohn Baldwin 575bc3d5698SJohn Baldwin adcxq %r9,%r9 576bc3d5698SJohn Baldwin adoxq %r15,%r9 577bc3d5698SJohn Baldwin adcxq %r10,%r10 578bc3d5698SJohn Baldwin mulxq %rdx,%rax,%rbx 579bc3d5698SJohn Baldwin movq %rbp,%rdx 580bc3d5698SJohn Baldwin adcxq %r11,%r11 581bc3d5698SJohn Baldwin adoxq %rax,%r10 582bc3d5698SJohn Baldwin adcxq %r12,%r12 583bc3d5698SJohn Baldwin adoxq %rbx,%r11 584bc3d5698SJohn Baldwin mulxq %rdx,%rax,%rbx 585bc3d5698SJohn Baldwin movq %rsi,%rdx 586bc3d5698SJohn Baldwin adcxq %r13,%r13 587bc3d5698SJohn Baldwin adoxq %rax,%r12 588bc3d5698SJohn Baldwin adcxq %r14,%r14 589bc3d5698SJohn Baldwin adoxq %rbx,%r13 590bc3d5698SJohn Baldwin mulxq %rdx,%rax,%r15 591bc3d5698SJohn Baldwin movl $38,%edx 592bc3d5698SJohn Baldwin adoxq %rax,%r14 593bc3d5698SJohn Baldwin adcxq %rdi,%r15 594bc3d5698SJohn Baldwin adoxq %rdi,%r15 595bc3d5698SJohn Baldwin jmp .Lreduce64 596bc3d5698SJohn Baldwin 597bc3d5698SJohn Baldwin.align 32 598bc3d5698SJohn Baldwin.Lreduce64: 599bc3d5698SJohn Baldwin mulxq %r12,%rax,%rbx 600bc3d5698SJohn Baldwin adcxq %rax,%r8 601bc3d5698SJohn Baldwin adoxq %rbx,%r9 602bc3d5698SJohn Baldwin mulxq %r13,%rax,%rbx 603bc3d5698SJohn Baldwin adcxq %rax,%r9 604bc3d5698SJohn Baldwin adoxq %rbx,%r10 605bc3d5698SJohn Baldwin mulxq %r14,%rax,%rbx 606bc3d5698SJohn Baldwin adcxq %rax,%r10 607bc3d5698SJohn Baldwin adoxq %rbx,%r11 608bc3d5698SJohn Baldwin mulxq %r15,%rax,%r12 609bc3d5698SJohn Baldwin adcxq %rax,%r11 610bc3d5698SJohn Baldwin adoxq %rdi,%r12 611bc3d5698SJohn Baldwin adcxq %rdi,%r12 612bc3d5698SJohn Baldwin 613bc3d5698SJohn Baldwin movq 16(%rsp),%rdi 614bc3d5698SJohn Baldwin imulq %rdx,%r12 615bc3d5698SJohn Baldwin 616bc3d5698SJohn Baldwin addq %r12,%r8 617bc3d5698SJohn Baldwin adcq $0,%r9 618bc3d5698SJohn Baldwin adcq $0,%r10 619bc3d5698SJohn Baldwin adcq $0,%r11 620bc3d5698SJohn Baldwin 621bc3d5698SJohn Baldwin sbbq %rax,%rax 622bc3d5698SJohn Baldwin andq $38,%rax 623bc3d5698SJohn Baldwin 624bc3d5698SJohn Baldwin addq %rax,%r8 625bc3d5698SJohn Baldwin movq %r9,8(%rdi) 626bc3d5698SJohn Baldwin movq %r10,16(%rdi) 627bc3d5698SJohn Baldwin movq %r11,24(%rdi) 628bc3d5698SJohn Baldwin movq %r8,0(%rdi) 629bc3d5698SJohn Baldwin 630bc3d5698SJohn Baldwin movq 24(%rsp),%r15 631bc3d5698SJohn Baldwin.cfi_restore %r15 632bc3d5698SJohn Baldwin movq 32(%rsp),%r14 633bc3d5698SJohn Baldwin.cfi_restore %r14 634bc3d5698SJohn Baldwin movq 40(%rsp),%r13 635bc3d5698SJohn Baldwin.cfi_restore %r13 636bc3d5698SJohn Baldwin movq 48(%rsp),%r12 637bc3d5698SJohn Baldwin.cfi_restore %r12 638bc3d5698SJohn Baldwin movq 56(%rsp),%rbx 639bc3d5698SJohn Baldwin.cfi_restore %rbx 640bc3d5698SJohn Baldwin movq 64(%rsp),%rbp 641bc3d5698SJohn Baldwin.cfi_restore %rbp 642bc3d5698SJohn Baldwin leaq 72(%rsp),%rsp 643bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 88 644bc3d5698SJohn Baldwin.Lfe64_sqr_epilogue: 645bc3d5698SJohn Baldwin .byte 0xf3,0xc3 646bc3d5698SJohn Baldwin.cfi_endproc 647bc3d5698SJohn Baldwin.size x25519_fe64_sqr,.-x25519_fe64_sqr 648bc3d5698SJohn Baldwin 649bc3d5698SJohn Baldwin.globl x25519_fe64_mul121666 650bc3d5698SJohn Baldwin.type x25519_fe64_mul121666,@function 651bc3d5698SJohn Baldwin.align 32 652bc3d5698SJohn Baldwinx25519_fe64_mul121666: 653bc3d5698SJohn Baldwin.Lfe64_mul121666_body: 654bc3d5698SJohn Baldwin.cfi_startproc 655bc3d5698SJohn Baldwin movl $121666,%edx 656bc3d5698SJohn Baldwin mulxq 0(%rsi),%r8,%rcx 657bc3d5698SJohn Baldwin mulxq 8(%rsi),%r9,%rax 658bc3d5698SJohn Baldwin addq %rcx,%r9 659bc3d5698SJohn Baldwin mulxq 16(%rsi),%r10,%rcx 660bc3d5698SJohn Baldwin adcq %rax,%r10 661bc3d5698SJohn Baldwin mulxq 24(%rsi),%r11,%rax 662bc3d5698SJohn Baldwin adcq %rcx,%r11 663bc3d5698SJohn Baldwin adcq $0,%rax 664bc3d5698SJohn Baldwin 665bc3d5698SJohn Baldwin imulq $38,%rax,%rax 666bc3d5698SJohn Baldwin 667bc3d5698SJohn Baldwin addq %rax,%r8 668bc3d5698SJohn Baldwin adcq $0,%r9 669bc3d5698SJohn Baldwin adcq $0,%r10 670bc3d5698SJohn Baldwin adcq $0,%r11 671bc3d5698SJohn Baldwin 672bc3d5698SJohn Baldwin sbbq %rax,%rax 673bc3d5698SJohn Baldwin andq $38,%rax 674bc3d5698SJohn Baldwin 675bc3d5698SJohn Baldwin addq %rax,%r8 676bc3d5698SJohn Baldwin movq %r9,8(%rdi) 677bc3d5698SJohn Baldwin movq %r10,16(%rdi) 678bc3d5698SJohn Baldwin movq %r11,24(%rdi) 679bc3d5698SJohn Baldwin movq %r8,0(%rdi) 680bc3d5698SJohn Baldwin 681bc3d5698SJohn Baldwin.Lfe64_mul121666_epilogue: 682bc3d5698SJohn Baldwin .byte 0xf3,0xc3 683bc3d5698SJohn Baldwin.cfi_endproc 684bc3d5698SJohn Baldwin.size x25519_fe64_mul121666,.-x25519_fe64_mul121666 685bc3d5698SJohn Baldwin 686bc3d5698SJohn Baldwin.globl x25519_fe64_add 687bc3d5698SJohn Baldwin.type x25519_fe64_add,@function 688bc3d5698SJohn Baldwin.align 32 689bc3d5698SJohn Baldwinx25519_fe64_add: 690bc3d5698SJohn Baldwin.Lfe64_add_body: 691bc3d5698SJohn Baldwin.cfi_startproc 692bc3d5698SJohn Baldwin movq 0(%rsi),%r8 693bc3d5698SJohn Baldwin movq 8(%rsi),%r9 694bc3d5698SJohn Baldwin movq 16(%rsi),%r10 695bc3d5698SJohn Baldwin movq 24(%rsi),%r11 696bc3d5698SJohn Baldwin 697bc3d5698SJohn Baldwin addq 0(%rdx),%r8 698bc3d5698SJohn Baldwin adcq 8(%rdx),%r9 699bc3d5698SJohn Baldwin adcq 16(%rdx),%r10 700bc3d5698SJohn Baldwin adcq 24(%rdx),%r11 701bc3d5698SJohn Baldwin 702bc3d5698SJohn Baldwin sbbq %rax,%rax 703bc3d5698SJohn Baldwin andq $38,%rax 704bc3d5698SJohn Baldwin 705bc3d5698SJohn Baldwin addq %rax,%r8 706bc3d5698SJohn Baldwin adcq $0,%r9 707bc3d5698SJohn Baldwin adcq $0,%r10 708bc3d5698SJohn Baldwin movq %r9,8(%rdi) 709bc3d5698SJohn Baldwin adcq $0,%r11 710bc3d5698SJohn Baldwin movq %r10,16(%rdi) 711bc3d5698SJohn Baldwin sbbq %rax,%rax 712bc3d5698SJohn Baldwin movq %r11,24(%rdi) 713bc3d5698SJohn Baldwin andq $38,%rax 714bc3d5698SJohn Baldwin 715bc3d5698SJohn Baldwin addq %rax,%r8 716bc3d5698SJohn Baldwin movq %r8,0(%rdi) 717bc3d5698SJohn Baldwin 718bc3d5698SJohn Baldwin.Lfe64_add_epilogue: 719bc3d5698SJohn Baldwin .byte 0xf3,0xc3 720bc3d5698SJohn Baldwin.cfi_endproc 721bc3d5698SJohn Baldwin.size x25519_fe64_add,.-x25519_fe64_add 722bc3d5698SJohn Baldwin 723bc3d5698SJohn Baldwin.globl x25519_fe64_sub 724bc3d5698SJohn Baldwin.type x25519_fe64_sub,@function 725bc3d5698SJohn Baldwin.align 32 726bc3d5698SJohn Baldwinx25519_fe64_sub: 727bc3d5698SJohn Baldwin.Lfe64_sub_body: 728bc3d5698SJohn Baldwin.cfi_startproc 729bc3d5698SJohn Baldwin movq 0(%rsi),%r8 730bc3d5698SJohn Baldwin movq 8(%rsi),%r9 731bc3d5698SJohn Baldwin movq 16(%rsi),%r10 732bc3d5698SJohn Baldwin movq 24(%rsi),%r11 733bc3d5698SJohn Baldwin 734bc3d5698SJohn Baldwin subq 0(%rdx),%r8 735bc3d5698SJohn Baldwin sbbq 8(%rdx),%r9 736bc3d5698SJohn Baldwin sbbq 16(%rdx),%r10 737bc3d5698SJohn Baldwin sbbq 24(%rdx),%r11 738bc3d5698SJohn Baldwin 739bc3d5698SJohn Baldwin sbbq %rax,%rax 740bc3d5698SJohn Baldwin andq $38,%rax 741bc3d5698SJohn Baldwin 742bc3d5698SJohn Baldwin subq %rax,%r8 743bc3d5698SJohn Baldwin sbbq $0,%r9 744bc3d5698SJohn Baldwin sbbq $0,%r10 745bc3d5698SJohn Baldwin movq %r9,8(%rdi) 746bc3d5698SJohn Baldwin sbbq $0,%r11 747bc3d5698SJohn Baldwin movq %r10,16(%rdi) 748bc3d5698SJohn Baldwin sbbq %rax,%rax 749bc3d5698SJohn Baldwin movq %r11,24(%rdi) 750bc3d5698SJohn Baldwin andq $38,%rax 751bc3d5698SJohn Baldwin 752bc3d5698SJohn Baldwin subq %rax,%r8 753bc3d5698SJohn Baldwin movq %r8,0(%rdi) 754bc3d5698SJohn Baldwin 755bc3d5698SJohn Baldwin.Lfe64_sub_epilogue: 756bc3d5698SJohn Baldwin .byte 0xf3,0xc3 757bc3d5698SJohn Baldwin.cfi_endproc 758bc3d5698SJohn Baldwin.size x25519_fe64_sub,.-x25519_fe64_sub 759bc3d5698SJohn Baldwin 760bc3d5698SJohn Baldwin.globl x25519_fe64_tobytes 761bc3d5698SJohn Baldwin.type x25519_fe64_tobytes,@function 762bc3d5698SJohn Baldwin.align 32 763bc3d5698SJohn Baldwinx25519_fe64_tobytes: 764bc3d5698SJohn Baldwin.Lfe64_to_body: 765bc3d5698SJohn Baldwin.cfi_startproc 766bc3d5698SJohn Baldwin movq 0(%rsi),%r8 767bc3d5698SJohn Baldwin movq 8(%rsi),%r9 768bc3d5698SJohn Baldwin movq 16(%rsi),%r10 769bc3d5698SJohn Baldwin movq 24(%rsi),%r11 770bc3d5698SJohn Baldwin 771bc3d5698SJohn Baldwin 772bc3d5698SJohn Baldwin leaq (%r11,%r11,1),%rax 773bc3d5698SJohn Baldwin sarq $63,%r11 774bc3d5698SJohn Baldwin shrq $1,%rax 775bc3d5698SJohn Baldwin andq $19,%r11 776bc3d5698SJohn Baldwin addq $19,%r11 777bc3d5698SJohn Baldwin 778bc3d5698SJohn Baldwin addq %r11,%r8 779bc3d5698SJohn Baldwin adcq $0,%r9 780bc3d5698SJohn Baldwin adcq $0,%r10 781bc3d5698SJohn Baldwin adcq $0,%rax 782bc3d5698SJohn Baldwin 783bc3d5698SJohn Baldwin leaq (%rax,%rax,1),%r11 784bc3d5698SJohn Baldwin sarq $63,%rax 785bc3d5698SJohn Baldwin shrq $1,%r11 786bc3d5698SJohn Baldwin notq %rax 787bc3d5698SJohn Baldwin andq $19,%rax 788bc3d5698SJohn Baldwin 789bc3d5698SJohn Baldwin subq %rax,%r8 790bc3d5698SJohn Baldwin sbbq $0,%r9 791bc3d5698SJohn Baldwin sbbq $0,%r10 792bc3d5698SJohn Baldwin sbbq $0,%r11 793bc3d5698SJohn Baldwin 794bc3d5698SJohn Baldwin movq %r8,0(%rdi) 795bc3d5698SJohn Baldwin movq %r9,8(%rdi) 796bc3d5698SJohn Baldwin movq %r10,16(%rdi) 797bc3d5698SJohn Baldwin movq %r11,24(%rdi) 798bc3d5698SJohn Baldwin 799bc3d5698SJohn Baldwin.Lfe64_to_epilogue: 800bc3d5698SJohn Baldwin .byte 0xf3,0xc3 801bc3d5698SJohn Baldwin.cfi_endproc 802bc3d5698SJohn Baldwin.size x25519_fe64_tobytes,.-x25519_fe64_tobytes 803bc3d5698SJohn Baldwin.byte 88,50,53,53,49,57,32,112,114,105,109,105,116,105,118,101,115,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 804*c0855eaaSJohn Baldwin .section ".note.gnu.property", "a" 805*c0855eaaSJohn Baldwin .p2align 3 806*c0855eaaSJohn Baldwin .long 1f - 0f 807*c0855eaaSJohn Baldwin .long 4f - 1f 808*c0855eaaSJohn Baldwin .long 5 809*c0855eaaSJohn Baldwin0: 810*c0855eaaSJohn Baldwin # "GNU" encoded with .byte, since .asciz isn't supported 811*c0855eaaSJohn Baldwin # on Solaris. 812*c0855eaaSJohn Baldwin .byte 0x47 813*c0855eaaSJohn Baldwin .byte 0x4e 814*c0855eaaSJohn Baldwin .byte 0x55 815*c0855eaaSJohn Baldwin .byte 0 816*c0855eaaSJohn Baldwin1: 817*c0855eaaSJohn Baldwin .p2align 3 818*c0855eaaSJohn Baldwin .long 0xc0000002 819*c0855eaaSJohn Baldwin .long 3f - 2f 820*c0855eaaSJohn Baldwin2: 821*c0855eaaSJohn Baldwin .long 3 822*c0855eaaSJohn Baldwin3: 823*c0855eaaSJohn Baldwin .p2align 3 824*c0855eaaSJohn Baldwin4: 825