From patchwork Wed Apr 6 15:26:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xi Ruoyao X-Patchwork-Id: 52681 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 205563860004 for ; Wed, 6 Apr 2022 15:29:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 205563860004 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1649258950; bh=5mWRuOuigd1ikmC8z+K8wRKUtDyBdNRzwfrilV9rAYs=; h=Subject:To:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=LPm6Z7jKOErwPieJf/A1yiv9i95oNM0beYVn4H/Rie8rYChkhtDZdZREmZbbhCgQs Pyf3gVbT3FGMFPUYAkQM4InJBhAvgMfQqwO0w0CNq7QE/Pg8pHUa/nT3FVSL5GRxCx ZhIgdcAM2GPuFb975vaoeOPfUSGVb0lr2o6F2y7s= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mengyan1223.wang (mengyan1223.wang [89.208.246.23]) by sourceware.org (Postfix) with ESMTPS id 809E2385E451; Wed, 6 Apr 2022 15:27:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 809E2385E451 Received: from [IPv6:240e:358:1198:7700:dc73:854d:832e:4] (unknown [IPv6:240e:358:1198:7700:dc73:854d:832e:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-384)) (Client did not present a certificate) (Authenticated sender: xry111@mengyan1223.wang) by mengyan1223.wang (Postfix) with ESMTPSA id 0022F65EF5; Wed, 6 Apr 2022 11:26:57 -0400 (EDT) Message-ID: <6144a58c030ee034e7f4d9cf481045c7b7c07af2.camel@mengyan1223.wang> Subject: [wwwdocs PATCH v2] document zero-width field ABI changes on MIPS To: gcc-patches@gcc.gnu.org Date: Wed, 06 Apr 2022 23:26:54 +0800 In-Reply-To: References: User-Agent: Evolution 3.44.0 MIME-Version: 1.0 X-Spam-Status: No, score=-3038.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, JMQ_SPF_NEUTRAL, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham 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-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Xi Ruoyao via Gcc-patches From: Xi Ruoyao Reply-To: Xi Ruoyao Cc: Richard Sandiford , Jakub Jelinek , YunQiang Su Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Document ABI changes in r12-7961, 7962, and 8023. Ok for wwwdocs? --- htdocs/gcc-12/changes.html | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html index 4f2ee77f..c924bca3 100644 --- a/htdocs/gcc-12/changes.html +++ b/htdocs/gcc-12/changes.html @@ -50,6 +50,10 @@ a work-in-progress.

(so there is a C++ ABI incompatibility, GCC 4.4 and earlier compatible with GCC 12 or later, incompatible with GCC 4.5 through GCC 11). RISC-V has changed the handling of these already starting with GCC 10. + As the ABI requires, MIPS takes them into account handling function + return values so there is a C++ ABI incompatibility with GCC 4.5 + through 11. For function arguments on MIPS, refer to + the MIPS specific entry. GCC 12 on the above targets will report such incompatibilities as warnings or other diagnostics unless -Wno-psabi is used. @@ -549,7 +553,26 @@ a work-in-progress.

- +

MIPS

+
    +
  • The ABI passing arguments + containing zero-width fields (for example, C/C++ zero-width + bit-fields, GNU C/C++ zero-length arrays, and GNU C empty structs) + has changed. Now a zero-width field will not prevent an aligned + 64-bit floating-point field next to it from being passed through + FPR. This is compatible with LLVM, but incompatible with previous + GCC releases. GCC 12 on MIPS will report such incompatibilities as + an inform unless -Wno-psabi is used. +
  • +
  • The ABI returning values + containing C++17 empty bases has changed. Now an empty base will + not prevent an aggregate containing only one or two floating-point + fields from being returned through FPR. This is compatible with + GCC 6 and earlier, but incompatible with GCC 7 through 11. GCC 12 on + MIPS will report such incompatibilities as an inform unless + -Wno-psabi is used. +
  • +