1bc3d5698SJohn Baldwin/* Do not modify. This file is auto-generated from keccak1600-x86_64.pl. */ 2bc3d5698SJohn Baldwin.text 3bc3d5698SJohn Baldwin 4bc3d5698SJohn Baldwin.type __KeccakF1600,@function 5bc3d5698SJohn Baldwin.align 32 6bc3d5698SJohn Baldwin__KeccakF1600: 7bc3d5698SJohn Baldwin.cfi_startproc 8bc3d5698SJohn Baldwin movq 60(%rdi),%rax 9bc3d5698SJohn Baldwin movq 68(%rdi),%rbx 10bc3d5698SJohn Baldwin movq 76(%rdi),%rcx 11bc3d5698SJohn Baldwin movq 84(%rdi),%rdx 12bc3d5698SJohn Baldwin movq 92(%rdi),%rbp 13bc3d5698SJohn Baldwin jmp .Loop 14bc3d5698SJohn Baldwin 15bc3d5698SJohn Baldwin.align 32 16bc3d5698SJohn Baldwin.Loop: 17bc3d5698SJohn Baldwin movq -100(%rdi),%r8 18bc3d5698SJohn Baldwin movq -52(%rdi),%r9 19bc3d5698SJohn Baldwin movq -4(%rdi),%r10 20bc3d5698SJohn Baldwin movq 44(%rdi),%r11 21bc3d5698SJohn Baldwin 22bc3d5698SJohn Baldwin xorq -84(%rdi),%rcx 23bc3d5698SJohn Baldwin xorq -76(%rdi),%rdx 24bc3d5698SJohn Baldwin xorq %r8,%rax 25bc3d5698SJohn Baldwin xorq -92(%rdi),%rbx 26bc3d5698SJohn Baldwin xorq -44(%rdi),%rcx 27bc3d5698SJohn Baldwin xorq -60(%rdi),%rax 28bc3d5698SJohn Baldwin movq %rbp,%r12 29bc3d5698SJohn Baldwin xorq -68(%rdi),%rbp 30bc3d5698SJohn Baldwin 31bc3d5698SJohn Baldwin xorq %r10,%rcx 32bc3d5698SJohn Baldwin xorq -20(%rdi),%rax 33bc3d5698SJohn Baldwin xorq -36(%rdi),%rdx 34bc3d5698SJohn Baldwin xorq %r9,%rbx 35bc3d5698SJohn Baldwin xorq -28(%rdi),%rbp 36bc3d5698SJohn Baldwin 37bc3d5698SJohn Baldwin xorq 36(%rdi),%rcx 38bc3d5698SJohn Baldwin xorq 20(%rdi),%rax 39bc3d5698SJohn Baldwin xorq 4(%rdi),%rdx 40bc3d5698SJohn Baldwin xorq -12(%rdi),%rbx 41bc3d5698SJohn Baldwin xorq 12(%rdi),%rbp 42bc3d5698SJohn Baldwin 43bc3d5698SJohn Baldwin movq %rcx,%r13 44bc3d5698SJohn Baldwin rolq $1,%rcx 45bc3d5698SJohn Baldwin xorq %rax,%rcx 46bc3d5698SJohn Baldwin xorq %r11,%rdx 47bc3d5698SJohn Baldwin 48bc3d5698SJohn Baldwin rolq $1,%rax 49bc3d5698SJohn Baldwin xorq %rdx,%rax 50bc3d5698SJohn Baldwin xorq 28(%rdi),%rbx 51bc3d5698SJohn Baldwin 52bc3d5698SJohn Baldwin rolq $1,%rdx 53bc3d5698SJohn Baldwin xorq %rbx,%rdx 54bc3d5698SJohn Baldwin xorq 52(%rdi),%rbp 55bc3d5698SJohn Baldwin 56bc3d5698SJohn Baldwin rolq $1,%rbx 57bc3d5698SJohn Baldwin xorq %rbp,%rbx 58bc3d5698SJohn Baldwin 59bc3d5698SJohn Baldwin rolq $1,%rbp 60bc3d5698SJohn Baldwin xorq %r13,%rbp 61bc3d5698SJohn Baldwin xorq %rcx,%r9 62bc3d5698SJohn Baldwin xorq %rdx,%r10 63bc3d5698SJohn Baldwin rolq $44,%r9 64bc3d5698SJohn Baldwin xorq %rbp,%r11 65bc3d5698SJohn Baldwin xorq %rax,%r12 66bc3d5698SJohn Baldwin rolq $43,%r10 67bc3d5698SJohn Baldwin xorq %rbx,%r8 68bc3d5698SJohn Baldwin movq %r9,%r13 69bc3d5698SJohn Baldwin rolq $21,%r11 70bc3d5698SJohn Baldwin orq %r10,%r9 71bc3d5698SJohn Baldwin xorq %r8,%r9 72bc3d5698SJohn Baldwin rolq $14,%r12 73bc3d5698SJohn Baldwin 74bc3d5698SJohn Baldwin xorq (%r15),%r9 75bc3d5698SJohn Baldwin leaq 8(%r15),%r15 76bc3d5698SJohn Baldwin 77bc3d5698SJohn Baldwin movq %r12,%r14 78bc3d5698SJohn Baldwin andq %r11,%r12 79bc3d5698SJohn Baldwin movq %r9,-100(%rsi) 80bc3d5698SJohn Baldwin xorq %r10,%r12 81bc3d5698SJohn Baldwin notq %r10 82bc3d5698SJohn Baldwin movq %r12,-84(%rsi) 83bc3d5698SJohn Baldwin 84bc3d5698SJohn Baldwin orq %r11,%r10 85bc3d5698SJohn Baldwin movq 76(%rdi),%r12 86bc3d5698SJohn Baldwin xorq %r13,%r10 87bc3d5698SJohn Baldwin movq %r10,-92(%rsi) 88bc3d5698SJohn Baldwin 89bc3d5698SJohn Baldwin andq %r8,%r13 90bc3d5698SJohn Baldwin movq -28(%rdi),%r9 91bc3d5698SJohn Baldwin xorq %r14,%r13 92bc3d5698SJohn Baldwin movq -20(%rdi),%r10 93bc3d5698SJohn Baldwin movq %r13,-68(%rsi) 94bc3d5698SJohn Baldwin 95bc3d5698SJohn Baldwin orq %r8,%r14 96bc3d5698SJohn Baldwin movq -76(%rdi),%r8 97bc3d5698SJohn Baldwin xorq %r11,%r14 98bc3d5698SJohn Baldwin movq 28(%rdi),%r11 99bc3d5698SJohn Baldwin movq %r14,-76(%rsi) 100bc3d5698SJohn Baldwin 101bc3d5698SJohn Baldwin 102bc3d5698SJohn Baldwin xorq %rbp,%r8 103bc3d5698SJohn Baldwin xorq %rdx,%r12 104bc3d5698SJohn Baldwin rolq $28,%r8 105bc3d5698SJohn Baldwin xorq %rcx,%r11 106bc3d5698SJohn Baldwin xorq %rax,%r9 107bc3d5698SJohn Baldwin rolq $61,%r12 108bc3d5698SJohn Baldwin rolq $45,%r11 109bc3d5698SJohn Baldwin xorq %rbx,%r10 110bc3d5698SJohn Baldwin rolq $20,%r9 111bc3d5698SJohn Baldwin movq %r8,%r13 112bc3d5698SJohn Baldwin orq %r12,%r8 113bc3d5698SJohn Baldwin rolq $3,%r10 114bc3d5698SJohn Baldwin 115bc3d5698SJohn Baldwin xorq %r11,%r8 116bc3d5698SJohn Baldwin movq %r8,-36(%rsi) 117bc3d5698SJohn Baldwin 118bc3d5698SJohn Baldwin movq %r9,%r14 119bc3d5698SJohn Baldwin andq %r13,%r9 120bc3d5698SJohn Baldwin movq -92(%rdi),%r8 121bc3d5698SJohn Baldwin xorq %r12,%r9 122bc3d5698SJohn Baldwin notq %r12 123bc3d5698SJohn Baldwin movq %r9,-28(%rsi) 124bc3d5698SJohn Baldwin 125bc3d5698SJohn Baldwin orq %r11,%r12 126bc3d5698SJohn Baldwin movq -44(%rdi),%r9 127bc3d5698SJohn Baldwin xorq %r10,%r12 128bc3d5698SJohn Baldwin movq %r12,-44(%rsi) 129bc3d5698SJohn Baldwin 130bc3d5698SJohn Baldwin andq %r10,%r11 131bc3d5698SJohn Baldwin movq 60(%rdi),%r12 132bc3d5698SJohn Baldwin xorq %r14,%r11 133bc3d5698SJohn Baldwin movq %r11,-52(%rsi) 134bc3d5698SJohn Baldwin 135bc3d5698SJohn Baldwin orq %r10,%r14 136bc3d5698SJohn Baldwin movq 4(%rdi),%r10 137bc3d5698SJohn Baldwin xorq %r13,%r14 138bc3d5698SJohn Baldwin movq 52(%rdi),%r11 139bc3d5698SJohn Baldwin movq %r14,-60(%rsi) 140bc3d5698SJohn Baldwin 141bc3d5698SJohn Baldwin 142bc3d5698SJohn Baldwin xorq %rbp,%r10 143bc3d5698SJohn Baldwin xorq %rax,%r11 144bc3d5698SJohn Baldwin rolq $25,%r10 145bc3d5698SJohn Baldwin xorq %rdx,%r9 146bc3d5698SJohn Baldwin rolq $8,%r11 147bc3d5698SJohn Baldwin xorq %rbx,%r12 148bc3d5698SJohn Baldwin rolq $6,%r9 149bc3d5698SJohn Baldwin xorq %rcx,%r8 150bc3d5698SJohn Baldwin rolq $18,%r12 151bc3d5698SJohn Baldwin movq %r10,%r13 152bc3d5698SJohn Baldwin andq %r11,%r10 153bc3d5698SJohn Baldwin rolq $1,%r8 154bc3d5698SJohn Baldwin 155bc3d5698SJohn Baldwin notq %r11 156bc3d5698SJohn Baldwin xorq %r9,%r10 157bc3d5698SJohn Baldwin movq %r10,-12(%rsi) 158bc3d5698SJohn Baldwin 159bc3d5698SJohn Baldwin movq %r12,%r14 160bc3d5698SJohn Baldwin andq %r11,%r12 161bc3d5698SJohn Baldwin movq -12(%rdi),%r10 162bc3d5698SJohn Baldwin xorq %r13,%r12 163bc3d5698SJohn Baldwin movq %r12,-4(%rsi) 164bc3d5698SJohn Baldwin 165bc3d5698SJohn Baldwin orq %r9,%r13 166bc3d5698SJohn Baldwin movq 84(%rdi),%r12 167bc3d5698SJohn Baldwin xorq %r8,%r13 168bc3d5698SJohn Baldwin movq %r13,-20(%rsi) 169bc3d5698SJohn Baldwin 170bc3d5698SJohn Baldwin andq %r8,%r9 171bc3d5698SJohn Baldwin xorq %r14,%r9 172bc3d5698SJohn Baldwin movq %r9,12(%rsi) 173bc3d5698SJohn Baldwin 174bc3d5698SJohn Baldwin orq %r8,%r14 175bc3d5698SJohn Baldwin movq -60(%rdi),%r9 176bc3d5698SJohn Baldwin xorq %r11,%r14 177bc3d5698SJohn Baldwin movq 36(%rdi),%r11 178bc3d5698SJohn Baldwin movq %r14,4(%rsi) 179bc3d5698SJohn Baldwin 180bc3d5698SJohn Baldwin 181bc3d5698SJohn Baldwin movq -68(%rdi),%r8 182bc3d5698SJohn Baldwin 183bc3d5698SJohn Baldwin xorq %rcx,%r10 184bc3d5698SJohn Baldwin xorq %rdx,%r11 185bc3d5698SJohn Baldwin rolq $10,%r10 186bc3d5698SJohn Baldwin xorq %rbx,%r9 187bc3d5698SJohn Baldwin rolq $15,%r11 188bc3d5698SJohn Baldwin xorq %rbp,%r12 189bc3d5698SJohn Baldwin rolq $36,%r9 190bc3d5698SJohn Baldwin xorq %rax,%r8 191bc3d5698SJohn Baldwin rolq $56,%r12 192bc3d5698SJohn Baldwin movq %r10,%r13 193bc3d5698SJohn Baldwin orq %r11,%r10 194bc3d5698SJohn Baldwin rolq $27,%r8 195bc3d5698SJohn Baldwin 196bc3d5698SJohn Baldwin notq %r11 197bc3d5698SJohn Baldwin xorq %r9,%r10 198bc3d5698SJohn Baldwin movq %r10,28(%rsi) 199bc3d5698SJohn Baldwin 200bc3d5698SJohn Baldwin movq %r12,%r14 201bc3d5698SJohn Baldwin orq %r11,%r12 202bc3d5698SJohn Baldwin xorq %r13,%r12 203bc3d5698SJohn Baldwin movq %r12,36(%rsi) 204bc3d5698SJohn Baldwin 205bc3d5698SJohn Baldwin andq %r9,%r13 206bc3d5698SJohn Baldwin xorq %r8,%r13 207bc3d5698SJohn Baldwin movq %r13,20(%rsi) 208bc3d5698SJohn Baldwin 209bc3d5698SJohn Baldwin orq %r8,%r9 210bc3d5698SJohn Baldwin xorq %r14,%r9 211bc3d5698SJohn Baldwin movq %r9,52(%rsi) 212bc3d5698SJohn Baldwin 213bc3d5698SJohn Baldwin andq %r14,%r8 214bc3d5698SJohn Baldwin xorq %r11,%r8 215bc3d5698SJohn Baldwin movq %r8,44(%rsi) 216bc3d5698SJohn Baldwin 217bc3d5698SJohn Baldwin 218bc3d5698SJohn Baldwin xorq -84(%rdi),%rdx 219bc3d5698SJohn Baldwin xorq -36(%rdi),%rbp 220bc3d5698SJohn Baldwin rolq $62,%rdx 221bc3d5698SJohn Baldwin xorq 68(%rdi),%rcx 222bc3d5698SJohn Baldwin rolq $55,%rbp 223bc3d5698SJohn Baldwin xorq 12(%rdi),%rax 224bc3d5698SJohn Baldwin rolq $2,%rcx 225bc3d5698SJohn Baldwin xorq 20(%rdi),%rbx 226bc3d5698SJohn Baldwin xchgq %rsi,%rdi 227bc3d5698SJohn Baldwin rolq $39,%rax 228bc3d5698SJohn Baldwin rolq $41,%rbx 229bc3d5698SJohn Baldwin movq %rdx,%r13 230bc3d5698SJohn Baldwin andq %rbp,%rdx 231bc3d5698SJohn Baldwin notq %rbp 232bc3d5698SJohn Baldwin xorq %rcx,%rdx 233bc3d5698SJohn Baldwin movq %rdx,92(%rdi) 234bc3d5698SJohn Baldwin 235bc3d5698SJohn Baldwin movq %rax,%r14 236bc3d5698SJohn Baldwin andq %rbp,%rax 237bc3d5698SJohn Baldwin xorq %r13,%rax 238bc3d5698SJohn Baldwin movq %rax,60(%rdi) 239bc3d5698SJohn Baldwin 240bc3d5698SJohn Baldwin orq %rcx,%r13 241bc3d5698SJohn Baldwin xorq %rbx,%r13 242bc3d5698SJohn Baldwin movq %r13,84(%rdi) 243bc3d5698SJohn Baldwin 244bc3d5698SJohn Baldwin andq %rbx,%rcx 245bc3d5698SJohn Baldwin xorq %r14,%rcx 246bc3d5698SJohn Baldwin movq %rcx,76(%rdi) 247bc3d5698SJohn Baldwin 248bc3d5698SJohn Baldwin orq %r14,%rbx 249bc3d5698SJohn Baldwin xorq %rbp,%rbx 250bc3d5698SJohn Baldwin movq %rbx,68(%rdi) 251bc3d5698SJohn Baldwin 252bc3d5698SJohn Baldwin movq %rdx,%rbp 253bc3d5698SJohn Baldwin movq %r13,%rdx 254bc3d5698SJohn Baldwin 255bc3d5698SJohn Baldwin testq $255,%r15 256bc3d5698SJohn Baldwin jnz .Loop 257bc3d5698SJohn Baldwin 258bc3d5698SJohn Baldwin leaq -192(%r15),%r15 259bc3d5698SJohn Baldwin .byte 0xf3,0xc3 260bc3d5698SJohn Baldwin.cfi_endproc 261bc3d5698SJohn Baldwin.size __KeccakF1600,.-__KeccakF1600 262bc3d5698SJohn Baldwin 263bc3d5698SJohn Baldwin.type KeccakF1600,@function 264bc3d5698SJohn Baldwin.align 32 265bc3d5698SJohn BaldwinKeccakF1600: 266bc3d5698SJohn Baldwin.cfi_startproc 267bc3d5698SJohn Baldwin pushq %rbx 268bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 269bc3d5698SJohn Baldwin.cfi_offset %rbx,-16 270bc3d5698SJohn Baldwin pushq %rbp 271bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 272bc3d5698SJohn Baldwin.cfi_offset %rbp,-24 273bc3d5698SJohn Baldwin pushq %r12 274bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 275bc3d5698SJohn Baldwin.cfi_offset %r12,-32 276bc3d5698SJohn Baldwin pushq %r13 277bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 278bc3d5698SJohn Baldwin.cfi_offset %r13,-40 279bc3d5698SJohn Baldwin pushq %r14 280bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 281bc3d5698SJohn Baldwin.cfi_offset %r14,-48 282bc3d5698SJohn Baldwin pushq %r15 283bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 284bc3d5698SJohn Baldwin.cfi_offset %r15,-56 285bc3d5698SJohn Baldwin 286bc3d5698SJohn Baldwin leaq 100(%rdi),%rdi 287bc3d5698SJohn Baldwin subq $200,%rsp 288bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 200 289bc3d5698SJohn Baldwin 290bc3d5698SJohn Baldwin notq -92(%rdi) 291bc3d5698SJohn Baldwin notq -84(%rdi) 292bc3d5698SJohn Baldwin notq -36(%rdi) 293bc3d5698SJohn Baldwin notq -4(%rdi) 294bc3d5698SJohn Baldwin notq 36(%rdi) 295bc3d5698SJohn Baldwin notq 60(%rdi) 296bc3d5698SJohn Baldwin 297bc3d5698SJohn Baldwin leaq iotas(%rip),%r15 298bc3d5698SJohn Baldwin leaq 100(%rsp),%rsi 299bc3d5698SJohn Baldwin 300bc3d5698SJohn Baldwin call __KeccakF1600 301bc3d5698SJohn Baldwin 302bc3d5698SJohn Baldwin notq -92(%rdi) 303bc3d5698SJohn Baldwin notq -84(%rdi) 304bc3d5698SJohn Baldwin notq -36(%rdi) 305bc3d5698SJohn Baldwin notq -4(%rdi) 306bc3d5698SJohn Baldwin notq 36(%rdi) 307bc3d5698SJohn Baldwin notq 60(%rdi) 308bc3d5698SJohn Baldwin leaq -100(%rdi),%rdi 309bc3d5698SJohn Baldwin 310bc3d5698SJohn Baldwin addq $200,%rsp 311bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -200 312bc3d5698SJohn Baldwin 313bc3d5698SJohn Baldwin popq %r15 314bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 315bc3d5698SJohn Baldwin.cfi_restore %r15 316bc3d5698SJohn Baldwin popq %r14 317bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 318bc3d5698SJohn Baldwin.cfi_restore %r14 319bc3d5698SJohn Baldwin popq %r13 320bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 321bc3d5698SJohn Baldwin.cfi_restore %r13 322bc3d5698SJohn Baldwin popq %r12 323bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 324bc3d5698SJohn Baldwin.cfi_restore %r12 325bc3d5698SJohn Baldwin popq %rbp 326bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 327bc3d5698SJohn Baldwin.cfi_restore %rbp 328bc3d5698SJohn Baldwin popq %rbx 329bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 330bc3d5698SJohn Baldwin.cfi_restore %rbx 331bc3d5698SJohn Baldwin .byte 0xf3,0xc3 332bc3d5698SJohn Baldwin.cfi_endproc 333bc3d5698SJohn Baldwin.size KeccakF1600,.-KeccakF1600 334bc3d5698SJohn Baldwin.globl SHA3_absorb 335bc3d5698SJohn Baldwin.type SHA3_absorb,@function 336bc3d5698SJohn Baldwin.align 32 337bc3d5698SJohn BaldwinSHA3_absorb: 338bc3d5698SJohn Baldwin.cfi_startproc 339bc3d5698SJohn Baldwin pushq %rbx 340bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 341bc3d5698SJohn Baldwin.cfi_offset %rbx,-16 342bc3d5698SJohn Baldwin pushq %rbp 343bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 344bc3d5698SJohn Baldwin.cfi_offset %rbp,-24 345bc3d5698SJohn Baldwin pushq %r12 346bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 347bc3d5698SJohn Baldwin.cfi_offset %r12,-32 348bc3d5698SJohn Baldwin pushq %r13 349bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 350bc3d5698SJohn Baldwin.cfi_offset %r13,-40 351bc3d5698SJohn Baldwin pushq %r14 352bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 353bc3d5698SJohn Baldwin.cfi_offset %r14,-48 354bc3d5698SJohn Baldwin pushq %r15 355bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 356bc3d5698SJohn Baldwin.cfi_offset %r15,-56 357bc3d5698SJohn Baldwin 358bc3d5698SJohn Baldwin leaq 100(%rdi),%rdi 359bc3d5698SJohn Baldwin subq $232,%rsp 360bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 232 361bc3d5698SJohn Baldwin 362bc3d5698SJohn Baldwin movq %rsi,%r9 363bc3d5698SJohn Baldwin leaq 100(%rsp),%rsi 364bc3d5698SJohn Baldwin 365bc3d5698SJohn Baldwin notq -92(%rdi) 366bc3d5698SJohn Baldwin notq -84(%rdi) 367bc3d5698SJohn Baldwin notq -36(%rdi) 368bc3d5698SJohn Baldwin notq -4(%rdi) 369bc3d5698SJohn Baldwin notq 36(%rdi) 370bc3d5698SJohn Baldwin notq 60(%rdi) 371bc3d5698SJohn Baldwin leaq iotas(%rip),%r15 372bc3d5698SJohn Baldwin 373bc3d5698SJohn Baldwin movq %rcx,216-100(%rsi) 374bc3d5698SJohn Baldwin 375bc3d5698SJohn Baldwin.Loop_absorb: 376bc3d5698SJohn Baldwin cmpq %rcx,%rdx 377bc3d5698SJohn Baldwin jc .Ldone_absorb 378bc3d5698SJohn Baldwin 379bc3d5698SJohn Baldwin shrq $3,%rcx 380bc3d5698SJohn Baldwin leaq -100(%rdi),%r8 381bc3d5698SJohn Baldwin 382bc3d5698SJohn Baldwin.Lblock_absorb: 383bc3d5698SJohn Baldwin movq (%r9),%rax 384bc3d5698SJohn Baldwin leaq 8(%r9),%r9 385bc3d5698SJohn Baldwin xorq (%r8),%rax 386bc3d5698SJohn Baldwin leaq 8(%r8),%r8 387bc3d5698SJohn Baldwin subq $8,%rdx 388bc3d5698SJohn Baldwin movq %rax,-8(%r8) 389bc3d5698SJohn Baldwin subq $1,%rcx 390bc3d5698SJohn Baldwin jnz .Lblock_absorb 391bc3d5698SJohn Baldwin 392bc3d5698SJohn Baldwin movq %r9,200-100(%rsi) 393bc3d5698SJohn Baldwin movq %rdx,208-100(%rsi) 394bc3d5698SJohn Baldwin call __KeccakF1600 395bc3d5698SJohn Baldwin movq 200-100(%rsi),%r9 396bc3d5698SJohn Baldwin movq 208-100(%rsi),%rdx 397bc3d5698SJohn Baldwin movq 216-100(%rsi),%rcx 398bc3d5698SJohn Baldwin jmp .Loop_absorb 399bc3d5698SJohn Baldwin 400bc3d5698SJohn Baldwin.align 32 401bc3d5698SJohn Baldwin.Ldone_absorb: 402bc3d5698SJohn Baldwin movq %rdx,%rax 403bc3d5698SJohn Baldwin 404bc3d5698SJohn Baldwin notq -92(%rdi) 405bc3d5698SJohn Baldwin notq -84(%rdi) 406bc3d5698SJohn Baldwin notq -36(%rdi) 407bc3d5698SJohn Baldwin notq -4(%rdi) 408bc3d5698SJohn Baldwin notq 36(%rdi) 409bc3d5698SJohn Baldwin notq 60(%rdi) 410bc3d5698SJohn Baldwin 411bc3d5698SJohn Baldwin addq $232,%rsp 412bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -232 413bc3d5698SJohn Baldwin 414bc3d5698SJohn Baldwin popq %r15 415bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 416bc3d5698SJohn Baldwin.cfi_restore %r15 417bc3d5698SJohn Baldwin popq %r14 418bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 419bc3d5698SJohn Baldwin.cfi_restore %r14 420bc3d5698SJohn Baldwin popq %r13 421bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 422bc3d5698SJohn Baldwin.cfi_restore %r13 423bc3d5698SJohn Baldwin popq %r12 424bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 425bc3d5698SJohn Baldwin.cfi_restore %r12 426bc3d5698SJohn Baldwin popq %rbp 427bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 428bc3d5698SJohn Baldwin.cfi_restore %rbp 429bc3d5698SJohn Baldwin popq %rbx 430bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 431bc3d5698SJohn Baldwin.cfi_restore %rbx 432bc3d5698SJohn Baldwin .byte 0xf3,0xc3 433bc3d5698SJohn Baldwin.cfi_endproc 434bc3d5698SJohn Baldwin.size SHA3_absorb,.-SHA3_absorb 435bc3d5698SJohn Baldwin.globl SHA3_squeeze 436bc3d5698SJohn Baldwin.type SHA3_squeeze,@function 437bc3d5698SJohn Baldwin.align 32 438bc3d5698SJohn BaldwinSHA3_squeeze: 439bc3d5698SJohn Baldwin.cfi_startproc 440bc3d5698SJohn Baldwin pushq %r12 441bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 442bc3d5698SJohn Baldwin.cfi_offset %r12,-16 443bc3d5698SJohn Baldwin pushq %r13 444bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 445bc3d5698SJohn Baldwin.cfi_offset %r13,-24 446bc3d5698SJohn Baldwin pushq %r14 447bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset 8 448bc3d5698SJohn Baldwin.cfi_offset %r14,-32 449bc3d5698SJohn Baldwin 450bc3d5698SJohn Baldwin shrq $3,%rcx 451bc3d5698SJohn Baldwin movq %rdi,%r8 452bc3d5698SJohn Baldwin movq %rsi,%r12 453bc3d5698SJohn Baldwin movq %rdx,%r13 454bc3d5698SJohn Baldwin movq %rcx,%r14 455bc3d5698SJohn Baldwin jmp .Loop_squeeze 456bc3d5698SJohn Baldwin 457bc3d5698SJohn Baldwin.align 32 458bc3d5698SJohn Baldwin.Loop_squeeze: 459bc3d5698SJohn Baldwin cmpq $8,%r13 460bc3d5698SJohn Baldwin jb .Ltail_squeeze 461bc3d5698SJohn Baldwin 462bc3d5698SJohn Baldwin movq (%r8),%rax 463bc3d5698SJohn Baldwin leaq 8(%r8),%r8 464bc3d5698SJohn Baldwin movq %rax,(%r12) 465bc3d5698SJohn Baldwin leaq 8(%r12),%r12 466bc3d5698SJohn Baldwin subq $8,%r13 467bc3d5698SJohn Baldwin jz .Ldone_squeeze 468bc3d5698SJohn Baldwin 469bc3d5698SJohn Baldwin subq $1,%rcx 470bc3d5698SJohn Baldwin jnz .Loop_squeeze 471bc3d5698SJohn Baldwin 472bc3d5698SJohn Baldwin call KeccakF1600 473bc3d5698SJohn Baldwin movq %rdi,%r8 474bc3d5698SJohn Baldwin movq %r14,%rcx 475bc3d5698SJohn Baldwin jmp .Loop_squeeze 476bc3d5698SJohn Baldwin 477bc3d5698SJohn Baldwin.Ltail_squeeze: 478bc3d5698SJohn Baldwin movq %r8,%rsi 479bc3d5698SJohn Baldwin movq %r12,%rdi 480bc3d5698SJohn Baldwin movq %r13,%rcx 481bc3d5698SJohn Baldwin.byte 0xf3,0xa4 482bc3d5698SJohn Baldwin 483bc3d5698SJohn Baldwin.Ldone_squeeze: 484bc3d5698SJohn Baldwin popq %r14 485bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 486bc3d5698SJohn Baldwin.cfi_restore %r14 487bc3d5698SJohn Baldwin popq %r13 488bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 489bc3d5698SJohn Baldwin.cfi_restore %r13 490bc3d5698SJohn Baldwin popq %r12 491bc3d5698SJohn Baldwin.cfi_adjust_cfa_offset -8 492bc3d5698SJohn Baldwin.cfi_restore %r13 493bc3d5698SJohn Baldwin .byte 0xf3,0xc3 494bc3d5698SJohn Baldwin.cfi_endproc 495bc3d5698SJohn Baldwin.size SHA3_squeeze,.-SHA3_squeeze 496bc3d5698SJohn Baldwin.align 256 497bc3d5698SJohn Baldwin.quad 0,0,0,0,0,0,0,0 498bc3d5698SJohn Baldwin.type iotas,@object 499bc3d5698SJohn Baldwiniotas: 500bc3d5698SJohn Baldwin.quad 0x0000000000000001 501bc3d5698SJohn Baldwin.quad 0x0000000000008082 502bc3d5698SJohn Baldwin.quad 0x800000000000808a 503bc3d5698SJohn Baldwin.quad 0x8000000080008000 504bc3d5698SJohn Baldwin.quad 0x000000000000808b 505bc3d5698SJohn Baldwin.quad 0x0000000080000001 506bc3d5698SJohn Baldwin.quad 0x8000000080008081 507bc3d5698SJohn Baldwin.quad 0x8000000000008009 508bc3d5698SJohn Baldwin.quad 0x000000000000008a 509bc3d5698SJohn Baldwin.quad 0x0000000000000088 510bc3d5698SJohn Baldwin.quad 0x0000000080008009 511bc3d5698SJohn Baldwin.quad 0x000000008000000a 512bc3d5698SJohn Baldwin.quad 0x000000008000808b 513bc3d5698SJohn Baldwin.quad 0x800000000000008b 514bc3d5698SJohn Baldwin.quad 0x8000000000008089 515bc3d5698SJohn Baldwin.quad 0x8000000000008003 516bc3d5698SJohn Baldwin.quad 0x8000000000008002 517bc3d5698SJohn Baldwin.quad 0x8000000000000080 518bc3d5698SJohn Baldwin.quad 0x000000000000800a 519bc3d5698SJohn Baldwin.quad 0x800000008000000a 520bc3d5698SJohn Baldwin.quad 0x8000000080008081 521bc3d5698SJohn Baldwin.quad 0x8000000000008080 522bc3d5698SJohn Baldwin.quad 0x0000000080000001 523bc3d5698SJohn Baldwin.quad 0x8000000080008008 524bc3d5698SJohn Baldwin.size iotas,.-iotas 525bc3d5698SJohn Baldwin.byte 75,101,99,99,97,107,45,49,54,48,48,32,97,98,115,111,114,98,32,97,110,100,32,115,113,117,101,101,122,101,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 526c0855eaaSJohn Baldwin .section ".note.gnu.property", "a" 527c0855eaaSJohn Baldwin .p2align 3 528c0855eaaSJohn Baldwin .long 1f - 0f 529c0855eaaSJohn Baldwin .long 4f - 1f 530c0855eaaSJohn Baldwin .long 5 531c0855eaaSJohn Baldwin0: 532c0855eaaSJohn Baldwin # "GNU" encoded with .byte, since .asciz isn't supported 533c0855eaaSJohn Baldwin # on Solaris. 534c0855eaaSJohn Baldwin .byte 0x47 535c0855eaaSJohn Baldwin .byte 0x4e 536c0855eaaSJohn Baldwin .byte 0x55 537c0855eaaSJohn Baldwin .byte 0 538c0855eaaSJohn Baldwin1: 539c0855eaaSJohn Baldwin .p2align 3 540c0855eaaSJohn Baldwin .long 0xc0000002 541c0855eaaSJohn Baldwin .long 3f - 2f 542c0855eaaSJohn Baldwin2: 543c0855eaaSJohn Baldwin .long 3 544c0855eaaSJohn Baldwin3: 545c0855eaaSJohn Baldwin .p2align 3 546c0855eaaSJohn Baldwin4: 547