[0/8,PowerPC] Miscellaneous fixes for register access

Message ID 20180510195840.17734-1-pedromfc@linux.vnet.ibm.com
Headers show
Series
  • Miscellaneous fixes for register access
Related show

Message

Pedro Franco de Carvalho May 10, 2018, 7:58 p.m.
This patch series fixes some issues with register access on ppc linux
targets and refactors related code.

Paches #1-#4 are for refactoring. Patch #1 changes all ppc linux
targets (native, core file and gdbserver) so that they use the same
code for selecting a target description. Patch #2 simplifies the
arch_setup code by reusing the native target function for determining
the target wordsize. Patch #3 disables regsets by setting their sizes
to 0 to reduce the number of references to the hwcap global. Patch #4
changes all the targets to use the same size constants for the vector
regset sizes.

Patch #5 fixes an outdated assumption of big-endianess made to access
the vector control register, and refactors the native functions for
accessing the vector regset. Patch #6 fixes the code used to get
vector-scalar registers from core files, and refactors the native
functions for accessing these same registers, in a way similar to
patch #5.

Patch #7 changes the gdbarch_init function so that decimal
floating-point pseudo registers are only added to the architecture
when they exist.

Patch #8 changes the read_description function for core files to use
the full set of target descriptions available in the native target.

Pedro Franco de Carvalho (8):
  [PowerPC] Consolidate linux target description selection
  [PowerPC] Consolidate wordsize getter between native and gdbserver
  [PowerPC] Disable regsets using zero sizes in gdbserver
  [PowerPC] Consolidate linux vector regset sizes
  [PowerPC] Fix access to VSCR in linux targets
  [PowerPC] Fix VSX registers in linux core files
  [PowerPC] Fix inclusion of dfp pseudoregs in tdep
  [PowerPC] Recognize isa205 in linux core files

 gdb/Makefile.in                                    |   3 +
 gdb/arch/ppc-linux-common.c                        |  85 +++++
 gdb/arch/ppc-linux-common.h                        |  60 ++++
 gdb/arch/ppc-linux-tdesc.h                         |  42 +++
 gdb/configure.nat                                  |   2 +-
 gdb/configure.tgt                                  |   3 +-
 gdb/gdbserver/Makefile.in                          |   1 +
 gdb/gdbserver/configure.srv                        |   1 +
 gdb/gdbserver/linux-ppc-ipa.c                      |   3 +-
 gdb/gdbserver/linux-ppc-low.c                      | 151 ++++-----
 .../{linux-ppc-tdesc.h => linux-ppc-tdesc-init.h}  |  15 -
 gdb/nat/ppc-linux.c                                |  20 ++
 gdb/nat/ppc-linux.h                                |   3 +
 gdb/ppc-linux-nat.c                                | 357 ++++-----------------
 gdb/ppc-linux-tdep.c                               | 128 ++++++--
 gdb/ppc-linux-tdep.h                               |  21 +-
 gdb/rs6000-tdep.c                                  |  85 +----
 gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp     |  93 ++++++
 gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp       |  90 ++++++
 19 files changed, 642 insertions(+), 521 deletions(-)
 create mode 100644 gdb/arch/ppc-linux-common.c
 create mode 100644 gdb/arch/ppc-linux-common.h
 create mode 100644 gdb/arch/ppc-linux-tdesc.h
 rename gdb/gdbserver/{linux-ppc-tdesc.h => linux-ppc-tdesc-init.h} (76%)
 create mode 100644 gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp
 create mode 100644 gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp

-- 
2.13.6