From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 6E85A3858D39 for ; Wed, 1 Feb 2023 08:04:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6E85A3858D39 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 (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3117gg53011096 for ; Wed, 1 Feb 2023 08:04:50 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=mj0CMKtgVLYGzLHw9hSgmpeQiXgJ95X6mefoDKoh4rU=; b=aQjD+9GLspR14eQkOdF3a2x4p59tJEVwPAalqsEn6w05eDTJmLANXaf7/ZJSv+/4IEpQ 3n0JdQAA5lFTJrwUQzCSdw7fRmOXh6BUKyQ+Nuh0lJ8bw1VN0n72mqlaLoba46c1f+4b ZPXDJ+od0GkxGnHWesqt9b8fUXWcLQ3Mgt78KEoV6nhwzu/fA7DeVaPqdDDyU67ZRbi1 VzBVnY829CyzaqMD6oHkDYRNJmzbhFyc/G9P9xvvS0clHdnObJmmsTFMrj65adfdGRLR kNVBab3zmUyRebhjGsa2mMPzEHaZY6SFlhoDLJFNtLJewZDok5iuS7Mc2UOOOljySn6w 0A== Received: from ppma04ams.nl.ibm.com (63.31.33a9.ip4.static.sl-reverse.com [169.51.49.99]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3nfkx70gxv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 01 Feb 2023 08:04:50 +0000 Received: from pps.filterd (ppma04ams.nl.ibm.com [127.0.0.1]) by ppma04ams.nl.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3116BqK2026906 for ; Wed, 1 Feb 2023 08:04:48 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma04ams.nl.ibm.com (PPS) with ESMTPS id 3ncvs7mhau-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 01 Feb 2023 08:04:47 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 31184jiZ47841768 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 1 Feb 2023 08:04:45 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9B6672005A for ; Wed, 1 Feb 2023 08:04:45 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7BC622004B for ; Wed, 1 Feb 2023 08:04:45 +0000 (GMT) Received: from li-ecc9ffcc-3485-11b2-a85c-e633c5126265.ibm.com (unknown [9.152.224.239]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP for ; Wed, 1 Feb 2023 08:04:45 +0000 (GMT) From: Andreas Krebbel To: gcc-patches@gcc.gnu.org Subject: [Committed 0/3] IBM zSystems: Add -mpreserve-args option Date: Wed, 1 Feb 2023 09:04:42 +0100 Message-Id: <20230201080445.10135-1-krebbel@linux.ibm.com> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: vTfmBPmGAh1C801x3ZWsYup-fQOWxmFC X-Proofpoint-ORIG-GUID: vTfmBPmGAh1C801x3ZWsYup-fQOWxmFC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-02-01_03,2023-01-31_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 phishscore=0 mlxlogscore=970 impostorscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 mlxscore=0 adultscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302010070 X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,KAM_SHORT,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 without having to rely on debug information. With the -mpreserve-args option GPRs and FPRs are save to the stack slots which are reserved for stdargs in the register save area. The introduction of REG_CFA_NORESTORE is a common code change which has been approved last year already. Bootstrapped and regtested on s390x. Committed to mainline. Andreas Krebbel (3): New reg note REG_CFA_NORESTORE IBM zSystems: Make stack_tie to work with hard frame pointer IBM zSystems: Save argument registers to the stack -mpreserve-args gcc/config/s390/s390.cc | 271 ++++++++++++------ gcc/config/s390/s390.md | 5 +- 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 ++ .../gcc.target/s390/preserve-args-3.c | 19 ++ 8 files changed, 265 insertions(+), 90 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 create mode 100644 gcc/testsuite/gcc.target/s390/preserve-args-3.c -- 2.39.1