News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

UASM 2.34 Release

Started by johnsa, May 27, 2017, 02:35:39 AM

Previous topic - Next topic

johnsa

Hi,

2.34 is now available on the site/git.

Changes:
1) Added -Sp switch for segment alignment.
2) Fixed a bug with BND call and finished adding all Intel MPX extension support.
3) Added the ability to define procedure return types on PROC/PROTO.
4) Making use of 3 allowed the creation of a new built-in variable @LastReturnType which is set with each invoke to the return type of that procedure (if any).
5) Making use of 3 and 4 allowed the creation of a new macro library function uinvoke which supports can automatically return the correct type, for example:



myfuncR4 PROTO REAL4 :REAL4
myfuncD  PROTO DWORD :REAL4
myfuncQ  PROTO SQWORD :REAL4
myfuncX  PROTO XMMWORD :REAL4


vcmpss xmm0, UINVOKE(myfuncR4, xmm2), xmm1, 0
mov eax, uinvoke(myfuncD, xmm2)
cmp rbx, uinvoke(myfuncQ, xmm3)
vmovaps xmm0, uinvoke(myfuncX, xmm2)


myfuncR4 PROC REAL4 FRAME a:REAL4
ret
myfuncR4 ENDP

myfuncD PROC DWORD FRAME USES rbx a:REAL4
ret
myfuncD ENDP

myfuncQ PROC SQWORD USES rbx a:REAL4
ret
myfuncQ ENDP

myfuncX PROC XMMWORD a:REAL4
ret
myfuncX ENDP



3-5 are totally backwards compatible, if no return type specified a default is assume.