DV
Соглашения о вызовах в x86_64 Windows OS:
Первые четыре параметра помещаются в регистрах: rcx, rdx, r8, и r9 соответственно.
Остальные параметры идут через стек, справа налево.
Перед вызовом функции, стек должен быть уменьшен на 32байта + 8байт для каждого параметра которые идут через стек (+16 для long double ?).
Если передавать числа с плавающей точкой, то первые четыре помещаются в регистры XMM0-XMM3. Пример:
void my_func(int a, double b, int c, float d);Arguments a in RCX, b in XMM1, c in R8, and d in XMM3.
PS: эту инфу прикрепил под тэгом win64

