Search found 29 matches
- 02 Sep 2018 03:26
- Forum: Questions and answers
- Topic: Invoke with SIMD operands
- Replies: 11
- Views: 51912
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 functio...
- 01 Sep 2018 02:15
- Forum: Questions and answers
- Topic: Invoke
- Replies: 10
- Views: 48350
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. ...
- 31 Aug 2018 18:27
- Forum: Questions and answers
- Topic: Invoke
- Replies: 10
- Views: 48350
Re: Invoke
It is a very stupid thing to save parameters to a register, only to move them onto the stack. That wastes cycles and memory...Either save parameters to the registers (like a fastcall does) or move them to the stack (like cdecl does) but don't do both at the same time My 64-bit paint program has 86 ...
- 31 Aug 2018 17:41
- Forum: Questions and answers
- Topic: Invoke
- Replies: 10
- Views: 48350
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 the...
- 31 Aug 2018 16:18
- Forum: Questions and answers
- Topic: Invoke with SIMD operands
- Replies: 11
- Views: 51912
Re: Invoke with SIMD operands
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. So let's make them more compliant. Don't call the macro "WinAPI" then for 64-bit code, since that is a misnomer. Call ...
- 31 Aug 2018 15:05
- Forum: Questions and answers
- Topic: No License?
- Replies: 2
- Views: 19198
Re: No License?
I tried, but you misspelled license so my search returned nothing .vitsoft wrote: ↑30 Aug 2018 21:27 RTFM, it's even indexed
https://euroassembler.eu/eadoc/index.htm#Licence
Note to self: Remember, licence is a noun, license is a verb.
And invokation is spelled invocation.
- 30 Aug 2018 20:39
- Forum: Questions and answers
- Topic: No License?
- Replies: 2
- Views: 19198
No License?
I can't find the license for €ASM. What is the license?
RE: https://choosealicense.com/no-permission/
RE: https://choosealicense.com/no-permission/
- 30 Aug 2018 18:34
- Forum: Questions and answers
- Topic: Invoke with SIMD operands
- Replies: 11
- Views: 51912
Re: Invoke with SIMD operands
What if the operand is provided as an immediate number, e.g. Function 0x8040 , how should the poor assembler know whether it is integer number 32832 or real4 number 4.0? That is the purpose of having a PROTO in the vast majority of all other assemblers. Personally I don't like protos. They make the...
- 30 Aug 2018 14:58
- Forum: Questions and answers
- Topic: Invoke
- Replies: 10
- Views: 48350
Re: Invoke
I am experienced, having written a few full fledged 64-bit programs like a Paint program written completely with GoAsm, so I'm very familiar with how it works and it works like this: invoke fnTest,p1,p2,p3,p4,p5,,,p10 push p10 ; Put operands on stack, begin with the last. . . . push p5 ; = any valu...
- 30 Aug 2018 00:34
- Forum: Questions and answers
- Topic: Invoke with SIMD operands
- Replies: 11
- Views: 51912
Re: 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' ________________ m...