This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: ffcall
- From: Ken Brown <kbrown at cornell dot edu>
- To: cygwin-apps at cygwin dot com
- Date: Thu, 19 Feb 2015 11:46:00 -0500
- Subject: Re: ffcall
- Authentication-results: sourceware.org; auth=none
- References: <54E4DEC2 dot 2060400 at cornell dot edu> <1424287689 dot 3460 dot 19 dot camel at cygwin dot com> <20150218200825 dot GB22849 at calimero dot vinschen dot de> <54E51500 dot 8070200 at cornell dot edu> <20150219093852 dot GA4783 at calimero dot vinschen dot de> <54E6048C dot 6060605 at x-ray dot at>
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