News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

does MASM32 v10 support SSE?

Started by houyunqing, October 23, 2008, 07:36:11 AM

Previous topic - Next topic

houyunqing

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:

hutch--

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.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

MichaelW

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.
eschew obfuscation

houyunqing

Yeah, i changed them to upper case and now it's working
thanks a lot!