Search found 29 matches

by ar18
07 Sep 2018 15:24
Forum: Questions and answers
Topic: WinABI.htm
Replies: 5
Views: 222977

Re: WinABI.htm


Terrabytes of spaghetti code are used every day worldwide, see https://github.com/dominictarr/your-web-app-is-bloated .
Your implementation is undoubtedly shorter.

BTW notice what Microsoft says ad float passing:
For vararg or unprototyped functions, any floating point values must be duplicated ...
by ar18
05 Sep 2018 22:59
Forum: Questions and answers
Topic: Invoke
Replies: 10
Views: 448025

Re: Invoke


Yes, callee is the owner of shadow space (ShSp), from the moment when it's been called .
The red quotation says that I (in the role of WinABI caller), having just allocated ShSp, cannot save anything to it, then call the function and expect that the saved information survived intact in ShSp across ...
by ar18
05 Sep 2018 20:01
Forum: Questions and answers
Topic: WinABI.htm
Replies: 5
Views: 222977

Re: WinABI.htm


If you expand my current implementation of WinAPI , it will emit following instructions:

...
PUSHQ double4
PUSHQ qword3
PUSHQ float2
PUSHQ dword1 ; Shadow space is now reserved for fakeFunction.
MOV RCX,[RSP+0] ; dword1 is now in RCX.
MOV RDX,[RSP+8] ; float2 is in RDX.
MOV R8,[RSP+16 ...
by ar18
05 Sep 2018 17:41
Forum: Questions and answers
Topic: WinABI.htm
Replies: 5
Views: 222977

WinABI.htm

In the new winabi.htm, the following code snippet appears:

%IF "%SIMD" !=== "0" ; If arguments should be passed in XMM registers (required for floating- point values).
____ MOVQ XMM0,RCX
____ MOVQ XMM1,RDX
____ MOVQ XMM2,R8
____ MOVQ XMM3,R9
____ %ENDIF

That will not work. Most functions ...
by ar18
04 Sep 2018 23:09
Forum: Questions and answers
Topic: Lists as Args
Replies: 2
Views: 176733

Re: Lists as Args

Perfect!
by ar18
04 Sep 2018 18:13
Forum: Questions and answers
Topic: Lists as Args
Replies: 2
Views: 176733

Lists as Args

Does €ASM support using lists as args? For example,

fake %MACRO arg1,arg2,arg3
____blah, blah, blah
____%ENDMACRO

fake <1,2,3>,<4,5,6>,<7,8,9>
by ar18
04 Sep 2018 02:11
Forum: Questions and answers
Topic: Invoke
Replies: 10
Views: 448025

Re: Invoke

From the Win64 ABI: "Even if the called function has fewer than 4 parameters, these 4 stack locations are effectively owned by the called function, and may be used by the called function for other purposes besides saving parameter register values. Thus the caller may not save information in this ...
by ar18
04 Sep 2018 00:37
Forum: Questions and answers
Topic: Test PROGRAM Format=PE reports E6101
Replies: 2
Views: 173518

Re: Test PROGRAM Format=PE reports E6101


Thank you. Already done. Now onto the next problem:


The statement Test PROGRAM Format=PE, Subsystem=GUI, WIDTH=64, Entry=START was parsed differently than its author intended.

When the statement starts with a valid machine instruction/pseudoinstruction/macroinstruction, StmParse thinks that ...
by ar18
03 Sep 2018 13:12
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 581604

Re: Invoke with SIMD operands



I worked with the author of GoASM regarding this and his approach was to prefix those particular parameters with a Q or a D to indicate if it was a float or double, e.g. -- invoke fnTest,Q [dblVar], D [fltVar],,,and so on .


If you'll satisfy with something like

Thank you. Already done. Now ...
by ar18
02 Sep 2018 19:49
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 581604

Re: Invoke with SIMD operands



Actually, those data types are with us all the time.
I'm not seeing it. A QWORD is not the same thing as a REAL8 or double-precision float. They are the same size in bytes,
but they are not interpreted in the same way or in the way that a Win64 compliant needs it to be interpreted.
Most of the ...