pineapple-src/externals/libressl/crypto/sha/sha512-macosx-x86_64.S
2020-12-28 15:15:37 +00:00

1803 lines
24 KiB
ArmAsm
Executable file

#include "x86_arch.h"
.text
.globl _sha512_block_data_order
.p2align 4
_sha512_block_data_order:
pushq %rbx
pushq %rbp
pushq %r12
pushq %r13
pushq %r14
pushq %r15
movq %rsp,%r11
shlq $4,%rdx
subq $128+32,%rsp
leaq (%rsi,%rdx,8),%rdx
andq $-64,%rsp
movq %rdi,128+0(%rsp)
movq %rsi,128+8(%rsp)
movq %rdx,128+16(%rsp)
movq %r11,128+24(%rsp)
L$prologue:
leaq K512(%rip),%rbp
movq 0(%rdi),%rax
movq 8(%rdi),%rbx
movq 16(%rdi),%rcx
movq 24(%rdi),%rdx
movq 32(%rdi),%r8
movq 40(%rdi),%r9
movq 48(%rdi),%r10
movq 56(%rdi),%r11
jmp L$loop
.p2align 4
L$loop:
xorq %rdi,%rdi
movq 0(%rsi),%r12
movq %r8,%r13
movq %rax,%r14
bswapq %r12
rorq $23,%r13
movq %r9,%r15
movq %r12,0(%rsp)
rorq $5,%r14
xorq %r8,%r13
xorq %r10,%r15
rorq $4,%r13
addq %r11,%r12
xorq %rax,%r14
addq (%rbp,%rdi,8),%r12
andq %r8,%r15
movq %rbx,%r11
rorq $6,%r14
xorq %r8,%r13
xorq %r10,%r15
xorq %rcx,%r11
xorq %rax,%r14
addq %r15,%r12
movq %rbx,%r15
rorq $14,%r13
andq %rax,%r11
andq %rcx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r11
addq %r12,%rdx
addq %r12,%r11
leaq 1(%rdi),%rdi
addq %r14,%r11
movq 8(%rsi),%r12
movq %rdx,%r13
movq %r11,%r14
bswapq %r12
rorq $23,%r13
movq %r8,%r15
movq %r12,8(%rsp)
rorq $5,%r14
xorq %rdx,%r13
xorq %r9,%r15
rorq $4,%r13
addq %r10,%r12
xorq %r11,%r14
addq (%rbp,%rdi,8),%r12
andq %rdx,%r15
movq %rax,%r10
rorq $6,%r14
xorq %rdx,%r13
xorq %r9,%r15
xorq %rbx,%r10
xorq %r11,%r14
addq %r15,%r12
movq %rax,%r15
rorq $14,%r13
andq %r11,%r10
andq %rbx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r10
addq %r12,%rcx
addq %r12,%r10
leaq 1(%rdi),%rdi
addq %r14,%r10
movq 16(%rsi),%r12
movq %rcx,%r13
movq %r10,%r14
bswapq %r12
rorq $23,%r13
movq %rdx,%r15
movq %r12,16(%rsp)
rorq $5,%r14
xorq %rcx,%r13
xorq %r8,%r15
rorq $4,%r13
addq %r9,%r12
xorq %r10,%r14
addq (%rbp,%rdi,8),%r12
andq %rcx,%r15
movq %r11,%r9
rorq $6,%r14
xorq %rcx,%r13
xorq %r8,%r15
xorq %rax,%r9
xorq %r10,%r14
addq %r15,%r12
movq %r11,%r15
rorq $14,%r13
andq %r10,%r9
andq %rax,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r9
addq %r12,%rbx
addq %r12,%r9
leaq 1(%rdi),%rdi
addq %r14,%r9
movq 24(%rsi),%r12
movq %rbx,%r13
movq %r9,%r14
bswapq %r12
rorq $23,%r13
movq %rcx,%r15
movq %r12,24(%rsp)
rorq $5,%r14
xorq %rbx,%r13
xorq %rdx,%r15
rorq $4,%r13
addq %r8,%r12
xorq %r9,%r14
addq (%rbp,%rdi,8),%r12
andq %rbx,%r15
movq %r10,%r8
rorq $6,%r14
xorq %rbx,%r13
xorq %rdx,%r15
xorq %r11,%r8
xorq %r9,%r14
addq %r15,%r12
movq %r10,%r15
rorq $14,%r13
andq %r9,%r8
andq %r11,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r8
addq %r12,%rax
addq %r12,%r8
leaq 1(%rdi),%rdi
addq %r14,%r8
movq 32(%rsi),%r12
movq %rax,%r13
movq %r8,%r14
bswapq %r12
rorq $23,%r13
movq %rbx,%r15
movq %r12,32(%rsp)
rorq $5,%r14
xorq %rax,%r13
xorq %rcx,%r15
rorq $4,%r13
addq %rdx,%r12
xorq %r8,%r14
addq (%rbp,%rdi,8),%r12
andq %rax,%r15
movq %r9,%rdx
rorq $6,%r14
xorq %rax,%r13
xorq %rcx,%r15
xorq %r10,%rdx
xorq %r8,%r14
addq %r15,%r12
movq %r9,%r15
rorq $14,%r13
andq %r8,%rdx
andq %r10,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rdx
addq %r12,%r11
addq %r12,%rdx
leaq 1(%rdi),%rdi
addq %r14,%rdx
movq 40(%rsi),%r12
movq %r11,%r13
movq %rdx,%r14
bswapq %r12
rorq $23,%r13
movq %rax,%r15
movq %r12,40(%rsp)
rorq $5,%r14
xorq %r11,%r13
xorq %rbx,%r15
rorq $4,%r13
addq %rcx,%r12
xorq %rdx,%r14
addq (%rbp,%rdi,8),%r12
andq %r11,%r15
movq %r8,%rcx
rorq $6,%r14
xorq %r11,%r13
xorq %rbx,%r15
xorq %r9,%rcx
xorq %rdx,%r14
addq %r15,%r12
movq %r8,%r15
rorq $14,%r13
andq %rdx,%rcx
andq %r9,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rcx
addq %r12,%r10
addq %r12,%rcx
leaq 1(%rdi),%rdi
addq %r14,%rcx
movq 48(%rsi),%r12
movq %r10,%r13
movq %rcx,%r14
bswapq %r12
rorq $23,%r13
movq %r11,%r15
movq %r12,48(%rsp)
rorq $5,%r14
xorq %r10,%r13
xorq %rax,%r15
rorq $4,%r13
addq %rbx,%r12
xorq %rcx,%r14
addq (%rbp,%rdi,8),%r12
andq %r10,%r15
movq %rdx,%rbx
rorq $6,%r14
xorq %r10,%r13
xorq %rax,%r15
xorq %r8,%rbx
xorq %rcx,%r14
addq %r15,%r12
movq %rdx,%r15
rorq $14,%r13
andq %rcx,%rbx
andq %r8,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rbx
addq %r12,%r9
addq %r12,%rbx
leaq 1(%rdi),%rdi
addq %r14,%rbx
movq 56(%rsi),%r12
movq %r9,%r13
movq %rbx,%r14
bswapq %r12
rorq $23,%r13
movq %r10,%r15
movq %r12,56(%rsp)
rorq $5,%r14
xorq %r9,%r13
xorq %r11,%r15
rorq $4,%r13
addq %rax,%r12
xorq %rbx,%r14
addq (%rbp,%rdi,8),%r12
andq %r9,%r15
movq %rcx,%rax
rorq $6,%r14
xorq %r9,%r13
xorq %r11,%r15
xorq %rdx,%rax
xorq %rbx,%r14
addq %r15,%r12
movq %rcx,%r15
rorq $14,%r13
andq %rbx,%rax
andq %rdx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rax
addq %r12,%r8
addq %r12,%rax
leaq 1(%rdi),%rdi
addq %r14,%rax
movq 64(%rsi),%r12
movq %r8,%r13
movq %rax,%r14
bswapq %r12
rorq $23,%r13
movq %r9,%r15
movq %r12,64(%rsp)
rorq $5,%r14
xorq %r8,%r13
xorq %r10,%r15
rorq $4,%r13
addq %r11,%r12
xorq %rax,%r14
addq (%rbp,%rdi,8),%r12
andq %r8,%r15
movq %rbx,%r11
rorq $6,%r14
xorq %r8,%r13
xorq %r10,%r15
xorq %rcx,%r11
xorq %rax,%r14
addq %r15,%r12
movq %rbx,%r15
rorq $14,%r13
andq %rax,%r11
andq %rcx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r11
addq %r12,%rdx
addq %r12,%r11
leaq 1(%rdi),%rdi
addq %r14,%r11
movq 72(%rsi),%r12
movq %rdx,%r13
movq %r11,%r14
bswapq %r12
rorq $23,%r13
movq %r8,%r15
movq %r12,72(%rsp)
rorq $5,%r14
xorq %rdx,%r13
xorq %r9,%r15
rorq $4,%r13
addq %r10,%r12
xorq %r11,%r14
addq (%rbp,%rdi,8),%r12
andq %rdx,%r15
movq %rax,%r10
rorq $6,%r14
xorq %rdx,%r13
xorq %r9,%r15
xorq %rbx,%r10
xorq %r11,%r14
addq %r15,%r12
movq %rax,%r15
rorq $14,%r13
andq %r11,%r10
andq %rbx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r10
addq %r12,%rcx
addq %r12,%r10
leaq 1(%rdi),%rdi
addq %r14,%r10
movq 80(%rsi),%r12
movq %rcx,%r13
movq %r10,%r14
bswapq %r12
rorq $23,%r13
movq %rdx,%r15
movq %r12,80(%rsp)
rorq $5,%r14
xorq %rcx,%r13
xorq %r8,%r15
rorq $4,%r13
addq %r9,%r12
xorq %r10,%r14
addq (%rbp,%rdi,8),%r12
andq %rcx,%r15
movq %r11,%r9
rorq $6,%r14
xorq %rcx,%r13
xorq %r8,%r15
xorq %rax,%r9
xorq %r10,%r14
addq %r15,%r12
movq %r11,%r15
rorq $14,%r13
andq %r10,%r9
andq %rax,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r9
addq %r12,%rbx
addq %r12,%r9
leaq 1(%rdi),%rdi
addq %r14,%r9
movq 88(%rsi),%r12
movq %rbx,%r13
movq %r9,%r14
bswapq %r12
rorq $23,%r13
movq %rcx,%r15
movq %r12,88(%rsp)
rorq $5,%r14
xorq %rbx,%r13
xorq %rdx,%r15
rorq $4,%r13
addq %r8,%r12
xorq %r9,%r14
addq (%rbp,%rdi,8),%r12
andq %rbx,%r15
movq %r10,%r8
rorq $6,%r14
xorq %rbx,%r13
xorq %rdx,%r15
xorq %r11,%r8
xorq %r9,%r14
addq %r15,%r12
movq %r10,%r15
rorq $14,%r13
andq %r9,%r8
andq %r11,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r8
addq %r12,%rax
addq %r12,%r8
leaq 1(%rdi),%rdi
addq %r14,%r8
movq 96(%rsi),%r12
movq %rax,%r13
movq %r8,%r14
bswapq %r12
rorq $23,%r13
movq %rbx,%r15
movq %r12,96(%rsp)
rorq $5,%r14
xorq %rax,%r13
xorq %rcx,%r15
rorq $4,%r13
addq %rdx,%r12
xorq %r8,%r14
addq (%rbp,%rdi,8),%r12
andq %rax,%r15
movq %r9,%rdx
rorq $6,%r14
xorq %rax,%r13
xorq %rcx,%r15
xorq %r10,%rdx
xorq %r8,%r14
addq %r15,%r12
movq %r9,%r15
rorq $14,%r13
andq %r8,%rdx
andq %r10,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rdx
addq %r12,%r11
addq %r12,%rdx
leaq 1(%rdi),%rdi
addq %r14,%rdx
movq 104(%rsi),%r12
movq %r11,%r13
movq %rdx,%r14
bswapq %r12
rorq $23,%r13
movq %rax,%r15
movq %r12,104(%rsp)
rorq $5,%r14
xorq %r11,%r13
xorq %rbx,%r15
rorq $4,%r13
addq %rcx,%r12
xorq %rdx,%r14
addq (%rbp,%rdi,8),%r12
andq %r11,%r15
movq %r8,%rcx
rorq $6,%r14
xorq %r11,%r13
xorq %rbx,%r15
xorq %r9,%rcx
xorq %rdx,%r14
addq %r15,%r12
movq %r8,%r15
rorq $14,%r13
andq %rdx,%rcx
andq %r9,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rcx
addq %r12,%r10
addq %r12,%rcx
leaq 1(%rdi),%rdi
addq %r14,%rcx
movq 112(%rsi),%r12
movq %r10,%r13
movq %rcx,%r14
bswapq %r12
rorq $23,%r13
movq %r11,%r15
movq %r12,112(%rsp)
rorq $5,%r14
xorq %r10,%r13
xorq %rax,%r15
rorq $4,%r13
addq %rbx,%r12
xorq %rcx,%r14
addq (%rbp,%rdi,8),%r12
andq %r10,%r15
movq %rdx,%rbx
rorq $6,%r14
xorq %r10,%r13
xorq %rax,%r15
xorq %r8,%rbx
xorq %rcx,%r14
addq %r15,%r12
movq %rdx,%r15
rorq $14,%r13
andq %rcx,%rbx
andq %r8,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rbx
addq %r12,%r9
addq %r12,%rbx
leaq 1(%rdi),%rdi
addq %r14,%rbx
movq 120(%rsi),%r12
movq %r9,%r13
movq %rbx,%r14
bswapq %r12
rorq $23,%r13
movq %r10,%r15
movq %r12,120(%rsp)
rorq $5,%r14
xorq %r9,%r13
xorq %r11,%r15
rorq $4,%r13
addq %rax,%r12
xorq %rbx,%r14
addq (%rbp,%rdi,8),%r12
andq %r9,%r15
movq %rcx,%rax
rorq $6,%r14
xorq %r9,%r13
xorq %r11,%r15
xorq %rdx,%rax
xorq %rbx,%r14
addq %r15,%r12
movq %rcx,%r15
rorq $14,%r13
andq %rbx,%rax
andq %rdx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rax
addq %r12,%r8
addq %r12,%rax
leaq 1(%rdi),%rdi
addq %r14,%rax
jmp L$rounds_16_xx
.p2align 4
L$rounds_16_xx:
movq 8(%rsp),%r13
movq 112(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 72(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 0(%rsp),%r12
movq %r8,%r13
addq %r14,%r12
movq %rax,%r14
rorq $23,%r13
movq %r9,%r15
movq %r12,0(%rsp)
rorq $5,%r14
xorq %r8,%r13
xorq %r10,%r15
rorq $4,%r13
addq %r11,%r12
xorq %rax,%r14
addq (%rbp,%rdi,8),%r12
andq %r8,%r15
movq %rbx,%r11
rorq $6,%r14
xorq %r8,%r13
xorq %r10,%r15
xorq %rcx,%r11
xorq %rax,%r14
addq %r15,%r12
movq %rbx,%r15
rorq $14,%r13
andq %rax,%r11
andq %rcx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r11
addq %r12,%rdx
addq %r12,%r11
leaq 1(%rdi),%rdi
addq %r14,%r11
movq 16(%rsp),%r13
movq 120(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 80(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 8(%rsp),%r12
movq %rdx,%r13
addq %r14,%r12
movq %r11,%r14
rorq $23,%r13
movq %r8,%r15
movq %r12,8(%rsp)
rorq $5,%r14
xorq %rdx,%r13
xorq %r9,%r15
rorq $4,%r13
addq %r10,%r12
xorq %r11,%r14
addq (%rbp,%rdi,8),%r12
andq %rdx,%r15
movq %rax,%r10
rorq $6,%r14
xorq %rdx,%r13
xorq %r9,%r15
xorq %rbx,%r10
xorq %r11,%r14
addq %r15,%r12
movq %rax,%r15
rorq $14,%r13
andq %r11,%r10
andq %rbx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r10
addq %r12,%rcx
addq %r12,%r10
leaq 1(%rdi),%rdi
addq %r14,%r10
movq 24(%rsp),%r13
movq 0(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 88(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 16(%rsp),%r12
movq %rcx,%r13
addq %r14,%r12
movq %r10,%r14
rorq $23,%r13
movq %rdx,%r15
movq %r12,16(%rsp)
rorq $5,%r14
xorq %rcx,%r13
xorq %r8,%r15
rorq $4,%r13
addq %r9,%r12
xorq %r10,%r14
addq (%rbp,%rdi,8),%r12
andq %rcx,%r15
movq %r11,%r9
rorq $6,%r14
xorq %rcx,%r13
xorq %r8,%r15
xorq %rax,%r9
xorq %r10,%r14
addq %r15,%r12
movq %r11,%r15
rorq $14,%r13
andq %r10,%r9
andq %rax,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r9
addq %r12,%rbx
addq %r12,%r9
leaq 1(%rdi),%rdi
addq %r14,%r9
movq 32(%rsp),%r13
movq 8(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 96(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 24(%rsp),%r12
movq %rbx,%r13
addq %r14,%r12
movq %r9,%r14
rorq $23,%r13
movq %rcx,%r15
movq %r12,24(%rsp)
rorq $5,%r14
xorq %rbx,%r13
xorq %rdx,%r15
rorq $4,%r13
addq %r8,%r12
xorq %r9,%r14
addq (%rbp,%rdi,8),%r12
andq %rbx,%r15
movq %r10,%r8
rorq $6,%r14
xorq %rbx,%r13
xorq %rdx,%r15
xorq %r11,%r8
xorq %r9,%r14
addq %r15,%r12
movq %r10,%r15
rorq $14,%r13
andq %r9,%r8
andq %r11,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r8
addq %r12,%rax
addq %r12,%r8
leaq 1(%rdi),%rdi
addq %r14,%r8
movq 40(%rsp),%r13
movq 16(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 104(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 32(%rsp),%r12
movq %rax,%r13
addq %r14,%r12
movq %r8,%r14
rorq $23,%r13
movq %rbx,%r15
movq %r12,32(%rsp)
rorq $5,%r14
xorq %rax,%r13
xorq %rcx,%r15
rorq $4,%r13
addq %rdx,%r12
xorq %r8,%r14
addq (%rbp,%rdi,8),%r12
andq %rax,%r15
movq %r9,%rdx
rorq $6,%r14
xorq %rax,%r13
xorq %rcx,%r15
xorq %r10,%rdx
xorq %r8,%r14
addq %r15,%r12
movq %r9,%r15
rorq $14,%r13
andq %r8,%rdx
andq %r10,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rdx
addq %r12,%r11
addq %r12,%rdx
leaq 1(%rdi),%rdi
addq %r14,%rdx
movq 48(%rsp),%r13
movq 24(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 112(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 40(%rsp),%r12
movq %r11,%r13
addq %r14,%r12
movq %rdx,%r14
rorq $23,%r13
movq %rax,%r15
movq %r12,40(%rsp)
rorq $5,%r14
xorq %r11,%r13
xorq %rbx,%r15
rorq $4,%r13
addq %rcx,%r12
xorq %rdx,%r14
addq (%rbp,%rdi,8),%r12
andq %r11,%r15
movq %r8,%rcx
rorq $6,%r14
xorq %r11,%r13
xorq %rbx,%r15
xorq %r9,%rcx
xorq %rdx,%r14
addq %r15,%r12
movq %r8,%r15
rorq $14,%r13
andq %rdx,%rcx
andq %r9,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rcx
addq %r12,%r10
addq %r12,%rcx
leaq 1(%rdi),%rdi
addq %r14,%rcx
movq 56(%rsp),%r13
movq 32(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 120(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 48(%rsp),%r12
movq %r10,%r13
addq %r14,%r12
movq %rcx,%r14
rorq $23,%r13
movq %r11,%r15
movq %r12,48(%rsp)
rorq $5,%r14
xorq %r10,%r13
xorq %rax,%r15
rorq $4,%r13
addq %rbx,%r12
xorq %rcx,%r14
addq (%rbp,%rdi,8),%r12
andq %r10,%r15
movq %rdx,%rbx
rorq $6,%r14
xorq %r10,%r13
xorq %rax,%r15
xorq %r8,%rbx
xorq %rcx,%r14
addq %r15,%r12
movq %rdx,%r15
rorq $14,%r13
andq %rcx,%rbx
andq %r8,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rbx
addq %r12,%r9
addq %r12,%rbx
leaq 1(%rdi),%rdi
addq %r14,%rbx
movq 64(%rsp),%r13
movq 40(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 0(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 56(%rsp),%r12
movq %r9,%r13
addq %r14,%r12
movq %rbx,%r14
rorq $23,%r13
movq %r10,%r15
movq %r12,56(%rsp)
rorq $5,%r14
xorq %r9,%r13
xorq %r11,%r15
rorq $4,%r13
addq %rax,%r12
xorq %rbx,%r14
addq (%rbp,%rdi,8),%r12
andq %r9,%r15
movq %rcx,%rax
rorq $6,%r14
xorq %r9,%r13
xorq %r11,%r15
xorq %rdx,%rax
xorq %rbx,%r14
addq %r15,%r12
movq %rcx,%r15
rorq $14,%r13
andq %rbx,%rax
andq %rdx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rax
addq %r12,%r8
addq %r12,%rax
leaq 1(%rdi),%rdi
addq %r14,%rax
movq 72(%rsp),%r13
movq 48(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 8(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 64(%rsp),%r12
movq %r8,%r13
addq %r14,%r12
movq %rax,%r14
rorq $23,%r13
movq %r9,%r15
movq %r12,64(%rsp)
rorq $5,%r14
xorq %r8,%r13
xorq %r10,%r15
rorq $4,%r13
addq %r11,%r12
xorq %rax,%r14
addq (%rbp,%rdi,8),%r12
andq %r8,%r15
movq %rbx,%r11
rorq $6,%r14
xorq %r8,%r13
xorq %r10,%r15
xorq %rcx,%r11
xorq %rax,%r14
addq %r15,%r12
movq %rbx,%r15
rorq $14,%r13
andq %rax,%r11
andq %rcx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r11
addq %r12,%rdx
addq %r12,%r11
leaq 1(%rdi),%rdi
addq %r14,%r11
movq 80(%rsp),%r13
movq 56(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 16(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 72(%rsp),%r12
movq %rdx,%r13
addq %r14,%r12
movq %r11,%r14
rorq $23,%r13
movq %r8,%r15
movq %r12,72(%rsp)
rorq $5,%r14
xorq %rdx,%r13
xorq %r9,%r15
rorq $4,%r13
addq %r10,%r12
xorq %r11,%r14
addq (%rbp,%rdi,8),%r12
andq %rdx,%r15
movq %rax,%r10
rorq $6,%r14
xorq %rdx,%r13
xorq %r9,%r15
xorq %rbx,%r10
xorq %r11,%r14
addq %r15,%r12
movq %rax,%r15
rorq $14,%r13
andq %r11,%r10
andq %rbx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r10
addq %r12,%rcx
addq %r12,%r10
leaq 1(%rdi),%rdi
addq %r14,%r10
movq 88(%rsp),%r13
movq 64(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 24(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 80(%rsp),%r12
movq %rcx,%r13
addq %r14,%r12
movq %r10,%r14
rorq $23,%r13
movq %rdx,%r15
movq %r12,80(%rsp)
rorq $5,%r14
xorq %rcx,%r13
xorq %r8,%r15
rorq $4,%r13
addq %r9,%r12
xorq %r10,%r14
addq (%rbp,%rdi,8),%r12
andq %rcx,%r15
movq %r11,%r9
rorq $6,%r14
xorq %rcx,%r13
xorq %r8,%r15
xorq %rax,%r9
xorq %r10,%r14
addq %r15,%r12
movq %r11,%r15
rorq $14,%r13
andq %r10,%r9
andq %rax,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r9
addq %r12,%rbx
addq %r12,%r9
leaq 1(%rdi),%rdi
addq %r14,%r9
movq 96(%rsp),%r13
movq 72(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 32(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 88(%rsp),%r12
movq %rbx,%r13
addq %r14,%r12
movq %r9,%r14
rorq $23,%r13
movq %rcx,%r15
movq %r12,88(%rsp)
rorq $5,%r14
xorq %rbx,%r13
xorq %rdx,%r15
rorq $4,%r13
addq %r8,%r12
xorq %r9,%r14
addq (%rbp,%rdi,8),%r12
andq %rbx,%r15
movq %r10,%r8
rorq $6,%r14
xorq %rbx,%r13
xorq %rdx,%r15
xorq %r11,%r8
xorq %r9,%r14
addq %r15,%r12
movq %r10,%r15
rorq $14,%r13
andq %r9,%r8
andq %r11,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%r8
addq %r12,%rax
addq %r12,%r8
leaq 1(%rdi),%rdi
addq %r14,%r8
movq 104(%rsp),%r13
movq 80(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 40(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 96(%rsp),%r12
movq %rax,%r13
addq %r14,%r12
movq %r8,%r14
rorq $23,%r13
movq %rbx,%r15
movq %r12,96(%rsp)
rorq $5,%r14
xorq %rax,%r13
xorq %rcx,%r15
rorq $4,%r13
addq %rdx,%r12
xorq %r8,%r14
addq (%rbp,%rdi,8),%r12
andq %rax,%r15
movq %r9,%rdx
rorq $6,%r14
xorq %rax,%r13
xorq %rcx,%r15
xorq %r10,%rdx
xorq %r8,%r14
addq %r15,%r12
movq %r9,%r15
rorq $14,%r13
andq %r8,%rdx
andq %r10,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rdx
addq %r12,%r11
addq %r12,%rdx
leaq 1(%rdi),%rdi
addq %r14,%rdx
movq 112(%rsp),%r13
movq 88(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 48(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 104(%rsp),%r12
movq %r11,%r13
addq %r14,%r12
movq %rdx,%r14
rorq $23,%r13
movq %rax,%r15
movq %r12,104(%rsp)
rorq $5,%r14
xorq %r11,%r13
xorq %rbx,%r15
rorq $4,%r13
addq %rcx,%r12
xorq %rdx,%r14
addq (%rbp,%rdi,8),%r12
andq %r11,%r15
movq %r8,%rcx
rorq $6,%r14
xorq %r11,%r13
xorq %rbx,%r15
xorq %r9,%rcx
xorq %rdx,%r14
addq %r15,%r12
movq %r8,%r15
rorq $14,%r13
andq %rdx,%rcx
andq %r9,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rcx
addq %r12,%r10
addq %r12,%rcx
leaq 1(%rdi),%rdi
addq %r14,%rcx
movq 120(%rsp),%r13
movq 96(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 56(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 112(%rsp),%r12
movq %r10,%r13
addq %r14,%r12
movq %rcx,%r14
rorq $23,%r13
movq %r11,%r15
movq %r12,112(%rsp)
rorq $5,%r14
xorq %r10,%r13
xorq %rax,%r15
rorq $4,%r13
addq %rbx,%r12
xorq %rcx,%r14
addq (%rbp,%rdi,8),%r12
andq %r10,%r15
movq %rdx,%rbx
rorq $6,%r14
xorq %r10,%r13
xorq %rax,%r15
xorq %r8,%rbx
xorq %rcx,%r14
addq %r15,%r12
movq %rdx,%r15
rorq $14,%r13
andq %rcx,%rbx
andq %r8,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rbx
addq %r12,%r9
addq %r12,%rbx
leaq 1(%rdi),%rdi
addq %r14,%rbx
movq 0(%rsp),%r13
movq 104(%rsp),%r14
movq %r13,%r12
movq %r14,%r15
rorq $7,%r12
xorq %r13,%r12
shrq $7,%r13
rorq $1,%r12
xorq %r12,%r13
movq 64(%rsp),%r12
rorq $42,%r15
xorq %r14,%r15
shrq $6,%r14
rorq $19,%r15
addq %r13,%r12
xorq %r15,%r14
addq 120(%rsp),%r12
movq %r9,%r13
addq %r14,%r12
movq %rbx,%r14
rorq $23,%r13
movq %r10,%r15
movq %r12,120(%rsp)
rorq $5,%r14
xorq %r9,%r13
xorq %r11,%r15
rorq $4,%r13
addq %rax,%r12
xorq %rbx,%r14
addq (%rbp,%rdi,8),%r12
andq %r9,%r15
movq %rcx,%rax
rorq $6,%r14
xorq %r9,%r13
xorq %r11,%r15
xorq %rdx,%rax
xorq %rbx,%r14
addq %r15,%r12
movq %rcx,%r15
rorq $14,%r13
andq %rbx,%rax
andq %rdx,%r15
rorq $28,%r14
addq %r13,%r12
addq %r15,%rax
addq %r12,%r8
addq %r12,%rax
leaq 1(%rdi),%rdi
addq %r14,%rax
cmpq $80,%rdi
jb L$rounds_16_xx
movq 128+0(%rsp),%rdi
leaq 128(%rsi),%rsi
addq 0(%rdi),%rax
addq 8(%rdi),%rbx
addq 16(%rdi),%rcx
addq 24(%rdi),%rdx
addq 32(%rdi),%r8
addq 40(%rdi),%r9
addq 48(%rdi),%r10
addq 56(%rdi),%r11
cmpq 128+16(%rsp),%rsi
movq %rax,0(%rdi)
movq %rbx,8(%rdi)
movq %rcx,16(%rdi)
movq %rdx,24(%rdi)
movq %r8,32(%rdi)
movq %r9,40(%rdi)
movq %r10,48(%rdi)
movq %r11,56(%rdi)
jb L$loop
movq 128+24(%rsp),%rsi
movq (%rsi),%r15
movq 8(%rsi),%r14
movq 16(%rsi),%r13
movq 24(%rsi),%r12
movq 32(%rsi),%rbp
movq 40(%rsi),%rbx
leaq 48(%rsi),%rsp
L$epilogue:
retq
.p2align 6
K512:
.quad 0x428a2f98d728ae22,0x7137449123ef65cd
.quad 0xb5c0fbcfec4d3b2f,0xe9b5dba58189dbbc
.quad 0x3956c25bf348b538,0x59f111f1b605d019
.quad 0x923f82a4af194f9b,0xab1c5ed5da6d8118
.quad 0xd807aa98a3030242,0x12835b0145706fbe
.quad 0x243185be4ee4b28c,0x550c7dc3d5ffb4e2
.quad 0x72be5d74f27b896f,0x80deb1fe3b1696b1
.quad 0x9bdc06a725c71235,0xc19bf174cf692694
.quad 0xe49b69c19ef14ad2,0xefbe4786384f25e3
.quad 0x0fc19dc68b8cd5b5,0x240ca1cc77ac9c65
.quad 0x2de92c6f592b0275,0x4a7484aa6ea6e483
.quad 0x5cb0a9dcbd41fbd4,0x76f988da831153b5
.quad 0x983e5152ee66dfab,0xa831c66d2db43210
.quad 0xb00327c898fb213f,0xbf597fc7beef0ee4
.quad 0xc6e00bf33da88fc2,0xd5a79147930aa725
.quad 0x06ca6351e003826f,0x142929670a0e6e70
.quad 0x27b70a8546d22ffc,0x2e1b21385c26c926
.quad 0x4d2c6dfc5ac42aed,0x53380d139d95b3df
.quad 0x650a73548baf63de,0x766a0abb3c77b2a8
.quad 0x81c2c92e47edaee6,0x92722c851482353b
.quad 0xa2bfe8a14cf10364,0xa81a664bbc423001
.quad 0xc24b8b70d0f89791,0xc76c51a30654be30
.quad 0xd192e819d6ef5218,0xd69906245565a910
.quad 0xf40e35855771202a,0x106aa07032bbd1b8
.quad 0x19a4c116b8d2d0c8,0x1e376c085141ab53
.quad 0x2748774cdf8eeb99,0x34b0bcb5e19b48a8
.quad 0x391c0cb3c5c95a63,0x4ed8aa4ae3418acb
.quad 0x5b9cca4f7763e373,0x682e6ff3d6b2b8a3
.quad 0x748f82ee5defb2fc,0x78a5636f43172f60
.quad 0x84c87814a1f0ab72,0x8cc702081a6439ec
.quad 0x90befffa23631e28,0xa4506cebde82bde9
.quad 0xbef9a3f7b2c67915,0xc67178f2e372532b
.quad 0xca273eceea26619c,0xd186b8c721c0c207
.quad 0xeada7dd6cde0eb1e,0xf57d4f7fee6ed178
.quad 0x06f067aa72176fba,0x0a637dc5a2c898a6
.quad 0x113f9804bef90dae,0x1b710b35131c471b
.quad 0x28db77f523047d84,0x32caab7b40c72493
.quad 0x3c9ebe0a15c9bebc,0x431d67c49c100d4c
.quad 0x4cc5d4becb3e42b6,0x597f299cfc657e2a
.quad 0x5fcb6fab3ad6faec,0x6c44198c4a475817