3 ms·
On Windows this dependes on the calling convention. The calling convention determines whether function arguments are passed: In order or in reverse order. Who t
by doomjunky 8y ago
On Windows this dependes on the calling convention. The calling convention determines whether function arguments are passed: In order or in reverse order. Who takes care of cleaning the stack: caller or callee? And even if the arguments are passed by stack or CPU registers.
In Visual Studio you can control this behavoir with the __cdecl, __clrcall, __stdcall, __fastcall, __thiscall, __vectorcall [1] calling convention function prefixes, but this also depends on the optimization options [2] of the compiler.
Passing arguments via CPU registers has a huge preformance benefit, but also some drawbacks.
[1]: https://msdn.microsoft.com/en-us/library/984x0h58.aspx https://msdn.microsoft.com/en-us/library/984x0h58.aspx
[2]: https://msdn.microsoft.com/en-us/library/46t77ak2.aspx https://msdn.microsoft.com/en-us/library/46t77ak2.aspx