From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id D5C773858C2C for ; Mon, 14 Nov 2022 15:27:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D5C773858C2C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.5) with ESMTP id 2AEFFB9K003518 for ; Mon, 14 Nov 2022 15:27:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : subject : date : message-id : mime-version : content-transfer-encoding; s=pp1; bh=zSLcE/DbUGbrPjm0yM0nMvBNKN81wESWtBBT//znAXc=; b=VoLu8vQ1Zl02SvtomgmW/Q6UPXf/5vDR0TLM/fTlTM7A59nSNUJ7fbb6HGPARP677Bhl NzAYZk2c8N3seF3CVZM68Ta2V0/69xcmUIl9GGiNQ5Oe8nJFIOnxIeECRgeMsQQ/rvpX 5cxUo4Rh2PvzadI0c5jlrkyXjIEb2fc1MX+MsCZ7UwHpdoCopK4uCDGZkO6zYgFbBrDp ZUUGJVCVUqr7lbZh7FNbP5+lGEwtRBGoFZs73cxrsxwUDECwnSUE+uj/2ZZpPTqkQuOb ONwXzCE3AiizLQioCLBL7mAyQEZyZvFwRMOefLv3+QgceIBsiswg5+SdpuGoD5O76Sug Zg== Received: from ppma06ams.nl.ibm.com (66.31.33a9.ip4.static.sl-reverse.com [169.51.49.102]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3kur5f0a2k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 14 Nov 2022 15:27:02 +0000 Received: from pps.filterd (ppma06ams.nl.ibm.com [127.0.0.1]) by ppma06ams.nl.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 2AEFKJFW028541 for ; Mon, 14 Nov 2022 15:27:00 GMT Received: from b06cxnps3074.portsmouth.uk.ibm.com (d06relay09.portsmouth.uk.ibm.com [9.149.109.194]) by ppma06ams.nl.ibm.com with ESMTP id 3kt2rjasnh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 14 Nov 2022 15:27:00 +0000 Received: from d06av25.portsmouth.uk.ibm.com (d06av25.portsmouth.uk.ibm.com [9.149.105.61]) by b06cxnps3074.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 2AEFQwsq66126126 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Nov 2022 15:26:58 GMT Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5215311C04C for ; Mon, 14 Nov 2022 15:26:58 +0000 (GMT) Received: from d06av25.portsmouth.uk.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 237A611C04A for ; Mon, 14 Nov 2022 15:26:58 +0000 (GMT) Received: from li-ecc9ffcc-3485-11b2-a85c-e633c5126265.fritz.box (unknown [9.179.13.145]) by d06av25.portsmouth.uk.ibm.com (Postfix) with ESMTP for ; Mon, 14 Nov 2022 15:26:58 +0000 (GMT) From: Andreas Krebbel To: gcc-patches@gcc.gnu.org Subject: [PATCH 0/2] Preserve argument registers Date: Mon, 14 Nov 2022 16:26:55 +0100 Message-Id: <20221114152657.43632-1-krebbel@linux.ibm.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: Jf0b_chlKAMcEAFel4HxillxqNSqMHwj X-Proofpoint-GUID: Jf0b_chlKAMcEAFel4HxillxqNSqMHwj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-14_12,2022-11-11_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 malwarescore=0 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 mlxscore=0 mlxlogscore=769 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211140107 X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This adds support for preserving the content of parameter registers to the stack and emit CFI for it. This useful for applications which want to implement their own stack unwinding and need access to function arguments. A small common code patch was needed to prevent the CFI verification in dwarf2cfi from complaining about the register saves without restores. Andreas Krebbel (2): New reg note REG_CFA_NORESTORE IBM zSystems: Save argument registers to the stack -mpreserve-args gcc/config/s390/s390.cc | 263 +++++++++++++----- gcc/config/s390/s390.opt | 4 + gcc/dwarf2cfi.cc | 15 +- gcc/reg-notes.def | 5 + .../gcc.target/s390/preserve-args-1.c | 17 ++ .../gcc.target/s390/preserve-args-2.c | 19 ++ 6 files changed, 244 insertions(+), 79 deletions(-) create mode 100644 gcc/testsuite/gcc.target/s390/preserve-args-1.c create mode 100644 gcc/testsuite/gcc.target/s390/preserve-args-2.c -- 2.38.1