Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
September 21, 2020 How to implement fastcall ? | ||||
---|---|---|---|---|
| ||||
How to implement fastcall ? ( stdcall is calling convention for pass function arguments via registers ) |
September 21, 2020 Re: How to implement fastcall ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Виталий Фадеев | 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 )
|
September 21, 2020 Re: How to implement fastcall ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Виталий Фадеев | 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. |
September 23, 2020 Re: How to implement fastcall ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Виталий Фадеев | 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.
|
September 23, 2020 Re: How to implement fastcall ? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Denis Feklushkin | 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).
|
Copyright © 1999-2021 by the D Language Foundation