This is the mail archive of the
gdb-testers@sourceware.org
mailing list for the GDB project.
[binutils-gdb] s390: Fix displaced-stepping certain relative branch insns
- From: sergiodj+buildbot at sergiodj dot net
- To: gdb-testers at sourceware dot org
- Date: Wed, 26 Jul 2017 02:35:08 -0400
- Subject: [binutils-gdb] s390: Fix displaced-stepping certain relative branch insns
- Authentication-results: sourceware.org; auth=none
*** TEST RESULTS FOR COMMIT dcb84eda0c5f25835251a311c4d6704e70cfa498 ***
Author: Andreas Arnez <arnez@linux.vnet.ibm.com>
Branch: master
Commit: dcb84eda0c5f25835251a311c4d6704e70cfa498
s390: Fix displaced-stepping certain relative branch insns
On s390x targets GDB can not handle displaced stepping correctly for some
relative branch instructions, such as cij (compare immediate and branch
relative). When setting a breakpoint on such an instruction and
single-stepping over it, the branch is never taken. This is because the
check in s390_displaced_step_fixup for relative branch instructions is
incomplete.
Instead of completing the list of relative branch instructions to check
against, this patch just treats relative branches and non-branching
instructions in the same way and adjusts the PC with the negated
displacement in both cases.
gdb/ChangeLog:
* s390-linux-tdep.c (is_rsi, is_rie): Remove functions.
(s390_displaced_step_fixup): Cover relative branches with the
default fixup handling. This fixes lack of support for some
relative branch instructions.