Message ID | 20180204203902.GA10037@host1.jankratochvil.net |
---|---|
State | New |
Headers | show |
On Sun, 4 Feb 2018 21:39:23 +0100 Jan Kratochvil <jan.kratochvil@redhat.com> wrote: > 2018-02-04 Jan Kratochvil <jan.kratochvil@redhat.com> > > * rs6000-tdep.c (skip_prologue): Fix stwux encoding. > Okay.
On Mon, 05 Feb 2018 19:46:21 +0100, Kevin Buettner wrote: > On Sun, 4 Feb 2018 21:39:23 +0100 Jan Kratochvil <jan.kratochvil@redhat.com> wrote: > > 2018-02-04 Jan Kratochvil <jan.kratochvil@redhat.com> > > > > * rs6000-tdep.c (skip_prologue): Fix stwux encoding. > > > > Okay. Checked in: 72dd27306224497c8ba97f391d30b774d4d973fb Jan
Thank you for this patch! The mask was still too permissive (see PR gdb/18295), so I submitted another patch fixing that. Sorry I didn't see this before! Previously the stdux mask also allowed stwux (and more), and the if body was the same, so it was accidentally working for stwux, despite the tautological compare.
--- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -1857,7 +1857,7 @@ skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc, CORE_ADDR lim_pc, offset = fdata->offset; continue; } - else if ((op & 0xfc1f016a) == 0x7c01016e) + else if ((op & 0xfc1f016e) == 0x7c01016e) { /* stwux rX,r1,rY */ /* No way to figure out what r1 is going to be. */ fdata->frameless = 0;