From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11295 invoked by alias); 19 Feb 2015 16:45:47 -0000 Mailing-List: contact cygwin-apps-help@cygwin.com; run by ezmlm Precedence: bulk Sender: cygwin-apps-owner@cygwin.com List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Mail-Followup-To: cygwin-apps@cygwin.com Received: (qmail 11231 invoked by uid 89); 19 Feb 2015 16:45:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: limerock03.mail.cornell.edu Received: from limerock03.mail.cornell.edu (HELO limerock03.mail.cornell.edu) (128.84.13.243) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Feb 2015 16:45:44 +0000 X-CornellRouted: This message has been Routed already. Received: from authusersmtp.mail.cornell.edu (granite3.serverfarm.cornell.edu [10.16.197.8]) by limerock03.mail.cornell.edu (8.14.4/8.14.4_cu) with ESMTP id t1JGjg5h028188 for ; Thu, 19 Feb 2015 11:45:42 -0500 Received: from [192.168.1.3] (cpe-67-249-176-138.twcny.res.rr.com [67.249.176.138]) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id t1JGjfkK020755 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT) for ; Thu, 19 Feb 2015 11:45:42 -0500 Message-ID: <54E61348.9080104@cornell.edu> Date: Thu, 19 Feb 2015 16:45:00 -0000 From: Ken Brown User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 MIME-Version: 1.0 To: cygwin-apps@cygwin.com Subject: Re: ffcall References: <54E4DEC2.2060400@cornell.edu> <1424287689.3460.19.camel@cygwin.com> <20150218200825.GB22849@calimero.vinschen.de> <54E51500.8070200@cornell.edu> <20150219093852.GA4783@calimero.vinschen.de> <54E6048C.6060605@x-ray.at> In-Reply-To: <54E6048C.6060605@x-ray.at> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-02/txt/msg00261.txt.bz2 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