there is a problem using SSE2 instructions with masm32,
particular version 6.14.8444. assembling:

pavgb mm0, mm1

works fine because it's SSE/MMX extension, but

pavgb xmm0, xmm1

assembles fine but results in the same opcode without the leading 066h.
Therefore it is unsusable because I need 660FE0C1h instead of 0FE0C1h using:

xorpd xmm0, xmm1

doesn't assemble at all with Error A2008. It does not recognize the xmm.

Does anybody have some ideas on how to do some steps forward
without using agners macros for this? Is there another version of ml.exe
doing this right?

Even if somebody have the same problem without solution I'd like to hear.

Thanks in advance, Miracle
Posted on 2004-02-05 06:59:59 by miracle
if all else fails, split out the routines requiring SSE2 to separate modules and assemble with another assembler - I suppose fasm handles it correctly, otherwise privalov will surely fix it ^_^
Posted on 2004-02-05 07:18:42 by f0dder
did you put .xmm at the start of your listing? it works with 7.10.2179 (from ddk). i know your version has problems with sse2... bun sse should be ok.

Posted on 2004-02-05 07:19:25 by stormix
Use a later verison of ml (like ml7). If I am not wrong, ml 6.14 does not fully support sse/sse2.
Posted on 2004-02-05 07:21:25 by roticv


I was hoping to avoid exactly this scenario for several reasons. That way
I'll go to construct some macros generating the correct opcodes.


yes, .XMM was used


I'm giving the newer versions (7.10) a try now.

usually I don't use masm at all. Unfortunately the current masm32 packages
includes the (buggy) 6.14.8444 so be warned of trouble using SSE2. :-(

Thanks Miracle
Posted on 2004-02-05 07:28:44 by miracle
afaik 6.14 is older than SSE2 itself, so no wonder it doesn't support it properly. No bug, just old software.
6.14 was one of the first to add SSE itself, iirc.
Posted on 2004-02-05 08:18:52 by Henk-Jan