Search found 29 matches

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

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 in ...
by ar18
05 Sep 2018 22:59
Forum: Questions and answers
Topic: Invoke
Replies: 10
Views: 46891

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: 28341

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] ; qword3 is ...
by ar18
05 Sep 2018 17:41
Forum: Questions and answers
Topic: WinABI.htm
Replies: 5
Views: 28341

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 f...
by ar18
04 Sep 2018 23:09
Forum: Questions and answers
Topic: Lists as Args
Replies: 2
Views: 19372

Re: Lists as Args

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

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: 46891

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 thi...
by ar18
04 Sep 2018 00:37
Forum: Questions and answers
Topic: Test PROGRAM Format=PE reports E6101
Replies: 2
Views: 19578

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 this st...
by ar18
03 Sep 2018 13:12
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 50157

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 onto the...
by ar18
02 Sep 2018 19:49
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 50157

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 func...