From: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
To: gdb-patches@sourceware.org
Cc: Christophe Lyon <christophe.lyon@linaro.org>,
Luis Machado <luis.machado@arm.com>
Subject: [PATCH v3 0/5] Add support for AArch64 MOPS instructions
Date: Fri, 10 May 2024 02:24:03 -0300 [thread overview]
Message-ID: <20240510052408.2173579-1-thiago.bauermann@linaro.org> (raw)
Hello,
This version is to adapt to Luis' clarification that MOPS instructions
don't need to be treated as atomic sequences and can be single-stepped.
If the OS reschedules the inferior to a different CPU while a main or
epilogue instruction is executed, it will reset the sequence back to the
prologue instruction.
Therefore patch 1 is now much smaller and only disables displaced stepping
on MOPS instructions, since they do need to appear consecutively in
memory. Luis suggested relocating the whole sequence as a block. I will
implement that suggestion in the near future, but in the mean time I would
like to suggest this approach.
Patch 4 is the only other one that was changed. The
gdb.arch/aarch64-mops-atomic-inst.exp testcase was renamed to
gdb.arch/aarch64-mops-single-step.exp, and adjusted to expect the MOPS
sequence to reset back to the prologue instruction. Also, a small bug was
fixed in its corresponding C file (the bug didn't affect the effectiveness
of the test).
The other patches are unchanged from v2.
Here is the original cover letter for convenience:
This patch series implements GDB support for the new instructions in
AArch64's MOPS feature. Patch 1 has a small overview.
What is needed from GDB is recognizing the MOPS sequences of instructions
as atomic so that they can be stepped over during instruction single
stepping, and also to avoid doing displaced stepping with them. This is
done in patch 1.
Patch 2 adds support for the new instructions to the record an replay
target.
The other patches add testcases to test each of the aspects above, plus
one testcase to verify the interaction of the MOPS instructions with
watchpoints.
Tested on Ubuntu 23.10 aarch64-linux-gnu with no regressions, using the
Arm FVP emulator as well as QEMU v8.2.
Thiago Jung Bauermann (5):
gdb/aarch64: Disable displaced single-step for MOPS instructions
gdb/aarch64: Add record support for MOPS instructions.
gdb/testsuite: Add gdb.arch/aarch64-mops-watchpoint.exp
gdb/testsuite: Add gdb.arch/aarch64-mops-single-step.exp
gdb/testsuite: Add gdb.reverse/aarch64-mops.exp
gdb/aarch64-tdep.c | 92 +++++++++-
.../gdb.arch/aarch64-mops-single-step.c | 73 ++++++++
.../gdb.arch/aarch64-mops-single-step.exp | 132 ++++++++++++++
.../gdb.arch/aarch64-mops-watchpoint.c | 66 +++++++
.../gdb.arch/aarch64-mops-watchpoint.exp | 79 ++++++++
gdb/testsuite/gdb.reverse/aarch64-mops.c | 71 ++++++++
gdb/testsuite/gdb.reverse/aarch64-mops.exp | 171 ++++++++++++++++++
gdb/testsuite/lib/gdb.exp | 61 +++++++
8 files changed, 742 insertions(+), 3 deletions(-)
create mode 100644 gdb/testsuite/gdb.arch/aarch64-mops-single-step.c
create mode 100644 gdb/testsuite/gdb.arch/aarch64-mops-single-step.exp
create mode 100644 gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.c
create mode 100644 gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.exp
create mode 100644 gdb/testsuite/gdb.reverse/aarch64-mops.c
create mode 100644 gdb/testsuite/gdb.reverse/aarch64-mops.exp
base-commit: 5021daf303393722f58f4422d7ad53d526aa2d50
next reply other threads:[~2024-05-10 5:24 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-10 5:24 Thiago Jung Bauermann [this message]
2024-05-10 5:24 ` [PATCH v3 1/5] gdb/aarch64: Disable displaced single-step for " Thiago Jung Bauermann
2024-05-10 5:24 ` [PATCH v3 2/5] gdb/aarch64: Add record support " Thiago Jung Bauermann
2024-05-10 12:59 ` Luis Machado
2024-05-23 2:04 ` Thiago Jung Bauermann
2024-05-10 5:24 ` [PATCH v3 3/5] gdb/testsuite: Add gdb.arch/aarch64-mops-watchpoint.exp Thiago Jung Bauermann
2024-05-10 13:04 ` Luis Machado
2024-05-23 2:06 ` Thiago Jung Bauermann
2024-05-10 5:24 ` [PATCH v3 4/5] gdb/testsuite: Add gdb.arch/aarch64-mops-single-step.exp Thiago Jung Bauermann
2024-05-10 13:07 ` Luis Machado
2024-05-23 2:08 ` Thiago Jung Bauermann
2024-05-10 5:24 ` [PATCH v3 5/5] gdb/testsuite: Add gdb.reverse/aarch64-mops.exp Thiago Jung Bauermann
2024-05-10 13:08 ` Luis Machado
2024-05-10 17:26 ` Guinevere Larsen
2024-05-23 1:55 ` Thiago Jung Bauermann
2024-05-10 14:16 ` [PATCH v3 0/5] Add support for AArch64 MOPS instructions Pedro Alves
2024-05-21 22:18 ` Thiago Jung Bauermann
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=20240510052408.2173579-1-thiago.bauermann@linaro.org \
--to=thiago.bauermann@linaro.org \
--cc=christophe.lyon@linaro.org \
--cc=gdb-patches@sourceware.org \
--cc=luis.machado@arm.com \
/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).