blob: e8852c46146a184459fd20d86e1d69343dd26ad1 [file]
// This file is generated from a similarly-named Perl script in the BoringSSL
// source tree. Do not edit by hand.
#include <openssl/asm_base.h>
#if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__ELF__)
.text
.align 16
.globl md5_block_asm_data_order
.hidden md5_block_asm_data_order
.type md5_block_asm_data_order,@function
md5_block_asm_data_order:
.cfi_startproc
_CET_ENDBR
pushq %rbp
.cfi_adjust_cfa_offset 8
.cfi_offset rbp,-16
pushq %rbx
.cfi_adjust_cfa_offset 8
.cfi_offset rbx,-24
pushq %r12
.cfi_adjust_cfa_offset 8
.cfi_offset r12,-32
pushq %r14
.cfi_adjust_cfa_offset 8
.cfi_offset r14,-40
pushq %r15
.cfi_adjust_cfa_offset 8
.cfi_offset r15,-48
.Lprologue:
// rdi = arg #1 (ctx, MD5_CTX pointer)
// rsi = arg #2 (ptr, data pointer)
// rdx = arg #3 (nbr, number of 16-word blocks to process)
movq %rdi,%rbp // rbp = ctx
shlq $6,%rdx // rdx = nbr in bytes
leaq (%rsi,%rdx,1),%rdi // rdi = end
movl 0(%rbp),%eax // eax = ctx->A
movl 4(%rbp),%ebx // ebx = ctx->B
movl 8(%rbp),%ecx // ecx = ctx->C
movl 12(%rbp),%edx // edx = ctx->D
// end is 'rdi'
// ptr is 'rsi'
// A is 'eax'
// B is 'ebx'
// C is 'ecx'
// D is 'edx'
cmpq %rdi,%rsi // cmp end with ptr
je .Lend // jmp if ptr == end
// BEGIN of loop over 16-word blocks
.Lloop: // save old values of A, B, C, D
movl %eax,%r8d
movl %ebx,%r9d
movl %ecx,%r14d
movl %edx,%r15d
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
movl %edx,%r11d // (NEXT STEP) z' = %edx
xorl %ecx,%r11d // y ^ ...
leal -680876936(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r11d // x & ...
xorl %edx,%r11d // z ^ ...
movl 4(%rsi),%r10d // (NEXT STEP) X[1]
addl %r11d,%eax // dst += ...
roll $7,%eax // dst <<< s
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %ebx,%eax // dst += x
xorl %ebx,%r11d // y ^ ...
leal -389564586(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r11d // x & ...
xorl %ecx,%r11d // z ^ ...
movl 8(%rsi),%r10d // (NEXT STEP) X[2]
addl %r11d,%edx // dst += ...
roll $12,%edx // dst <<< s
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %eax,%edx // dst += x
xorl %eax,%r11d // y ^ ...
leal 606105819(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r11d // x & ...
xorl %ebx,%r11d // z ^ ...
movl 12(%rsi),%r10d // (NEXT STEP) X[3]
addl %r11d,%ecx // dst += ...
roll $17,%ecx // dst <<< s
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %edx,%ecx // dst += x
xorl %edx,%r11d // y ^ ...
leal -1044525330(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r11d // x & ...
xorl %eax,%r11d // z ^ ...
movl 16(%rsi),%r10d // (NEXT STEP) X[4]
addl %r11d,%ebx // dst += ...
roll $22,%ebx // dst <<< s
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %ecx,%ebx // dst += x
xorl %ecx,%r11d // y ^ ...
leal -176418897(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r11d // x & ...
xorl %edx,%r11d // z ^ ...
movl 20(%rsi),%r10d // (NEXT STEP) X[5]
addl %r11d,%eax // dst += ...
roll $7,%eax // dst <<< s
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %ebx,%eax // dst += x
xorl %ebx,%r11d // y ^ ...
leal 1200080426(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r11d // x & ...
xorl %ecx,%r11d // z ^ ...
movl 24(%rsi),%r10d // (NEXT STEP) X[6]
addl %r11d,%edx // dst += ...
roll $12,%edx // dst <<< s
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %eax,%edx // dst += x
xorl %eax,%r11d // y ^ ...
leal -1473231341(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r11d // x & ...
xorl %ebx,%r11d // z ^ ...
movl 28(%rsi),%r10d // (NEXT STEP) X[7]
addl %r11d,%ecx // dst += ...
roll $17,%ecx // dst <<< s
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %edx,%ecx // dst += x
xorl %edx,%r11d // y ^ ...
leal -45705983(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r11d // x & ...
xorl %eax,%r11d // z ^ ...
movl 32(%rsi),%r10d // (NEXT STEP) X[8]
addl %r11d,%ebx // dst += ...
roll $22,%ebx // dst <<< s
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %ecx,%ebx // dst += x
xorl %ecx,%r11d // y ^ ...
leal 1770035416(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r11d // x & ...
xorl %edx,%r11d // z ^ ...
movl 36(%rsi),%r10d // (NEXT STEP) X[9]
addl %r11d,%eax // dst += ...
roll $7,%eax // dst <<< s
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %ebx,%eax // dst += x
xorl %ebx,%r11d // y ^ ...
leal -1958414417(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r11d // x & ...
xorl %ecx,%r11d // z ^ ...
movl 40(%rsi),%r10d // (NEXT STEP) X[10]
addl %r11d,%edx // dst += ...
roll $12,%edx // dst <<< s
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %eax,%edx // dst += x
xorl %eax,%r11d // y ^ ...
leal -42063(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r11d // x & ...
xorl %ebx,%r11d // z ^ ...
movl 44(%rsi),%r10d // (NEXT STEP) X[11]
addl %r11d,%ecx // dst += ...
roll $17,%ecx // dst <<< s
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %edx,%ecx // dst += x
xorl %edx,%r11d // y ^ ...
leal -1990404162(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r11d // x & ...
xorl %eax,%r11d // z ^ ...
movl 48(%rsi),%r10d // (NEXT STEP) X[12]
addl %r11d,%ebx // dst += ...
roll $22,%ebx // dst <<< s
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %ecx,%ebx // dst += x
xorl %ecx,%r11d // y ^ ...
leal 1804603682(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r11d // x & ...
xorl %edx,%r11d // z ^ ...
movl 52(%rsi),%r10d // (NEXT STEP) X[13]
addl %r11d,%eax // dst += ...
roll $7,%eax // dst <<< s
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %ebx,%eax // dst += x
xorl %ebx,%r11d // y ^ ...
leal -40341101(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r11d // x & ...
xorl %ecx,%r11d // z ^ ...
movl 56(%rsi),%r10d // (NEXT STEP) X[14]
addl %r11d,%edx // dst += ...
roll $12,%edx // dst <<< s
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %eax,%edx // dst += x
xorl %eax,%r11d // y ^ ...
leal -1502002290(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r11d // x & ...
xorl %ebx,%r11d // z ^ ...
movl 60(%rsi),%r10d // (NEXT STEP) X[15]
addl %r11d,%ecx // dst += ...
roll $17,%ecx // dst <<< s
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %edx,%ecx // dst += x
xorl %edx,%r11d // y ^ ...
leal 1236535329(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r11d // x & ...
xorl %eax,%r11d // z ^ ...
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
addl %r11d,%ebx // dst += ...
roll $22,%ebx // dst <<< s
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %ecx,%ebx // dst += x
movl 4(%rsi),%r10d // (NEXT STEP) X[1]
movl %edx,%r11d // (NEXT STEP) z' = %edx
movl %edx,%r12d // (NEXT STEP) z' = %edx
notl %r11d // not z
leal -165796510(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r12d // x & z
andl %ecx,%r11d // y & (not z)
movl 24(%rsi),%r10d // (NEXT STEP) X[6]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %r12d,%eax // dst += ...
movl %ecx,%r12d // (NEXT STEP) z' = %ecx
roll $5,%eax // dst <<< s
addl %ebx,%eax // dst += x
notl %r11d // not z
leal -1069501632(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r12d // x & z
andl %ebx,%r11d // y & (not z)
movl 44(%rsi),%r10d // (NEXT STEP) X[11]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %r12d,%edx // dst += ...
movl %ebx,%r12d // (NEXT STEP) z' = %ebx
roll $9,%edx // dst <<< s
addl %eax,%edx // dst += x
notl %r11d // not z
leal 643717713(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r12d // x & z
andl %eax,%r11d // y & (not z)
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %r12d,%ecx // dst += ...
movl %eax,%r12d // (NEXT STEP) z' = %eax
roll $14,%ecx // dst <<< s
addl %edx,%ecx // dst += x
notl %r11d // not z
leal -373897302(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r12d // x & z
andl %edx,%r11d // y & (not z)
movl 20(%rsi),%r10d // (NEXT STEP) X[5]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %r12d,%ebx // dst += ...
movl %edx,%r12d // (NEXT STEP) z' = %edx
roll $20,%ebx // dst <<< s
addl %ecx,%ebx // dst += x
notl %r11d // not z
leal -701558691(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r12d // x & z
andl %ecx,%r11d // y & (not z)
movl 40(%rsi),%r10d // (NEXT STEP) X[10]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %r12d,%eax // dst += ...
movl %ecx,%r12d // (NEXT STEP) z' = %ecx
roll $5,%eax // dst <<< s
addl %ebx,%eax // dst += x
notl %r11d // not z
leal 38016083(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r12d // x & z
andl %ebx,%r11d // y & (not z)
movl 60(%rsi),%r10d // (NEXT STEP) X[15]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %r12d,%edx // dst += ...
movl %ebx,%r12d // (NEXT STEP) z' = %ebx
roll $9,%edx // dst <<< s
addl %eax,%edx // dst += x
notl %r11d // not z
leal -660478335(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r12d // x & z
andl %eax,%r11d // y & (not z)
movl 16(%rsi),%r10d // (NEXT STEP) X[4]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %r12d,%ecx // dst += ...
movl %eax,%r12d // (NEXT STEP) z' = %eax
roll $14,%ecx // dst <<< s
addl %edx,%ecx // dst += x
notl %r11d // not z
leal -405537848(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r12d // x & z
andl %edx,%r11d // y & (not z)
movl 36(%rsi),%r10d // (NEXT STEP) X[9]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %r12d,%ebx // dst += ...
movl %edx,%r12d // (NEXT STEP) z' = %edx
roll $20,%ebx // dst <<< s
addl %ecx,%ebx // dst += x
notl %r11d // not z
leal 568446438(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r12d // x & z
andl %ecx,%r11d // y & (not z)
movl 56(%rsi),%r10d // (NEXT STEP) X[14]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %r12d,%eax // dst += ...
movl %ecx,%r12d // (NEXT STEP) z' = %ecx
roll $5,%eax // dst <<< s
addl %ebx,%eax // dst += x
notl %r11d // not z
leal -1019803690(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r12d // x & z
andl %ebx,%r11d // y & (not z)
movl 12(%rsi),%r10d // (NEXT STEP) X[3]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %r12d,%edx // dst += ...
movl %ebx,%r12d // (NEXT STEP) z' = %ebx
roll $9,%edx // dst <<< s
addl %eax,%edx // dst += x
notl %r11d // not z
leal -187363961(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r12d // x & z
andl %eax,%r11d // y & (not z)
movl 32(%rsi),%r10d // (NEXT STEP) X[8]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %r12d,%ecx // dst += ...
movl %eax,%r12d // (NEXT STEP) z' = %eax
roll $14,%ecx // dst <<< s
addl %edx,%ecx // dst += x
notl %r11d // not z
leal 1163531501(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r12d // x & z
andl %edx,%r11d // y & (not z)
movl 52(%rsi),%r10d // (NEXT STEP) X[13]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %r12d,%ebx // dst += ...
movl %edx,%r12d // (NEXT STEP) z' = %edx
roll $20,%ebx // dst <<< s
addl %ecx,%ebx // dst += x
notl %r11d // not z
leal -1444681467(%rax,%r10,1),%eax // Const + dst + ...
andl %ebx,%r12d // x & z
andl %ecx,%r11d // y & (not z)
movl 8(%rsi),%r10d // (NEXT STEP) X[2]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ecx,%r11d // (NEXT STEP) z' = %ecx
addl %r12d,%eax // dst += ...
movl %ecx,%r12d // (NEXT STEP) z' = %ecx
roll $5,%eax // dst <<< s
addl %ebx,%eax // dst += x
notl %r11d // not z
leal -51403784(%rdx,%r10,1),%edx // Const + dst + ...
andl %eax,%r12d // x & z
andl %ebx,%r11d // y & (not z)
movl 28(%rsi),%r10d // (NEXT STEP) X[7]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %ebx,%r11d // (NEXT STEP) z' = %ebx
addl %r12d,%edx // dst += ...
movl %ebx,%r12d // (NEXT STEP) z' = %ebx
roll $9,%edx // dst <<< s
addl %eax,%edx // dst += x
notl %r11d // not z
leal 1735328473(%rcx,%r10,1),%ecx // Const + dst + ...
andl %edx,%r12d // x & z
andl %eax,%r11d // y & (not z)
movl 48(%rsi),%r10d // (NEXT STEP) X[12]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %eax,%r11d // (NEXT STEP) z' = %eax
addl %r12d,%ecx // dst += ...
movl %eax,%r12d // (NEXT STEP) z' = %eax
roll $14,%ecx // dst <<< s
addl %edx,%ecx // dst += x
notl %r11d // not z
leal -1926607734(%rbx,%r10,1),%ebx // Const + dst + ...
andl %ecx,%r12d // x & z
andl %edx,%r11d // y & (not z)
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
orl %r11d,%r12d // (y & (not z)) | (x & z)
movl %edx,%r11d // (NEXT STEP) z' = %edx
addl %r12d,%ebx // dst += ...
movl %edx,%r12d // (NEXT STEP) z' = %edx
roll $20,%ebx // dst <<< s
addl %ecx,%ebx // dst += x
movl 20(%rsi),%r10d // (NEXT STEP) X[5]
movl %ecx,%r11d // (NEXT STEP) y' = %ecx
leal -378558(%rax,%r10,1),%eax // Const + dst + ...
movl 32(%rsi),%r10d // (NEXT STEP) X[8]
xorl %edx,%r11d // z ^ ...
xorl %ebx,%r11d // x ^ ...
addl %r11d,%eax // dst += ...
roll $4,%eax // dst <<< s
movl %ebx,%r11d // (NEXT STEP) y' = %ebx
addl %ebx,%eax // dst += x
leal -2022574463(%rdx,%r10,1),%edx // Const + dst + ...
movl 44(%rsi),%r10d // (NEXT STEP) X[11]
xorl %ecx,%r11d // z ^ ...
xorl %eax,%r11d // x ^ ...
addl %r11d,%edx // dst += ...
roll $11,%edx // dst <<< s
movl %eax,%r11d // (NEXT STEP) y' = %eax
addl %eax,%edx // dst += x
leal 1839030562(%rcx,%r10,1),%ecx // Const + dst + ...
movl 56(%rsi),%r10d // (NEXT STEP) X[14]
xorl %ebx,%r11d // z ^ ...
xorl %edx,%r11d // x ^ ...
addl %r11d,%ecx // dst += ...
roll $16,%ecx // dst <<< s
movl %edx,%r11d // (NEXT STEP) y' = %edx
addl %edx,%ecx // dst += x
leal -35309556(%rbx,%r10,1),%ebx // Const + dst + ...
movl 4(%rsi),%r10d // (NEXT STEP) X[1]
xorl %eax,%r11d // z ^ ...
xorl %ecx,%r11d // x ^ ...
addl %r11d,%ebx // dst += ...
roll $23,%ebx // dst <<< s
movl %ecx,%r11d // (NEXT STEP) y' = %ecx
addl %ecx,%ebx // dst += x
leal -1530992060(%rax,%r10,1),%eax // Const + dst + ...
movl 16(%rsi),%r10d // (NEXT STEP) X[4]
xorl %edx,%r11d // z ^ ...
xorl %ebx,%r11d // x ^ ...
addl %r11d,%eax // dst += ...
roll $4,%eax // dst <<< s
movl %ebx,%r11d // (NEXT STEP) y' = %ebx
addl %ebx,%eax // dst += x
leal 1272893353(%rdx,%r10,1),%edx // Const + dst + ...
movl 28(%rsi),%r10d // (NEXT STEP) X[7]
xorl %ecx,%r11d // z ^ ...
xorl %eax,%r11d // x ^ ...
addl %r11d,%edx // dst += ...
roll $11,%edx // dst <<< s
movl %eax,%r11d // (NEXT STEP) y' = %eax
addl %eax,%edx // dst += x
leal -155497632(%rcx,%r10,1),%ecx // Const + dst + ...
movl 40(%rsi),%r10d // (NEXT STEP) X[10]
xorl %ebx,%r11d // z ^ ...
xorl %edx,%r11d // x ^ ...
addl %r11d,%ecx // dst += ...
roll $16,%ecx // dst <<< s
movl %edx,%r11d // (NEXT STEP) y' = %edx
addl %edx,%ecx // dst += x
leal -1094730640(%rbx,%r10,1),%ebx // Const + dst + ...
movl 52(%rsi),%r10d // (NEXT STEP) X[13]
xorl %eax,%r11d // z ^ ...
xorl %ecx,%r11d // x ^ ...
addl %r11d,%ebx // dst += ...
roll $23,%ebx // dst <<< s
movl %ecx,%r11d // (NEXT STEP) y' = %ecx
addl %ecx,%ebx // dst += x
leal 681279174(%rax,%r10,1),%eax // Const + dst + ...
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
xorl %edx,%r11d // z ^ ...
xorl %ebx,%r11d // x ^ ...
addl %r11d,%eax // dst += ...
roll $4,%eax // dst <<< s
movl %ebx,%r11d // (NEXT STEP) y' = %ebx
addl %ebx,%eax // dst += x
leal -358537222(%rdx,%r10,1),%edx // Const + dst + ...
movl 12(%rsi),%r10d // (NEXT STEP) X[3]
xorl %ecx,%r11d // z ^ ...
xorl %eax,%r11d // x ^ ...
addl %r11d,%edx // dst += ...
roll $11,%edx // dst <<< s
movl %eax,%r11d // (NEXT STEP) y' = %eax
addl %eax,%edx // dst += x
leal -722521979(%rcx,%r10,1),%ecx // Const + dst + ...
movl 24(%rsi),%r10d // (NEXT STEP) X[6]
xorl %ebx,%r11d // z ^ ...
xorl %edx,%r11d // x ^ ...
addl %r11d,%ecx // dst += ...
roll $16,%ecx // dst <<< s
movl %edx,%r11d // (NEXT STEP) y' = %edx
addl %edx,%ecx // dst += x
leal 76029189(%rbx,%r10,1),%ebx // Const + dst + ...
movl 36(%rsi),%r10d // (NEXT STEP) X[9]
xorl %eax,%r11d // z ^ ...
xorl %ecx,%r11d // x ^ ...
addl %r11d,%ebx // dst += ...
roll $23,%ebx // dst <<< s
movl %ecx,%r11d // (NEXT STEP) y' = %ecx
addl %ecx,%ebx // dst += x
leal -640364487(%rax,%r10,1),%eax // Const + dst + ...
movl 48(%rsi),%r10d // (NEXT STEP) X[12]
xorl %edx,%r11d // z ^ ...
xorl %ebx,%r11d // x ^ ...
addl %r11d,%eax // dst += ...
roll $4,%eax // dst <<< s
movl %ebx,%r11d // (NEXT STEP) y' = %ebx
addl %ebx,%eax // dst += x
leal -421815835(%rdx,%r10,1),%edx // Const + dst + ...
movl 60(%rsi),%r10d // (NEXT STEP) X[15]
xorl %ecx,%r11d // z ^ ...
xorl %eax,%r11d // x ^ ...
addl %r11d,%edx // dst += ...
roll $11,%edx // dst <<< s
movl %eax,%r11d // (NEXT STEP) y' = %eax
addl %eax,%edx // dst += x
leal 530742520(%rcx,%r10,1),%ecx // Const + dst + ...
movl 8(%rsi),%r10d // (NEXT STEP) X[2]
xorl %ebx,%r11d // z ^ ...
xorl %edx,%r11d // x ^ ...
addl %r11d,%ecx // dst += ...
roll $16,%ecx // dst <<< s
movl %edx,%r11d // (NEXT STEP) y' = %edx
addl %edx,%ecx // dst += x
leal -995338651(%rbx,%r10,1),%ebx // Const + dst + ...
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
xorl %eax,%r11d // z ^ ...
xorl %ecx,%r11d // x ^ ...
addl %r11d,%ebx // dst += ...
roll $23,%ebx // dst <<< s
movl %ecx,%r11d // (NEXT STEP) y' = %ecx
addl %ecx,%ebx // dst += x
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
movl $0xffffffff,%r11d
xorl %edx,%r11d // (NEXT STEP) not z' = not %edx
leal -198630844(%rax,%r10,1),%eax // Const + dst + ...
orl %ebx,%r11d // x | ...
xorl %ecx,%r11d // y ^ ...
addl %r11d,%eax // dst += ...
movl 28(%rsi),%r10d // (NEXT STEP) X[7]
movl $0xffffffff,%r11d
roll $6,%eax // dst <<< s
xorl %ecx,%r11d // (NEXT STEP) not z' = not %ecx
addl %ebx,%eax // dst += x
leal 1126891415(%rdx,%r10,1),%edx // Const + dst + ...
orl %eax,%r11d // x | ...
xorl %ebx,%r11d // y ^ ...
addl %r11d,%edx // dst += ...
movl 56(%rsi),%r10d // (NEXT STEP) X[14]
movl $0xffffffff,%r11d
roll $10,%edx // dst <<< s
xorl %ebx,%r11d // (NEXT STEP) not z' = not %ebx
addl %eax,%edx // dst += x
leal -1416354905(%rcx,%r10,1),%ecx // Const + dst + ...
orl %edx,%r11d // x | ...
xorl %eax,%r11d // y ^ ...
addl %r11d,%ecx // dst += ...
movl 20(%rsi),%r10d // (NEXT STEP) X[5]
movl $0xffffffff,%r11d
roll $15,%ecx // dst <<< s
xorl %eax,%r11d // (NEXT STEP) not z' = not %eax
addl %edx,%ecx // dst += x
leal -57434055(%rbx,%r10,1),%ebx // Const + dst + ...
orl %ecx,%r11d // x | ...
xorl %edx,%r11d // y ^ ...
addl %r11d,%ebx // dst += ...
movl 48(%rsi),%r10d // (NEXT STEP) X[12]
movl $0xffffffff,%r11d
roll $21,%ebx // dst <<< s
xorl %edx,%r11d // (NEXT STEP) not z' = not %edx
addl %ecx,%ebx // dst += x
leal 1700485571(%rax,%r10,1),%eax // Const + dst + ...
orl %ebx,%r11d // x | ...
xorl %ecx,%r11d // y ^ ...
addl %r11d,%eax // dst += ...
movl 12(%rsi),%r10d // (NEXT STEP) X[3]
movl $0xffffffff,%r11d
roll $6,%eax // dst <<< s
xorl %ecx,%r11d // (NEXT STEP) not z' = not %ecx
addl %ebx,%eax // dst += x
leal -1894986606(%rdx,%r10,1),%edx // Const + dst + ...
orl %eax,%r11d // x | ...
xorl %ebx,%r11d // y ^ ...
addl %r11d,%edx // dst += ...
movl 40(%rsi),%r10d // (NEXT STEP) X[10]
movl $0xffffffff,%r11d
roll $10,%edx // dst <<< s
xorl %ebx,%r11d // (NEXT STEP) not z' = not %ebx
addl %eax,%edx // dst += x
leal -1051523(%rcx,%r10,1),%ecx // Const + dst + ...
orl %edx,%r11d // x | ...
xorl %eax,%r11d // y ^ ...
addl %r11d,%ecx // dst += ...
movl 4(%rsi),%r10d // (NEXT STEP) X[1]
movl $0xffffffff,%r11d
roll $15,%ecx // dst <<< s
xorl %eax,%r11d // (NEXT STEP) not z' = not %eax
addl %edx,%ecx // dst += x
leal -2054922799(%rbx,%r10,1),%ebx // Const + dst + ...
orl %ecx,%r11d // x | ...
xorl %edx,%r11d // y ^ ...
addl %r11d,%ebx // dst += ...
movl 32(%rsi),%r10d // (NEXT STEP) X[8]
movl $0xffffffff,%r11d
roll $21,%ebx // dst <<< s
xorl %edx,%r11d // (NEXT STEP) not z' = not %edx
addl %ecx,%ebx // dst += x
leal 1873313359(%rax,%r10,1),%eax // Const + dst + ...
orl %ebx,%r11d // x | ...
xorl %ecx,%r11d // y ^ ...
addl %r11d,%eax // dst += ...
movl 60(%rsi),%r10d // (NEXT STEP) X[15]
movl $0xffffffff,%r11d
roll $6,%eax // dst <<< s
xorl %ecx,%r11d // (NEXT STEP) not z' = not %ecx
addl %ebx,%eax // dst += x
leal -30611744(%rdx,%r10,1),%edx // Const + dst + ...
orl %eax,%r11d // x | ...
xorl %ebx,%r11d // y ^ ...
addl %r11d,%edx // dst += ...
movl 24(%rsi),%r10d // (NEXT STEP) X[6]
movl $0xffffffff,%r11d
roll $10,%edx // dst <<< s
xorl %ebx,%r11d // (NEXT STEP) not z' = not %ebx
addl %eax,%edx // dst += x
leal -1560198380(%rcx,%r10,1),%ecx // Const + dst + ...
orl %edx,%r11d // x | ...
xorl %eax,%r11d // y ^ ...
addl %r11d,%ecx // dst += ...
movl 52(%rsi),%r10d // (NEXT STEP) X[13]
movl $0xffffffff,%r11d
roll $15,%ecx // dst <<< s
xorl %eax,%r11d // (NEXT STEP) not z' = not %eax
addl %edx,%ecx // dst += x
leal 1309151649(%rbx,%r10,1),%ebx // Const + dst + ...
orl %ecx,%r11d // x | ...
xorl %edx,%r11d // y ^ ...
addl %r11d,%ebx // dst += ...
movl 16(%rsi),%r10d // (NEXT STEP) X[4]
movl $0xffffffff,%r11d
roll $21,%ebx // dst <<< s
xorl %edx,%r11d // (NEXT STEP) not z' = not %edx
addl %ecx,%ebx // dst += x
leal -145523070(%rax,%r10,1),%eax // Const + dst + ...
orl %ebx,%r11d // x | ...
xorl %ecx,%r11d // y ^ ...
addl %r11d,%eax // dst += ...
movl 44(%rsi),%r10d // (NEXT STEP) X[11]
movl $0xffffffff,%r11d
roll $6,%eax // dst <<< s
xorl %ecx,%r11d // (NEXT STEP) not z' = not %ecx
addl %ebx,%eax // dst += x
leal -1120210379(%rdx,%r10,1),%edx // Const + dst + ...
orl %eax,%r11d // x | ...
xorl %ebx,%r11d // y ^ ...
addl %r11d,%edx // dst += ...
movl 8(%rsi),%r10d // (NEXT STEP) X[2]
movl $0xffffffff,%r11d
roll $10,%edx // dst <<< s
xorl %ebx,%r11d // (NEXT STEP) not z' = not %ebx
addl %eax,%edx // dst += x
leal 718787259(%rcx,%r10,1),%ecx // Const + dst + ...
orl %edx,%r11d // x | ...
xorl %eax,%r11d // y ^ ...
addl %r11d,%ecx // dst += ...
movl 36(%rsi),%r10d // (NEXT STEP) X[9]
movl $0xffffffff,%r11d
roll $15,%ecx // dst <<< s
xorl %eax,%r11d // (NEXT STEP) not z' = not %eax
addl %edx,%ecx // dst += x
leal -343485551(%rbx,%r10,1),%ebx // Const + dst + ...
orl %ecx,%r11d // x | ...
xorl %edx,%r11d // y ^ ...
addl %r11d,%ebx // dst += ...
movl 0(%rsi),%r10d // (NEXT STEP) X[0]
movl $0xffffffff,%r11d
roll $21,%ebx // dst <<< s
xorl %edx,%r11d // (NEXT STEP) not z' = not %edx
addl %ecx,%ebx // dst += x
// add old values of A, B, C, D
addl %r8d,%eax
addl %r9d,%ebx
addl %r14d,%ecx
addl %r15d,%edx
// loop control
addq $64,%rsi // ptr += 64
cmpq %rdi,%rsi // cmp end with ptr
jb .Lloop // jmp if ptr < end
// END of loop over 16-word blocks
.Lend:
movl %eax,0(%rbp) // ctx->A = A
movl %ebx,4(%rbp) // ctx->B = B
movl %ecx,8(%rbp) // ctx->C = C
movl %edx,12(%rbp) // ctx->D = D
movq (%rsp),%r15
.cfi_restore r15
movq 8(%rsp),%r14
.cfi_restore r14
movq 16(%rsp),%r12
.cfi_restore r12
movq 24(%rsp),%rbx
.cfi_restore rbx
movq 32(%rsp),%rbp
.cfi_restore rbp
addq $40,%rsp
.cfi_adjust_cfa_offset -40
.Lepilogue:
ret
.cfi_endproc
.size md5_block_asm_data_order,.-md5_block_asm_data_order
#endif