Author Topic: UASM 2.34 Release  (Read 1405 times)

johnsa

  • Member
  • ****
  • Posts: 807
    • Uasm
UASM 2.34 Release
« on: May 27, 2017, 02:35:39 AM »
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:

Code: [Select]

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.