From: Andreas Krebbel <krebbel@linux.ibm.com>
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 [thread overview]
Message-ID: <20230201080445.10135-1-krebbel@linux.ibm.com> (raw)
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
next reply other threads:[~2023-02-01 8:04 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-01 8:04 Andreas Krebbel [this message]
2023-02-01 8:04 ` [PATCH 1/3] New reg note REG_CFA_NORESTORE Andreas Krebbel
2023-02-01 8:04 ` [PATCH 2/3] IBM zSystems: Make stack_tie to work with hard frame-pointer Andreas Krebbel
2023-02-01 8:04 ` [PATCH 3/3] IBM zSystems: Save argument registers to the stack -mpreserve-args Andreas Krebbel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230201080445.10135-1-krebbel@linux.ibm.com \
--to=krebbel@linux.ibm.com \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).