ffcall
Ken Brown
kbrown@cornell.edu
Thu Feb 19 16:45:00 GMT 2015
On 2/19/2015 10:43 AM, Reini Urban wrote:
> 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.
Yes, it seems to be. So far I've built and am testing a version with no
non-default modules, and with the default regexp module disabled. I had
to do the latter because of the gcc problem I encountered while trying
to compile regexi.c:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64939
The same sort of error occurs with several other modules.
> In the meantime I started here:
> https://github.com/rurban/ffcall/tree/win64 with a win64 port, time permits.
Thanks!!
> 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.
Ken
More information about the Cygwin-apps
mailing list