I am currently studying x64 build myself and don’t understand what happens to the stack when calling the build procedure from C ++.
From what I now understand from MSDN and Intel , the first 4 integer / floating-point parameters are stored in the rcx / xmm0, rdx / xmm1, r8 / xmm2 and r9 / xmm3 registers, and all the rest will be pushed onto the stack.
I just do not understand why I should access the 5th parameter of 40 bytes from rsp [rsp + 28h] instead of 8, since the first 32 bytes are available in registers.
Can someone explain to me what is really going on?
Thanks.
stack parameter-passing 64bit fastcall
Deltgen david
source share