vrclient: Fix x64 thunks for C API.

* Clean up the stack properly.
* Do not push parameters after shadow register space.
This commit is contained in:
Józef Kucia 2018-07-26 17:02:25 +02:00 committed by Andrew Eikum
parent 5c4e0ab079
commit 23ffdc5ec8
20 changed files with 2438 additions and 2382 deletions

View file

@ -75,8 +75,8 @@ winIVRNotifications_IVRNotifications_002 *create_winIVRNotifications_IVRNotifica
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_002_CreateNotification);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_002_RemoveNotification);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_002_CreateNotification, 7);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_002_RemoveNotification, 1);
for (i = 0; i < 2; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;
@ -158,9 +158,9 @@ winIVRNotifications_IVRNotifications_001 *create_winIVRNotifications_IVRNotifica
int i;
TRACE("-> %p, vtable %p, thunks %p\n", r, vtable, thunks);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_001_GetErrorString);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_001_CreateNotification);
init_thunk(&thunks[2], r, winIVRNotifications_IVRNotifications_001_DismissNotification);
init_thunk(&thunks[0], r, winIVRNotifications_IVRNotifications_001_GetErrorString, 3);
init_thunk(&thunks[1], r, winIVRNotifications_IVRNotifications_001_CreateNotification, 7);
init_thunk(&thunks[2], r, winIVRNotifications_IVRNotifications_001_DismissNotification, 1);
for (i = 0; i < 3; i++)
vtable[i] = &thunks[i];
r->linux_side = linux_side;