Path: blob/main/sys/crypto/openssl/amd64/keccak1600-x86_64.S
39482 views
/* Do not modify. This file is auto-generated from keccak1600-x86_64.pl. */1.text23.type __KeccakF1600,@function4.align 325__KeccakF1600:6.cfi_startproc7movq 60(%rdi),%rax8movq 68(%rdi),%rbx9movq 76(%rdi),%rcx10movq 84(%rdi),%rdx11movq 92(%rdi),%rbp12jmp .Loop1314.align 3215.Loop:16movq -100(%rdi),%r817movq -52(%rdi),%r918movq -4(%rdi),%r1019movq 44(%rdi),%r112021xorq -84(%rdi),%rcx22xorq -76(%rdi),%rdx23xorq %r8,%rax24xorq -92(%rdi),%rbx25xorq -44(%rdi),%rcx26xorq -60(%rdi),%rax27movq %rbp,%r1228xorq -68(%rdi),%rbp2930xorq %r10,%rcx31xorq -20(%rdi),%rax32xorq -36(%rdi),%rdx33xorq %r9,%rbx34xorq -28(%rdi),%rbp3536xorq 36(%rdi),%rcx37xorq 20(%rdi),%rax38xorq 4(%rdi),%rdx39xorq -12(%rdi),%rbx40xorq 12(%rdi),%rbp4142movq %rcx,%r1343rolq $1,%rcx44xorq %rax,%rcx45xorq %r11,%rdx4647rolq $1,%rax48xorq %rdx,%rax49xorq 28(%rdi),%rbx5051rolq $1,%rdx52xorq %rbx,%rdx53xorq 52(%rdi),%rbp5455rolq $1,%rbx56xorq %rbp,%rbx5758rolq $1,%rbp59xorq %r13,%rbp60xorq %rcx,%r961xorq %rdx,%r1062rolq $44,%r963xorq %rbp,%r1164xorq %rax,%r1265rolq $43,%r1066xorq %rbx,%r867movq %r9,%r1368rolq $21,%r1169orq %r10,%r970xorq %r8,%r971rolq $14,%r127273xorq (%r15),%r974leaq 8(%r15),%r157576movq %r12,%r1477andq %r11,%r1278movq %r9,-100(%rsi)79xorq %r10,%r1280notq %r1081movq %r12,-84(%rsi)8283orq %r11,%r1084movq 76(%rdi),%r1285xorq %r13,%r1086movq %r10,-92(%rsi)8788andq %r8,%r1389movq -28(%rdi),%r990xorq %r14,%r1391movq -20(%rdi),%r1092movq %r13,-68(%rsi)9394orq %r8,%r1495movq -76(%rdi),%r896xorq %r11,%r1497movq 28(%rdi),%r1198movq %r14,-76(%rsi)99100101xorq %rbp,%r8102xorq %rdx,%r12103rolq $28,%r8104xorq %rcx,%r11105xorq %rax,%r9106rolq $61,%r12107rolq $45,%r11108xorq %rbx,%r10109rolq $20,%r9110movq %r8,%r13111orq %r12,%r8112rolq $3,%r10113114xorq %r11,%r8115movq %r8,-36(%rsi)116117movq %r9,%r14118andq %r13,%r9119movq -92(%rdi),%r8120xorq %r12,%r9121notq %r12122movq %r9,-28(%rsi)123124orq %r11,%r12125movq -44(%rdi),%r9126xorq %r10,%r12127movq %r12,-44(%rsi)128129andq %r10,%r11130movq 60(%rdi),%r12131xorq %r14,%r11132movq %r11,-52(%rsi)133134orq %r10,%r14135movq 4(%rdi),%r10136xorq %r13,%r14137movq 52(%rdi),%r11138movq %r14,-60(%rsi)139140141xorq %rbp,%r10142xorq %rax,%r11143rolq $25,%r10144xorq %rdx,%r9145rolq $8,%r11146xorq %rbx,%r12147rolq $6,%r9148xorq %rcx,%r8149rolq $18,%r12150movq %r10,%r13151andq %r11,%r10152rolq $1,%r8153154notq %r11155xorq %r9,%r10156movq %r10,-12(%rsi)157158movq %r12,%r14159andq %r11,%r12160movq -12(%rdi),%r10161xorq %r13,%r12162movq %r12,-4(%rsi)163164orq %r9,%r13165movq 84(%rdi),%r12166xorq %r8,%r13167movq %r13,-20(%rsi)168169andq %r8,%r9170xorq %r14,%r9171movq %r9,12(%rsi)172173orq %r8,%r14174movq -60(%rdi),%r9175xorq %r11,%r14176movq 36(%rdi),%r11177movq %r14,4(%rsi)178179180movq -68(%rdi),%r8181182xorq %rcx,%r10183xorq %rdx,%r11184rolq $10,%r10185xorq %rbx,%r9186rolq $15,%r11187xorq %rbp,%r12188rolq $36,%r9189xorq %rax,%r8190rolq $56,%r12191movq %r10,%r13192orq %r11,%r10193rolq $27,%r8194195notq %r11196xorq %r9,%r10197movq %r10,28(%rsi)198199movq %r12,%r14200orq %r11,%r12201xorq %r13,%r12202movq %r12,36(%rsi)203204andq %r9,%r13205xorq %r8,%r13206movq %r13,20(%rsi)207208orq %r8,%r9209xorq %r14,%r9210movq %r9,52(%rsi)211212andq %r14,%r8213xorq %r11,%r8214movq %r8,44(%rsi)215216217xorq -84(%rdi),%rdx218xorq -36(%rdi),%rbp219rolq $62,%rdx220xorq 68(%rdi),%rcx221rolq $55,%rbp222xorq 12(%rdi),%rax223rolq $2,%rcx224xorq 20(%rdi),%rbx225xchgq %rsi,%rdi226rolq $39,%rax227rolq $41,%rbx228movq %rdx,%r13229andq %rbp,%rdx230notq %rbp231xorq %rcx,%rdx232movq %rdx,92(%rdi)233234movq %rax,%r14235andq %rbp,%rax236xorq %r13,%rax237movq %rax,60(%rdi)238239orq %rcx,%r13240xorq %rbx,%r13241movq %r13,84(%rdi)242243andq %rbx,%rcx244xorq %r14,%rcx245movq %rcx,76(%rdi)246247orq %r14,%rbx248xorq %rbp,%rbx249movq %rbx,68(%rdi)250251movq %rdx,%rbp252movq %r13,%rdx253254testq $255,%r15255jnz .Loop256257leaq -192(%r15),%r15258.byte 0xf3,0xc3259.cfi_endproc260.size __KeccakF1600,.-__KeccakF1600261262.type KeccakF1600,@function263.align 32264KeccakF1600:265.cfi_startproc266pushq %rbx267.cfi_adjust_cfa_offset 8268.cfi_offset %rbx,-16269pushq %rbp270.cfi_adjust_cfa_offset 8271.cfi_offset %rbp,-24272pushq %r12273.cfi_adjust_cfa_offset 8274.cfi_offset %r12,-32275pushq %r13276.cfi_adjust_cfa_offset 8277.cfi_offset %r13,-40278pushq %r14279.cfi_adjust_cfa_offset 8280.cfi_offset %r14,-48281pushq %r15282.cfi_adjust_cfa_offset 8283.cfi_offset %r15,-56284285leaq 100(%rdi),%rdi286subq $200,%rsp287.cfi_adjust_cfa_offset 200288289notq -92(%rdi)290notq -84(%rdi)291notq -36(%rdi)292notq -4(%rdi)293notq 36(%rdi)294notq 60(%rdi)295296leaq iotas(%rip),%r15297leaq 100(%rsp),%rsi298299call __KeccakF1600300301notq -92(%rdi)302notq -84(%rdi)303notq -36(%rdi)304notq -4(%rdi)305notq 36(%rdi)306notq 60(%rdi)307leaq -100(%rdi),%rdi308309addq $200,%rsp310.cfi_adjust_cfa_offset -200311312popq %r15313.cfi_adjust_cfa_offset -8314.cfi_restore %r15315popq %r14316.cfi_adjust_cfa_offset -8317.cfi_restore %r14318popq %r13319.cfi_adjust_cfa_offset -8320.cfi_restore %r13321popq %r12322.cfi_adjust_cfa_offset -8323.cfi_restore %r12324popq %rbp325.cfi_adjust_cfa_offset -8326.cfi_restore %rbp327popq %rbx328.cfi_adjust_cfa_offset -8329.cfi_restore %rbx330.byte 0xf3,0xc3331.cfi_endproc332.size KeccakF1600,.-KeccakF1600333.globl SHA3_absorb334.type SHA3_absorb,@function335.align 32336SHA3_absorb:337.cfi_startproc338pushq %rbx339.cfi_adjust_cfa_offset 8340.cfi_offset %rbx,-16341pushq %rbp342.cfi_adjust_cfa_offset 8343.cfi_offset %rbp,-24344pushq %r12345.cfi_adjust_cfa_offset 8346.cfi_offset %r12,-32347pushq %r13348.cfi_adjust_cfa_offset 8349.cfi_offset %r13,-40350pushq %r14351.cfi_adjust_cfa_offset 8352.cfi_offset %r14,-48353pushq %r15354.cfi_adjust_cfa_offset 8355.cfi_offset %r15,-56356357leaq 100(%rdi),%rdi358subq $232,%rsp359.cfi_adjust_cfa_offset 232360361movq %rsi,%r9362leaq 100(%rsp),%rsi363364notq -92(%rdi)365notq -84(%rdi)366notq -36(%rdi)367notq -4(%rdi)368notq 36(%rdi)369notq 60(%rdi)370leaq iotas(%rip),%r15371372movq %rcx,216-100(%rsi)373374.Loop_absorb:375cmpq %rcx,%rdx376jc .Ldone_absorb377378shrq $3,%rcx379leaq -100(%rdi),%r8380381.Lblock_absorb:382movq (%r9),%rax383leaq 8(%r9),%r9384xorq (%r8),%rax385leaq 8(%r8),%r8386subq $8,%rdx387movq %rax,-8(%r8)388subq $1,%rcx389jnz .Lblock_absorb390391movq %r9,200-100(%rsi)392movq %rdx,208-100(%rsi)393call __KeccakF1600394movq 200-100(%rsi),%r9395movq 208-100(%rsi),%rdx396movq 216-100(%rsi),%rcx397jmp .Loop_absorb398399.align 32400.Ldone_absorb:401movq %rdx,%rax402403notq -92(%rdi)404notq -84(%rdi)405notq -36(%rdi)406notq -4(%rdi)407notq 36(%rdi)408notq 60(%rdi)409410addq $232,%rsp411.cfi_adjust_cfa_offset -232412413popq %r15414.cfi_adjust_cfa_offset -8415.cfi_restore %r15416popq %r14417.cfi_adjust_cfa_offset -8418.cfi_restore %r14419popq %r13420.cfi_adjust_cfa_offset -8421.cfi_restore %r13422popq %r12423.cfi_adjust_cfa_offset -8424.cfi_restore %r12425popq %rbp426.cfi_adjust_cfa_offset -8427.cfi_restore %rbp428popq %rbx429.cfi_adjust_cfa_offset -8430.cfi_restore %rbx431.byte 0xf3,0xc3432.cfi_endproc433.size SHA3_absorb,.-SHA3_absorb434.globl SHA3_squeeze435.type SHA3_squeeze,@function436.align 32437SHA3_squeeze:438.cfi_startproc439pushq %r12440.cfi_adjust_cfa_offset 8441.cfi_offset %r12,-16442pushq %r13443.cfi_adjust_cfa_offset 8444.cfi_offset %r13,-24445pushq %r14446.cfi_adjust_cfa_offset 8447.cfi_offset %r14,-32448449shrq $3,%rcx450movq %rdi,%r9451movq %rsi,%r12452movq %rdx,%r13453movq %rcx,%r14454btl $0,%r8d455jc .Lnext_block456jmp .Loop_squeeze457458.align 32459.Loop_squeeze:460cmpq $8,%r13461jb .Ltail_squeeze462463movq (%r9),%rax464leaq 8(%r9),%r9465movq %rax,(%r12)466leaq 8(%r12),%r12467subq $8,%r13468jz .Ldone_squeeze469470subq $1,%rcx471jnz .Loop_squeeze472.Lnext_block:473call KeccakF1600474movq %rdi,%r9475movq %r14,%rcx476jmp .Loop_squeeze477478.Ltail_squeeze:479movq %r9,%rsi480movq %r12,%rdi481movq %r13,%rcx482.byte 0xf3,0xa4483484.Ldone_squeeze:485popq %r14486.cfi_adjust_cfa_offset -8487.cfi_restore %r14488popq %r13489.cfi_adjust_cfa_offset -8490.cfi_restore %r13491popq %r12492.cfi_adjust_cfa_offset -8493.cfi_restore %r13494.byte 0xf3,0xc3495.cfi_endproc496.size SHA3_squeeze,.-SHA3_squeeze497.section .rodata498.align 256499.quad 0,0,0,0,0,0,0,0500.type iotas,@object501iotas:502.quad 0x0000000000000001503.quad 0x0000000000008082504.quad 0x800000000000808a505.quad 0x8000000080008000506.quad 0x000000000000808b507.quad 0x0000000080000001508.quad 0x8000000080008081509.quad 0x8000000000008009510.quad 0x000000000000008a511.quad 0x0000000000000088512.quad 0x0000000080008009513.quad 0x000000008000000a514.quad 0x000000008000808b515.quad 0x800000000000008b516.quad 0x8000000000008089517.quad 0x8000000000008003518.quad 0x8000000000008002519.quad 0x8000000000000080520.quad 0x000000000000800a521.quad 0x800000008000000a522.quad 0x8000000080008081523.quad 0x8000000000008080524.quad 0x0000000080000001525.quad 0x8000000080008008526.size iotas,.-iotas527.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,0528.section ".note.gnu.property", "a"529.p2align 3530.long 1f - 0f531.long 4f - 1f532.long 55330:534# "GNU" encoded with .byte, since .asciz isn't supported535# on Solaris.536.byte 0x47537.byte 0x4e538.byte 0x55539.byte 05401:541.p2align 3542.long 0xc0000002543.long 3f - 2f5442:545.long 35463:547.p2align 35484:549550551