The MASM Forum Archive 2004 to 2012

General Forums => The Workshop => Topic started by: AeroASM on February 20, 2005, 08:30:33 AM

Title: SSE2 doesn't work!!
Post by: AeroASM on February 20, 2005, 08:30:33 AM

.586
.model flat,stdcall
option casemap:none
.mmx
.xmm

include \masm32\include\windows.inc
include \masm32\macros\macros.asm
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib

.code

start:

movapd xmm0,xmm1
invoke ExitProcess,0

end start


When I assemble this, it doesn't work. I get the following error message from ml:

error A2008: syntax error : xmm

However, if I change movapd (SSE2) to movaps (SSE) then it works fine. I thought that perhaps the .xmm directive only enables support for SSE, not SSE2 and SSE3.

Could someone please help me?
Title: Re: SSE2 doesn't work!!
Post by: pbrennick on February 20, 2005, 01:51:34 PM
AeroASM,
I thik that you should organise it this way:

.586
.mmx
.xmm

.model flat,stdcall
option casemap:none

Paul
Title: Re: SSE2 doesn't work!!
Post by: MichaelW on February 20, 2005, 02:23:49 PM
I get that error if I try to assemble your code with MASM 6.14, but not with 6.15. Also, placing the .XMM or .MMX directives ahead of the option casemap:none directive, even though that seems to me to be the most logical place for it, will cause MASM to recognize the xmm or mmx register names only if they are in upper case (e.g. XMM0 instead of xmm0).




Title: Re: SSE2 doesn't work!!
Post by: AeroASM on February 20, 2005, 08:42:20 PM
I got MASM 6.15, and it worked fine. Thank you.

As for SSE3, I tried for ages, but then I realised it wouldn't work because I have a Pentium M, and SSE3 is only supported on Pentium 4 with HT.