[PowerPC] Fix stwux and stdux masks in skip_prologue

Message ID 20180316181251.1632-1-pedromfc@linux.vnet.ibm.com
State New
Headers show
Series
  • [PowerPC] Fix stwux and stdux masks in skip_prologue
Related show

Commit Message

Pedro Franco de Carvalho March 16, 2018, 6:12 p.m.
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(-)

-- 
2.13.6

Patch

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;