Does MASM32 v10 support SSE? I tried to use xmm0 and xmm1 registers but the assembler always reported error saying that they are undefined symbols
This is the header part of my asm file:
.486
.xmm
.model flat, stdcall
The errors come from here:
movups xmm0, [eax]
movups xmm1, [ebx]
the instruction movups is recognised by the assembler, but the register is not... is it because i used the wrong cpu mode? :dazzled:
If yu want SSE2 or later you must use a later version of ML than the one in the masm32 project. 6.15 if you own VC98 is on the forum web site, 70, 7.1, 8.0 and 9.0 are available from Microsoft although usually in a massive download if you want later versions of ML.EXE.
With a later version try this.
686p
.MMX
.XMM
This should build the later instructions.
If your header is in this order:
.686
.MMX
.XMM
.model flat, stdcall
option casemap :none
With the .MMX and .XMM directive above the option casemap directive, and your MMX or XMM registers are in lower case (for example xmm0 instead of XMM0), then for each register reference you should get an error like this:
error A2006: undefined symbol : xmm0
If your MMX or XMM registers are in upper case, then there will be no error.
If your header is in this order:
.686
.model flat, stdcall
option casemap :none
.MMX
.XMM
With the .MMX or .XMM directive below the option casemap directive, then your MMX or XMM registers can be either case (but not mixed case).
This was tested on versions 6.14 and 6.15, but not on later versions.
Yeah, i changed them to upper case and now it's working
thanks a lot!