MASM 6.15+ includes support for the SSE2 instructions, like movdqa, movdqu, etc.
It is only the XMMWORD directive that forces the use of the Visual Studio 2005
assembler.
If QWORD is substituted for XMMWORD, MASM 6 can assemble the .asm sources.
Testing OpenSSL built with MASM 6 and this 'QWORD' substitution shows correct
operation and retains
the speed improvements.
A disadvantage is that QWORD won't make the assembler check that the arguments
are correctly 128-bit
aligned, although they all are - so no problem.
Unfortunately, this substitution makes MASM 8 report:
"error A2022: instruction operands must be the same size"
MASM 6 is still far more widely used than MASM 8.
Also, the license for the free (Express Edition) of MASM 8 precludes commercial
use of the binaries
it produces. This is odd because the VS2005 Express Edition C++ compiler has
no such restriction,
nor does any version of MASM 6.
Maybe separate do_masm6.bat and do_masm8.bat files to trigger different
behavior in
crypto\perlasm\x86ms.pl?
Yes, NASM works.
-tom-
Stephen Henson via RT wrote:
>> [EMAIL PROTECTED] - Thu Oct 18 09:05:32 2007]:
>>
>> Starting with OpenSSL 0.9.8f, Windows builds using ms\do_masm.bat
>> generate .asm files with the MASM
>> directive XMMWORD.
>>
>> XMMWORD was added to MASM 8 (Visual Studio C++ 2005).
>> ref: http://msdn2.microsoft.com/en-us/library/cw0399sf(VS.80).aspx
>>
>> This prevents building OpenSSL via ms\do_masm.bat with MASM 6 (VC6) or
>> MASM 7 (VC2003).
>>
>
> Some of the new assembly language modules which significantly improve
> performance require such support.
>
> MASM support isn't included at all in the HEAD (which will be 0.9.9).
>
> The free NASM can be used instead.
>
>
>
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]