This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] [PowerPC] Fix stwux and stdux masks in skip_prologue
- From: Pedro Franco de Carvalho <pedromfc at linux dot vnet dot ibm dot com>
- To: gdb-patches at sourceware dot org
- Cc: uweigand at de dot ibm dot com
- Date: Fri, 16 Mar 2018 15:12:51 -0300
- Subject: [PATCH] [PowerPC] Fix stwux and stdux masks in skip_prologue
This patch merges the masks for matching the stwux and stdux
instructions in rs6000-tdep.c:skip_prologue into a single mask that
only matches these two instructions.
Commit 72dd273062 fixed the warning described in PR gdb/18295, this
patch addresses the comment in the same PR indicating that the mask
was too permissive.
gdb/Changelog:
2018-mm-dd Pedro Franco de Carvalho <pedromfc@linux.vnet.ibm.com>
* rs6000-tdep.c (skip_prologue): Match both stwux and stdux
with a single mask.
---
gdb/rs6000-tdep.c | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index a5b70917b7..2b60196247 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -1857,8 +1857,8 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
offset = fdata->offset;
continue;
}
- else if ((op & 0xfc1f016e) == 0x7c01016e)
- { /* stwux rX,r1,rY */
+ else if ((op & 0xfc1f07fa) == 0x7c01016a)
+ { /* stwux rX,r1,rY || stdux rX,r1,rY */
/* No way to figure out what r1 is going to be. */
fdata->frameless = 0;
offset = fdata->offset;
@@ -1871,13 +1871,6 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc,
offset = fdata->offset;
continue;
}
- else if ((op & 0xfc1f016a) == 0x7c01016a)
- { /* stdux rX,r1,rY */
- /* No way to figure out what r1 is going to be. */
- fdata->frameless = 0;
- offset = fdata->offset;
- continue;
- }
else if ((op & 0xffff0000) == 0x38210000)
{ /* addi r1,r1,SIMM */
fdata->frameless = 0;
--
2.13.6