Hi Biterider,
Some inconsistency exist with UASM 2.49.1 or lower. John fixed this in the uasm 2.50 branch. With @Arch or invoke moves.
IFNDEF ARCH_SSE
ARCH_SSE EQU 0
ENDIF
IFNDEF ARCH_AVX
ARCH_AVX EQU 1
ENDIF
IF @Arch EQ ARCH_AVX
MOV EAX, val
VMOVD reg, EAX
ELSE
MOV EAX, val
MOVD reg, EAX
ENDIF
.IF @Arch EQ ARCH_AVX
MOV EAX, val
VMOVD reg, EAX
.ELSE
MOV EAX, val
MOVD reg, EAX
.ENDIF
echo @Arch EQ ARCH_SSE ;;0 true if @Arch == 0
echo @Arch EQ ARCH_AVX ;;1 true if @Arch == 1
echo @Arch GE ARCH_SSE ;;0 true if @Arch >= 0 (inclusive 1)
echo @Arch GE ARCH_AVX ;;1 true if @Arch >= 1