Search found 62 matches

by vitsoft
03 Sep 2018 15:53
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 632637

Test PROGRAM Format=PE reports E6101

ar18 wrote: 03 Sep 2018 13:12 Thank you. Already done. Now onto the next problem:
I moved the question to a new topic Test PROGRAM Format=PE reports E6101.
by vitsoft
02 Sep 2018 20:47
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 632637

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
invoke fnTest, Q:dblVar, D ...
by vitsoft
02 Sep 2018 17:25
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 632637

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 ...
by vitsoft
01 Sep 2018 22:37
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 632637

Re: Invoke with SIMD operands


That is incorrect code. The registers are never put on the shadow space stack by the caller, but always by the callee. Seems I remember someone telling me to RTFM, in this case it should be the Win64 ABI manual :) . This is one of the problems with the WinAPI macro in 64-bit mode. It is the ...
by vitsoft
01 Sep 2018 21:18
Forum: New releases
Topic: Version 20180901
Replies: 0
Views: 144977

Version 20180901

Release date: 2018 Sep 1
TimeStamp: 1535760000
File size: 3838803
File hash MD5: E56A63A7060DAAD39603558FF960E058
What's new:
New attribute REGTYPE# introduced.
Macro WinAPI in macrolibrary winabi.htm was enhanced with passing values in XMM.
Alphabetic Index was completed with automatic ...
by vitsoft
31 Aug 2018 22:59
Forum: Questions and answers
Topic: Invoke
Replies: 10
Views: 490224

Re: Invoke


I would like to suggest that for Win64 support in €ASM, could you provide a fastcall, cdecl, stdcall, and vector directive/macro for the calling convention, or at least make it possible so that a macro could be written by users to do this?
I think any convention is already possible at macro level ...
by vitsoft
30 Aug 2018 22:20
Forum: Questions and answers
Topic: Invoke
Replies: 10
Views: 490224

Re: Invoke


After the call is made to the function, per the Win64 ABI it must then copy rcx,rdx,r8, and r9 into the SHADOW SPACE at the start of that function.

I didn't know that. Agner Fog in book 5, page 19, says ad 64 bit Windows: Since the shadow space is owned by the called function, it is safe to use ...
by vitsoft
30 Aug 2018 21:27
Forum: Questions and answers
Topic: No License?
Replies: 2
Views: 170691

Re: No License?

by vitsoft
30 Aug 2018 21:25
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 632637

Re: Invoke with SIMD operands


if you decide to not support this, then make it clear in your documentation that €ASM only partially supports the Win64 ABI.

Actually it's not €ASM's job to support various ABI invokations (Win64, SystemV, Delphi etc), they are implemented as external macros, totally in the hands of €ASM users ...
by vitsoft
29 Aug 2018 22:45
Forum: Questions and answers
Topic: Invoke with SIMD operands
Replies: 11
Views: 632637

Invoke with SIMD operands


Sometimes a bit of pseudocode will help better than any explanation ...
api %MACRO Function, Argument1, Argument2,,,Lib=
____ %i %SETA %#
____ j %FOR %i..1
________ %IF %i=4
____________ %IF TYPE# %j = 'real4'
________________ movss xmm3,%j
____________ %ELSEIF TYPE# %j = 'real8 ...