Hi Marcus,
2010/4/19 Marcus Meissner meissner@suse.de:
Hi,
The Win32 ABI has its stack arguments aligned at 4 (2^2) bytes. For MMX/SSE operations we however need to have the stack aligned to 16 (2^4).
So specify this explicitly.
(This should probably be even part of attribute((stdcall)) perhaps in gcc. Not sure though.)
Are you sure this is the case in win64 too? I'd assume that it would probably be 16 byte aligned there, since the first 4 arguments would be passed in registers and it could ensure stack alignment since they owned the abi from the start. If not it would definitely be 8.
Cheers, Maarten
On Mon, Apr 19, 2010 at 02:50:58PM +0200, Maarten Lankhorst wrote:
Hi Marcus,
2010/4/19 Marcus Meissner meissner@suse.de:
Hi,
The Win32 ABI has its stack arguments aligned at 4 (2^2) bytes. For MMX/SSE operations we however need to have the stack aligned to 16 (2^4).
So specify this explicitly.
(This should probably be even part of attribute((stdcall)) perhaps in gcc. Not sure though.)
Are you sure this is the case in win64 too? I'd assume that it would probably be 16 byte aligned there, since the first 4 arguments would be passed in registers and it could ensure stack alignment since they owned the abi from the start. If not it would definitely be 8.
No, not Win64. My bad.
My second patch would adjust only the __stdcall and __cdecl stuff on Win32, but ... see other mails.
Ciao, Marcus