On Saturday, 6 March 2021 at 16:09:03 UTC, Imperatorn wrote:
On Saturday, 6 March 2021 at 15:40:56 UTC, Rumbu wrote:
On Saturday, 6 March 2021 at 12:15:43 UTC, Mike Parker wrote:
[...]

Where exactly is documented the extern(D) x86-64 calling convention? Because currently seems like a mess according to the dissasembly. First X parameters on stack from left to right, last 4 in registers. But wait, if you have less than 4 parameters, they are passed in register. Again, WTF?

Reading this, I'm experiencing true fear for the first time in my life.

I'm also learning that extern(D) is different across compilers in some cases, but it isn't that bad.

Preferred ABI boundaries across executables is extern(C).
If you deal with static librariries, then they are likely built from the same compiler too.

When LDC change the extern(D) ABI, it is rightfully a minor change as everything will get rebuilt. https://github.com/ldc-developers/ldc/releases/tag/v1.25.0

Besides, such changes are there for efficiency :)

Reply via email to