From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64724 invoked by alias); 5 Sep 2016 11:41:15 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 64708 invoked by uid 89); 5 Sep 2016 11:41:14 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy=EXT, UD:floatn-basic.h, dgaddoptions, float32 X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 05 Sep 2016 11:41:04 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=svr-ies-mbx-01.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1bgsGq-0002X0-OX from joseph_myers@mentor.com ; Mon, 05 Sep 2016 04:41:00 -0700 Received: from digraph.polyomino.org.uk (137.202.0.87) by svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 5 Sep 2016 12:40:57 +0100 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.86_2) (envelope-from ) id 1bgsGj-0001ax-Ds; Mon, 05 Sep 2016 11:40:53 +0000 Date: Mon, 05 Sep 2016 11:45:00 -0000 From: Joseph Myers To: Andreas Schwab CC: , , , , Subject: Re: Implement C _FloatN, _FloatNx types [version 6] In-Reply-To: <871t11x7rd.fsf@linux-m68k.org> Message-ID: References: <20160817154244.GA39270@arm.com> <871t11x7rd.fsf@linux-m68k.org> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-SW-Source: 2016-09/txt/msg00198.txt.bz2 On Sat, 3 Sep 2016, Andreas Schwab wrote: > On Aug 17 2016, Joseph Myers wrote: > > > Index: gcc/testsuite/gcc.dg/torture/float32-basic.c > > =================================================================== > > --- gcc/testsuite/gcc.dg/torture/float32-basic.c (nonexistent) > > +++ gcc/testsuite/gcc.dg/torture/float32-basic.c (working copy) > > @@ -0,0 +1,9 @@ > > +/* Test _Float32. */ > > +/* { dg-do run } */ > > +/* { dg-options "" } */ > > +/* { dg-add-options float32 } */ > > +/* { dg-require-effective-target float32_runtime } */ > > + > > +#define WIDTH 32 > > +#define EXT 0 > > +#include "floatn-basic.h" > > This fails on powerpc32, in vafn. That seems like the alpha issue - an ABI needs to be defined and implemented. Unfortunately the powerabi mailing list, which would have been the right place for ABI coordination between implementors, died several years ago. (The 32-bit ABI source code is available at .) If we suppose that _Float32 values should be passed in FPRs in the same circumstances in which float values are passed in FPRs, then rs6000_gimplify_va_arg would, in the case of an SFmode value coming from saved FPRs, need to extract a double value from the saved FPRs and then convert to float. (There would also be the question of later _Float32 arguments passed on the stack in variable arguments; if those are handled like prototyped arguments, they would go in 4-byte stack slots, and probably the compiler already does that.) Of course other ABI choices are possible. -- Joseph S. Myers joseph@codesourcery.com