Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions openssl_source/Linux/crypto/sha/keccak1600-x86_64.s
Original file line number Diff line number Diff line change
Expand Up @@ -453,19 +453,21 @@ SHA3_squeeze:
.cfi_offset %r14,-32

shrq $3,%rcx
movq %rdi,%r8
movq %rdi,%r9
movq %rsi,%r12
movq %rdx,%r13
movq %rcx,%r14
btl $0,%r8d
jc .Lnext_block
jmp .Loop_squeeze

.align 32
.Loop_squeeze:
cmpq $8,%r13
jb .Ltail_squeeze

movq (%r8),%rax
leaq 8(%r8),%r8
movq (%r9),%rax
leaq 8(%r9),%r9
movq %rax,(%r12)
leaq 8(%r12),%r12
subq $8,%r13
Expand All @@ -474,17 +476,18 @@ SHA3_squeeze:
subq $1,%rcx
jnz .Loop_squeeze


.Lnext_block:
call KeccakF1600
movq %rdi,%r8
movq %rdi,%r9
movq %r14,%rcx
jmp .Loop_squeeze

.Ltail_squeeze:
movq %r8,%rsi
movq %r9,%rsi
movq %r12,%rdi
movq %r13,%rcx
.byte 0xf3,0xa4
lfence # mgadd load_only

.Ldone_squeeze:
popq %r14
Expand Down