7 ; void Adapt ( short* pM, const short* pAdapt, int nDirection, int nOrder )
13 ; [esp+ 0] Return Address
28 mov eax, [esp + 4] ; pM
29 mov ecx, [esp + 8] ; pAdapt
30 mov edx, [esp + 16] ; nOrder
33 cmp dword [esp + 12], byte 0 ; nDirection
73 AdaptSub: je short AdaptDone
99 ; int CalculateDotProduct ( const short* pA, const short* pB, int nOrder )
104 ; [esp+ 0] Return Address
122 proc CalculateDotProduct
124 mov eax, [esp + 4] ; pA
125 mov ecx, [esp + 8] ; pB
126 mov edx, [esp + 12] ; nOrder
130 loopDot: movq mm0, [eax]
134 pmaddwd mm1, [ecx + 8]
137 pmaddwd mm2, [ecx + 16]
140 pmaddwd mm3, [ecx + 24]
157 ; BOOL GetMMXAvailable ( void );
171 jz short return ; no CPUID command, so no MMX