mirror of
https://github.com/openssl/openssl.git
synced 2024-11-27 05:21:51 +08:00
Squeeze a bit more speed out of MD5 assembler.
This commit is contained in:
parent
679ab7c39e
commit
a96e7810e2
4
CHANGES
4
CHANGES
@ -5,6 +5,10 @@
|
||||
|
||||
Changes between 0.9.1c and 0.9.2
|
||||
|
||||
*) Squeeze another 7% of speed out of MD5 assembler, at least on a P2. I'd
|
||||
like to hear about it if this slows down other processors.
|
||||
[Ben Laurie]
|
||||
|
||||
*) Add CygWin32 platform information to Configure script.
|
||||
[Alan Batie <batie@aahz.jf.intel.com>]
|
||||
|
||||
|
@ -61,7 +61,7 @@ asm/mx86-out.o: asm/mx86unix.cpp
|
||||
asm/mx86bsdi.o: asm/mx86unix.cpp
|
||||
$(CPP) -DBSDI asm/mx86unix.cpp | sed 's/ :/:/' | as -o asm/mx86bsdi.o
|
||||
|
||||
asm/mx86unix.cpp:
|
||||
asm/mx86unix.cpp: asm/md5-586.pl
|
||||
(cd asm; perl md5-586.pl cpp >mx86unix.cpp)
|
||||
|
||||
files:
|
||||
|
@ -44,7 +44,7 @@ sub R0
|
||||
local($pos,$a,$b,$c,$d,$K,$ki,$s,$t)=@_;
|
||||
|
||||
&mov($tmp1,$C) if $pos < 0;
|
||||
&mov($tmp2,&DWP($xo[$ki]*4,$K,"",0)) if $pos < 0; # very first one
|
||||
&mov($tmp2,&DWP($xo[$ki]*4,$K,"",0)) if $pos < 0; # very first one
|
||||
|
||||
# body proper
|
||||
|
||||
@ -54,7 +54,6 @@ sub R0
|
||||
&and($tmp1,$b); # F function - part 3
|
||||
&lea($a,&DWP($t,$a,$tmp2,1));
|
||||
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0)) if ($pos != 2);
|
||||
&xor($tmp1,$d); # F function - part 4
|
||||
|
||||
&add($a,$tmp1);
|
||||
@ -62,8 +61,10 @@ sub R0
|
||||
&mov($tmp1,&Np($c)) if $pos == 1; # next tmp1 for R1
|
||||
|
||||
&rotl($a,$s);
|
||||
&add($a,$b);
|
||||
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0)) if ($pos != 2);
|
||||
|
||||
&add($a,$b);
|
||||
}
|
||||
|
||||
sub R1
|
||||
@ -100,16 +101,16 @@ if (($n & 1) == 0)
|
||||
# make sure to do 'D' first, not 'B', else we clash with
|
||||
# the last add from the previous round.
|
||||
|
||||
&xor($tmp1,$d); # H function - part 2
|
||||
&xor($tmp1,$d); # H function - part 2
|
||||
|
||||
&xor($tmp1,$b); # H function - part 3
|
||||
&lea($a,&DWP($t,$a,$tmp2,1));
|
||||
&lea($a,&DWP($t,$a,$tmp2,1));
|
||||
|
||||
&add($a,$tmp1);
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0));
|
||||
|
||||
&rotl($a,$s);
|
||||
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0));
|
||||
&mov($tmp1,&Np($c));
|
||||
}
|
||||
else
|
||||
@ -118,17 +119,17 @@ else
|
||||
# make sure to do 'D' first, not 'B', else we clash with
|
||||
# the last add from the previous round.
|
||||
|
||||
&lea($a,&DWP($t,$a,$tmp2,1));
|
||||
&lea($a,&DWP($t,$a,$tmp2,1));
|
||||
|
||||
&add($b,$c); # MOVED FORWARD
|
||||
&xor($tmp1,$d); # H function - part 2
|
||||
&xor($tmp1,$d); # H function - part 2
|
||||
|
||||
&xor($tmp1,$b); # H function - part 3
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0)) if ($pos != 2);
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0)) if ($pos != 2);
|
||||
|
||||
&add($a,$tmp1);
|
||||
&mov($tmp1,&Np($c)) if $pos < 1; # H function - part 1
|
||||
&mov($tmp1,-1) if $pos == 1; # I function - part 1
|
||||
&mov($tmp1,&Np($c)) if $pos < 1; # H function - part 1
|
||||
&mov($tmp1,-1) if $pos == 1; # I function - part 1
|
||||
|
||||
&rotl($a,$s);
|
||||
|
||||
@ -146,21 +147,21 @@ sub R3
|
||||
&xor($tmp1,$d) if $pos < 0; # I function - part 2
|
||||
|
||||
&or($tmp1,$b); # I function - part 3
|
||||
&lea($a,&DWP($t,$a,$tmp2,1));
|
||||
&lea($a,&DWP($t,$a,$tmp2,1));
|
||||
|
||||
&xor($tmp1,$c); # I function - part 4
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0)) if $pos != 2; # load X/k value
|
||||
&mov($tmp2,&wparam(0)) if $pos == 2;
|
||||
&mov($tmp2,&DWP($xo[$ki+1]*4,$K,"",0)) if $pos != 2; # load X/k value
|
||||
&mov($tmp2,&wparam(0)) if $pos == 2;
|
||||
|
||||
&add($a,$tmp1);
|
||||
&mov($tmp1,-1) if $pos < 1; # H function - part 1
|
||||
&add($K,64) if $pos >=1 && !$normal;
|
||||
&mov($tmp1,-1) if $pos < 1; # H function - part 1
|
||||
&add($K,64) if $pos >=1 && !$normal;
|
||||
|
||||
&rotl($a,$s);
|
||||
|
||||
&xor($tmp1,&Np($d)) if $pos <= 0; # I function - part = first time
|
||||
&mov($tmp1,&DWP( 0,$tmp2,"",0)) if $pos > 0;
|
||||
&add($a,$b);
|
||||
&add($a,$b);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,730 +0,0 @@
|
||||
/* Run the C pre-processor over this file with one of the following defined
|
||||
* ELF - elf object files,
|
||||
* OUT - a.out object files,
|
||||
* BSDI - BSDI style a.out object files
|
||||
* SOL - Solaris style elf
|
||||
*/
|
||||
|
||||
#define TYPE(a,b) .type a,b
|
||||
#define SIZE(a,b) .size a,b
|
||||
|
||||
#if defined(OUT) || defined(BSDI)
|
||||
#define md5_block_x86 _md5_block_x86
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef OUT
|
||||
#define OK 1
|
||||
#define ALIGN 4
|
||||
#endif
|
||||
|
||||
#ifdef BSDI
|
||||
#define OK 1
|
||||
#define ALIGN 4
|
||||
#undef SIZE
|
||||
#undef TYPE
|
||||
#define SIZE(a,b)
|
||||
#define TYPE(a,b)
|
||||
#endif
|
||||
|
||||
#if defined(ELF) || defined(SOL)
|
||||
#define OK 1
|
||||
#define ALIGN 16
|
||||
#endif
|
||||
|
||||
#ifndef OK
|
||||
You need to define one of
|
||||
ELF - elf systems - linux-elf, NetBSD and DG-UX
|
||||
OUT - a.out systems - linux-a.out and FreeBSD
|
||||
SOL - solaris systems, which are elf with strange comment lines
|
||||
BSDI - a.out with a very primative version of as.
|
||||
#endif
|
||||
|
||||
/* Let the Assembler begin :-) */
|
||||
/* Don't even think of reading this code */
|
||||
/* It was automatically generated by md5-586.pl */
|
||||
/* Which is a perl program used to generate the x86 assember for */
|
||||
/* any of elf, a.out, BSDI,Win32, or Solaris */
|
||||
/* eric <eay@cryptsoft.com> */
|
||||
|
||||
.file "md5-586.s"
|
||||
.version "01.01"
|
||||
gcc2_compiled.:
|
||||
.text
|
||||
.align ALIGN
|
||||
.globl md5_block_x86
|
||||
TYPE(md5_block_x86,@function)
|
||||
md5_block_x86:
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl 12(%esp), %edi
|
||||
movl 16(%esp), %esi
|
||||
movl 20(%esp), %ecx
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
addl %esi, %ecx
|
||||
subl $64, %ecx
|
||||
movl (%edi), %eax
|
||||
pushl %ecx
|
||||
movl 4(%edi), %ebx
|
||||
movl 8(%edi), %ecx
|
||||
movl 12(%edi), %edx
|
||||
.L000start:
|
||||
|
||||
/* R0 section */
|
||||
movl %ecx, %edi
|
||||
movl (%esi), %ebp
|
||||
/* R0 0 */
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
leal 3614090360(%eax,%ebp,1),%eax
|
||||
movl 4(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $7, %eax
|
||||
addl %ebx, %eax
|
||||
/* R0 1 */
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
leal 3905402710(%edx,%ebp,1),%edx
|
||||
movl 8(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $12, %edx
|
||||
addl %eax, %edx
|
||||
/* R0 2 */
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
leal 606105819(%ecx,%ebp,1),%ecx
|
||||
movl 12(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $17, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R0 3 */
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
leal 3250441966(%ebx,%ebp,1),%ebx
|
||||
movl 16(%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $22, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R0 4 */
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
leal 4118548399(%eax,%ebp,1),%eax
|
||||
movl 20(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $7, %eax
|
||||
addl %ebx, %eax
|
||||
/* R0 5 */
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
leal 1200080426(%edx,%ebp,1),%edx
|
||||
movl 24(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $12, %edx
|
||||
addl %eax, %edx
|
||||
/* R0 6 */
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
leal 2821735955(%ecx,%ebp,1),%ecx
|
||||
movl 28(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $17, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R0 7 */
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
leal 4249261313(%ebx,%ebp,1),%ebx
|
||||
movl 32(%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $22, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R0 8 */
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
leal 1770035416(%eax,%ebp,1),%eax
|
||||
movl 36(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $7, %eax
|
||||
addl %ebx, %eax
|
||||
/* R0 9 */
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
leal 2336552879(%edx,%ebp,1),%edx
|
||||
movl 40(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $12, %edx
|
||||
addl %eax, %edx
|
||||
/* R0 10 */
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
leal 4294925233(%ecx,%ebp,1),%ecx
|
||||
movl 44(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $17, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R0 11 */
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
leal 2304563134(%ebx,%ebp,1),%ebx
|
||||
movl 48(%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $22, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R0 12 */
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
leal 1804603682(%eax,%ebp,1),%eax
|
||||
movl 52(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $7, %eax
|
||||
addl %ebx, %eax
|
||||
/* R0 13 */
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
leal 4254626195(%edx,%ebp,1),%edx
|
||||
movl 56(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $12, %edx
|
||||
addl %eax, %edx
|
||||
/* R0 14 */
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
leal 2792965006(%ecx,%ebp,1),%ecx
|
||||
movl 60(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $17, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R0 15 */
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
leal 1236535329(%ebx,%ebp,1),%ebx
|
||||
movl 4(%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $22, %ebx
|
||||
addl %ecx, %ebx
|
||||
|
||||
/* R1 section */
|
||||
/* R1 16 */
|
||||
leal 4129170786(%eax,%ebp,1),%eax
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
movl 24(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $5, %eax
|
||||
addl %ebx, %eax
|
||||
/* R1 17 */
|
||||
leal 3225465664(%edx,%ebp,1),%edx
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
movl 44(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $9, %edx
|
||||
addl %eax, %edx
|
||||
/* R1 18 */
|
||||
leal 643717713(%ecx,%ebp,1),%ecx
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
movl (%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $14, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R1 19 */
|
||||
leal 3921069994(%ebx,%ebp,1),%ebx
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
movl 20(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $20, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R1 20 */
|
||||
leal 3593408605(%eax,%ebp,1),%eax
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
movl 40(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $5, %eax
|
||||
addl %ebx, %eax
|
||||
/* R1 21 */
|
||||
leal 38016083(%edx,%ebp,1),%edx
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
movl 60(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $9, %edx
|
||||
addl %eax, %edx
|
||||
/* R1 22 */
|
||||
leal 3634488961(%ecx,%ebp,1),%ecx
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
movl 16(%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $14, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R1 23 */
|
||||
leal 3889429448(%ebx,%ebp,1),%ebx
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
movl 36(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $20, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R1 24 */
|
||||
leal 568446438(%eax,%ebp,1),%eax
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
movl 56(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $5, %eax
|
||||
addl %ebx, %eax
|
||||
/* R1 25 */
|
||||
leal 3275163606(%edx,%ebp,1),%edx
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
movl 12(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $9, %edx
|
||||
addl %eax, %edx
|
||||
/* R1 26 */
|
||||
leal 4107603335(%ecx,%ebp,1),%ecx
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
movl 32(%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $14, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R1 27 */
|
||||
leal 1163531501(%ebx,%ebp,1),%ebx
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
movl 52(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $20, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R1 28 */
|
||||
leal 2850285829(%eax,%ebp,1),%eax
|
||||
xorl %ebx, %edi
|
||||
andl %edx, %edi
|
||||
movl 8(%esi), %ebp
|
||||
xorl %ecx, %edi
|
||||
addl %edi, %eax
|
||||
movl %ebx, %edi
|
||||
roll $5, %eax
|
||||
addl %ebx, %eax
|
||||
/* R1 29 */
|
||||
leal 4243563512(%edx,%ebp,1),%edx
|
||||
xorl %eax, %edi
|
||||
andl %ecx, %edi
|
||||
movl 28(%esi), %ebp
|
||||
xorl %ebx, %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $9, %edx
|
||||
addl %eax, %edx
|
||||
/* R1 30 */
|
||||
leal 1735328473(%ecx,%ebp,1),%ecx
|
||||
xorl %edx, %edi
|
||||
andl %ebx, %edi
|
||||
movl 48(%esi), %ebp
|
||||
xorl %eax, %edi
|
||||
addl %edi, %ecx
|
||||
movl %edx, %edi
|
||||
roll $14, %ecx
|
||||
addl %edx, %ecx
|
||||
/* R1 31 */
|
||||
leal 2368359562(%ebx,%ebp,1),%ebx
|
||||
xorl %ecx, %edi
|
||||
andl %eax, %edi
|
||||
movl 20(%esi), %ebp
|
||||
xorl %edx, %edi
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $20, %ebx
|
||||
addl %ecx, %ebx
|
||||
|
||||
/* R2 section */
|
||||
/* R2 32 */
|
||||
xorl %edx, %edi
|
||||
xorl %ebx, %edi
|
||||
leal 4294588738(%eax,%ebp,1),%eax
|
||||
addl %edi, %eax
|
||||
movl 32(%esi), %ebp
|
||||
roll $4, %eax
|
||||
movl %ebx, %edi
|
||||
/* R2 33 */
|
||||
leal 2272392833(%edx,%ebp,1),%edx
|
||||
addl %ebx, %eax
|
||||
xorl %ecx, %edi
|
||||
xorl %eax, %edi
|
||||
movl 44(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $11, %edx
|
||||
addl %eax, %edx
|
||||
/* R2 34 */
|
||||
xorl %ebx, %edi
|
||||
xorl %edx, %edi
|
||||
leal 1839030562(%ecx,%ebp,1),%ecx
|
||||
addl %edi, %ecx
|
||||
movl 56(%esi), %ebp
|
||||
roll $16, %ecx
|
||||
movl %edx, %edi
|
||||
/* R2 35 */
|
||||
leal 4259657740(%ebx,%ebp,1),%ebx
|
||||
addl %edx, %ecx
|
||||
xorl %eax, %edi
|
||||
xorl %ecx, %edi
|
||||
movl 4(%esi), %ebp
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $23, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R2 36 */
|
||||
xorl %edx, %edi
|
||||
xorl %ebx, %edi
|
||||
leal 2763975236(%eax,%ebp,1),%eax
|
||||
addl %edi, %eax
|
||||
movl 16(%esi), %ebp
|
||||
roll $4, %eax
|
||||
movl %ebx, %edi
|
||||
/* R2 37 */
|
||||
leal 1272893353(%edx,%ebp,1),%edx
|
||||
addl %ebx, %eax
|
||||
xorl %ecx, %edi
|
||||
xorl %eax, %edi
|
||||
movl 28(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $11, %edx
|
||||
addl %eax, %edx
|
||||
/* R2 38 */
|
||||
xorl %ebx, %edi
|
||||
xorl %edx, %edi
|
||||
leal 4139469664(%ecx,%ebp,1),%ecx
|
||||
addl %edi, %ecx
|
||||
movl 40(%esi), %ebp
|
||||
roll $16, %ecx
|
||||
movl %edx, %edi
|
||||
/* R2 39 */
|
||||
leal 3200236656(%ebx,%ebp,1),%ebx
|
||||
addl %edx, %ecx
|
||||
xorl %eax, %edi
|
||||
xorl %ecx, %edi
|
||||
movl 52(%esi), %ebp
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $23, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R2 40 */
|
||||
xorl %edx, %edi
|
||||
xorl %ebx, %edi
|
||||
leal 681279174(%eax,%ebp,1),%eax
|
||||
addl %edi, %eax
|
||||
movl (%esi), %ebp
|
||||
roll $4, %eax
|
||||
movl %ebx, %edi
|
||||
/* R2 41 */
|
||||
leal 3936430074(%edx,%ebp,1),%edx
|
||||
addl %ebx, %eax
|
||||
xorl %ecx, %edi
|
||||
xorl %eax, %edi
|
||||
movl 12(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $11, %edx
|
||||
addl %eax, %edx
|
||||
/* R2 42 */
|
||||
xorl %ebx, %edi
|
||||
xorl %edx, %edi
|
||||
leal 3572445317(%ecx,%ebp,1),%ecx
|
||||
addl %edi, %ecx
|
||||
movl 24(%esi), %ebp
|
||||
roll $16, %ecx
|
||||
movl %edx, %edi
|
||||
/* R2 43 */
|
||||
leal 76029189(%ebx,%ebp,1),%ebx
|
||||
addl %edx, %ecx
|
||||
xorl %eax, %edi
|
||||
xorl %ecx, %edi
|
||||
movl 36(%esi), %ebp
|
||||
addl %edi, %ebx
|
||||
movl %ecx, %edi
|
||||
roll $23, %ebx
|
||||
addl %ecx, %ebx
|
||||
/* R2 44 */
|
||||
xorl %edx, %edi
|
||||
xorl %ebx, %edi
|
||||
leal 3654602809(%eax,%ebp,1),%eax
|
||||
addl %edi, %eax
|
||||
movl 48(%esi), %ebp
|
||||
roll $4, %eax
|
||||
movl %ebx, %edi
|
||||
/* R2 45 */
|
||||
leal 3873151461(%edx,%ebp,1),%edx
|
||||
addl %ebx, %eax
|
||||
xorl %ecx, %edi
|
||||
xorl %eax, %edi
|
||||
movl 60(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl %eax, %edi
|
||||
roll $11, %edx
|
||||
addl %eax, %edx
|
||||
/* R2 46 */
|
||||
xorl %ebx, %edi
|
||||
xorl %edx, %edi
|
||||
leal 530742520(%ecx,%ebp,1),%ecx
|
||||
addl %edi, %ecx
|
||||
movl 8(%esi), %ebp
|
||||
roll $16, %ecx
|
||||
movl %edx, %edi
|
||||
/* R2 47 */
|
||||
leal 3299628645(%ebx,%ebp,1),%ebx
|
||||
addl %edx, %ecx
|
||||
xorl %eax, %edi
|
||||
xorl %ecx, %edi
|
||||
movl (%esi), %ebp
|
||||
addl %edi, %ebx
|
||||
movl $-1, %edi
|
||||
roll $23, %ebx
|
||||
addl %ecx, %ebx
|
||||
|
||||
/* R3 section */
|
||||
/* R3 48 */
|
||||
xorl %edx, %edi
|
||||
orl %ebx, %edi
|
||||
leal 4096336452(%eax,%ebp,1),%eax
|
||||
xorl %ecx, %edi
|
||||
movl 28(%esi), %ebp
|
||||
addl %edi, %eax
|
||||
movl $-1, %edi
|
||||
roll $6, %eax
|
||||
xorl %ecx, %edi
|
||||
addl %ebx, %eax
|
||||
/* R3 49 */
|
||||
orl %eax, %edi
|
||||
leal 1126891415(%edx,%ebp,1),%edx
|
||||
xorl %ebx, %edi
|
||||
movl 56(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl $-1, %edi
|
||||
roll $10, %edx
|
||||
xorl %ebx, %edi
|
||||
addl %eax, %edx
|
||||
/* R3 50 */
|
||||
orl %edx, %edi
|
||||
leal 2878612391(%ecx,%ebp,1),%ecx
|
||||
xorl %eax, %edi
|
||||
movl 20(%esi), %ebp
|
||||
addl %edi, %ecx
|
||||
movl $-1, %edi
|
||||
roll $15, %ecx
|
||||
xorl %eax, %edi
|
||||
addl %edx, %ecx
|
||||
/* R3 51 */
|
||||
orl %ecx, %edi
|
||||
leal 4237533241(%ebx,%ebp,1),%ebx
|
||||
xorl %edx, %edi
|
||||
movl 48(%esi), %ebp
|
||||
addl %edi, %ebx
|
||||
movl $-1, %edi
|
||||
roll $21, %ebx
|
||||
xorl %edx, %edi
|
||||
addl %ecx, %ebx
|
||||
/* R3 52 */
|
||||
orl %ebx, %edi
|
||||
leal 1700485571(%eax,%ebp,1),%eax
|
||||
xorl %ecx, %edi
|
||||
movl 12(%esi), %ebp
|
||||
addl %edi, %eax
|
||||
movl $-1, %edi
|
||||
roll $6, %eax
|
||||
xorl %ecx, %edi
|
||||
addl %ebx, %eax
|
||||
/* R3 53 */
|
||||
orl %eax, %edi
|
||||
leal 2399980690(%edx,%ebp,1),%edx
|
||||
xorl %ebx, %edi
|
||||
movl 40(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl $-1, %edi
|
||||
roll $10, %edx
|
||||
xorl %ebx, %edi
|
||||
addl %eax, %edx
|
||||
/* R3 54 */
|
||||
orl %edx, %edi
|
||||
leal 4293915773(%ecx,%ebp,1),%ecx
|
||||
xorl %eax, %edi
|
||||
movl 4(%esi), %ebp
|
||||
addl %edi, %ecx
|
||||
movl $-1, %edi
|
||||
roll $15, %ecx
|
||||
xorl %eax, %edi
|
||||
addl %edx, %ecx
|
||||
/* R3 55 */
|
||||
orl %ecx, %edi
|
||||
leal 2240044497(%ebx,%ebp,1),%ebx
|
||||
xorl %edx, %edi
|
||||
movl 32(%esi), %ebp
|
||||
addl %edi, %ebx
|
||||
movl $-1, %edi
|
||||
roll $21, %ebx
|
||||
xorl %edx, %edi
|
||||
addl %ecx, %ebx
|
||||
/* R3 56 */
|
||||
orl %ebx, %edi
|
||||
leal 1873313359(%eax,%ebp,1),%eax
|
||||
xorl %ecx, %edi
|
||||
movl 60(%esi), %ebp
|
||||
addl %edi, %eax
|
||||
movl $-1, %edi
|
||||
roll $6, %eax
|
||||
xorl %ecx, %edi
|
||||
addl %ebx, %eax
|
||||
/* R3 57 */
|
||||
orl %eax, %edi
|
||||
leal 4264355552(%edx,%ebp,1),%edx
|
||||
xorl %ebx, %edi
|
||||
movl 24(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl $-1, %edi
|
||||
roll $10, %edx
|
||||
xorl %ebx, %edi
|
||||
addl %eax, %edx
|
||||
/* R3 58 */
|
||||
orl %edx, %edi
|
||||
leal 2734768916(%ecx,%ebp,1),%ecx
|
||||
xorl %eax, %edi
|
||||
movl 52(%esi), %ebp
|
||||
addl %edi, %ecx
|
||||
movl $-1, %edi
|
||||
roll $15, %ecx
|
||||
xorl %eax, %edi
|
||||
addl %edx, %ecx
|
||||
/* R3 59 */
|
||||
orl %ecx, %edi
|
||||
leal 1309151649(%ebx,%ebp,1),%ebx
|
||||
xorl %edx, %edi
|
||||
movl 16(%esi), %ebp
|
||||
addl %edi, %ebx
|
||||
movl $-1, %edi
|
||||
roll $21, %ebx
|
||||
xorl %edx, %edi
|
||||
addl %ecx, %ebx
|
||||
/* R3 60 */
|
||||
orl %ebx, %edi
|
||||
leal 4149444226(%eax,%ebp,1),%eax
|
||||
xorl %ecx, %edi
|
||||
movl 44(%esi), %ebp
|
||||
addl %edi, %eax
|
||||
movl $-1, %edi
|
||||
roll $6, %eax
|
||||
xorl %ecx, %edi
|
||||
addl %ebx, %eax
|
||||
/* R3 61 */
|
||||
orl %eax, %edi
|
||||
leal 3174756917(%edx,%ebp,1),%edx
|
||||
xorl %ebx, %edi
|
||||
movl 8(%esi), %ebp
|
||||
addl %edi, %edx
|
||||
movl $-1, %edi
|
||||
roll $10, %edx
|
||||
xorl %ebx, %edi
|
||||
addl %eax, %edx
|
||||
/* R3 62 */
|
||||
orl %edx, %edi
|
||||
leal 718787259(%ecx,%ebp,1),%ecx
|
||||
xorl %eax, %edi
|
||||
movl 36(%esi), %ebp
|
||||
addl %edi, %ecx
|
||||
movl $-1, %edi
|
||||
roll $15, %ecx
|
||||
xorl %eax, %edi
|
||||
addl %edx, %ecx
|
||||
/* R3 63 */
|
||||
orl %ecx, %edi
|
||||
leal 3951481745(%ebx,%ebp,1),%ebx
|
||||
xorl %edx, %edi
|
||||
movl 24(%esp), %ebp
|
||||
addl %edi, %ebx
|
||||
addl $64, %esi
|
||||
roll $21, %ebx
|
||||
movl (%ebp), %edi
|
||||
addl %ecx, %ebx
|
||||
addl %edi, %eax
|
||||
movl 4(%ebp), %edi
|
||||
addl %edi, %ebx
|
||||
movl 8(%ebp), %edi
|
||||
addl %edi, %ecx
|
||||
movl 12(%ebp), %edi
|
||||
addl %edi, %edx
|
||||
movl %eax, (%ebp)
|
||||
movl %ebx, 4(%ebp)
|
||||
movl (%esp), %edi
|
||||
movl %ecx, 8(%ebp)
|
||||
movl %edx, 12(%ebp)
|
||||
cmpl %esi, %edi
|
||||
jge .L000start
|
||||
popl %eax
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
popl %edi
|
||||
popl %esi
|
||||
ret
|
||||
.md5_block_x86_end:
|
||||
SIZE(md5_block_x86,.md5_block_x86_end-md5_block_x86)
|
||||
.ident "desasm.pl"
|
Loading…
Reference in New Issue
Block a user