Message ID | 20241025095720.2990683-1-stefansf@gcc.gnu.org |
---|---|
Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org> 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 F05CF3858404 for <patchwork@sourceware.org>; Fri, 25 Oct 2024 09:58:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F05CF3858404 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1729850313; bh=4FXYU56aveSa188L9irEQWYP6GPNLukwBVlytclYN2U=; h=From:To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From; b=SA3QO3IVq9W4L7eWeDOA9UA608U/835UQbuAR58L7QFc61pBi0821QKg9OsYAgz2e GQSeric3UUVy5BY3TKuoLG1AAQR7Is5jOlyoxHreunVkh+gIX4QWLZSUjNfHpmA0SJ +EaEQz3t1HnmGjy3U1NmIAKL2gI3JKAs1T4aFH8Y= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 778CF3858C48; Fri, 25 Oct 2024 09:57:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 778CF3858C48 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gcc.gnu.org Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=gcc.gnu.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 778CF3858C48 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1729850251; cv=none; b=mq75AeyP5XnPowpGNueT4eTDMiEiF+vr70Cvam+vlWhI5x7PKxx1kDPtRVh4br4lzZClUesjQirO9CJnF92EdKTHEG7hCYFfSOWMtzXfPY2U07uIvVgA4wlPEF7te+pFLv0CaR1vIL1cWdnM6ZSFko0+6cdDvTUyU/C4gTAbu78= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1729850251; c=relaxed/simple; bh=C2akYqvPDBHUXDv1is3xHWEDW46NxscjqFQWTKW/qbs=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=vSzH4ve3vpdWx5eveolJsh/+BSUwNnW3bDLdXUf7/WXO1+La+Kjnyhcg2i31ryvRmeDHrh+/agJkp7qCDUqLzRh5aVs2NY1OnAyhBr1inSYAHqx3ZK/RrrV9ISBFXVgIhhSYjiesLbHsrBZvRzJ6SvmbbksUWmLE7/XRRSynJ64= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 49P17Be9012451; Fri, 25 Oct 2024 09:57:28 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 42fbw47gc8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 25 Oct 2024 09:57:27 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 49P6Z7Qc001557; Fri, 25 Oct 2024 09:57:27 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 42emk9n27b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 25 Oct 2024 09:57:26 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 49P9vPal22806840 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 25 Oct 2024 09:57:25 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 494B7200D1; Fri, 25 Oct 2024 09:57:25 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3397B200CF; Fri, 25 Oct 2024 09:57:25 +0000 (GMT) Received: from a8345010.lnxne.boe (unknown [9.152.108.100]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTPS; Fri, 25 Oct 2024 09:57:25 +0000 (GMT) From: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> To: gcc-patches@gcc.gnu.org Cc: Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org> Subject: [PATCH v3 0/4] Hard Register Constraints Date: Fri, 25 Oct 2024 11:57:16 +0200 Message-ID: <20241025095720.2990683-1-stefansf@gcc.gnu.org> X-Mailer: git-send-email 2.45.2 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: EHqBePYlhfWX97biC9q9_RvuqvqlKbYo X-Proofpoint-GUID: EHqBePYlhfWX97biC9q9_RvuqvqlKbYo Content-Transfer-Encoding: 8bit X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-10-15_01,2024-10-11_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 mlxscore=0 bulkscore=0 suspectscore=0 spamscore=0 phishscore=0 adultscore=0 priorityscore=1501 clxscore=1034 lowpriorityscore=0 malwarescore=0 mlxlogscore=590 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2409260000 definitions=main-2410250075 X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NEUTRAL, TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org |
Series | Hard Register Constraints | |
Message
Stefan Schulze Frielinghaus
Oct. 25, 2024, 9:57 a.m. UTC
This is a follow-up to https://gcc.gnu.org/pipermail/gcc-patches/2024-September/663238.html The primary changes are about error handling and documentation updates. Now, we error out whenever a hard register constraint is used more than once across an alternative for outputs or inputs. For example, the following is allowed for register asm register int y __asm__ ("0") = x; __asm__ ("" : "=r" (y) : "0" (y), "r" (y)); and the analogue for hard register constraints int y = x; __asm__ ("" : "={0}" (y) : "0" (y), "{0}" (y)); // invalid is rejected. Furthermore, for hard register constraints we fail if an output object is used more than once as e.g. int x; asm ("" : "=r" (x), "={1}" (x)); // rejected although int x; asm ("" : "=r" (x), "=r" (x)); is accepted. Thus, in total the changes make hard register constraints more strict in order to prevent subtle bugs. Stefan Schulze Frielinghaus (4): Hard register constraints Error handling for hard register constraints genoutput: Verify hard register constraints Rewrite register asm into hard register constraints gcc/cfgexpand.cc | 42 --- gcc/common.opt | 4 + gcc/config/cris/cris.cc | 6 +- gcc/config/i386/i386.cc | 6 + gcc/config/s390/s390.cc | 6 +- gcc/doc/extend.texi | 178 +++++++++++ gcc/doc/md.texi | 6 + gcc/function.cc | 116 ++++++++ gcc/genoutput.cc | 60 ++++ gcc/genpreds.cc | 4 +- gcc/gimplify.cc | 236 ++++++++++++++- gcc/gimplify_reg_info.h | 169 +++++++++++ gcc/ira.cc | 79 ++++- gcc/lra-constraints.cc | 13 + gcc/output.h | 2 + gcc/recog.cc | 11 +- gcc/stmt.cc | 278 +++++++++++++++++- gcc/stmt.h | 9 +- gcc/testsuite/gcc.dg/asm-hard-reg-1.c | 85 ++++++ gcc/testsuite/gcc.dg/asm-hard-reg-2.c | 33 +++ gcc/testsuite/gcc.dg/asm-hard-reg-3.c | 25 ++ gcc/testsuite/gcc.dg/asm-hard-reg-4.c | 50 ++++ gcc/testsuite/gcc.dg/asm-hard-reg-5.c | 36 +++ gcc/testsuite/gcc.dg/asm-hard-reg-6.c | 60 ++++ gcc/testsuite/gcc.dg/asm-hard-reg-7.c | 41 +++ gcc/testsuite/gcc.dg/asm-hard-reg-8.c | 49 +++ .../gcc.dg/asm-hard-reg-demotion-1.c | 19 ++ .../gcc.dg/asm-hard-reg-demotion-2.c | 19 ++ .../gcc.dg/asm-hard-reg-demotion-error-1.c | 29 ++ gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h | 52 ++++ gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c | 83 ++++++ gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c | 26 ++ gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c | 27 ++ gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c | 24 ++ gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c | 13 + gcc/testsuite/gcc.dg/pr87600-2.c | 30 +- gcc/testsuite/gcc.dg/pr87600-3.c | 35 +++ .../gcc.target/s390/asm-hard-reg-1.c | 103 +++++++ .../gcc.target/s390/asm-hard-reg-2.c | 43 +++ .../gcc.target/s390/asm-hard-reg-3.c | 42 +++ .../gcc.target/s390/asm-hard-reg-4.c | 6 + .../gcc.target/s390/asm-hard-reg-5.c | 6 + .../gcc.target/s390/asm-hard-reg-longdouble.h | 18 ++ gcc/testsuite/lib/scanasm.exp | 4 + gcc/toplev.cc | 4 + 45 files changed, 2087 insertions(+), 100 deletions(-) create mode 100644 gcc/gimplify_reg_info.h create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-1.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-2.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-3.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-4.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-5.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-6.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-7.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-8.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-1.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-2.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-error-1.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c create mode 100644 gcc/testsuite/gcc.dg/pr87600-3.c create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-1.c create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-2.c create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-3.c create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-4.c create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-5.c create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-longdouble.h
Comments
Ping. On Fri, Oct 25, 2024 at 11:57:16AM +0200, Stefan Schulze Frielinghaus wrote: > This is a follow-up to > https://gcc.gnu.org/pipermail/gcc-patches/2024-September/663238.html > > The primary changes are about error handling and documentation updates. > Now, we error out whenever a hard register constraint is used more than > once across an alternative for outputs or inputs. For example, the > following is allowed for register asm > > register int y __asm__ ("0") = x; > __asm__ ("" : "=r" (y) : "0" (y), "r" (y)); > > and the analogue for hard register constraints > > int y = x; > __asm__ ("" : "={0}" (y) : "0" (y), "{0}" (y)); // invalid > > is rejected. > > Furthermore, for hard register constraints we fail if an output object > is used more than once as e.g. > > int x; > asm ("" : "=r" (x), "={1}" (x)); // rejected > > although > > int x; > asm ("" : "=r" (x), "=r" (x)); > > is accepted. > > Thus, in total the changes make hard register constraints more strict in > order to prevent subtle bugs. > > Stefan Schulze Frielinghaus (4): > Hard register constraints > Error handling for hard register constraints > genoutput: Verify hard register constraints > Rewrite register asm into hard register constraints > > gcc/cfgexpand.cc | 42 --- > gcc/common.opt | 4 + > gcc/config/cris/cris.cc | 6 +- > gcc/config/i386/i386.cc | 6 + > gcc/config/s390/s390.cc | 6 +- > gcc/doc/extend.texi | 178 +++++++++++ > gcc/doc/md.texi | 6 + > gcc/function.cc | 116 ++++++++ > gcc/genoutput.cc | 60 ++++ > gcc/genpreds.cc | 4 +- > gcc/gimplify.cc | 236 ++++++++++++++- > gcc/gimplify_reg_info.h | 169 +++++++++++ > gcc/ira.cc | 79 ++++- > gcc/lra-constraints.cc | 13 + > gcc/output.h | 2 + > gcc/recog.cc | 11 +- > gcc/stmt.cc | 278 +++++++++++++++++- > gcc/stmt.h | 9 +- > gcc/testsuite/gcc.dg/asm-hard-reg-1.c | 85 ++++++ > gcc/testsuite/gcc.dg/asm-hard-reg-2.c | 33 +++ > gcc/testsuite/gcc.dg/asm-hard-reg-3.c | 25 ++ > gcc/testsuite/gcc.dg/asm-hard-reg-4.c | 50 ++++ > gcc/testsuite/gcc.dg/asm-hard-reg-5.c | 36 +++ > gcc/testsuite/gcc.dg/asm-hard-reg-6.c | 60 ++++ > gcc/testsuite/gcc.dg/asm-hard-reg-7.c | 41 +++ > gcc/testsuite/gcc.dg/asm-hard-reg-8.c | 49 +++ > .../gcc.dg/asm-hard-reg-demotion-1.c | 19 ++ > .../gcc.dg/asm-hard-reg-demotion-2.c | 19 ++ > .../gcc.dg/asm-hard-reg-demotion-error-1.c | 29 ++ > gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h | 52 ++++ > gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c | 83 ++++++ > gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c | 26 ++ > gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c | 27 ++ > gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c | 24 ++ > gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c | 13 + > gcc/testsuite/gcc.dg/pr87600-2.c | 30 +- > gcc/testsuite/gcc.dg/pr87600-3.c | 35 +++ > .../gcc.target/s390/asm-hard-reg-1.c | 103 +++++++ > .../gcc.target/s390/asm-hard-reg-2.c | 43 +++ > .../gcc.target/s390/asm-hard-reg-3.c | 42 +++ > .../gcc.target/s390/asm-hard-reg-4.c | 6 + > .../gcc.target/s390/asm-hard-reg-5.c | 6 + > .../gcc.target/s390/asm-hard-reg-longdouble.h | 18 ++ > gcc/testsuite/lib/scanasm.exp | 4 + > gcc/toplev.cc | 4 + > 45 files changed, 2087 insertions(+), 100 deletions(-) > create mode 100644 gcc/gimplify_reg_info.h > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-1.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-2.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-3.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-4.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-5.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-6.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-7.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-8.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-1.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-2.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-error-1.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c > create mode 100644 gcc/testsuite/gcc.dg/pr87600-3.c > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-1.c > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-2.c > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-3.c > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-4.c > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-5.c > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-longdouble.h > > -- > 2.45.2 >
Hi Vladimir, Would you be willing to have a look at the LRA part? This basically only involves patch number 1, i.e., https://gcc.gnu.org/pipermail/gcc-patches/2024-October/666455.html Would be great to get some feedback whether the current approach is feasible or whether I should drop this patch. Of course, if anyone else wants to join in I would be happy, too ;-) Cheers, Stefan On Fri, Nov 29, 2024 at 10:15:45AM +0100, Stefan Schulze Frielinghaus wrote: > Ping. > > On Fri, Oct 25, 2024 at 11:57:16AM +0200, Stefan Schulze Frielinghaus wrote: > > This is a follow-up to > > https://gcc.gnu.org/pipermail/gcc-patches/2024-September/663238.html > > > > The primary changes are about error handling and documentation updates. > > Now, we error out whenever a hard register constraint is used more than > > once across an alternative for outputs or inputs. For example, the > > following is allowed for register asm > > > > register int y __asm__ ("0") = x; > > __asm__ ("" : "=r" (y) : "0" (y), "r" (y)); > > > > and the analogue for hard register constraints > > > > int y = x; > > __asm__ ("" : "={0}" (y) : "0" (y), "{0}" (y)); // invalid > > > > is rejected. > > > > Furthermore, for hard register constraints we fail if an output object > > is used more than once as e.g. > > > > int x; > > asm ("" : "=r" (x), "={1}" (x)); // rejected > > > > although > > > > int x; > > asm ("" : "=r" (x), "=r" (x)); > > > > is accepted. > > > > Thus, in total the changes make hard register constraints more strict in > > order to prevent subtle bugs. > > > > Stefan Schulze Frielinghaus (4): > > Hard register constraints > > Error handling for hard register constraints > > genoutput: Verify hard register constraints > > Rewrite register asm into hard register constraints > > > > gcc/cfgexpand.cc | 42 --- > > gcc/common.opt | 4 + > > gcc/config/cris/cris.cc | 6 +- > > gcc/config/i386/i386.cc | 6 + > > gcc/config/s390/s390.cc | 6 +- > > gcc/doc/extend.texi | 178 +++++++++++ > > gcc/doc/md.texi | 6 + > > gcc/function.cc | 116 ++++++++ > > gcc/genoutput.cc | 60 ++++ > > gcc/genpreds.cc | 4 +- > > gcc/gimplify.cc | 236 ++++++++++++++- > > gcc/gimplify_reg_info.h | 169 +++++++++++ > > gcc/ira.cc | 79 ++++- > > gcc/lra-constraints.cc | 13 + > > gcc/output.h | 2 + > > gcc/recog.cc | 11 +- > > gcc/stmt.cc | 278 +++++++++++++++++- > > gcc/stmt.h | 9 +- > > gcc/testsuite/gcc.dg/asm-hard-reg-1.c | 85 ++++++ > > gcc/testsuite/gcc.dg/asm-hard-reg-2.c | 33 +++ > > gcc/testsuite/gcc.dg/asm-hard-reg-3.c | 25 ++ > > gcc/testsuite/gcc.dg/asm-hard-reg-4.c | 50 ++++ > > gcc/testsuite/gcc.dg/asm-hard-reg-5.c | 36 +++ > > gcc/testsuite/gcc.dg/asm-hard-reg-6.c | 60 ++++ > > gcc/testsuite/gcc.dg/asm-hard-reg-7.c | 41 +++ > > gcc/testsuite/gcc.dg/asm-hard-reg-8.c | 49 +++ > > .../gcc.dg/asm-hard-reg-demotion-1.c | 19 ++ > > .../gcc.dg/asm-hard-reg-demotion-2.c | 19 ++ > > .../gcc.dg/asm-hard-reg-demotion-error-1.c | 29 ++ > > gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h | 52 ++++ > > gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c | 83 ++++++ > > gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c | 26 ++ > > gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c | 27 ++ > > gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c | 24 ++ > > gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c | 13 + > > gcc/testsuite/gcc.dg/pr87600-2.c | 30 +- > > gcc/testsuite/gcc.dg/pr87600-3.c | 35 +++ > > .../gcc.target/s390/asm-hard-reg-1.c | 103 +++++++ > > .../gcc.target/s390/asm-hard-reg-2.c | 43 +++ > > .../gcc.target/s390/asm-hard-reg-3.c | 42 +++ > > .../gcc.target/s390/asm-hard-reg-4.c | 6 + > > .../gcc.target/s390/asm-hard-reg-5.c | 6 + > > .../gcc.target/s390/asm-hard-reg-longdouble.h | 18 ++ > > gcc/testsuite/lib/scanasm.exp | 4 + > > gcc/toplev.cc | 4 + > > 45 files changed, 2087 insertions(+), 100 deletions(-) > > create mode 100644 gcc/gimplify_reg_info.h > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-1.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-2.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-3.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-4.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-5.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-6.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-7.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-8.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-1.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-2.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion-error-1.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-demotion.h > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-1.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-2.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-3.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-4.c > > create mode 100644 gcc/testsuite/gcc.dg/asm-hard-reg-error-5.c > > create mode 100644 gcc/testsuite/gcc.dg/pr87600-3.c > > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-1.c > > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-2.c > > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-3.c > > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-4.c > > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-5.c > > create mode 100644 gcc/testsuite/gcc.target/s390/asm-hard-reg-longdouble.h > > > > -- > > 2.45.2 > >