From: Alex P. <pes...@ma...> - 2011-04-08 15:42:55
|
On 04/08/11 19:00, Adriano dos Santos Fernandes wrote: > On 08-04-2011 11:25, Vlad Khorsun wrote: >>> 08.04.2011 15:42, Vlad Khorsun wrote: >>>> Thanks. But, if this is true : "In 64 bit mode, there is only one calling convention for each >>>> operating system" then we have no problem with interfaces despite of compiler\language >>>> on x64 systems. >>> Yep, if forget that current FB API, implemented in current fbclient.dll use stdcall and >>> thus Delphi 64 won't be able to work with it. And if you change this calling convention to >>> fastcall, all programs that already work with 64-bits client will be broken. >> In Win64 stdcall is the same as thiscall, cdecl, register, fastcall, anythingelsecall. >> >> Do you know that all Win32 API declared with stdcall ? Are you going to say that Delphi >> Win64 applications wiil not be able to work with Win32 API at all ? :-D >> >> There is no problem with calling conventions on x64 systems between modules by different >> compilers as log as all compilers vendors follow the same rules about fastcall. And it seems >> they follow. >> > If fastcall can handle functions with variable number of arguments, > there is no problem then. > Yes, it can. It stores first 4 (on linux 6) arguments in registers, the rest are stored on stack using cdecl conventions. |