diff options
author | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2017-03-20 17:30:01 +0100 |
---|---|---|
committer | Andreas Arnez <arnez@linux.vnet.ibm.com> | 2017-03-20 17:30:01 +0100 |
commit | dcb84eda0c5f25835251a311c4d6704e70cfa498 (patch) | |
tree | f8dd148d45ddfff7553e1d4f76239dc6374de641 /gdb/ChangeLog | |
parent | 4ea0266c22eccf6e7719469a981267659e47ef3a (diff) | |
download | binutils-gdb-dcb84eda0c5f25835251a311c4d6704e70cfa498.tar.gz |
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.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r-- | gdb/ChangeLog | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 90613479671..2cff1187739 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2017-03-20 Andreas Arnez <arnez@linux.vnet.ibm.com> + + * 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. + 2017-03-17 Simon Marchi <simon.marchi@polymtl.ca> * i386-gnu-nat.c (gnu_fetch_registers, gnu_store_registers): Use |