Re: How to implement fastcall ?

2020-09-23 Thread kinke via Digitalmars-d-learn
On Wednesday, 23 September 2020 at 19:50:13 UTC, Denis Feklushkin 
wrote:
On Monday, 21 September 2020 at 11:14:06 UTC, Виталий Фадеев 
wrote:

How to implement fastcall ?
( stdcall is calling convention for pass function arguments 
via registers )


Hypothesis: it is possible what LLVM + Link Time Optimization 
does by this way.


~All modern ABIs use registers; __fastcall was one of the special 
32-bit x86 ABIs AFAIK (using up to 2 GP registers) and isn't 
supported directly. The D ABI for 32-bit x86 uses one GP register 
(and is somewhat similar to __thiscall for member functions).


Re: How to implement fastcall ?

2020-09-23 Thread Denis Feklushkin via Digitalmars-d-learn
On Monday, 21 September 2020 at 11:14:06 UTC, Виталий Фадеев 
wrote:

How to implement fastcall ?
( stdcall is calling convention for pass function arguments via 
registers )


Hypothesis: it is possible what LLVM + Link Time Optimization 
does by this way.


Re: How to implement fastcall ?

2020-09-21 Thread Mike Parker via Digitalmars-d-learn
On Monday, 21 September 2020 at 11:14:06 UTC, Виталий Фадеев 
wrote:

How to implement fastcall ?
( stdcall is calling convention for pass function arguments via 
registers )


The supported linkage attributes are here:

https://dlang.org/spec/attribute.html#linkage

`extern(Windows)` is stdcall, `extern(C)` is cdecl. Unless it's a 
hidden feature that I'm unaware of, fastcall is not supported.


Re: How to implement fastcall ?

2020-09-21 Thread Виталий Фадеев via Digitalmars-d-learn
On Monday, 21 September 2020 at 11:14:06 UTC, Виталий Фадеев 
wrote:

How to implement fastcall ?
( stdcall is calling convention for pass function arguments via 
registers )


On Monday, 21 September 2020 at 11:14:06 UTC, Виталий Фадеев 
wrote:

fix...
( fastcall is calling convention for pass function arguments via 
registers )




How to implement fastcall ?

2020-09-21 Thread Виталий Фадеев via Digitalmars-d-learn

How to implement fastcall ?
( stdcall is calling convention for pass function arguments via 
registers )