From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21396 invoked by alias); 13 Nov 2013 19:02:54 -0000 Mailing-List: contact libffi-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libffi-discuss-owner@sourceware.org Received: (qmail 21382 invoked by uid 89); 13 Nov 2013 19:02:53 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.3 required=5.0 tests=AWL,BAYES_50,RDNS_NONE autolearn=no version=3.3.2 X-HELO: smtp.fgznet.ch Received: from Unknown (HELO smtp.fgznet.ch) (81.92.96.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Wed, 13 Nov 2013 19:02:52 +0000 Received: from deuterium.andreas.nets (dhclient-91-190-14-19.flashcable.ch [91.190.14.19]) by smtp.fgznet.ch (8.13.8/8.13.8/Submit_SMTPAUTH) with ESMTP id rADJ2XCD019393; Wed, 13 Nov 2013 20:02:41 +0100 (CET) (envelope-from andreast-list@fgznet.ch) Message-ID: <5283CCC9.9070508@fgznet.ch> Date: Wed, 13 Nov 2013 19:02:00 -0000 From: Andreas Tobler User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: Alan Modra , libffi-discuss@sourceware.org Subject: Re: Reinstate powerpc bounce buffer copying in ffi.c References: <20131113140859.GZ20756@bubble.grove.modra.org> In-Reply-To: <20131113140859.GZ20756@bubble.grove.modra.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2013/txt/msg00208.txt.bz2 Hi Alan, On 13.11.13 15:08, Alan Modra wrote: > Andreas' 2013-02-08 change reverted some breakage for struct return > values from 2011-11-12, but in so doing reintroduced string > instructions to sysv.S that are not supported on all powerpc variants. > This patch properly copies the bounce buffer to destination in C code > rather than in asm. > Thank you! I can confirm a native powerpc-unknown-freebsd11.0 gives the following: === libffi Summary === # of expected passes 1819 # of unsupported tests 55 Andreas > I have tested this on powerpc64-linux, powerpc-linux and > powerpc-freebsd. Well, the last on powerpc-linux by lying to > configure with > > CC="gcc -m32 -msvr4-struct-return -mlong-double-64" \ > CXX="g++ -m32 -msvr4-struct-return -mlong-double-64" \ > /src/libffi-current/configure --build=powerpc-freebsd > > and then > > make && make CC="gcc -m32" CXX="g++ -m32" \ > RUNTESTFLAGS=--target_board=unix/-m32/-msvr4-struct-return/-mlong-double-64\ > check > > * src/powerpc/ffi.c (ffi_prep_cif_machdep): Revert 2013-02-08 > change. Do not consume an int arg when returning a small struct > for FFI_SYSV ABI. > (ffi_call): Only use bounce buffer when FLAG_RETURNS_SMST. > Properly copy bounce buffer to destination. > * src/powerpc/sysv.S: Revert 2013-02-08 change. > * src/powerpc/ppc_closure.S: Remove stray '+'.