News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

VUCOMISS is AVX

Started by aw27, July 31, 2017, 09:43:11 PM

Previous topic - Next topic

aw27


1) Why are you using Avx instructions in your real number comparisons without the user setting Avx in Options:

.if(xmm0 < FP4(1.5))
.endif

;vucomiss xmm0,dword ptr [extdef64+0x3000 (00000001`3f9b3000)]

2) Why it does not work in 32-bit mode?

.if(xmm0 < FP4(1.5))
.endif

; Error A2272: real or BCD number not allowed

johnsa

OPTION ARCH:AVX is the default, if you want UCOMISS then set OPTION ARCH:SSE

I'll have a look now at the 32bit version.

aw27

Quote from: johnsa on August 01, 2017, 12:07:36 AM
OPTION ARCH:AVX is the default, if you want UCOMISS then set OPTION ARCH:SSE

I'll have a look now at the 32bit version.
All right, I always thought the default should be SSE but I can handle that.

habran

#3
Thanks aw27 :t
Another good find ;)
32bit macros were not initialising because CPU is dumb and can not follow our line of thoughts, no imagination that poor thing :icon_rolleyes:
Johnsa will upload fixed version as soon as he wakes up :biggrin:
Cod-Father

johnsa

Fixed and packages/repository updated.

There was a bug in the 32bit MEMALLOC macro which is fixed as well as the wrong macrolib init running as Habran mentioned which was causing FP4 to not be evaluated inside the .if ( ) expansion in 32bit.