This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ffcall


On 02/19/2015 10:38 AM, Corinna Vinschen wrote:
> On Feb 18 17:41, Ken Brown wrote:
> Help with basic x86_64 assembler is ok, I did it for Cygwin with help
> from Kai Tietz.
>
> The main difference to Linux you have to look out for is the different
> calling convention and how the registers are used:
> http://en.wikipedia.org/wiki/X86_calling_conventions#Microsoft_x64_calling_convention
>
> So the job is typically to rearrange the register usage and to
> account for the only four registers used for the first arguments
> to a function, rather than the 6 registers in the SYSV ABI.
>> I might give it a try at some point, but I'm not highly motivated unless
>> someone who really cares about clisp steps forward to help.  I'll
>> concentrate first on seeing if I can get some 64-bit version of clisp built
>> without ffcall.
Should be doable without. In the meantime I started here:
https://github.com/rurban/ffcall/tree/win64 with a win64 port, time permits.

win64 also needs 32byte shadow stack space to spill rcx, rdx, r8 and r9.
libffi added win64 and cygwin64 support recently, but ffcall is easier to
understand, and faster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]