12.03.2010 21:55, Jonas Maebe wrote:

PS: one reason that this is not advancing is because FPC does not support it correctly either, and I don't want to add support for a broken implementation to GDB since then it has to be changed again later anyway. I also don't know of any description of the Borland fastcall calling convention, so it is currently not possible to properly fix this (not without guessing and probably breaking it again in yet some other case). See http://bugs.freepascal.org/view.php?id=15691
What exactly needs to be known?

I found the next description in the net:

Few first arguments of fastcall that fit into a processor's register (i.e. with a size up to 32 bits for x86 architecture) will be passed via registers instead of being put onto the stack. The remaining arguments are passed right-to-left on the stack (like in cdecl). Return values are passed through the AL, AX, or EAX register. The stack is usually callee-cleared unless the function takes a variable number of parameters. Most RTL </e/r/ru/runtime_library.htm>functions, however, take a small number of parameters, so they don't have to clear the stack at all. *Borland* fastcall *convention* passes first THREE arguments via EAX, EDX, ECX;

If something more is required please let me know and I will search.

Best regards,
Paul Ishenin.
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to