From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) by sourceware.org (Postfix) with ESMTP id ED1EF3858415; Wed, 6 Oct 2021 17:00:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org ED1EF3858415 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=kernel.crashing.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kernel.crashing.org Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id 196Gxcrc022037; Wed, 6 Oct 2021 11:59:38 -0500 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id 196GxbfV022034; Wed, 6 Oct 2021 11:59:37 -0500 X-Authentication-Warning: gate.crashing.org: segher set sender to segher@kernel.crashing.org using -f Date: Wed, 6 Oct 2021 11:59:37 -0500 From: Segher Boessenkool To: Jakub Jelinek Cc: Thomas Koenig , gcc@gcc.gnu.org, Michael Meissner , fortran@gcc.gnu.org, Tobias Burnus , Jonathan Wakely Subject: Re: libgfortran.so SONAME and powerpc64le-linux ABI changes Message-ID: <20211006165937.GI10333@gate.crashing.org> References: <20211004100754.GL304296@tucnak> <20211004141410.GP304296@tucnak> <6d845542-536e-1a0f-70e9-d05eea98aae7@netcologne.de> <20211005215450.GC10333@gate.crashing.org> <90df1250-9b3f-4a55-bc67-e3e05e54f7ef@netcologne.de> <20211006151744.GE10333@gate.crashing.org> <20211006154107.GK304296@tucnak> <20211006160730.GG10333@gate.crashing.org> <20211006163433.GM304296@tucnak> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211006163433.GM304296@tucnak> User-Agent: Mutt/1.4.2.3i X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Oct 2021 17:00:42 -0000 On Wed, Oct 06, 2021 at 06:34:33PM +0200, Jakub Jelinek wrote: > On Wed, Oct 06, 2021 at 11:07:30AM -0500, Segher Boessenkool wrote: > > We can emulate it everywhere (using libquadmath for example). This can > > magically make -msoft-float work as well everywhere, btw. > > Emulation is one thing, but another one is where are those __float128 or > quad long double arguments and return values passed. On power8 le I think > they are passed in VSX registers, aren't they? On BE just as well. And on 32 bit. > But are those available everywhere where ppc64 is supported? For ppc32 > certainly not, I don't remember for ppc64. You can use VSX registers on 32 bit just fine. > Sure, the ABI could say pass it in e.g. in a pair of integer registers... Or more, on 32-bit. It isn't very useful to try to optimise this, so it is easiest to just handle it the same as a struct for register passing. For 32-bit this means it then is passed and returned as a pointer, for the older 64-bit ABIs it means it is passed as two GPRs but returned as a pointer, and for the ELFv2 ABI (on both BE and LE) it means that it is passed as well as returned in two GPRs. Segher