Problem z SSE
Z pAmIęTnIkA nIeGrZeCzNeGo AnIołkA
WitamMam problem z SSE. Otó¿ z niewiadomych przyczyn nie dzia³aj± mi tzw SSE integer instructions. Floating-point instructions zdaj± siê dzia³aæ dobrze(oczywi¶cie wszystkich nie sprawdza³em, ani tych ani tych). Problem ilustruje poni¿szy kod:
Kod:
.686
.MMX
.XMM
.model flat, stdcall ; model pamieci dla windows oraz wywolanie funkcji
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\masm32.inc
include \masm32\include\comdlg32.inc
include \masm32\include\gdi32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\comdlg32.lib
includelib \masm32\lib\gdi32.lib
.data
DQWORD_VALUE1 DQ 0204060822222222h
DQ 444444446080C0E0h
FLOAT_VALUE real4 2.0
.code
start:
movss XMM0, FLOAT_VALUE
MOVDQU XMM0, DQWORD_VALUE1
end start
Przy np movss jest wszytko w porz±dku natomiast przy movdqu masm32 wywala b³±d: syntax error: xmm. Bêdê bardzo wdziêczny za pomoc.
Edit: Problem rozwi±zany. Nale¿a³o:
1) u¿yæ MOVDQU XMM0, XMMWORD PTR DQWORD_VALUE1
2) Najnowszej wersji MASMA tj. MASMA10, dodatkowo podmieni³em plik ml.exe który zaczerpn±³em z Visual Studio - bez podmiany te¿ nie chcia³o dzia³aæ.