From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 54153 invoked by alias); 2 Sep 2016 17:17:35 -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 54140 invoked by uid 89); 2 Sep 2016 17:17:34 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1398, online, paper X-HELO: mail-it0-f53.google.com Received: from mail-it0-f53.google.com (HELO mail-it0-f53.google.com) (209.85.214.53) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 02 Sep 2016 17:17:33 +0000 Received: by mail-it0-f53.google.com with SMTP id i184so49254414itf.1 for ; Fri, 02 Sep 2016 10:17:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:subject:to:references:cc:from:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=LJUpz2+QVE3TkTRs/vBoDsQRJ/XELq6JhetV+uJiecM=; b=K7SnzSdSs5iyHS/gTDrgO7LpEPlNhtE1+dtIQ/RuavTep0f/R7l3y3lW0/bwWtJ0Bx 7CztfOTiUmhTVPOSu4HH7w8B4QpOGKd/slcG5AVIxhgy0irdLkuKBGjw6wkgJc4PNnGd 5MdT13aUwG/o3fgBTSXAxKxDyZ2S4W4fUqm7KyxMtYuLqjpa0MPlWRwguYUqsy6inATP /utFRafWdCX9fRB2HY8RWVdHLSSCUvpK5/zWWe0eW7qYzJ6PFzWW3A5E5ke/eRIIfSGc pepQze8ShgCWL3rlZ6CtCCtJIp7rrM3OJneyPkB0lXL6ngoBnRRuCu9PS+JJpoconxhV 8SKg== X-Gm-Message-State: AE9vXwPBss5/0gi74zNBy3DKLpLurIvlESGBHodo8L1mA0A6wZHCcAnWc2tIBObEj8JDGA== X-Received: by 10.36.74.138 with SMTP id k132mr6465616itb.85.1472836651748; Fri, 02 Sep 2016 10:17:31 -0700 (PDT) Received: from anchor.twiddle.net (174-24-157-40.tukw.qwest.net. [174.24.157.40]) by smtp.googlemail.com with ESMTPSA id x64sm2915822ite.8.2016.09.02.10.17.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Sep 2016 10:17:30 -0700 (PDT) Subject: Re: [RFC PATCH, alpha]: ABI change: pass SFmode and SCmode variable arguments by reference To: Uros Bizjak , "gcc-patches@gcc.gnu.org" References: Cc: "Joseph S. Myers" From: Richard Henderson Message-ID: Date: Fri, 02 Sep 2016 17:17:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-SW-Source: 2016-09/txt/msg00109.txt.bz2 On 09/02/2016 02:35 AM, Uros Bizjak wrote: > --q-- > /* Pass float and _Complex float variable arguments by reference. > This avoids 64-bit store from a FP register to a pretend args save area > and subsequent 32-bit load from the saved location to a FP register. > > Note that 32-bit loads and stores to/from a FP register on alpha reorder > bits to form a canonical 64-bit value in the FP register. This fact > invalidates compiler assumption that 32-bit FP value lives in the lower > 32-bits of the passed 64-bit FP value, so loading the 32-bit value from > the stored 64-bit location using 32-bit FP load is invalid on alpha. > > This introduces sort of ABI incompatibility, but until _Float32 was > introduced, C-family languages promoted 32-bit float variable arg to > a 64-bit double, and it was not allowed to pass float as a varible > argument. Passing _Complex float as a variable argument never > worked on alpha. Thus, we have no backward compatibility issues > to worry about, and passing un-promoted _Float32 and _Complex float > as a variable argument will actually work in the future. */ > --/q-- This sounds like a good plan to me. > (I was not able to find the > authoritative OSF/1 ABI document on the net...) As far as I know, it was never available online. I have a paper copy. r~