[openssl-dev] [openssl.org #3650] sha1-586.asm broken in 1.0.2-stable for Windows builds

Andy Polyakov via RT rt at openssl.org
Thu Feb 5 08:09:28 UTC 2015


> I am also having a issue this issue.  It is a 32 bit build issue
> only.  The 64 bit build completes using the same development
> environment.  The offending instruction is "movd".  Unfortunately
> I am not a x86 assembler expert.
> 
> Mark
> 
>         perl crypto\sha\asm\sha1-586.pl win32 /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS
>   -DDSO_WIN32 -W3 -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_
> MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL
> _IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -
> DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH
> _ASM -DOPENSSL_USE_APPLINK -I. -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KR
> B5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE >tmp32dll\sha1-586.asm
>         ml /nologo /Cp /coff /c /Cx /Zi /Fotmp32dll\sha1-586.obj tmp32dll\sha1-5
> 86.asm
>  Assembling: tmp32dll\sha1-586.asm
> tmp32dll\sha1-586.asm(1432) : error A2070:invalid instruction operands
> tmp32dll\sha1-586.asm(1576) : error A2070:invalid instruction operands
> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0
> \VC\BIN\ml.EXE"' : return code '0x1'
> Stop.
> 
> $Lshaext_shortcut::
> 	mov	edi,DWORD PTR 20[esp]
> 	mov	ebx,esp
> 	mov	esi,DWORD PTR 24[esp]
> 	mov	ecx,DWORD PTR 28[esp]
> 	sub	esp,32
> 	movdqu	xmm0,XMMWORD PTR [edi]
> 	movd	xmm1,XMMWORD PTR 16[edi]		* 1432

Ah! It should be DWORD, not XMMWORD... Devja vu! There was similar case
with movq elsewhere. See if attached fixes the problem.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: masm.diff
Type: text/x-patch
Size: 958 bytes
Desc: not available
URL: <http://mta.openssl.org/pipermail/openssl-dev/attachments/20150205/3a718a9e/attachment.bin>


More information about the openssl-dev mailing list