I moved the question to a new topic Test PROGRAM Format=PE reports E6101.
Search found 62 matches
- 03 Sep 2018 15:53
- Forum: Questions and answers
- Topic: Invoke with SIMD operands
- Replies: 11
- Views: 632637
Test PROGRAM Format=PE reports E6101
- 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 ...
- 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 ...
- 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 ...
- 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 ...
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 ...
- 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 ...
- 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 ...
- 30 Aug 2018 21:27
- Forum: Questions and answers
- Topic: No License?
- Replies: 2
- Views: 170691
- 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 ...
- 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 ...
