[spu] Fix single-stepping regression
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Sun, 26 Nov 2017 16:15:25 +0000 (17:15 +0100)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Sun, 26 Nov 2017 16:15:25 +0000 (17:15 +0100)
commit5ffd2cb722440053267d0db52df8bbd278fd6d91
tree9c454e42df82741610fa165ac0e4e9f701aa9de6
parente5a8dd426de76af279cb6eff0c761ec866e97dc8
[spu] Fix single-stepping regression

Switching spu_software_single_step to use a regcache instead of a frame:
https://sourceware.org/ml/gdb-patches/2016-11/msg00355.html
cause a serious regression to SPU single-stepping.

There were two separate problems:
- SPU_LSLR_REGNUM is a pseudo register, so we must use the "cooked"
  regcache methods instead of the "raw" ones to access it.
- When accessing a branch target register, we must only use the first
  four bytes of the 16-byte vector register.  This was done automatically
  by the frame routines, but not by the regcache routines.

gdb/ChangeLog:
2017-11-26  Ulrich Weigand  <uweigand@de.ibm.com>

* spu-tdep.c (spu_software_single_step): Access SPU_LSLR_REGNUM as
"cooked" register.  Access only first four bytes of branch target
registers.
gdb/ChangeLog
gdb/spu-tdep.c