[PATCH v3] Use flexible target descriptions for Linux PowerPC

Rogerio Alves rcardoso@linux.ibm.com
Fri Jan 29 07:38:03 GMT 2021


From: Rogerio Alves <rogealve@br.ibm.com>

gdb/Changelog:

YYYY-MM-DD  Rogerio A. Cardoso  <rcardoso@linux.ibm.com>

	* ppc-linux-nat.c: Remove include arch/ppc-linux-tdesc.h.
	(read_description): Create flexible tdesc with
	ppc_create_target_description.
	* ppc-linux-tdep.c (_initialize_ppc_linux_tdep): Remove old
	target description initializations.  Remove includes from
	old target descriptions.
	(ppc_linux_core_read_description): Add new powerpc features
	check to enable avaliable cpu features.
	* target-descriptions.c (maint_print_c_tdesc_cmd): Add rs6000/
	to features list.
	* arch/ppc-linux-common.h: Include "gdbsupport/tdesc.h".
	(struct ppc_linux_features) <dscr, ebb, fpscr, pmu, ppr,
	struct htm, oea, tar>: New fields.
	(struct ppc_linux_features) <isa205, isa207,
	ppr_dscr>: Removed fields.
	(struct target_desc): Remove declaration.
	(ppc_linux_no_features): Initialize new fields.
	(ppc_linux_has_isa205): Rename to ppc_linux_has_isa205. Comment
	changed.
	(ppc_linux_match_description): Rename to
	ppc_create_target_description.
	* arch/ppc-linux-common.c: Remove include arch/ppc-linux-tdesc.h.
	Include rs6000/ features *.c files.
	(ppc_create_target_description): New function.
	(ppc_linux_match_description): Rename to
	ppc_create_target_description. Add new checks to cpu features.
	(ppc_linux_has_isa205): Rename to ppc_linux_has_fpscr64.
	* arch/ppc-linux-tdesc.h: Remove file.
	* features/Makefile: Add rs6000-feature.
	(WHICH): Remove rs6000/powerpc-*l files.
	(XMLTOC): Remove rs6000/powerpc-*l files.
	(FEATURE_XMLFILES): Add rs6000/power-*.xml features.
	* features/rs6000/powerpc-32l.xml: Remove file.
	* features/rs6000/powerpc-64l.xml: Remove file.
	* features/rs6000/powerpc-altivec32l.xml: Remove file.
	* features/rs6000/powerpc-altivec64l.xml: Remove file.
	* features/rs6000/powerpc-e500l.xml: Remove file.
	* features/rs6000/powerpc-isa205-32l.xml: Remove file.
	* features/rs6000/powerpc-isa205-64l.xml: Remove file.
	* features/rs6000/powerpc-isa205-altivec32l.xml: Remove file.
	* features/rs6000/powerpc-isa205-altivec64l.xml: Remove file.
	* features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml: Remove file.
	* features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml: Remove file.
	* features/rs6000/powerpc-isa205-vsx32l.xml: Remove file.
	* features/rs6000/powerpc-isa205-vsx64l.xml: Remove file.
	* features/rs6000/powerpc-isa207-htm-vsx32l.xml: Remove file.
	* features/rs6000/powerpc-isa207-htm-vsx64l.xml: Remove file.
	* features/rs6000/powerpc-isa207-vsx32l.xml: Remove file.
	* features/rs6000/powerpc-isa207-vsx64l.xml: Remove file.
	* features/rs6000/powerpc-vsx32l.xml: Remove file.
	* features/rs6000/powerpc-vsx64l.xml: Remove file.
	* features/rs6000/powerpc-32l.c: Remove file.
	* features/rs6000/powerpc-64l.c: Remove file.
	* features/rs6000/powerpc-altivec32l.c: Remove file.
	* features/rs6000/powerpc-altivec64l.c: Remove file.
	* features/rs6000/powerpc-e500l.c: Remove file.
	* features/rs6000/powerpc-isa205-32l.c: Remove file.
	* features/rs6000/powerpc-isa205-64l.c: Remove file.
	* features/rs6000/powerpc-isa205-altivec32l.c: Remove file.
	* features/rs6000/powerpc-isa205-altivec64l.c: Remove file.
	* features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c: Remove file.
	* features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c: Remove file.
	* features/rs6000/powerpc-isa205-vsx32l.c: Remove file.
	* features/rs6000/powerpc-isa205-vsx64l.c: Remove file.
	* features/rs6000/powerpc-isa207-htm-vsx32l.c: Remove file.
	* features/rs6000/powerpc-isa207-htm-vsx64l.c: Remove file.
	* features/rs6000/powerpc-isa207-vsx32l.c: Remove file.
	* features/rs6000/powerpc-isa207-vsx64l.c: Remove file.
	* features/rs6000/powerpc-vsx32l.c: Remove file.
	* features/rs6000/powerpc-vsx64l.c: Remove file.
	* features/rs6000/power-fpu-isa205.xml: Renamed to
	(power-fpu-fpscr64.xml).
	* features/rs6000/power-altivec.c: New generated file.
	* features/rs6000/power-core.c: New generated file.
	* features/rs6000/power64-core.c: New generated file.
	* features/rs6000/power-dscr.c: New generated file.
	* features/rs6000/power-ebb.c: New generated file.
	* features/rs6000/power-fpu-fpscr64.c: New generated file.
	* features/rs6000/power-fpu.c: New generated file.
	* features/rs6000/power-htm-altivec.c: New generated file.
	* features/rs6000/power-htm-core.c: New generated file.
	* features/rs6000/power64-htm-core.c: New generated file.
	* features/rs6000/power-htm-dscr.c: New generated file.
	* features/rs6000/power-htm-fpu.c: New generated file.
	* features/rs6000/power-htm-ppr.c: New generated file.
	* features/rs6000/power-htm-spr.c: New generated file.
	* features/rs6000/power-htm-tar.c: New generated file.
	* features/rs6000/power-htm-vsx.c: New generated file.
	* features/rs6000/power-linux-pmu.c: New generated file.
	* features/rs6000/power-linux.c: New generated file.
	* features/rs6000/power64-linux.c: New generated file.
	* features/rs6000/power-oea.c: New generated file.
	* features/rs6000/power-ppr.c: New generated file.
	* features/rs6000/power-spe.c: New generated file.
	* features/rs6000/power-tar.c: New generated file.
	* features/rs6000/power-vsx.c: New generated file.
	* regformats/rs6000/powerpc-32l.dat: Remove file.
	* regformats/rs6000/powerpc-64l.dat: Remove file.
	* regformats/rs6000/powerpc-altivec32l.dat: Remove file.
	* regformats/rs6000/powerpc-altivec64l.dat: Remove file.
	* regformats/rs6000/powerpc-e500l.dat: Remove file.
	* regformats/rs6000/powerpc-isa205-32l.dat: Remove file.
	* regformats/rs6000/powerpc-isa205-64l.dat: Remove file.
	* regformats/rs6000/powerpc-isa205-altivec32l.dat: Remove file.
	* regformats/rs6000/powerpc-isa205-altivec64l.dat: Remove file.
	* regformats/rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat: Remove
	file.
	* regformats/rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat: Remove
	file.
	* regformats/rs6000/powerpc-isa205-vsx32l.dat: Remove file.
	* regformats/rs6000/powerpc-isa205-vsx64l.dat: Remove file.
	* regformats/rs6000/powerpc-isa207-htm-vsx32l.dat: Remove file.
	* regformats/rs6000/powerpc-isa207-htm-vsx64l.dat: Remove file.
	* regformats/rs6000/powerpc-isa207-vsx32l.dat: Remove file.
	* regformats/rs6000/powerpc-isa207-vsx64l.dat: Remove file.
	* regformats/rs6000/powerpc-vsx32l.dat: Remove file.
	* regformats/rs6000/powerpc-vsx64l.dat: Remove file.

gdbserver/Changelog:

YYYY-MM-DD  Rogerio A. Cardoso  <rcardoso@linux.ibm.com>

	* configure.srv: (powerpc*-*-linux*): Remove all srv_regobj.
	Remove rs6000/powerpc-*l.xml from srv_xmlfiles.
	Add linux-ppc-tdesc.o srv_tgtobj.  Add linux-ppc-tdesc-ipa.o
	and arch/ppc-linux-common-ipa.o to ipa_obj.
	* linux-ppc-tdesc-init.h: Remove file.
	* linux-ppc-tdesc.h: New file.
	* linux-ppc-tdesc.cc: New file.
	* linux-ppc-ipa.cc: Remove include linux-ppc-tdesc-init.h.
	(get_ipa_tdesc): Remove old static tdesc selections.  Return
	ppc_linux_read_description.
	(initialize_low_tracepoint): Remove registers initializations.
	Return ppc_linux_read_description.
	* linux-ppc-low.cc: Remove include linux-ppc-tdesc-init.h.
	(ppc_arch_setup): Replace ppc_linux_match_description to
	ppc_create_target_description.  Add new features check.
---
 *Changes from v2: (Per Ulrich review) Created descriptions that match with old descriptions
for IPA even if IPA doesn't collects registers other than GPR. Create
new function to convert idx to features. Fix some errors. Remove
unnecessary includes. Add missing cpu features files. (per Pedro Alves
review) fix some typos. Also fix some errors missed in previous patches.

 gdb/arch/ppc-linux-common.c                   | 137 ++++--
 gdb/arch/ppc-linux-common.h                   |  47 ++-
 gdb/arch/ppc-linux-tdesc.h                    |  46 --
 gdb/features/Makefile                         |  55 ++-
 gdb/features/rs6000/power-altivec.c           |  74 ++++
 gdb/features/rs6000/power-core.c              |  52 +++
 gdb/features/rs6000/power-dscr.c              |  14 +
 gdb/features/rs6000/power-ebb.c               |  16 +
 gdb/features/rs6000/power-fpu-fpscr64.c       |  48 +++
 ...r-fpu-isa205.xml => power-fpu-fpscr64.xml} |   0
 gdb/features/rs6000/power-fpu.c               |  48 +++
 gdb/features/rs6000/power-htm-altivec.c       |  74 ++++
 gdb/features/rs6000/power-htm-core.c          |  49 +++
 gdb/features/rs6000/power-htm-dscr.c          |  14 +
 gdb/features/rs6000/power-htm-fpu.c           |  46 ++
 gdb/features/rs6000/power-htm-ppr.c           |  14 +
 gdb/features/rs6000/power-htm-spr.c           |  16 +
 gdb/features/rs6000/power-htm-tar.c           |  14 +
 gdb/features/rs6000/power-htm-vsx.c           |  45 ++
 gdb/features/rs6000/power-linux-pmu.c         |  18 +
 gdb/features/rs6000/power-linux.c             |  16 +
 gdb/features/rs6000/power-oea.c               |  62 +++
 gdb/features/rs6000/power-ppr.c               |  14 +
 gdb/features/rs6000/power-spe.c               |  49 +++
 gdb/features/rs6000/power-tar.c               |  14 +
 gdb/features/rs6000/power-vsx.c               |  45 ++
 gdb/features/rs6000/power64-core.c            |  52 +++
 gdb/features/rs6000/power64-htm-core.c        |  49 +++
 gdb/features/rs6000/power64-linux.c           |  16 +
 gdb/features/rs6000/powerpc-32l.c             |  97 -----
 gdb/features/rs6000/powerpc-32l.xml           |  17 -
 gdb/features/rs6000/powerpc-64l.c             |  97 -----
 gdb/features/rs6000/powerpc-64l.xml           |  17 -
 gdb/features/rs6000/powerpc-altivec32l.c      | 160 -------
 gdb/features/rs6000/powerpc-altivec32l.xml    |  19 -
 gdb/features/rs6000/powerpc-altivec64l.c      | 160 -------
 gdb/features/rs6000/powerpc-altivec64l.xml    |  19 -
 gdb/features/rs6000/powerpc-e500l.c           |  98 -----
 gdb/features/rs6000/powerpc-e500l.xml         |  14 -
 gdb/features/rs6000/powerpc-isa205-32l.c      |  97 -----
 gdb/features/rs6000/powerpc-isa205-32l.xml    |  17 -
 gdb/features/rs6000/powerpc-isa205-64l.c      |  97 -----
 gdb/features/rs6000/powerpc-isa205-64l.xml    |  17 -
 .../rs6000/powerpc-isa205-altivec32l.c        | 160 -------
 .../rs6000/powerpc-isa205-altivec32l.xml      |  19 -
 .../rs6000/powerpc-isa205-altivec64l.c        | 160 -------
 .../rs6000/powerpc-isa205-altivec64l.xml      |  19 -
 .../rs6000/powerpc-isa205-ppr-dscr-vsx32l.c   | 200 ---------
 .../rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml |  18 -
 .../rs6000/powerpc-isa205-ppr-dscr-vsx64l.c   | 200 ---------
 .../rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml |  18 -
 gdb/features/rs6000/powerpc-isa205-vsx32l.c   | 194 ---------
 gdb/features/rs6000/powerpc-isa205-vsx32l.xml |  20 -
 gdb/features/rs6000/powerpc-isa205-vsx64l.c   | 194 ---------
 gdb/features/rs6000/powerpc-isa205-vsx64l.xml |  20 -
 .../rs6000/powerpc-isa207-htm-vsx32l.c        | 396 ------------------
 .../rs6000/powerpc-isa207-htm-vsx32l.xml      |  29 --
 .../rs6000/powerpc-isa207-htm-vsx64l.c        | 396 ------------------
 .../rs6000/powerpc-isa207-htm-vsx64l.xml      |  29 --
 gdb/features/rs6000/powerpc-isa207-vsx32l.c   | 215 ----------
 gdb/features/rs6000/powerpc-isa207-vsx32l.xml |  21 -
 gdb/features/rs6000/powerpc-isa207-vsx64l.c   | 215 ----------
 gdb/features/rs6000/powerpc-isa207-vsx64l.xml |  21 -
 gdb/features/rs6000/powerpc-vsx32l.c          | 194 ---------
 gdb/features/rs6000/powerpc-vsx32l.xml        |  20 -
 gdb/features/rs6000/powerpc-vsx64l.c          | 194 ---------
 gdb/features/rs6000/powerpc-vsx64l.xml        |  20 -
 gdb/ppc-linux-nat.c                           |  79 +++-
 gdb/ppc-linux-tdep.c                          | 106 +++--
 gdb/regformats/rs6000/powerpc-32l.dat         |  78 ----
 gdb/regformats/rs6000/powerpc-64l.dat         |  78 ----
 gdb/regformats/rs6000/powerpc-altivec32l.dat  | 112 -----
 gdb/regformats/rs6000/powerpc-altivec64l.dat  | 112 -----
 gdb/regformats/rs6000/powerpc-e500l.dat       |  80 ----
 gdb/regformats/rs6000/powerpc-isa205-32l.dat  |  78 ----
 gdb/regformats/rs6000/powerpc-isa205-64l.dat  |  78 ----
 .../rs6000/powerpc-isa205-altivec32l.dat      | 112 -----
 .../rs6000/powerpc-isa205-altivec64l.dat      | 112 -----
 .../rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat | 146 -------
 .../rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat | 146 -------
 .../rs6000/powerpc-isa205-vsx32l.dat          | 144 -------
 .../rs6000/powerpc-isa205-vsx64l.dat          | 144 -------
 .../rs6000/powerpc-isa207-htm-vsx32l.dat      | 296 -------------
 .../rs6000/powerpc-isa207-htm-vsx64l.dat      | 296 -------------
 .../rs6000/powerpc-isa207-vsx32l.dat          | 155 -------
 .../rs6000/powerpc-isa207-vsx64l.dat          | 155 -------
 gdb/regformats/rs6000/powerpc-vsx32l.dat      | 144 -------
 gdb/regformats/rs6000/powerpc-vsx64l.dat      | 144 -------
 gdb/target-descriptions.c                     |   3 +-
 gdbserver/configure.srv                       |  49 +--
 gdbserver/linux-ppc-ipa.cc                    |  82 +---
 gdbserver/linux-ppc-low.cc                    | 195 ++++-----
 gdbserver/linux-ppc-tdesc-init.h              | 106 -----
 gdbserver/linux-ppc-tdesc.cc                  | 156 +++++++
 gdbserver/linux-ppc-tdesc.h                   |  46 ++
 95 files changed, 1433 insertions(+), 7041 deletions(-)
 delete mode 100644 gdb/arch/ppc-linux-tdesc.h
 create mode 100644 gdb/features/rs6000/power-altivec.c
 create mode 100644 gdb/features/rs6000/power-core.c
 create mode 100644 gdb/features/rs6000/power-dscr.c
 create mode 100644 gdb/features/rs6000/power-ebb.c
 create mode 100644 gdb/features/rs6000/power-fpu-fpscr64.c
 rename gdb/features/rs6000/{power-fpu-isa205.xml => power-fpu-fpscr64.xml} (100%)
 create mode 100644 gdb/features/rs6000/power-fpu.c
 create mode 100644 gdb/features/rs6000/power-htm-altivec.c
 create mode 100644 gdb/features/rs6000/power-htm-core.c
 create mode 100644 gdb/features/rs6000/power-htm-dscr.c
 create mode 100644 gdb/features/rs6000/power-htm-fpu.c
 create mode 100644 gdb/features/rs6000/power-htm-ppr.c
 create mode 100644 gdb/features/rs6000/power-htm-spr.c
 create mode 100644 gdb/features/rs6000/power-htm-tar.c
 create mode 100644 gdb/features/rs6000/power-htm-vsx.c
 create mode 100644 gdb/features/rs6000/power-linux-pmu.c
 create mode 100644 gdb/features/rs6000/power-linux.c
 create mode 100644 gdb/features/rs6000/power-oea.c
 create mode 100644 gdb/features/rs6000/power-ppr.c
 create mode 100644 gdb/features/rs6000/power-spe.c
 create mode 100644 gdb/features/rs6000/power-tar.c
 create mode 100644 gdb/features/rs6000/power-vsx.c
 create mode 100644 gdb/features/rs6000/power64-core.c
 create mode 100644 gdb/features/rs6000/power64-htm-core.c
 create mode 100644 gdb/features/rs6000/power64-linux.c
 delete mode 100644 gdb/features/rs6000/powerpc-32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-altivec32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-altivec32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-altivec64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-altivec64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-e500l.c
 delete mode 100644 gdb/features/rs6000/powerpc-e500l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-altivec32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-altivec32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-altivec64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-altivec64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-vsx32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-vsx32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-vsx64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa205-vsx64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-vsx32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-vsx32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-vsx64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-isa207-vsx64l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-vsx32l.c
 delete mode 100644 gdb/features/rs6000/powerpc-vsx32l.xml
 delete mode 100644 gdb/features/rs6000/powerpc-vsx64l.c
 delete mode 100644 gdb/features/rs6000/powerpc-vsx64l.xml
 delete mode 100644 gdb/regformats/rs6000/powerpc-32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-altivec32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-altivec64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-e500l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa207-htm-vsx32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa207-htm-vsx64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa207-vsx32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-isa207-vsx64l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-vsx32l.dat
 delete mode 100644 gdb/regformats/rs6000/powerpc-vsx64l.dat
 delete mode 100644 gdbserver/linux-ppc-tdesc-init.h
 create mode 100644 gdbserver/linux-ppc-tdesc.cc
 create mode 100644 gdbserver/linux-ppc-tdesc.h

diff --git a/gdb/arch/ppc-linux-common.c b/gdb/arch/ppc-linux-common.c
index 183fc03395..a5e8263723 100644
--- a/gdb/arch/ppc-linux-common.c
+++ b/gdb/arch/ppc-linux-common.c
@@ -19,7 +19,31 @@
 
 #include "gdbsupport/common-defs.h"
 #include "arch/ppc-linux-common.h"
-#include "arch/ppc-linux-tdesc.h"
+
+#include "../features/rs6000/power-altivec.c"
+#include "../features/rs6000/power-core.c"
+#include "../features/rs6000/power-dscr.c"
+#include "../features/rs6000/power-ebb.c"
+#include "../features/rs6000/power-fpu-fpscr64.c"
+#include "../features/rs6000/power-fpu.c"
+#include "../features/rs6000/power-htm-altivec.c"
+#include "../features/rs6000/power-htm-core.c"
+#include "../features/rs6000/power-htm-dscr.c"
+#include "../features/rs6000/power-htm-fpu.c"
+#include "../features/rs6000/power-htm-ppr.c"
+#include "../features/rs6000/power-htm-spr.c"
+#include "../features/rs6000/power-htm-tar.c"
+#include "../features/rs6000/power-htm-vsx.c"
+#include "../features/rs6000/power-linux-pmu.c"
+#include "../features/rs6000/power-linux.c"
+#include "../features/rs6000/power-ppr.c"
+#include "../features/rs6000/power-oea.c"
+#include "../features/rs6000/power-spe.c"
+#include "../features/rs6000/power-tar.c"
+#include "../features/rs6000/power-vsx.c"
+#include "../features/rs6000/power64-core.c"
+#include "../features/rs6000/power64-htm-core.c"
+#include "../features/rs6000/power64-linux.c"
 
 /* Decimal Floating Point bit in AT_HWCAP.
 
@@ -31,56 +55,105 @@
 #endif
 
 bool
-ppc_linux_has_isa205 (CORE_ADDR hwcap)
+ppc_linux_has_fpscr64 (CORE_ADDR hwcap)
 {
   /* Power ISA 2.05 (implemented by Power 6 and newer processors)
-     increases the FPSCR from 32 bits to 64 bits.  Even though Power 7
-     supports this ISA version, it doesn't have PPC_FEATURE_ARCH_2_05
-     set, only PPC_FEATURE_ARCH_2_06.  Since for now the only bits
+     increases the FPSCR from 32 bits to 64 bits. Since for now the only bits
      used in the higher half of the register are for Decimal Floating
      Point, we check if that feature is available to decide the size
      of the FPSCR.  */
   return ((hwcap & PPC_FEATURE_HAS_DFP) != 0);
 }
 
-const struct target_desc *
-ppc_linux_match_description (struct ppc_linux_features features)
+target_desc *
+ppc_linux_create_target_description (struct ppc_linux_features features)
 {
-  struct target_desc *tdesc = NULL;
+  target_desc *tdesc = allocate_target_description ();
+  long regnum = 0;
 
   if (features.wordsize == 8)
     {
-      if (features.vsx)
-	tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx64l
-		 : features.isa207? tdesc_powerpc_isa207_vsx64l
-		 : features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx64l
-		 : features.isa205? tdesc_powerpc_isa205_vsx64l
-		 : tdesc_powerpc_vsx64l);
-      else if (features.altivec)
-	tdesc = (features.isa205? tdesc_powerpc_isa205_altivec64l
-		 : tdesc_powerpc_altivec64l);
-      else
-	tdesc = (features.isa205? tdesc_powerpc_isa205_64l
-		 : tdesc_powerpc_64l);
+      #ifndef IN_PROCESS_AGENT
+	set_tdesc_architecture (tdesc, "power:common64");
+	set_tdesc_osabi (tdesc, "GNU/Linux");
+      #endif
+      regnum = create_feature_rs6000_power64_core (tdesc, regnum);
+      regnum = create_feature_rs6000_power64_linux (tdesc, regnum);
+
+      if (features.htm.core)
+	regnum = create_feature_rs6000_power64_htm_core (tdesc, regnum);
     }
   else
     {
       gdb_assert (features.wordsize == 4);
 
-      if (features.vsx)
-	tdesc = (features.htm? tdesc_powerpc_isa207_htm_vsx32l
-		 : features.isa207? tdesc_powerpc_isa207_vsx32l
-		 : features.ppr_dscr? tdesc_powerpc_isa205_ppr_dscr_vsx32l
-		 : features.isa205? tdesc_powerpc_isa205_vsx32l
-		 : tdesc_powerpc_vsx32l);
-      else if (features.altivec)
-	tdesc = (features.isa205? tdesc_powerpc_isa205_altivec32l
-		 : tdesc_powerpc_altivec32l);
-      else
-	tdesc = (features.isa205? tdesc_powerpc_isa205_32l
-		 : tdesc_powerpc_32l);
+      #ifndef IN_PROCESS_AGENT
+	set_tdesc_architecture (tdesc, "power:common");
+	set_tdesc_osabi (tdesc, "GNU/Linux");
+      #endif
+      regnum = create_feature_rs6000_power_core (tdesc, regnum);
+      regnum = create_feature_rs6000_power_linux (tdesc, regnum);
+
+      if (features.htm.core)
+	regnum = create_feature_rs6000_power_htm_core (tdesc, regnum);
+    }
+
+  if (features.altivec)
+    regnum = create_feature_rs6000_power_altivec (tdesc, regnum);
+
+  if (features.dscr)
+    regnum = create_feature_rs6000_power_dscr (tdesc, regnum);
+
+  if (features.ebb)
+    regnum = create_feature_rs6000_power_ebb (tdesc, regnum);
+
+   if (features.fpscr64)
+     regnum = create_feature_rs6000_power_fpu_fpscr64 (tdesc, regnum);
+   else
+     regnum = create_feature_rs6000_power_fpu (tdesc, regnum);
+
+  if (features.htm.core)
+    {
+      if (features.htm.altivec)
+	regnum = create_feature_rs6000_power_htm_altivec (tdesc, regnum);
+
+      if (features.htm.dscr)
+	regnum = create_feature_rs6000_power_htm_dscr (tdesc, regnum);
+
+      if (features.htm.fpu)
+ 	regnum = create_feature_rs6000_power_htm_fpu (tdesc, regnum);
+
+      if (features.htm.ppr)
+	regnum = create_feature_rs6000_power_htm_ppr (tdesc, regnum);
+
+      if (features.htm.spr)
+	regnum = create_feature_rs6000_power_htm_spr (tdesc, regnum);
+
+      if (features.htm.tar)
+ 	regnum = create_feature_rs6000_power_htm_tar (tdesc, regnum);
+
+      if (features.htm.vsx)
+	regnum = create_feature_rs6000_power_htm_vsx (tdesc, regnum);
     }
 
+  if (features.oea)
+    regnum = create_feature_rs6000_power_oea (tdesc, regnum);
+
+  if (features.pmu)
+    regnum = create_feature_rs6000_power_linux_pmu (tdesc, regnum);
+
+  if (features.ppr)
+    regnum = create_feature_rs6000_power_ppr (tdesc, regnum);
+
+  if (features.spe)
+    regnum = create_feature_rs6000_power_spe (tdesc, regnum);
+
+  if (features.tar)
+    regnum = create_feature_rs6000_power_tar (tdesc, regnum);
+
+  if (features.vsx)
+    regnum = create_feature_rs6000_power_vsx (tdesc, regnum);
+
   gdb_assert (tdesc != NULL);
 
   return tdesc;
diff --git a/gdb/arch/ppc-linux-common.h b/gdb/arch/ppc-linux-common.h
index 40209abdf1..d89c63f039 100644
--- a/gdb/arch/ppc-linux-common.h
+++ b/gdb/arch/ppc-linux-common.h
@@ -20,7 +20,7 @@
 #ifndef ARCH_PPC_LINUX_COMMON_H
 #define ARCH_PPC_LINUX_COMMON_H
 
-struct target_desc;
+#include "gdbsupport/tdesc.h"
 
 /* The core file VMX regset has 34 16-byte fields (32 16-byte vector
    registers, plus two fields containing 4-byte registers, VSCR and
@@ -45,19 +45,34 @@ struct target_desc;
 #define PPC_LINUX_SIZEOF_CDSCRREGSET 8
 #define PPC_LINUX_SIZEOF_CTARREGSET 8
 
-/* Check if the hwcap auxv entry indicates that isa205 is supported.  */
-bool ppc_linux_has_isa205 (CORE_ADDR hwcap);
+/* Check if the hwcap auxv entry indicates that FPSCR is 64 bits.  */
+bool ppc_linux_has_fpscr64 (CORE_ADDR hwcap);
 
 /* Features used to determine the target description.  */
 struct ppc_linux_features
 {
   unsigned int wordsize;
   bool altivec;
+  bool dscr;
+  bool ebb;
+  bool fpscr64;
+  struct htm
+  {
+    bool altivec;
+    bool core;
+    bool dscr;
+    bool fpu;
+    bool ppr;
+    bool spr;
+    bool tar;
+    bool vsx;
+  } htm;
+  bool oea;
+  bool pmu;
+  bool ppr;
+  bool spe;
+  bool tar;
   bool vsx;
-  bool isa205;
-  bool ppr_dscr;
-  bool isa207;
-  bool htm;
 };
 
 /* Base value for ppc_linux_features variables.  */
@@ -67,12 +82,26 @@ const struct ppc_linux_features ppc_linux_no_features = {
   false,
   false,
   false,
+  {
+    false,
+    false,
+    false,
+    false,
+    false,
+    false,
+    false,
+    false,
+  },
+  false,
+  false,
+  false,
+  false,
   false,
   false,
 };
 
-/* Return a target description that matches FEATURES.  */
-const struct target_desc * ppc_linux_match_description
+/* Create a target description that matches FEATURES.  */
+target_desc * ppc_linux_create_target_description
 (struct ppc_linux_features features);
 
 #endif /* ARCH_PPC_LINUX_COMMON_H */
diff --git a/gdb/arch/ppc-linux-tdesc.h b/gdb/arch/ppc-linux-tdesc.h
deleted file mode 100644
index 082123748e..0000000000
--- a/gdb/arch/ppc-linux-tdesc.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Target description declarations shared between gdb, gdbserver and IPA.
-
-   Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef ARCH_PPC_LINUX_TDESC_H
-#define ARCH_PPC_LINUX_TDESC_H
-
-struct target_desc;
-
-extern struct target_desc *tdesc_powerpc_32l;
-extern struct target_desc *tdesc_powerpc_altivec32l;
-extern struct target_desc *tdesc_powerpc_vsx32l;
-extern struct target_desc *tdesc_powerpc_isa205_32l;
-extern struct target_desc *tdesc_powerpc_isa205_altivec32l;
-extern struct target_desc *tdesc_powerpc_isa205_vsx32l;
-extern struct target_desc *tdesc_powerpc_isa205_ppr_dscr_vsx32l;
-extern struct target_desc *tdesc_powerpc_isa207_vsx32l;
-extern struct target_desc *tdesc_powerpc_isa207_htm_vsx32l;
-extern struct target_desc *tdesc_powerpc_e500l;
-
-extern struct target_desc *tdesc_powerpc_64l;
-extern struct target_desc *tdesc_powerpc_altivec64l;
-extern struct target_desc *tdesc_powerpc_vsx64l;
-extern struct target_desc *tdesc_powerpc_isa205_64l;
-extern struct target_desc *tdesc_powerpc_isa205_altivec64l;
-extern struct target_desc *tdesc_powerpc_isa205_vsx64l;
-extern struct target_desc *tdesc_powerpc_isa205_ppr_dscr_vsx64l;
-extern struct target_desc *tdesc_powerpc_isa207_vsx64l;
-extern struct target_desc *tdesc_powerpc_isa207_htm_vsx64l;
-
-#endif /* ARCH_PPC_LINUX_TDESC_H */
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index cc65baa6ed..0ff5d89eb2 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -50,18 +50,6 @@ WHICH = arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 \
 	microblaze-with-stack-protect \
 	mips64-linux mips64-dsp-linux \
 	nios2-linux \
-	rs6000/powerpc-32 \
-	rs6000/powerpc-32l rs6000/powerpc-altivec32l rs6000/powerpc-e500l \
-	rs6000/powerpc-64l rs6000/powerpc-altivec64l rs6000/powerpc-vsx32l \
-	rs6000/powerpc-vsx64l \
-	rs6000/powerpc-isa205-32l rs6000/powerpc-isa205-64l \
-	rs6000/powerpc-isa205-altivec32l rs6000/powerpc-isa205-altivec64l \
-	rs6000/powerpc-isa205-vsx32l rs6000/powerpc-isa205-vsx64l \
-	rs6000/powerpc-isa205-ppr-dscr-vsx32l \
-	rs6000/powerpc-isa205-ppr-dscr-vsx64l \
-	rs6000/powerpc-isa207-vsx32l rs6000/powerpc-isa207-vsx64l \
-	rs6000/powerpc-isa207-htm-vsx32l \
-	rs6000/powerpc-isa207-htm-vsx64l \
 	s390-linux32 s390-linux64 s390x-linux64 \
 	s390-linux32v1 s390-linux64v1 s390x-linux64v1 \
 	s390-linux32v2 s390-linux64v2 s390x-linux64v2 \
@@ -118,7 +106,6 @@ XMLTOC = \
 	nios2.xml \
 	or1k.xml \
 	rs6000/powerpc-32.xml \
-	rs6000/powerpc-32l.xml \
 	rs6000/powerpc-403.xml \
 	rs6000/powerpc-403gc.xml \
 	rs6000/powerpc-405.xml \
@@ -128,32 +115,14 @@ XMLTOC = \
 	rs6000/powerpc-603.xml \
 	rs6000/powerpc-604.xml \
 	rs6000/powerpc-64.xml \
-	rs6000/powerpc-64l.xml \
 	rs6000/powerpc-7400.xml \
 	rs6000/powerpc-750.xml \
 	rs6000/powerpc-860.xml \
 	rs6000/powerpc-altivec32.xml \
-	rs6000/powerpc-altivec32l.xml \
 	rs6000/powerpc-altivec64.xml \
-	rs6000/powerpc-altivec64l.xml \
 	rs6000/powerpc-e500.xml \
-	rs6000/powerpc-e500l.xml \
-	rs6000/powerpc-isa205-32l.xml \
-	rs6000/powerpc-isa205-64l.xml \
-	rs6000/powerpc-isa205-altivec32l.xml \
-	rs6000/powerpc-isa205-altivec64l.xml \
-	rs6000/powerpc-isa205-vsx32l.xml \
-	rs6000/powerpc-isa205-vsx64l.xml \
-	rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml \
-	rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml \
-	rs6000/powerpc-isa207-vsx32l.xml \
-	rs6000/powerpc-isa207-vsx64l.xml \
-	rs6000/powerpc-isa207-htm-vsx32l.xml \
-	rs6000/powerpc-isa207-htm-vsx64l.xml \
 	rs6000/powerpc-vsx32.xml \
-	rs6000/powerpc-vsx32l.xml \
 	rs6000/powerpc-vsx64.xml \
-	rs6000/powerpc-vsx64l.xml \
 	rs6000/rs6000.xml \
 	rx.xml \
 	s390-linux32.xml \
@@ -182,6 +151,7 @@ aarch64-feature = 1
 arm-feature = 1
 i386-feature = 1
 riscv-feature = 1
+rs6000-feature =1
 tic6x-feature = 1
 
 all: $(OUTPUTS)
@@ -237,6 +207,29 @@ FEATURE_XMLFILES = aarch64-core.xml \
 	riscv/64bit-cpu.xml \
 	riscv/64bit-csr.xml \
 	riscv/64bit-fpu.xml \
+	rs6000/power64-core.xml \
+	rs6000/power64-htm-core.xml \
+	rs6000/power64-linux.xml \
+	rs6000/power-altivec.xml \
+	rs6000/power-core.xml \
+	rs6000/power-dscr.xml \
+	rs6000/power-ebb.xml \
+	rs6000/power-fpu-fpscr64.xml \
+	rs6000/power-fpu.xml \
+	rs6000/power-htm-altivec.xml \
+	rs6000/power-htm-core.xml \
+	rs6000/power-htm-dscr.xml \
+	rs6000/power-htm-fpu.xml \
+	rs6000/power-htm-ppr.xml \
+	rs6000/power-htm-spr.xml \
+	rs6000/power-htm-tar.xml \
+	rs6000/power-htm-vsx.xml \
+	rs6000/power-linux-pmu.xml \
+	rs6000/power-linux.xml \
+	rs6000/power-ppr.xml \
+	rs6000/power-spe.xml \
+	rs6000/power-tar.xml \
+	rs6000/power-vsx.xml \
 	rx.xml \
 	tic6x-c6xp.xml \
 	tic6x-core.xml \
diff --git a/gdb/features/rs6000/power-altivec.c b/gdb/features/rs6000/power-altivec.c
new file mode 100644
index 0000000000..ec9ccd7bdb
--- /dev/null
+++ b/gdb/features/rs6000/power-altivec.c
@@ -0,0 +1,74 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-altivec.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_altivec (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "uint128");
+  tdesc_add_field (type_with_fields, "uint128", field_type);
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
+  field_type = tdesc_named_type (feature, "v4i32");
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
+  field_type = tdesc_named_type (feature, "v8i16");
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
+  field_type = tdesc_named_type (feature, "v16i8");
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
+
+  tdesc_create_reg (feature, "vr0", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr1", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr2", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr3", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr4", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr5", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr6", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr7", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr8", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr9", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr10", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr11", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr12", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr13", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr14", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr15", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr16", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr17", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr18", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr19", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr20", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr21", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr22", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr23", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr24", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr25", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr26", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr27", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr28", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr29", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr30", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vr31", regnum++, 1, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "vscr", regnum++, 1, "vector", 32, "int");
+  tdesc_create_reg (feature, "vrsave", regnum++, 1, "vector", 32, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-core.c b/gdb/features/rs6000/power-core.c
new file mode 100644
index 0000000000..41573ba4cc
--- /dev/null
+++ b/gdb/features/rs6000/power-core.c
@@ -0,0 +1,52 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-core.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
+  tdesc_create_reg (feature, "r0", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r1", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r2", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r3", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r4", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r5", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r6", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r7", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r13", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r16", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r17", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r18", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r19", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r20", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r21", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r22", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r23", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r24", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r25", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r26", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r27", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r28", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r29", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r30", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "r31", regnum++, 1, NULL, 32, "uint32");
+  regnum = 64;
+  tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "msr", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "lr", regnum++, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "ctr", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "xer", regnum++, 1, NULL, 32, "uint32");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-dscr.c b/gdb/features/rs6000/power-dscr.c
new file mode 100644
index 0000000000..71b87f9563
--- /dev/null
+++ b/gdb/features/rs6000/power-dscr.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-dscr.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_dscr (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.dscr");
+  tdesc_create_reg (feature, "dscr", regnum++, 1, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-ebb.c b/gdb/features/rs6000/power-ebb.c
new file mode 100644
index 0000000000..5c2d359f3c
--- /dev/null
+++ b/gdb/features/rs6000/power-ebb.c
@@ -0,0 +1,16 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-ebb.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_ebb (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ebb");
+  tdesc_create_reg (feature, "bescr", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "ebbhr", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "ebbrr", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-fpu-fpscr64.c b/gdb/features/rs6000/power-fpu-fpscr64.c
new file mode 100644
index 0000000000..b8340fb291
--- /dev/null
+++ b/gdb/features/rs6000/power-fpu-fpscr64.c
@@ -0,0 +1,48 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-fpu-fpscr64.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_fpu_fpscr64 (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
+  regnum = 32;
+  tdesc_create_reg (feature, "f0", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f1", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f2", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f3", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f4", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f5", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f6", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f7", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f8", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f9", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f10", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f11", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f12", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f13", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f14", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f15", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f16", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f17", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f18", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f19", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f20", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f21", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f22", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f23", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f24", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f25", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f26", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f27", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f28", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f29", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f30", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f31", regnum++, 1, NULL, 64, "ieee_double");
+  regnum = 70;
+  tdesc_create_reg (feature, "fpscr", regnum++, 1, "float", 64, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-fpu-isa205.xml b/gdb/features/rs6000/power-fpu-fpscr64.xml
similarity index 100%
rename from gdb/features/rs6000/power-fpu-isa205.xml
rename to gdb/features/rs6000/power-fpu-fpscr64.xml
diff --git a/gdb/features/rs6000/power-fpu.c b/gdb/features/rs6000/power-fpu.c
new file mode 100644
index 0000000000..0a8147aad2
--- /dev/null
+++ b/gdb/features/rs6000/power-fpu.c
@@ -0,0 +1,48 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-fpu.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_fpu (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
+  regnum = 32;
+  tdesc_create_reg (feature, "f0", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f1", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f2", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f3", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f4", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f5", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f6", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f7", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f8", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f9", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f10", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f11", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f12", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f13", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f14", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f15", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f16", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f17", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f18", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f19", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f20", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f21", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f22", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f23", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f24", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f25", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f26", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f27", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f28", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f29", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f30", regnum++, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "f31", regnum++, 1, NULL, 64, "ieee_double");
+  regnum = 70;
+  tdesc_create_reg (feature, "fpscr", regnum++, 1, "float", 32, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-altivec.c b/gdb/features/rs6000/power-htm-altivec.c
new file mode 100644
index 0000000000..029ad33cb8
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-altivec.c
@@ -0,0 +1,74 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-altivec.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_altivec (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.altivec");
+  tdesc_type *element_type;
+  element_type = tdesc_named_type (feature, "ieee_single");
+  tdesc_create_vector (feature, "v4f", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int32");
+  tdesc_create_vector (feature, "v4i32", element_type, 4);
+
+  element_type = tdesc_named_type (feature, "int16");
+  tdesc_create_vector (feature, "v8i16", element_type, 8);
+
+  element_type = tdesc_named_type (feature, "int8");
+  tdesc_create_vector (feature, "v16i8", element_type, 16);
+
+  tdesc_type_with_fields *type_with_fields;
+  type_with_fields = tdesc_create_union (feature, "vec128");
+  tdesc_type *field_type;
+  field_type = tdesc_named_type (feature, "uint128");
+  tdesc_add_field (type_with_fields, "uint128", field_type);
+  field_type = tdesc_named_type (feature, "v4f");
+  tdesc_add_field (type_with_fields, "v4_float", field_type);
+  field_type = tdesc_named_type (feature, "v4i32");
+  tdesc_add_field (type_with_fields, "v4_int32", field_type);
+  field_type = tdesc_named_type (feature, "v8i16");
+  tdesc_add_field (type_with_fields, "v8_int16", field_type);
+  field_type = tdesc_named_type (feature, "v16i8");
+  tdesc_add_field (type_with_fields, "v16_int8", field_type);
+
+  tdesc_create_reg (feature, "cvr0", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr1", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr2", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr3", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr4", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr5", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr6", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr7", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr8", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr9", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr10", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr11", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr12", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr13", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr14", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr15", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr16", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr17", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr18", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr19", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr20", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr21", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr22", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr23", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr24", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr25", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr26", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr27", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr28", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr29", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr30", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvr31", regnum++, 0, NULL, 128, "vec128");
+  tdesc_create_reg (feature, "cvscr", regnum++, 0, "vector", 32, "int");
+  tdesc_create_reg (feature, "cvrsave", regnum++, 0, "vector", 32, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-core.c b/gdb/features/rs6000/power-htm-core.c
new file mode 100644
index 0000000000..d21c79cf5b
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-core.c
@@ -0,0 +1,49 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-core.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.core");
+  tdesc_create_reg (feature, "cr0", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr1", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr2", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr3", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr4", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr5", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr6", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr7", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr8", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr9", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr10", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr11", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr12", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr13", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr14", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr15", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr16", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr17", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr18", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr19", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr20", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr21", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr22", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr23", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr24", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr25", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr26", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr27", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr28", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr29", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr30", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cr31", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "ccr", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cxer", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "clr", regnum++, 0, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "cctr", regnum++, 0, NULL, 32, "uint32");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-dscr.c b/gdb/features/rs6000/power-htm-dscr.c
new file mode 100644
index 0000000000..0b7f2d9c22
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-dscr.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-dscr.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_dscr (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.dscr");
+  tdesc_create_reg (feature, "cdscr", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-fpu.c b/gdb/features/rs6000/power-htm-fpu.c
new file mode 100644
index 0000000000..8268e97f6f
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-fpu.c
@@ -0,0 +1,46 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-fpu.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_fpu (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.fpu");
+  tdesc_create_reg (feature, "cf0", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf1", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf2", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf3", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf4", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf5", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf6", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf7", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf8", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf9", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf10", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf11", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf12", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf13", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf14", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf15", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf16", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf17", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf18", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf19", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf20", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf21", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf22", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf23", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf24", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf25", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf26", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf27", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf28", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf29", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf30", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cf31", regnum++, 0, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "cfpscr", regnum++, 0, "float", 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-ppr.c b/gdb/features/rs6000/power-htm-ppr.c
new file mode 100644
index 0000000000..d6470a5701
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-ppr.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-ppr.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_ppr (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.ppr");
+  tdesc_create_reg (feature, "cppr", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-spr.c b/gdb/features/rs6000/power-htm-spr.c
new file mode 100644
index 0000000000..4170304bc8
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-spr.c
@@ -0,0 +1,16 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-spr.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_spr (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.spr");
+  tdesc_create_reg (feature, "tfhar", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "texasr", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "tfiar", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-tar.c b/gdb/features/rs6000/power-htm-tar.c
new file mode 100644
index 0000000000..c9442bfbaa
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-tar.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-tar.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_tar (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.tar");
+  tdesc_create_reg (feature, "ctar", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-htm-vsx.c b/gdb/features/rs6000/power-htm-vsx.c
new file mode 100644
index 0000000000..b3f3f3e047
--- /dev/null
+++ b/gdb/features/rs6000/power-htm-vsx.c
@@ -0,0 +1,45 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-htm-vsx.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_htm_vsx (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.vsx");
+  tdesc_create_reg (feature, "cvs0h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs1h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs2h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs3h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs4h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs5h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs6h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs7h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs8h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs9h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs10h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs11h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs12h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs13h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs14h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs15h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs16h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs17h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs18h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs19h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs20h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs21h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs22h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs23h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs24h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs25h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs26h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs27h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs28h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs29h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs30h", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cvs31h", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-linux-pmu.c b/gdb/features/rs6000/power-linux-pmu.c
new file mode 100644
index 0000000000..abeda3af59
--- /dev/null
+++ b/gdb/features/rs6000/power-linux-pmu.c
@@ -0,0 +1,18 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-linux-pmu.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_linux_pmu (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux.pmu");
+  tdesc_create_reg (feature, "mmcr0", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "mmcr2", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "siar", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "sdar", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "sier", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-linux.c b/gdb/features/rs6000/power-linux.c
new file mode 100644
index 0000000000..63d3e9e4cd
--- /dev/null
+++ b/gdb/features/rs6000/power-linux.c
@@ -0,0 +1,16 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-linux.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_linux (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
+  regnum = 71;
+  tdesc_create_reg (feature, "orig_r3", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "trap", regnum++, 1, NULL, 32, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-oea.c b/gdb/features/rs6000/power-oea.c
new file mode 100644
index 0000000000..e284272374
--- /dev/null
+++ b/gdb/features/rs6000/power-oea.c
@@ -0,0 +1,62 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-oea.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_oea (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "OEA");
+  regnum = 71;
+  tdesc_create_reg (feature, "sr0", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr1", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr2", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr3", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr4", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr5", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr6", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr7", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr8", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr9", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr10", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr11", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr12", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr13", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr14", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sr15", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pvr", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat0u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat0l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat1u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat1l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat2u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat2l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat3u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ibat3l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat0u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat0l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat1u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat1l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat2u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat2l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat3u", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dbat3l", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sdr1", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "asr", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "dar", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dsisr", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sprg0", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sprg1", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sprg2", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sprg3", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "srr0", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "srr1", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "tbl", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "tbu", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dec", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "dabr", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ear", regnum++, 1, NULL, 32, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-ppr.c b/gdb/features/rs6000/power-ppr.c
new file mode 100644
index 0000000000..ab3768cc9f
--- /dev/null
+++ b/gdb/features/rs6000/power-ppr.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-ppr.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_ppr (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ppr");
+  tdesc_create_reg (feature, "ppr", regnum++, 1, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-spe.c b/gdb/features/rs6000/power-spe.c
new file mode 100644
index 0000000000..9e9ca7c9dd
--- /dev/null
+++ b/gdb/features/rs6000/power-spe.c
@@ -0,0 +1,49 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-spe.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_spe (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.spe");
+  regnum = 32;
+  tdesc_create_reg (feature, "ev0h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev1h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev2h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev3h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev4h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev5h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev6h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev7h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev8h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev9h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev10h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev11h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev12h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev13h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev14h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev15h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev16h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev17h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev18h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev19h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev20h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev21h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev22h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev23h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev24h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev25h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev26h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev27h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev28h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev29h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev30h", regnum++, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "ev31h", regnum++, 1, NULL, 32, "int");
+  regnum = 73;
+  tdesc_create_reg (feature, "acc", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "spefscr", regnum++, 1, NULL, 32, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-tar.c b/gdb/features/rs6000/power-tar.c
new file mode 100644
index 0000000000..7186d6fd2c
--- /dev/null
+++ b/gdb/features/rs6000/power-tar.c
@@ -0,0 +1,14 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-tar.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_tar (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.tar");
+  tdesc_create_reg (feature, "tar", regnum++, 1, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power-vsx.c b/gdb/features/rs6000/power-vsx.c
new file mode 100644
index 0000000000..319eba4b9a
--- /dev/null
+++ b/gdb/features/rs6000/power-vsx.c
@@ -0,0 +1,45 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power-vsx.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power_vsx (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
+  tdesc_create_reg (feature, "vs0h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs1h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs2h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs3h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs4h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs5h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs6h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs7h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs8h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs9h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs10h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs11h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs12h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs13h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs14h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs15h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs16h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs17h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs18h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs19h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs20h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs21h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs22h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs23h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs24h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs25h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs26h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs27h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs28h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs29h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs30h", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "vs31h", regnum++, 1, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power64-core.c b/gdb/features/rs6000/power64-core.c
new file mode 100644
index 0000000000..0390c87676
--- /dev/null
+++ b/gdb/features/rs6000/power64-core.c
@@ -0,0 +1,52 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power64-core.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power64_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
+  tdesc_create_reg (feature, "r0", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r1", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r2", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r3", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r4", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r5", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r6", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r7", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r8", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r9", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r10", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r11", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r12", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r13", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r14", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r15", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r16", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r17", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r18", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r19", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r20", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r21", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r22", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r23", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r24", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r25", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r26", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r27", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r28", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r29", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r30", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "r31", regnum++, 1, NULL, 64, "uint64");
+  regnum = 64;
+  tdesc_create_reg (feature, "pc", regnum++, 1, NULL, 64, "code_ptr");
+  tdesc_create_reg (feature, "msr", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr", regnum++, 1, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "lr", regnum++, 1, NULL, 64, "code_ptr");
+  tdesc_create_reg (feature, "ctr", regnum++, 1, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "xer", regnum++, 1, NULL, 32, "uint32");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power64-htm-core.c b/gdb/features/rs6000/power64-htm-core.c
new file mode 100644
index 0000000000..df0640a492
--- /dev/null
+++ b/gdb/features/rs6000/power64-htm-core.c
@@ -0,0 +1,49 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power64-htm-core.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power64_htm_core (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.core");
+  tdesc_create_reg (feature, "cr0", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr1", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr2", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr3", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr4", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr5", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr6", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr7", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr8", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr9", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr10", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr11", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr12", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr13", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr14", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr15", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr16", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr17", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr18", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr19", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr20", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr21", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr22", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr23", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr24", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr25", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr26", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr27", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr28", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr29", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr30", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "cr31", regnum++, 0, NULL, 64, "uint64");
+  tdesc_create_reg (feature, "ccr", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "cxer", regnum++, 0, NULL, 32, "uint32");
+  tdesc_create_reg (feature, "clr", regnum++, 0, NULL, 64, "code_ptr");
+  tdesc_create_reg (feature, "cctr", regnum++, 0, NULL, 64, "uint64");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/power64-linux.c b/gdb/features/rs6000/power64-linux.c
new file mode 100644
index 0000000000..23414679bb
--- /dev/null
+++ b/gdb/features/rs6000/power64-linux.c
@@ -0,0 +1,16 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: power64-linux.xml */
+
+#include "gdbsupport/tdesc.h"
+
+static int
+create_feature_rs6000_power64_linux (struct target_desc *result, long regnum)
+{
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
+  regnum = 71;
+  tdesc_create_reg (feature, "orig_r3", regnum++, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "trap", regnum++, 1, NULL, 64, "int");
+  return regnum;
+}
diff --git a/gdb/features/rs6000/powerpc-32l.c b/gdb/features/rs6000/powerpc-32l.c
deleted file mode 100644
index 8089c0434e..0000000000
--- a/gdb/features/rs6000/powerpc-32l.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_32l;
-static void
-initialize_tdesc_powerpc_32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  tdesc_powerpc_32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-32l.xml b/gdb/features/rs6000/powerpc-32l.xml
deleted file mode 100644
index f381b7e5de..0000000000
--- a/gdb/features/rs6000/powerpc-32l.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers".  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power-linux.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-64l.c b/gdb/features/rs6000/powerpc-64l.c
deleted file mode 100644
index 408794e13a..0000000000
--- a/gdb/features/rs6000/powerpc-64l.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_64l;
-static void
-initialize_tdesc_powerpc_64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  tdesc_powerpc_64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-64l.xml b/gdb/features/rs6000/powerpc-64l.xml
deleted file mode 100644
index cdc2f19147..0000000000
--- a/gdb/features/rs6000/powerpc-64l.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers".  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power64-linux.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-altivec32l.c b/gdb/features/rs6000/powerpc-altivec32l.c
deleted file mode 100644
index 81862cb9ef..0000000000
--- a/gdb/features/rs6000/powerpc-altivec32l.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-altivec32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_altivec32l;
-static void
-initialize_tdesc_powerpc_altivec32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  tdesc_powerpc_altivec32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-altivec32l.xml b/gdb/features/rs6000/powerpc-altivec32l.xml
deleted file mode 100644
index 956fd49534..0000000000
--- a/gdb/features/rs6000/powerpc-altivec32l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers" and AltiVec
-     vector registers.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-altivec64l.c b/gdb/features/rs6000/powerpc-altivec64l.c
deleted file mode 100644
index ce0bc86137..0000000000
--- a/gdb/features/rs6000/powerpc-altivec64l.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-altivec64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_altivec64l;
-static void
-initialize_tdesc_powerpc_altivec64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  tdesc_powerpc_altivec64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-altivec64l.xml b/gdb/features/rs6000/powerpc-altivec64l.xml
deleted file mode 100644
index f0e2f0cdbb..0000000000
--- a/gdb/features/rs6000/powerpc-altivec64l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers" and AltiVec
-     vector registers.   -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-e500l.c b/gdb/features/rs6000/powerpc-e500l.c
deleted file mode 100644
index 61acbf3dd3..0000000000
--- a/gdb/features/rs6000/powerpc-e500l.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-e500l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_e500l;
-static void
-initialize_tdesc_powerpc_e500l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:e500"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.spe");
-  tdesc_create_reg (feature, "ev0h", 32, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev1h", 33, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev2h", 34, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev3h", 35, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev4h", 36, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev5h", 37, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev6h", 38, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev7h", 39, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev8h", 40, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev9h", 41, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev10h", 42, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev11h", 43, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev12h", 44, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev13h", 45, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev14h", 46, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev15h", 47, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev16h", 48, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev17h", 49, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev18h", 50, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev19h", 51, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev20h", 52, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev21h", 53, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev22h", 54, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev23h", 55, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev24h", 56, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev25h", 57, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev26h", 58, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev27h", 59, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev28h", 60, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev29h", 61, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev30h", 62, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "ev31h", 63, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "acc", 73, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "spefscr", 74, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  tdesc_powerpc_e500l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-e500l.xml b/gdb/features/rs6000/powerpc-e500l.xml
deleted file mode 100644
index 902fe7900d..0000000000
--- a/gdb/features/rs6000/powerpc-e500l.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:e500</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-spe.xml"/>
-  <xi:include href="power-linux.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-32l.c b/gdb/features/rs6000/powerpc-isa205-32l.c
deleted file mode 100644
index de6548fdf7..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-32l.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_32l;
-static void
-initialize_tdesc_powerpc_isa205_32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  tdesc_powerpc_isa205_32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-32l.xml b/gdb/features/rs6000/powerpc-isa205-32l.xml
deleted file mode 100644
index e7a16f66c2..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-32l.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers".  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power-linux.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-64l.c b/gdb/features/rs6000/powerpc-isa205-64l.c
deleted file mode 100644
index cd3b2c10a6..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-64l.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_64l;
-static void
-initialize_tdesc_powerpc_isa205_64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  tdesc_powerpc_isa205_64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-64l.xml b/gdb/features/rs6000/powerpc-isa205-64l.xml
deleted file mode 100644
index 0c65f34fe1..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-64l.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers".  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power64-linux.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-altivec32l.c b/gdb/features/rs6000/powerpc-isa205-altivec32l.c
deleted file mode 100644
index 09f5c075c8..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-altivec32l.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-altivec32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_altivec32l;
-static void
-initialize_tdesc_powerpc_isa205_altivec32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  tdesc_powerpc_isa205_altivec32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-altivec32l.xml b/gdb/features/rs6000/powerpc-isa205-altivec32l.xml
deleted file mode 100644
index 66f7b7b9b7..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-altivec32l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers" and AltiVec
-     vector registers.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-altivec64l.c b/gdb/features/rs6000/powerpc-isa205-altivec64l.c
deleted file mode 100644
index 246fcef085..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-altivec64l.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-altivec64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_altivec64l;
-static void
-initialize_tdesc_powerpc_isa205_altivec64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  tdesc_powerpc_isa205_altivec64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-altivec64l.xml b/gdb/features/rs6000/powerpc-isa205-altivec64l.xml
deleted file mode 100644
index 75a08c3f87..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-altivec64l.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers" and AltiVec
-     vector registers.   -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c
deleted file mode 100644
index c8f56ea029..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-ppr-dscr-vsx32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_ppr_dscr_vsx32l;
-static void
-initialize_tdesc_powerpc_isa205_ppr_dscr_vsx32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ppr");
-  tdesc_create_reg (feature, "ppr", 139, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.dscr");
-  tdesc_create_reg (feature, "dscr", 140, 1, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa205_ppr_dscr_vsx32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
deleted file mode 100644
index 75cfae9236..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-  <xi:include href="power-ppr.xml"/>
-  <xi:include href="power-dscr.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c
deleted file mode 100644
index 76e32f3b1b..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-ppr-dscr-vsx64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_ppr_dscr_vsx64l;
-static void
-initialize_tdesc_powerpc_isa205_ppr_dscr_vsx64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ppr");
-  tdesc_create_reg (feature, "ppr", 139, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.dscr");
-  tdesc_create_reg (feature, "dscr", 140, 1, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa205_ppr_dscr_vsx64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
deleted file mode 100644
index 9e2b246a90..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-  <xi:include href="power-ppr.xml"/>
-  <xi:include href="power-dscr.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-vsx32l.c b/gdb/features/rs6000/powerpc-isa205-vsx32l.c
deleted file mode 100644
index 2a6e232e99..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-vsx32l.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-vsx32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_vsx32l;
-static void
-initialize_tdesc_powerpc_isa205_vsx32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa205_vsx32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-vsx32l.xml b/gdb/features/rs6000/powerpc-isa205-vsx32l.xml
deleted file mode 100644
index 9aa4fbd988..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-vsx32l.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers", AltiVec
-     and VSX vector registers.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa205-vsx64l.c b/gdb/features/rs6000/powerpc-isa205-vsx64l.c
deleted file mode 100644
index d0e32f29b1..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-vsx64l.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa205-vsx64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa205_vsx64l;
-static void
-initialize_tdesc_powerpc_isa205_vsx64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa205_vsx64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa205-vsx64l.xml b/gdb/features/rs6000/powerpc-isa205-vsx64l.xml
deleted file mode 100644
index 1d8e8dcdd1..0000000000
--- a/gdb/features/rs6000/powerpc-isa205-vsx64l.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers", AltiVec
-     and VSX vector registers.   -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.c b/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.c
deleted file mode 100644
index e1b933c8fb..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.c
+++ /dev/null
@@ -1,396 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa207-htm-vsx32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa207_htm_vsx32l;
-static void
-initialize_tdesc_powerpc_isa207_htm_vsx32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ppr");
-  tdesc_create_reg (feature, "ppr", 139, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.dscr");
-  tdesc_create_reg (feature, "dscr", 140, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.tar");
-  tdesc_create_reg (feature, "tar", 141, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ebb");
-  tdesc_create_reg (feature, "bescr", 142, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbhr", 143, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbrr", 144, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux.pmu");
-  tdesc_create_reg (feature, "mmcr0", 145, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "mmcr2", 146, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "siar", 147, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sdar", 148, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sier", 149, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.spr");
-  tdesc_create_reg (feature, "tfhar", 150, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "texasr", 151, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "tfiar", 152, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.core");
-  tdesc_create_reg (feature, "cr0", 153, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr1", 154, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr2", 155, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr3", 156, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr4", 157, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr5", 158, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr6", 159, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr7", 160, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr8", 161, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr9", 162, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr10", 163, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr11", 164, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr12", 165, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr13", 166, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr14", 167, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr15", 168, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr16", 169, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr17", 170, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr18", 171, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr19", 172, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr20", 173, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr21", 174, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr22", 175, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr23", 176, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr24", 177, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr25", 178, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr26", 179, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr27", 180, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr28", 181, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr29", 182, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr30", 183, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr31", 184, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "ccr", 185, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cxer", 186, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "clr", 187, 0, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "cctr", 188, 0, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.fpu");
-  tdesc_create_reg (feature, "cf0", 189, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf1", 190, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf2", 191, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf3", 192, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf4", 193, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf5", 194, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf6", 195, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf7", 196, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf8", 197, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf9", 198, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf10", 199, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf11", 200, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf12", 201, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf13", 202, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf14", 203, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf15", 204, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf16", 205, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf17", 206, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf18", 207, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf19", 208, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf20", 209, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf21", 210, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf22", 211, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf23", 212, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf24", 213, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf25", 214, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf26", 215, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf27", 216, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf28", 217, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf29", 218, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf30", 219, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf31", 220, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cfpscr", 221, 0, "float", 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.altivec");
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "cvr0", 222, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr1", 223, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr2", 224, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr3", 225, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr4", 226, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr5", 227, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr6", 228, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr7", 229, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr8", 230, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr9", 231, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr10", 232, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr11", 233, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr12", 234, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr13", 235, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr14", 236, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr15", 237, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr16", 238, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr17", 239, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr18", 240, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr19", 241, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr20", 242, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr21", 243, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr22", 244, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr23", 245, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr24", 246, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr25", 247, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr26", 248, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr27", 249, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr28", 250, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr29", 251, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr30", 252, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr31", 253, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvscr", 254, 0, "vector", 32, "int");
-  tdesc_create_reg (feature, "cvrsave", 255, 0, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.vsx");
-  tdesc_create_reg (feature, "cvs0h", 256, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs1h", 257, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs2h", 258, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs3h", 259, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs4h", 260, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs5h", 261, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs6h", 262, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs7h", 263, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs8h", 264, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs9h", 265, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs10h", 266, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs11h", 267, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs12h", 268, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs13h", 269, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs14h", 270, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs15h", 271, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs16h", 272, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs17h", 273, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs18h", 274, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs19h", 275, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs20h", 276, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs21h", 277, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs22h", 278, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs23h", 279, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs24h", 280, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs25h", 281, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs26h", 282, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs27h", 283, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs28h", 284, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs29h", 285, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs30h", 286, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs31h", 287, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.ppr");
-  tdesc_create_reg (feature, "cppr", 288, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.dscr");
-  tdesc_create_reg (feature, "cdscr", 289, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.tar");
-  tdesc_create_reg (feature, "ctar", 290, 0, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa207_htm_vsx32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml b/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml
deleted file mode 100644
index 083ad1f5f9..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-  <xi:include href="power-ppr.xml"/>
-  <xi:include href="power-dscr.xml"/>
-  <xi:include href="power-tar.xml"/>
-  <xi:include href="power-ebb.xml"/>
-  <xi:include href="power-linux-pmu.xml"/>
-  <xi:include href="power-htm-spr.xml"/>
-  <xi:include href="power-htm-core.xml"/>
-  <xi:include href="power-htm-fpu.xml"/>
-  <xi:include href="power-htm-altivec.xml"/>
-  <xi:include href="power-htm-vsx.xml"/>
-  <xi:include href="power-htm-ppr.xml"/>
-  <xi:include href="power-htm-dscr.xml"/>
-  <xi:include href="power-htm-tar.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.c b/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.c
deleted file mode 100644
index 0d818d0159..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.c
+++ /dev/null
@@ -1,396 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa207-htm-vsx64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa207_htm_vsx64l;
-static void
-initialize_tdesc_powerpc_isa207_htm_vsx64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ppr");
-  tdesc_create_reg (feature, "ppr", 139, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.dscr");
-  tdesc_create_reg (feature, "dscr", 140, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.tar");
-  tdesc_create_reg (feature, "tar", 141, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ebb");
-  tdesc_create_reg (feature, "bescr", 142, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbhr", 143, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbrr", 144, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux.pmu");
-  tdesc_create_reg (feature, "mmcr0", 145, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "mmcr2", 146, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "siar", 147, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sdar", 148, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sier", 149, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.spr");
-  tdesc_create_reg (feature, "tfhar", 150, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "texasr", 151, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "tfiar", 152, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.core");
-  tdesc_create_reg (feature, "cr0", 153, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr1", 154, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr2", 155, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr3", 156, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr4", 157, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr5", 158, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr6", 159, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr7", 160, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr8", 161, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr9", 162, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr10", 163, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr11", 164, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr12", 165, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr13", 166, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr14", 167, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr15", 168, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr16", 169, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr17", 170, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr18", 171, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr19", 172, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr20", 173, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr21", 174, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr22", 175, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr23", 176, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr24", 177, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr25", 178, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr26", 179, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr27", 180, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr28", 181, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr29", 182, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr30", 183, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr31", 184, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ccr", 185, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cxer", 186, 0, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "clr", 187, 0, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "cctr", 188, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.fpu");
-  tdesc_create_reg (feature, "cf0", 189, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf1", 190, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf2", 191, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf3", 192, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf4", 193, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf5", 194, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf6", 195, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf7", 196, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf8", 197, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf9", 198, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf10", 199, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf11", 200, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf12", 201, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf13", 202, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf14", 203, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf15", 204, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf16", 205, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf17", 206, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf18", 207, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf19", 208, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf20", 209, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf21", 210, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf22", 211, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf23", 212, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf24", 213, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf25", 214, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf26", 215, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf27", 216, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf28", 217, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf29", 218, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf30", 219, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cf31", 220, 0, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "cfpscr", 221, 0, "float", 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.altivec");
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "cvr0", 222, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr1", 223, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr2", 224, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr3", 225, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr4", 226, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr5", 227, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr6", 228, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr7", 229, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr8", 230, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr9", 231, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr10", 232, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr11", 233, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr12", 234, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr13", 235, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr14", 236, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr15", 237, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr16", 238, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr17", 239, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr18", 240, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr19", 241, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr20", 242, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr21", 243, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr22", 244, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr23", 245, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr24", 246, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr25", 247, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr26", 248, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr27", 249, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr28", 250, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr29", 251, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr30", 252, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvr31", 253, 0, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "cvscr", 254, 0, "vector", 32, "int");
-  tdesc_create_reg (feature, "cvrsave", 255, 0, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.vsx");
-  tdesc_create_reg (feature, "cvs0h", 256, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs1h", 257, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs2h", 258, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs3h", 259, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs4h", 260, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs5h", 261, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs6h", 262, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs7h", 263, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs8h", 264, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs9h", 265, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs10h", 266, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs11h", 267, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs12h", 268, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs13h", 269, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs14h", 270, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs15h", 271, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs16h", 272, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs17h", 273, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs18h", 274, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs19h", 275, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs20h", 276, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs21h", 277, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs22h", 278, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs23h", 279, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs24h", 280, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs25h", 281, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs26h", 282, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs27h", 283, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs28h", 284, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs29h", 285, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs30h", 286, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cvs31h", 287, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.ppr");
-  tdesc_create_reg (feature, "cppr", 288, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.dscr");
-  tdesc_create_reg (feature, "cdscr", 289, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.htm.tar");
-  tdesc_create_reg (feature, "ctar", 290, 0, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa207_htm_vsx64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml b/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml
deleted file mode 100644
index 36a1450ecb..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-  <xi:include href="power-ppr.xml"/>
-  <xi:include href="power-dscr.xml"/>
-  <xi:include href="power-tar.xml"/>
-  <xi:include href="power-ebb.xml"/>
-  <xi:include href="power-linux-pmu.xml"/>
-  <xi:include href="power-htm-spr.xml"/>
-  <xi:include href="power64-htm-core.xml"/>
-  <xi:include href="power-htm-fpu.xml"/>
-  <xi:include href="power-htm-altivec.xml"/>
-  <xi:include href="power-htm-vsx.xml"/>
-  <xi:include href="power-htm-ppr.xml"/>
-  <xi:include href="power-htm-dscr.xml"/>
-  <xi:include href="power-htm-tar.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa207-vsx32l.c b/gdb/features/rs6000/powerpc-isa207-vsx32l.c
deleted file mode 100644
index 8fe0f5e438..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-vsx32l.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa207-vsx32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa207_vsx32l;
-static void
-initialize_tdesc_powerpc_isa207_vsx32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ppr");
-  tdesc_create_reg (feature, "ppr", 139, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.dscr");
-  tdesc_create_reg (feature, "dscr", 140, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.tar");
-  tdesc_create_reg (feature, "tar", 141, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ebb");
-  tdesc_create_reg (feature, "bescr", 142, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbhr", 143, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbrr", 144, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux.pmu");
-  tdesc_create_reg (feature, "mmcr0", 145, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "mmcr2", 146, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "siar", 147, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sdar", 148, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sier", 149, 0, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa207_vsx32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa207-vsx32l.xml b/gdb/features/rs6000/powerpc-isa207-vsx32l.xml
deleted file mode 100644
index 72aa9346c4..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-vsx32l.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-  <xi:include href="power-ppr.xml"/>
-  <xi:include href="power-dscr.xml"/>
-  <xi:include href="power-tar.xml"/>
-  <xi:include href="power-ebb.xml"/>
-  <xi:include href="power-linux-pmu.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-isa207-vsx64l.c b/gdb/features/rs6000/powerpc-isa207-vsx64l.c
deleted file mode 100644
index 0af1879e10..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-vsx64l.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-isa207-vsx64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_isa207_vsx64l;
-static void
-initialize_tdesc_powerpc_isa207_vsx64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ppr");
-  tdesc_create_reg (feature, "ppr", 139, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.dscr");
-  tdesc_create_reg (feature, "dscr", 140, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.tar");
-  tdesc_create_reg (feature, "tar", 141, 1, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.ebb");
-  tdesc_create_reg (feature, "bescr", 142, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbhr", 143, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "ebbrr", 144, 0, NULL, 64, "uint64");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux.pmu");
-  tdesc_create_reg (feature, "mmcr0", 145, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "mmcr2", 146, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "siar", 147, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sdar", 148, 0, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "sier", 149, 0, NULL, 64, "uint64");
-
-  tdesc_powerpc_isa207_vsx64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-isa207-vsx64l.xml b/gdb/features/rs6000/powerpc-isa207-vsx64l.xml
deleted file mode 100644
index fae5990651..0000000000
--- a/gdb/features/rs6000/powerpc-isa207-vsx64l.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu-isa205.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-  <xi:include href="power-ppr.xml"/>
-  <xi:include href="power-dscr.xml"/>
-  <xi:include href="power-tar.xml"/>
-  <xi:include href="power-ebb.xml"/>
-  <xi:include href="power-linux-pmu.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-vsx32l.c b/gdb/features/rs6000/powerpc-vsx32l.c
deleted file mode 100644
index f08df14f9e..0000000000
--- a/gdb/features/rs6000/powerpc-vsx32l.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-vsx32l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_vsx32l;
-static void
-initialize_tdesc_powerpc_vsx32l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  tdesc_powerpc_vsx32l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-vsx32l.xml b/gdb/features/rs6000/powerpc-vsx32l.xml
deleted file mode 100644
index b547142972..0000000000
--- a/gdb/features/rs6000/powerpc-vsx32l.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers", AltiVec
-     and VSX vector registers.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common</architecture>
-  <xi:include href="power-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-</target>
diff --git a/gdb/features/rs6000/powerpc-vsx64l.c b/gdb/features/rs6000/powerpc-vsx64l.c
deleted file mode 100644
index 1726e6754f..0000000000
--- a/gdb/features/rs6000/powerpc-vsx64l.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: powerpc-vsx64l.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_powerpc_vsx64l;
-static void
-initialize_tdesc_powerpc_vsx64l (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  set_tdesc_architecture (result, bfd_scan_arch ("powerpc:common64"));
-
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.core");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r16", 16, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r17", 17, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r18", 18, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r19", 19, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r20", 20, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r21", 21, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r22", 22, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r23", 23, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r24", 24, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r25", 25, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r26", 26, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r27", 27, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r28", 28, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r29", 29, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r30", 30, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "r31", 31, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "pc", 64, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "msr", 65, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "cr", 66, 1, NULL, 32, "uint32");
-  tdesc_create_reg (feature, "lr", 67, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "ctr", 68, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "xer", 69, 1, NULL, 32, "uint32");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.fpu");
-  tdesc_create_reg (feature, "f0", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f1", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f2", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f3", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f4", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f5", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f6", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f7", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f8", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f9", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f10", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f11", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f12", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f13", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f14", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f15", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f16", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f17", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f18", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f19", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f20", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f21", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f22", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f23", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f24", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f25", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f26", 58, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f27", 59, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f28", 60, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f29", 61, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f30", 62, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "f31", 63, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 70, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.linux");
-  tdesc_create_reg (feature, "orig_r3", 71, 1, NULL, 64, "int");
-  tdesc_create_reg (feature, "trap", 72, 1, NULL, 64, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.altivec");
-  tdesc_type *element_type;
-  element_type = tdesc_named_type (feature, "ieee_single");
-  tdesc_create_vector (feature, "v4f", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int32");
-  tdesc_create_vector (feature, "v4i32", element_type, 4);
-
-  element_type = tdesc_named_type (feature, "int16");
-  tdesc_create_vector (feature, "v8i16", element_type, 8);
-
-  element_type = tdesc_named_type (feature, "int8");
-  tdesc_create_vector (feature, "v16i8", element_type, 16);
-
-  tdesc_type_with_fields *type_with_fields;
-  type_with_fields = tdesc_create_union (feature, "vec128");
-  tdesc_type *field_type;
-  field_type = tdesc_named_type (feature, "uint128");
-  tdesc_add_field (type_with_fields, "uint128", field_type);
-  field_type = tdesc_named_type (feature, "v4f");
-  tdesc_add_field (type_with_fields, "v4_float", field_type);
-  field_type = tdesc_named_type (feature, "v4i32");
-  tdesc_add_field (type_with_fields, "v4_int32", field_type);
-  field_type = tdesc_named_type (feature, "v8i16");
-  tdesc_add_field (type_with_fields, "v8_int16", field_type);
-  field_type = tdesc_named_type (feature, "v16i8");
-  tdesc_add_field (type_with_fields, "v16_int8", field_type);
-
-  tdesc_create_reg (feature, "vr0", 73, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr1", 74, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr2", 75, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr3", 76, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr4", 77, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr5", 78, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr6", 79, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr7", 80, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr8", 81, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr9", 82, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr10", 83, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr11", 84, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr12", 85, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr13", 86, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr14", 87, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr15", 88, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr16", 89, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr17", 90, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr18", 91, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr19", 92, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr20", 93, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr21", 94, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr22", 95, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr23", 96, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr24", 97, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr25", 98, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr26", 99, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr27", 100, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr28", 101, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr29", 102, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr30", 103, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vr31", 104, 1, NULL, 128, "vec128");
-  tdesc_create_reg (feature, "vscr", 105, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "vrsave", 106, 1, "vector", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.power.vsx");
-  tdesc_create_reg (feature, "vs0h", 107, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs1h", 108, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs2h", 109, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs3h", 110, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs4h", 111, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs5h", 112, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs6h", 113, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs7h", 114, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs8h", 115, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs9h", 116, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs10h", 117, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs11h", 118, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs12h", 119, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs13h", 120, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs14h", 121, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs15h", 122, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs16h", 123, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs17h", 124, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs18h", 125, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs19h", 126, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs20h", 127, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs21h", 128, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs22h", 129, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs23h", 130, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs24h", 131, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs25h", 132, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs26h", 133, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs27h", 134, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs28h", 135, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs29h", 136, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs30h", 137, 1, NULL, 64, "uint64");
-  tdesc_create_reg (feature, "vs31h", 138, 1, NULL, 64, "uint64");
-
-  tdesc_powerpc_vsx64l = result;
-}
diff --git a/gdb/features/rs6000/powerpc-vsx64l.xml b/gdb/features/rs6000/powerpc-vsx64l.xml
deleted file mode 100644
index e8a3096664..0000000000
--- a/gdb/features/rs6000/powerpc-vsx64l.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2020 Free Software Foundation, Inc.
-
-     Copying and distribution of this file, with or without modification,
-     are permitted in any medium without royalty provided the copyright
-     notice and this notice are preserved.  -->
-
-<!-- PowerPC UISA - a PPC processor as viewed by user-level code.  A UISA-only
-     view of the PowerPC.  Includes Linux-only special "registers", AltiVec
-     and VSX vector registers.   -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-  <architecture>powerpc:common64</architecture>
-  <xi:include href="power64-core.xml"/>
-  <xi:include href="power-fpu.xml"/>
-  <xi:include href="power64-linux.xml"/>
-  <xi:include href="power-altivec.xml"/>
-  <xi:include href="power-vsx.xml"/>
-</target>
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
index 6be8f022a7..c33db38029 100644
--- a/gdb/ppc-linux-nat.c
+++ b/gdb/ppc-linux-nat.c
@@ -51,7 +51,6 @@
 #include "auxv.h"
 
 #include "arch/ppc-linux-common.h"
-#include "arch/ppc-linux-tdesc.h"
 #include "nat/ppc-linux.h"
 #include "linux-tdep.h"
 
@@ -1944,12 +1943,14 @@ ppc_linux_nat_target::read_description ()
   if (tid == 0)
     tid = inferior_ptid.pid ();
 
+  struct ppc_linux_features features = ppc_linux_no_features;
+
   if (have_ptrace_getsetevrregs)
     {
       struct gdb_evrregset_t evrregset;
 
       if (ptrace (PTRACE_GETEVRREGS, tid, 0, &evrregset) >= 0)
-        return tdesc_powerpc_e500l;
+        features.spe = true;
 
       /* EIO means that the PTRACE_GETEVRREGS request isn't supported.
 	 Anything else needs to be reported.  */
@@ -1957,8 +1958,6 @@ ppc_linux_nat_target::read_description ()
 	perror_with_name (_("Unable to fetch SPE registers"));
     }
 
-  struct ppc_linux_features features = ppc_linux_no_features;
-
   features.wordsize = ppc_linux_target_wordsize (tid);
 
   CORE_ADDR hwcap = linux_get_hwcap (current_top_target ());
@@ -1992,29 +1991,67 @@ ppc_linux_nat_target::read_description ()
 	perror_with_name (_("Unable to fetch AltiVec registers"));
     }
 
-  features.isa205 = ppc_linux_has_isa205 (hwcap);
+  features.fpscr64 = ppc_linux_has_fpscr64 (hwcap);
+
+  if (check_regset (tid, NT_PPC_PPR, PPC_LINUX_SIZEOF_PPRREGSET))
+    features.ppr = true;
 
   if ((hwcap2 & PPC_FEATURE2_DSCR)
-      && check_regset (tid, NT_PPC_PPR, PPC_LINUX_SIZEOF_PPRREGSET)
       && check_regset (tid, NT_PPC_DSCR, PPC_LINUX_SIZEOF_DSCRREGSET))
+    features.dscr = true;
+
+  if (hwcap2 & PPC_FEATURE2_ARCH_2_07)
     {
-      features.ppr_dscr = true;
-      if ((hwcap2 & PPC_FEATURE2_ARCH_2_07)
-	  && (hwcap2 & PPC_FEATURE2_TAR)
-	  && (hwcap2 & PPC_FEATURE2_EBB)
-	  && check_regset (tid, NT_PPC_TAR, PPC_LINUX_SIZEOF_TARREGSET)
-	  && check_regset (tid, NT_PPC_EBB, PPC_LINUX_SIZEOF_EBBREGSET)
-	  && check_regset (tid, NT_PPC_PMU, PPC_LINUX_SIZEOF_PMUREGSET))
-	{
-	  features.isa207 = true;
-	  if ((hwcap2 & PPC_FEATURE2_HTM)
-	      && check_regset (tid, NT_PPC_TM_SPR,
-			       PPC_LINUX_SIZEOF_TM_SPRREGSET))
-	    features.htm = true;
-	}
+       if ((hwcap2 & PPC_FEATURE2_TAR)
+	   && check_regset (tid, NT_PPC_TAR, PPC_LINUX_SIZEOF_TARREGSET))
+	 features.tar = true;
+
+       if ((hwcap2 & PPC_FEATURE2_EBB)
+	   && check_regset (tid, NT_PPC_EBB, PPC_LINUX_SIZEOF_EBBREGSET))
+	 features.ebb = true;
+
+       if (check_regset (tid, NT_PPC_PMU, PPC_LINUX_SIZEOF_PMUREGSET))
+	 features.pmu = true;
+    }
+
+  if (hwcap2 & PPC_FEATURE2_HTM)
+    {
+       if (check_regset (tid, NT_PPC_TM_CVMX, PPC_LINUX_SIZEOF_CVMXREGSET))
+	 features.htm.altivec = true;
+
+       if (features.wordsize == 8)
+	 {
+	    if (check_regset (tid, NT_PPC_TM_CGPR,
+		PPC64_LINUX_SIZEOF_CGPRREGSET))
+	      features.htm.core = true;
+	 }
+       else if (features.wordsize == 4)
+	 {
+	    if (check_regset (tid, NT_PPC_TM_CGPR,
+		PPC32_LINUX_SIZEOF_CGPRREGSET))
+	      features.htm.core = true;
+	 }
+
+       if (check_regset (tid, NT_PPC_TM_CDSCR, PPC_LINUX_SIZEOF_CDSCRREGSET))
+	 features.htm.dscr = true;
+
+       if (check_regset (tid, NT_PPC_TM_CFPR, PPC_LINUX_SIZEOF_CFPRREGSET))
+	 features.htm.fpu = true;
+
+       if (check_regset (tid, NT_PPC_TM_CPPR, PPC_LINUX_SIZEOF_CPPRREGSET))
+	 features.htm.ppr = true;
+
+       if (check_regset (tid, NT_PPC_TM_SPR, PPC_LINUX_SIZEOF_TM_SPRREGSET))
+	 features.htm.spr = true;
+
+       if (check_regset (tid, NT_PPC_TM_CTAR, PPC_LINUX_SIZEOF_CTARREGSET))
+	 features.htm.tar = true;
+
+       if (check_regset (tid, NT_PPC_TM_CVSX, PPC_LINUX_SIZEOF_CVSXREGSET))
+	 features.htm.vsx = true;
     }
 
-  return ppc_linux_match_description (features);
+  return ppc_linux_create_target_description (features);
 }
 
 /* Routines for installing hardware watchpoints and breakpoints.  When
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 4c4bdacf4d..4a38ac5976 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -37,7 +37,7 @@
 #include "ppc64-tdep.h"
 #include "ppc-linux-tdep.h"
 #include "arch/ppc-linux-common.h"
-#include "arch/ppc-linux-tdesc.h"
+#include "target-descriptions.h"
 #include "glibc-tdep.h"
 #include "trad-frame.h"
 #include "frame-unwind.h"
@@ -62,26 +62,6 @@
 #include <ctype.h>
 #include "elf-bfd.h"
 
-#include "features/rs6000/powerpc-32l.c"
-#include "features/rs6000/powerpc-altivec32l.c"
-#include "features/rs6000/powerpc-vsx32l.c"
-#include "features/rs6000/powerpc-isa205-32l.c"
-#include "features/rs6000/powerpc-isa205-altivec32l.c"
-#include "features/rs6000/powerpc-isa205-vsx32l.c"
-#include "features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c"
-#include "features/rs6000/powerpc-isa207-vsx32l.c"
-#include "features/rs6000/powerpc-isa207-htm-vsx32l.c"
-#include "features/rs6000/powerpc-64l.c"
-#include "features/rs6000/powerpc-altivec64l.c"
-#include "features/rs6000/powerpc-vsx64l.c"
-#include "features/rs6000/powerpc-isa205-64l.c"
-#include "features/rs6000/powerpc-isa205-altivec64l.c"
-#include "features/rs6000/powerpc-isa205-vsx64l.c"
-#include "features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c"
-#include "features/rs6000/powerpc-isa207-vsx64l.c"
-#include "features/rs6000/powerpc-isa207-htm-vsx64l.c"
-#include "features/rs6000/powerpc-e500l.c"
-
 /* Shared library operations for PowerPC-Linux.  */
 static struct target_so_ops powerpc_so_ops;
 
@@ -1563,7 +1543,15 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
   asection *dscr = bfd_get_section_by_name (abfd, ".reg-ppc-dscr");
   asection *tar = bfd_get_section_by_name (abfd, ".reg-ppc-tar");
   asection *pmu = bfd_get_section_by_name (abfd, ".reg-ppc-pmu");
+  asection *ebb = bfd_get_section_by_name (abfd, ".reg-ppc-ebb");
+  asection *htmaltivec = bfd_get_section_by_name (abfd, ".reg-ppc-tm-cvmx");
+  asection *htmcore = bfd_get_section_by_name (abfd, ".reg-ppc-tm-cgpr");
+  asection *htmdscr = bfd_get_section_by_name (abfd, ".reg-ppc-tm-cdscr");
+  asection *htmfpu = bfd_get_section_by_name (abfd, ".reg-ppc-tm-cfpr");
+  asection *htmppr = bfd_get_section_by_name (abfd, ".reg-ppc-tm-cppr");
   asection *htmspr = bfd_get_section_by_name (abfd, ".reg-ppc-tm-spr");
+  asection *htmtar = bfd_get_section_by_name (abfd, ".reg-ppc-tm-ctar");
+  asection *htmvsx = bfd_get_section_by_name (abfd, ".reg-ppc-tm-cvsx");
 
   if (! section)
     return NULL;
@@ -1588,25 +1576,48 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
 
   CORE_ADDR hwcap = linux_get_hwcap (target);
 
-  features.isa205 = ppc_linux_has_isa205 (hwcap);
+  features.fpscr64 = ppc_linux_has_fpscr64 (hwcap);
 
-  if (ppr && dscr)
-    {
-      features.ppr_dscr = true;
+  if (ppr)
+    features.ppr = true;
 
-      /* We don't require the EBB note section to be present in the
-	 core file to select isa207 because these registers could have
-	 been unavailable when the core file was created.  They will
-	 be in the tdep but will show as unavailable.  */
-      if (tar && pmu)
-	{
-	  features.isa207 = true;
-	  if (htmspr)
-	    features.htm = true;
-	}
-    }
+  if (dscr)
+    features.dscr = true;
+
+  if (tar)
+    features.tar = true;
+
+  if (pmu)
+    features.pmu = true;
+
+  if (ebb)
+    features.ebb = true;
+
+  if (htmaltivec)
+    features.htm.altivec = true;
 
-  return ppc_linux_match_description (features);
+  if (htmcore)
+    features.htm.core = true;
+
+  if (htmdscr)
+    features.htm.dscr = true;
+
+  if (htmfpu)
+    features.htm.fpu = true;
+
+  if (htmppr)
+    features.htm.ppr = true;
+
+  if (htmspr)
+    features.htm.spr = true;
+
+  if (htmtar)
+    features.htm.tar = true;
+
+  if (htmvsx)
+    features.htm.vsx = true;
+
+  return ppc_linux_create_target_description (features);
 }
 
 
@@ -2167,25 +2178,4 @@ _initialize_ppc_linux_tdep ()
                          ppc_linux_init_abi);
   gdbarch_register_osabi (bfd_arch_rs6000, bfd_mach_rs6k, GDB_OSABI_LINUX,
                          ppc_linux_init_abi);
-
-  /* Initialize the Linux target descriptions.  */
-  initialize_tdesc_powerpc_32l ();
-  initialize_tdesc_powerpc_altivec32l ();
-  initialize_tdesc_powerpc_vsx32l ();
-  initialize_tdesc_powerpc_isa205_32l ();
-  initialize_tdesc_powerpc_isa205_altivec32l ();
-  initialize_tdesc_powerpc_isa205_vsx32l ();
-  initialize_tdesc_powerpc_isa205_ppr_dscr_vsx32l ();
-  initialize_tdesc_powerpc_isa207_vsx32l ();
-  initialize_tdesc_powerpc_isa207_htm_vsx32l ();
-  initialize_tdesc_powerpc_64l ();
-  initialize_tdesc_powerpc_altivec64l ();
-  initialize_tdesc_powerpc_vsx64l ();
-  initialize_tdesc_powerpc_isa205_64l ();
-  initialize_tdesc_powerpc_isa205_altivec64l ();
-  initialize_tdesc_powerpc_isa205_vsx64l ();
-  initialize_tdesc_powerpc_isa205_ppr_dscr_vsx64l ();
-  initialize_tdesc_powerpc_isa207_vsx64l ();
-  initialize_tdesc_powerpc_isa207_htm_vsx64l ();
-  initialize_tdesc_powerpc_e500l ();
 }
diff --git a/gdb/regformats/rs6000/powerpc-32l.dat b/gdb/regformats/rs6000/powerpc-32l.dat
deleted file mode 100644
index 2c8ccbe49b..0000000000
--- a/gdb/regformats/rs6000/powerpc-32l.dat
+++ /dev/null
@@ -1,78 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-32l.xml
-name:powerpc_32l
-xmltarget:powerpc-32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-32:fpscr
-32:orig_r3
-32:trap
diff --git a/gdb/regformats/rs6000/powerpc-64l.dat b/gdb/regformats/rs6000/powerpc-64l.dat
deleted file mode 100644
index 10f43b1624..0000000000
--- a/gdb/regformats/rs6000/powerpc-64l.dat
+++ /dev/null
@@ -1,78 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-64l.xml
-name:powerpc_64l
-xmltarget:powerpc-64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-32:fpscr
-64:orig_r3
-64:trap
diff --git a/gdb/regformats/rs6000/powerpc-altivec32l.dat b/gdb/regformats/rs6000/powerpc-altivec32l.dat
deleted file mode 100644
index c792a2f961..0000000000
--- a/gdb/regformats/rs6000/powerpc-altivec32l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-altivec32l.xml
-name:powerpc_altivec32l
-xmltarget:powerpc-altivec32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-32:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/regformats/rs6000/powerpc-altivec64l.dat b/gdb/regformats/rs6000/powerpc-altivec64l.dat
deleted file mode 100644
index a806141b6e..0000000000
--- a/gdb/regformats/rs6000/powerpc-altivec64l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-altivec64l.xml
-name:powerpc_altivec64l
-xmltarget:powerpc-altivec64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-32:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/regformats/rs6000/powerpc-e500l.dat b/gdb/regformats/rs6000/powerpc-e500l.dat
deleted file mode 100644
index 750eafed7c..0000000000
--- a/gdb/regformats/rs6000/powerpc-e500l.dat
+++ /dev/null
@@ -1,80 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-e500l.xml
-name:powerpc_e500l
-xmltarget:powerpc-e500l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-32:ev0h
-32:ev1h
-32:ev2h
-32:ev3h
-32:ev4h
-32:ev5h
-32:ev6h
-32:ev7h
-32:ev8h
-32:ev9h
-32:ev10h
-32:ev11h
-32:ev12h
-32:ev13h
-32:ev14h
-32:ev15h
-32:ev16h
-32:ev17h
-32:ev18h
-32:ev19h
-32:ev20h
-32:ev21h
-32:ev22h
-32:ev23h
-32:ev24h
-32:ev25h
-32:ev26h
-32:ev27h
-32:ev28h
-32:ev29h
-32:ev30h
-32:ev31h
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-0:
-32:orig_r3
-32:trap
-64:acc
-32:spefscr
diff --git a/gdb/regformats/rs6000/powerpc-isa205-32l.dat b/gdb/regformats/rs6000/powerpc-isa205-32l.dat
deleted file mode 100644
index 7227d06c97..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-32l.dat
+++ /dev/null
@@ -1,78 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-32l.xml
-name:powerpc_isa205_32l
-xmltarget:powerpc-isa205-32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-64:fpscr
-32:orig_r3
-32:trap
diff --git a/gdb/regformats/rs6000/powerpc-isa205-64l.dat b/gdb/regformats/rs6000/powerpc-isa205-64l.dat
deleted file mode 100644
index 13a72c7eb8..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-64l.dat
+++ /dev/null
@@ -1,78 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-64l.xml
-name:powerpc_isa205_64l
-xmltarget:powerpc-isa205-64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-64:fpscr
-64:orig_r3
-64:trap
diff --git a/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat b/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
deleted file mode 100644
index 051724c613..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-altivec32l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-altivec32l.xml
-name:powerpc_isa205_altivec32l
-xmltarget:powerpc-isa205-altivec32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-64:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat b/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
deleted file mode 100644
index 867e821351..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-altivec64l.dat
+++ /dev/null
@@ -1,112 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-altivec64l.xml
-name:powerpc_isa205_altivec64l
-xmltarget:powerpc-isa205-altivec64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-64:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
diff --git a/gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat b/gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat
deleted file mode 100644
index 31a7d02e95..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat
+++ /dev/null
@@ -1,146 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
-name:powerpc_isa205_ppr_dscr_vsx32l
-xmltarget:powerpc-isa205-ppr-dscr-vsx32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-64:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
-64:ppr
-64:dscr
diff --git a/gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat b/gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat
deleted file mode 100644
index 74c8feb3ee..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat
+++ /dev/null
@@ -1,146 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
-name:powerpc_isa205_ppr_dscr_vsx64l
-xmltarget:powerpc-isa205-ppr-dscr-vsx64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-64:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
-64:ppr
-64:dscr
diff --git a/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat b/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
deleted file mode 100644
index fa05cae859..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-vsx32l.dat
+++ /dev/null
@@ -1,144 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-vsx32l.xml
-name:powerpc_isa205_vsx32l
-xmltarget:powerpc-isa205-vsx32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-64:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
diff --git a/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat b/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
deleted file mode 100644
index 75bd4539ad..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa205-vsx64l.dat
+++ /dev/null
@@ -1,144 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa205-vsx64l.xml
-name:powerpc_isa205_vsx64l
-xmltarget:powerpc-isa205-vsx64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-64:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
diff --git a/gdb/regformats/rs6000/powerpc-isa207-htm-vsx32l.dat b/gdb/regformats/rs6000/powerpc-isa207-htm-vsx32l.dat
deleted file mode 100644
index c19416db86..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa207-htm-vsx32l.dat
+++ /dev/null
@@ -1,296 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa207-htm-vsx32l.xml
-name:powerpc_isa207_htm_vsx32l
-xmltarget:powerpc-isa207-htm-vsx32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-64:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
-64:ppr
-64:dscr
-64:tar
-64:bescr
-64:ebbhr
-64:ebbrr
-64:mmcr0
-64:mmcr2
-64:siar
-64:sdar
-64:sier
-64:tfhar
-64:texasr
-64:tfiar
-32:cr0
-32:cr1
-32:cr2
-32:cr3
-32:cr4
-32:cr5
-32:cr6
-32:cr7
-32:cr8
-32:cr9
-32:cr10
-32:cr11
-32:cr12
-32:cr13
-32:cr14
-32:cr15
-32:cr16
-32:cr17
-32:cr18
-32:cr19
-32:cr20
-32:cr21
-32:cr22
-32:cr23
-32:cr24
-32:cr25
-32:cr26
-32:cr27
-32:cr28
-32:cr29
-32:cr30
-32:cr31
-32:ccr
-32:cxer
-32:clr
-32:cctr
-64:cf0
-64:cf1
-64:cf2
-64:cf3
-64:cf4
-64:cf5
-64:cf6
-64:cf7
-64:cf8
-64:cf9
-64:cf10
-64:cf11
-64:cf12
-64:cf13
-64:cf14
-64:cf15
-64:cf16
-64:cf17
-64:cf18
-64:cf19
-64:cf20
-64:cf21
-64:cf22
-64:cf23
-64:cf24
-64:cf25
-64:cf26
-64:cf27
-64:cf28
-64:cf29
-64:cf30
-64:cf31
-64:cfpscr
-128:cvr0
-128:cvr1
-128:cvr2
-128:cvr3
-128:cvr4
-128:cvr5
-128:cvr6
-128:cvr7
-128:cvr8
-128:cvr9
-128:cvr10
-128:cvr11
-128:cvr12
-128:cvr13
-128:cvr14
-128:cvr15
-128:cvr16
-128:cvr17
-128:cvr18
-128:cvr19
-128:cvr20
-128:cvr21
-128:cvr22
-128:cvr23
-128:cvr24
-128:cvr25
-128:cvr26
-128:cvr27
-128:cvr28
-128:cvr29
-128:cvr30
-128:cvr31
-32:cvscr
-32:cvrsave
-64:cvs0h
-64:cvs1h
-64:cvs2h
-64:cvs3h
-64:cvs4h
-64:cvs5h
-64:cvs6h
-64:cvs7h
-64:cvs8h
-64:cvs9h
-64:cvs10h
-64:cvs11h
-64:cvs12h
-64:cvs13h
-64:cvs14h
-64:cvs15h
-64:cvs16h
-64:cvs17h
-64:cvs18h
-64:cvs19h
-64:cvs20h
-64:cvs21h
-64:cvs22h
-64:cvs23h
-64:cvs24h
-64:cvs25h
-64:cvs26h
-64:cvs27h
-64:cvs28h
-64:cvs29h
-64:cvs30h
-64:cvs31h
-64:cppr
-64:cdscr
-64:ctar
diff --git a/gdb/regformats/rs6000/powerpc-isa207-htm-vsx64l.dat b/gdb/regformats/rs6000/powerpc-isa207-htm-vsx64l.dat
deleted file mode 100644
index 38359959fd..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa207-htm-vsx64l.dat
+++ /dev/null
@@ -1,296 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa207-htm-vsx64l.xml
-name:powerpc_isa207_htm_vsx64l
-xmltarget:powerpc-isa207-htm-vsx64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-64:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
-64:ppr
-64:dscr
-64:tar
-64:bescr
-64:ebbhr
-64:ebbrr
-64:mmcr0
-64:mmcr2
-64:siar
-64:sdar
-64:sier
-64:tfhar
-64:texasr
-64:tfiar
-64:cr0
-64:cr1
-64:cr2
-64:cr3
-64:cr4
-64:cr5
-64:cr6
-64:cr7
-64:cr8
-64:cr9
-64:cr10
-64:cr11
-64:cr12
-64:cr13
-64:cr14
-64:cr15
-64:cr16
-64:cr17
-64:cr18
-64:cr19
-64:cr20
-64:cr21
-64:cr22
-64:cr23
-64:cr24
-64:cr25
-64:cr26
-64:cr27
-64:cr28
-64:cr29
-64:cr30
-64:cr31
-32:ccr
-32:cxer
-64:clr
-64:cctr
-64:cf0
-64:cf1
-64:cf2
-64:cf3
-64:cf4
-64:cf5
-64:cf6
-64:cf7
-64:cf8
-64:cf9
-64:cf10
-64:cf11
-64:cf12
-64:cf13
-64:cf14
-64:cf15
-64:cf16
-64:cf17
-64:cf18
-64:cf19
-64:cf20
-64:cf21
-64:cf22
-64:cf23
-64:cf24
-64:cf25
-64:cf26
-64:cf27
-64:cf28
-64:cf29
-64:cf30
-64:cf31
-64:cfpscr
-128:cvr0
-128:cvr1
-128:cvr2
-128:cvr3
-128:cvr4
-128:cvr5
-128:cvr6
-128:cvr7
-128:cvr8
-128:cvr9
-128:cvr10
-128:cvr11
-128:cvr12
-128:cvr13
-128:cvr14
-128:cvr15
-128:cvr16
-128:cvr17
-128:cvr18
-128:cvr19
-128:cvr20
-128:cvr21
-128:cvr22
-128:cvr23
-128:cvr24
-128:cvr25
-128:cvr26
-128:cvr27
-128:cvr28
-128:cvr29
-128:cvr30
-128:cvr31
-32:cvscr
-32:cvrsave
-64:cvs0h
-64:cvs1h
-64:cvs2h
-64:cvs3h
-64:cvs4h
-64:cvs5h
-64:cvs6h
-64:cvs7h
-64:cvs8h
-64:cvs9h
-64:cvs10h
-64:cvs11h
-64:cvs12h
-64:cvs13h
-64:cvs14h
-64:cvs15h
-64:cvs16h
-64:cvs17h
-64:cvs18h
-64:cvs19h
-64:cvs20h
-64:cvs21h
-64:cvs22h
-64:cvs23h
-64:cvs24h
-64:cvs25h
-64:cvs26h
-64:cvs27h
-64:cvs28h
-64:cvs29h
-64:cvs30h
-64:cvs31h
-64:cppr
-64:cdscr
-64:ctar
diff --git a/gdb/regformats/rs6000/powerpc-isa207-vsx32l.dat b/gdb/regformats/rs6000/powerpc-isa207-vsx32l.dat
deleted file mode 100644
index 0718d72d93..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa207-vsx32l.dat
+++ /dev/null
@@ -1,155 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa207-vsx32l.xml
-name:powerpc_isa207_vsx32l
-xmltarget:powerpc-isa207-vsx32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-64:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
-64:ppr
-64:dscr
-64:tar
-64:bescr
-64:ebbhr
-64:ebbrr
-64:mmcr0
-64:mmcr2
-64:siar
-64:sdar
-64:sier
diff --git a/gdb/regformats/rs6000/powerpc-isa207-vsx64l.dat b/gdb/regformats/rs6000/powerpc-isa207-vsx64l.dat
deleted file mode 100644
index 510c6c87da..0000000000
--- a/gdb/regformats/rs6000/powerpc-isa207-vsx64l.dat
+++ /dev/null
@@ -1,155 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-isa207-vsx64l.xml
-name:powerpc_isa207_vsx64l
-xmltarget:powerpc-isa207-vsx64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-64:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
-64:ppr
-64:dscr
-64:tar
-64:bescr
-64:ebbhr
-64:ebbrr
-64:mmcr0
-64:mmcr2
-64:siar
-64:sdar
-64:sier
diff --git a/gdb/regformats/rs6000/powerpc-vsx32l.dat b/gdb/regformats/rs6000/powerpc-vsx32l.dat
deleted file mode 100644
index 6db3e38d5f..0000000000
--- a/gdb/regformats/rs6000/powerpc-vsx32l.dat
+++ /dev/null
@@ -1,144 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-vsx32l.xml
-name:powerpc_vsx32l
-xmltarget:powerpc-vsx32l.xml
-expedite:r1,pc
-32:r0
-32:r1
-32:r2
-32:r3
-32:r4
-32:r5
-32:r6
-32:r7
-32:r8
-32:r9
-32:r10
-32:r11
-32:r12
-32:r13
-32:r14
-32:r15
-32:r16
-32:r17
-32:r18
-32:r19
-32:r20
-32:r21
-32:r22
-32:r23
-32:r24
-32:r25
-32:r26
-32:r27
-32:r28
-32:r29
-32:r30
-32:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-32:pc
-32:msr
-32:cr
-32:lr
-32:ctr
-32:xer
-32:fpscr
-32:orig_r3
-32:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
diff --git a/gdb/regformats/rs6000/powerpc-vsx64l.dat b/gdb/regformats/rs6000/powerpc-vsx64l.dat
deleted file mode 100644
index bc0a45512c..0000000000
--- a/gdb/regformats/rs6000/powerpc-vsx64l.dat
+++ /dev/null
@@ -1,144 +0,0 @@
-# THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: rs6000/powerpc-vsx64l.xml
-name:powerpc_vsx64l
-xmltarget:powerpc-vsx64l.xml
-expedite:r1,pc
-64:r0
-64:r1
-64:r2
-64:r3
-64:r4
-64:r5
-64:r6
-64:r7
-64:r8
-64:r9
-64:r10
-64:r11
-64:r12
-64:r13
-64:r14
-64:r15
-64:r16
-64:r17
-64:r18
-64:r19
-64:r20
-64:r21
-64:r22
-64:r23
-64:r24
-64:r25
-64:r26
-64:r27
-64:r28
-64:r29
-64:r30
-64:r31
-64:f0
-64:f1
-64:f2
-64:f3
-64:f4
-64:f5
-64:f6
-64:f7
-64:f8
-64:f9
-64:f10
-64:f11
-64:f12
-64:f13
-64:f14
-64:f15
-64:f16
-64:f17
-64:f18
-64:f19
-64:f20
-64:f21
-64:f22
-64:f23
-64:f24
-64:f25
-64:f26
-64:f27
-64:f28
-64:f29
-64:f30
-64:f31
-64:pc
-64:msr
-32:cr
-64:lr
-64:ctr
-32:xer
-32:fpscr
-64:orig_r3
-64:trap
-128:vr0
-128:vr1
-128:vr2
-128:vr3
-128:vr4
-128:vr5
-128:vr6
-128:vr7
-128:vr8
-128:vr9
-128:vr10
-128:vr11
-128:vr12
-128:vr13
-128:vr14
-128:vr15
-128:vr16
-128:vr17
-128:vr18
-128:vr19
-128:vr20
-128:vr21
-128:vr22
-128:vr23
-128:vr24
-128:vr25
-128:vr26
-128:vr27
-128:vr28
-128:vr29
-128:vr30
-128:vr31
-32:vscr
-32:vrsave
-64:vs0h
-64:vs1h
-64:vs2h
-64:vs3h
-64:vs4h
-64:vs5h
-64:vs6h
-64:vs7h
-64:vs8h
-64:vs9h
-64:vs10h
-64:vs11h
-64:vs12h
-64:vs13h
-64:vs14h
-64:vs15h
-64:vs16h
-64:vs17h
-64:vs18h
-64:vs19h
-64:vs20h
-64:vs21h
-64:vs22h
-64:vs23h
-64:vs24h
-64:vs25h
-64:vs26h
-64:vs27h
-64:vs28h
-64:vs29h
-64:vs30h
-64:vs31h
diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c
index 20a3a640f4..b6a80edbbb 100644
--- a/gdb/target-descriptions.c
+++ b/gdb/target-descriptions.c
@@ -1698,7 +1698,8 @@ maint_print_c_tdesc_cmd (const char *args, int from_tty)
       || startswith (filename_after_features.c_str (), "tic6x-")
       || startswith (filename_after_features.c_str (), "aarch64")
       || startswith (filename_after_features.c_str (), "arm/")
-      || startswith (filename_after_features.c_str (), "arc/"))
+      || startswith (filename_after_features.c_str (), "arc/")
+      || startswith (filename_after_features.c_str (), "rs6000/"))
     {
       print_c_feature v (filename_after_features);
 
diff --git a/gdbserver/configure.srv b/gdbserver/configure.srv
index 9a027e44af..b76e40dce6 100644
--- a/gdbserver/configure.srv
+++ b/gdbserver/configure.srv
@@ -27,8 +27,6 @@
 # Default hostio_last_error implementation
 srv_hostio_err_objs="hostio-errno.o"
 
-ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-isa205-ppr-dscr-vsx32l-ipa.o powerpc-isa207-vsx32l-ipa.o powerpc-isa207-htm-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o powerpc-isa205-ppr-dscr-vsx64l-ipa.o powerpc-isa207-vsx64l-ipa.o powerpc-isa207-htm-vsx64l-ipa.o"
-
 # Linux object files.  This is so we don't have to repeat
 # these files over and over again.
 srv_linux_obj="linux-low.o nat/linux-osdata.o nat/linux-procfs.o nat/linux-ptrace.o nat/linux-waitpid.o nat/linux-personality.o nat/linux-namespaces.o fork-child.o nat/fork-inferior.o"
@@ -205,43 +203,16 @@ case "${gdbserver_host}" in
 			srv_linux_usrregs=yes
 			srv_linux_thread_db=yes
 			;;
-  powerpc*-*-linux*)	srv_regobj="powerpc-32l.o"
-			srv_regobj="${srv_regobj} powerpc-altivec32l.o"
-			srv_regobj="${srv_regobj} powerpc-vsx32l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-32l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-altivec32l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-vsx32l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-ppr-dscr-vsx32l.o"
-			srv_regobj="${srv_regobj} powerpc-isa207-vsx32l.o"
-			srv_regobj="${srv_regobj} powerpc-isa207-htm-vsx32l.o"
-			srv_regobj="${srv_regobj} powerpc-e500l.o"
-			srv_regobj="${srv_regobj} powerpc-64l.o"
-			srv_regobj="${srv_regobj} powerpc-altivec64l.o"
-			srv_regobj="${srv_regobj} powerpc-vsx64l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-64l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-altivec64l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-vsx64l.o"
-			srv_regobj="${srv_regobj} powerpc-isa205-ppr-dscr-vsx64l.o"
-			srv_regobj="${srv_regobj} powerpc-isa207-vsx64l.o"
-			srv_regobj="${srv_regobj} powerpc-isa207-htm-vsx64l.o"
-			srv_tgtobj="$srv_linux_obj linux-ppc-low.o"
+  powerpc*-*-linux*)	srv_tgtobj="$srv_linux_obj linux-ppc-low.o"
 			srv_tgtobj="${srv_tgtobj} nat/ppc-linux.o"
 			srv_tgtobj="${srv_tgtobj} arch/ppc-linux-common.o"
-			srv_xmlfiles="rs6000/powerpc-32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-vsx32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa207-vsx32l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa207-htm-vsx32l.xml"
+			srv_tgtobj="${srv_tgtobj} linux-ppc-tdesc.o"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-altivec.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-vsx.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-core.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-linux.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu-isa205.xml"
+			srv_xmlfiles="${srv_xmlfiles} rs6000/power-fpu-fpscr64.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-dscr.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-ppr.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-tar.xml"
@@ -255,24 +226,16 @@ case "${gdbserver_host}" in
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-htm-ppr.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-htm-dscr.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-htm-tar.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-e500l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power-spe.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-altivec64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-vsx64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-altivec64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-vsx64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa207-vsx64l.xml"
-			srv_xmlfiles="${srv_xmlfiles} rs6000/powerpc-isa207-htm-vsx64l.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power64-core.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power64-linux.xml"
 			srv_xmlfiles="${srv_xmlfiles} rs6000/power64-htm-core.xml"
 			srv_linux_usrregs=yes
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
-			ipa_obj="${ipa_ppc_linux_regobj} linux-ppc-ipa.o"
+			ipa_obj="linux-ppc-ipa.o"
+			ipa_obj="${ipa_obj} linux-ppc-tdesc-ipa.o"
+			ipa_obj="${ipa_obj} arch/ppc-linux-common-ipa.o"
 			;;
   powerpc-*-lynxos*)	srv_regobj="powerpc-32.o"
 			srv_tgtobj="lynx-low.o lynx-ppc-low.o"
diff --git a/gdbserver/linux-ppc-ipa.cc b/gdbserver/linux-ppc-ipa.cc
index 42d668f7d3..6414b22829 100644
--- a/gdbserver/linux-ppc-ipa.cc
+++ b/gdbserver/linux-ppc-ipa.cc
@@ -21,12 +21,12 @@
 #include "server.h"
 #include <sys/mman.h>
 #include "tracepoint.h"
-#include "arch/ppc-linux-tdesc.h"
-#include "linux-ppc-tdesc-init.h"
 #include <elf.h>
 #ifdef HAVE_GETAUXVAL
 #include <sys/auxv.h>
 #endif
+#include "arch/ppc-linux-common.h"
+#include "linux-ppc-tdesc.h"
 
 /* These macros define the position of registers in the buffer collected
    by the fast tracepoint jump pad.  */
@@ -174,86 +174,20 @@ alloc_jump_pad_buffer (size_t size)
 const struct target_desc *
 get_ipa_tdesc (int idx)
 {
-  switch (idx)
+  if (idx >= PPC_TDESC_LAST)
     {
-#ifdef __powerpc64__
-    case PPC_TDESC_BASE:
-      return tdesc_powerpc_64l;
-    case PPC_TDESC_ALTIVEC:
-      return tdesc_powerpc_altivec64l;
-    case PPC_TDESC_VSX:
-      return tdesc_powerpc_vsx64l;
-    case PPC_TDESC_ISA205:
-      return tdesc_powerpc_isa205_64l;
-    case PPC_TDESC_ISA205_ALTIVEC:
-      return tdesc_powerpc_isa205_altivec64l;
-    case PPC_TDESC_ISA205_VSX:
-      return tdesc_powerpc_isa205_vsx64l;
-    case PPC_TDESC_ISA205_PPR_DSCR_VSX:
-      return tdesc_powerpc_isa205_ppr_dscr_vsx64l;
-    case PPC_TDESC_ISA207_VSX:
-      return tdesc_powerpc_isa207_vsx64l;
-    case PPC_TDESC_ISA207_HTM_VSX:
-      return tdesc_powerpc_isa207_htm_vsx64l;
-#else
-    case PPC_TDESC_BASE:
-      return tdesc_powerpc_32l;
-    case PPC_TDESC_ALTIVEC:
-      return tdesc_powerpc_altivec32l;
-    case PPC_TDESC_VSX:
-      return tdesc_powerpc_vsx32l;
-    case PPC_TDESC_ISA205:
-      return tdesc_powerpc_isa205_32l;
-    case PPC_TDESC_ISA205_ALTIVEC:
-      return tdesc_powerpc_isa205_altivec32l;
-    case PPC_TDESC_ISA205_VSX:
-      return tdesc_powerpc_isa205_vsx32l;
-    case PPC_TDESC_ISA205_PPR_DSCR_VSX:
-      return tdesc_powerpc_isa205_ppr_dscr_vsx32l;
-    case PPC_TDESC_ISA207_VSX:
-      return tdesc_powerpc_isa207_vsx32l;
-    case PPC_TDESC_ISA207_HTM_VSX:
-      return tdesc_powerpc_isa207_htm_vsx32l;
-    case PPC_TDESC_E500:
-      return tdesc_powerpc_e500l;
-#endif
-    default:
       internal_error (__FILE__, __LINE__,
-                     "unknown ipa tdesc index: %d", idx);
-#ifdef __powerpc64__
-      return tdesc_powerpc_64l;
-#else
-      return tdesc_powerpc_32l;
-#endif
+		      "unknown ipa tdesc index: %d", idx); 
     }
+  
+  return ppc_linux_read_description (idx_to_ppc_features(idx));
 }
 
-
 /* Initialize ipa_tdesc and others.  */
 
 void
 initialize_low_tracepoint (void)
 {
-#ifdef __powerpc64__
-  init_registers_powerpc_64l ();
-  init_registers_powerpc_altivec64l ();
-  init_registers_powerpc_vsx64l ();
-  init_registers_powerpc_isa205_64l ();
-  init_registers_powerpc_isa205_altivec64l ();
-  init_registers_powerpc_isa205_vsx64l ();
-  init_registers_powerpc_isa205_ppr_dscr_vsx64l ();
-  init_registers_powerpc_isa207_vsx64l ();
-  init_registers_powerpc_isa207_htm_vsx64l ();
-#else
-  init_registers_powerpc_32l ();
-  init_registers_powerpc_altivec32l ();
-  init_registers_powerpc_vsx32l ();
-  init_registers_powerpc_isa205_32l ();
-  init_registers_powerpc_isa205_altivec32l ();
-  init_registers_powerpc_isa205_vsx32l ();
-  init_registers_powerpc_isa205_ppr_dscr_vsx32l ();
-  init_registers_powerpc_isa207_vsx32l ();
-  init_registers_powerpc_isa207_htm_vsx32l ();
-  init_registers_powerpc_e500l ();
-#endif
+  for (auto i = 0; i < PPC_TDESC_LAST; i++)
+     ppc_linux_read_description (idx_to_ppc_features(i));
 }
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
index 337d555aee..fb44531f70 100644
--- a/gdbserver/linux-ppc-low.cc
+++ b/gdbserver/linux-ppc-low.cc
@@ -25,13 +25,12 @@
 #include <elf.h>
 #include <asm/ptrace.h>
 
-#include "arch/ppc-linux-common.h"
-#include "arch/ppc-linux-tdesc.h"
+#include "linux-ppc-tdesc.h"
 #include "nat/ppc-linux.h"
 #include "nat/linux-ptrace.h"
-#include "linux-ppc-tdesc-init.h"
 #include "ax.h"
 #include "tracepoint.h"
+#include "arch/ppc-linux-common.h"
 
 #define PPC_FIELD(value, from, len) \
 	(((value) >> (32 - (from) - (len))) & ((1 << (len)) - 1))
@@ -885,56 +884,94 @@ ppc_target::low_arch_setup ()
 
   features.wordsize = ppc_linux_target_wordsize (tid);
 
-  if (features.wordsize == 4)
-      tdesc = tdesc_powerpc_32l;
-  else
-      tdesc = tdesc_powerpc_64l;
-
-  current_process ()->tdesc = tdesc;
+  current_process ()->tdesc = ppc_linux_read_description (features);
 
   /* The value of current_process ()->tdesc needs to be set for this
      call.  */
   ppc_hwcap = linux_get_hwcap (features.wordsize);
   ppc_hwcap2 = linux_get_hwcap2 (features.wordsize);
 
-  features.isa205 = ppc_linux_has_isa205 (ppc_hwcap);
+  features.fpscr64 = ppc_linux_has_fpscr64 (ppc_hwcap);
 
   if (ppc_hwcap & PPC_FEATURE_HAS_VSX)
     features.vsx = true;
 
+  if (ppc_check_regset (tid, NT_PPC_PPR, PPC_LINUX_SIZEOF_PPRREGSET))
+    features.ppr = true;
+
   if (ppc_hwcap & PPC_FEATURE_HAS_ALTIVEC)
     features.altivec = true;
 
   if ((ppc_hwcap2 & PPC_FEATURE2_DSCR)
-      && ppc_check_regset (tid, NT_PPC_DSCR, PPC_LINUX_SIZEOF_DSCRREGSET)
-      && ppc_check_regset (tid, NT_PPC_PPR, PPC_LINUX_SIZEOF_PPRREGSET))
+      && ppc_check_regset (tid, NT_PPC_DSCR, PPC_LINUX_SIZEOF_DSCRREGSET))
+    features.dscr = true;
+
+  if (ppc_hwcap2 & PPC_FEATURE2_ARCH_2_07)
     {
-      features.ppr_dscr = true;
-      if ((ppc_hwcap2 & PPC_FEATURE2_ARCH_2_07)
-	  && (ppc_hwcap2 & PPC_FEATURE2_TAR)
-	  && (ppc_hwcap2 & PPC_FEATURE2_EBB)
-	  && ppc_check_regset (tid, NT_PPC_TAR,
-			       PPC_LINUX_SIZEOF_TARREGSET)
-	  && ppc_check_regset (tid, NT_PPC_EBB,
-			       PPC_LINUX_SIZEOF_EBBREGSET)
-	  && ppc_check_regset (tid, NT_PPC_PMU,
-			       PPC_LINUX_SIZEOF_PMUREGSET))
-	{
-	  features.isa207 = true;
-	  if ((ppc_hwcap2 & PPC_FEATURE2_HTM)
-	      && ppc_check_regset (tid, NT_PPC_TM_SPR,
-				   PPC_LINUX_SIZEOF_TM_SPRREGSET))
-	    features.htm = true;
-	}
+       if ((ppc_hwcap2 & PPC_FEATURE2_TAR)
+           && ppc_check_regset (tid, NT_PPC_TAR, PPC_LINUX_SIZEOF_TARREGSET))
+         features.tar = true;
+
+       if ((ppc_hwcap2 & PPC_FEATURE2_EBB)
+           && ppc_check_regset (tid, NT_PPC_EBB, PPC_LINUX_SIZEOF_EBBREGSET))
+         features.ebb = true;
+
+       if (ppc_check_regset (tid, NT_PPC_PMU, PPC_LINUX_SIZEOF_PMUREGSET))
+         features.pmu = true;
     }
 
-  tdesc = ppc_linux_match_description (features);
+   if (ppc_hwcap2 & PPC_FEATURE2_HTM)
+     {
+        if (ppc_check_regset (tid, NT_PPC_TM_CVMX,
+	    PPC_LINUX_SIZEOF_CVMXREGSET))
+          features.htm.altivec = true;
+
+        if (features.wordsize == 8)
+          {
+             if (ppc_check_regset (tid, NT_PPC_TM_CGPR,
+                 PPC64_LINUX_SIZEOF_CGPRREGSET))
+               features.htm.core = true;
+          }
+        else if (features.wordsize == 4)
+          {
+             if (ppc_check_regset (tid, NT_PPC_TM_CGPR,
+		 PPC32_LINUX_SIZEOF_CGPRREGSET))
+               features.htm.core = true;
+          }
+
+        if (ppc_check_regset (tid, NT_PPC_TM_CDSCR,
+	    PPC_LINUX_SIZEOF_CDSCRREGSET))
+          features.htm.dscr = true;
+
+        if (ppc_check_regset (tid, NT_PPC_TM_CFPR,
+	    PPC_LINUX_SIZEOF_CFPRREGSET))
+          features.htm.fpu = true;
+
+        if (ppc_check_regset (tid, NT_PPC_TM_CPPR,
+	    PPC_LINUX_SIZEOF_CPPRREGSET))
+          features.htm.ppr = true;
+
+        if (ppc_check_regset (tid, NT_PPC_TM_SPR,
+	    PPC_LINUX_SIZEOF_TM_SPRREGSET))
+          features.htm.spr = true;
+
+        if (ppc_check_regset (tid, NT_PPC_TM_CTAR,
+	    PPC_LINUX_SIZEOF_CTARREGSET))
+          features.htm.tar = true;
+
+        if (ppc_check_regset (tid, NT_PPC_TM_CVSX,
+	    PPC_LINUX_SIZEOF_CVSXREGSET))
+          features.htm.vsx = true;
+     }
+
+  tdesc = ppc_linux_read_description (features);
 
   /* On 32-bit machines, check for SPE registers.
      Set the low target's regmap field as appropriately.  */
 #ifndef __powerpc64__
   if (ppc_hwcap & PPC_FEATURE_HAS_SPE)
-    tdesc = tdesc_powerpc_e500l;
+    features.spe = true;
+    tdesc = ppc_linux_read_target_description (features);
 
   if (!ppc_regmap_adjusted)
     {
@@ -973,59 +1010,59 @@ ppc_target::low_arch_setup ()
 	switch (regset->nt_type)
 	  {
 	  case NT_PPC_PPR:
-	    regset->size = (features.ppr_dscr ?
+	    regset->size = (features.ppr ?
 			    PPC_LINUX_SIZEOF_PPRREGSET : 0);
 	    break;
 	  case NT_PPC_DSCR:
-	    regset->size = (features.ppr_dscr ?
+	    regset->size = (features.dscr ?
 			    PPC_LINUX_SIZEOF_DSCRREGSET : 0);
 	    break;
 	  case NT_PPC_TAR:
-	    regset->size = (features.isa207 ?
+	    regset->size = (features.tar ?
 			    PPC_LINUX_SIZEOF_TARREGSET : 0);
 	    break;
 	  case NT_PPC_EBB:
-	    regset->size = (features.isa207 ?
+	    regset->size = (features.ebb ?
 			    PPC_LINUX_SIZEOF_EBBREGSET : 0);
 	    break;
 	  case NT_PPC_PMU:
-	    regset->size = (features.isa207 ?
+	    regset->size = (features.pmu ?
 			    PPC_LINUX_SIZEOF_PMUREGSET : 0);
 	    break;
 	  case NT_PPC_TM_SPR:
-	    regset->size = (features.htm ?
+	    regset->size = (features.htm.spr ?
 			    PPC_LINUX_SIZEOF_TM_SPRREGSET : 0);
 	    break;
 	  case NT_PPC_TM_CGPR:
 	    if (features.wordsize == 4)
-	      regset->size = (features.htm ?
+	      regset->size = (features.htm.core ?
 			      PPC32_LINUX_SIZEOF_CGPRREGSET : 0);
 	    else
-	      regset->size = (features.htm ?
+	      regset->size = (features.htm.core ?
 			      PPC64_LINUX_SIZEOF_CGPRREGSET : 0);
 	    break;
 	  case NT_PPC_TM_CFPR:
-	    regset->size = (features.htm ?
+	    regset->size = (features.htm.fpu ?
 			    PPC_LINUX_SIZEOF_CFPRREGSET : 0);
 	    break;
 	  case NT_PPC_TM_CVMX:
-	    regset->size = (features.htm ?
+	    regset->size = (features.htm.altivec ?
 			    PPC_LINUX_SIZEOF_CVMXREGSET : 0);
 	    break;
 	  case NT_PPC_TM_CVSX:
-	    regset->size = (features.htm ?
+	    regset->size = (features.htm.vsx ?
 			    PPC_LINUX_SIZEOF_CVSXREGSET : 0);
 	    break;
 	  case NT_PPC_TM_CPPR:
-	    regset->size = (features.htm ?
+	    regset->size = (features.htm.ppr ?
 			    PPC_LINUX_SIZEOF_CPPRREGSET : 0);
 	    break;
 	  case NT_PPC_TM_CDSCR:
-	    regset->size = (features.htm ?
+	    regset->size = (features.htm.dscr ?
 			    PPC_LINUX_SIZEOF_CDSCRREGSET : 0);
 	    break;
 	  case NT_PPC_TM_CTAR:
-	    regset->size = (features.htm ?
+	    regset->size = (features.htm.tar ?
 			    PPC_LINUX_SIZEOF_CTARREGSET : 0);
 	    break;
 	  default:
@@ -3402,49 +3439,7 @@ ppc_target::get_ipa_tdesc_idx ()
   struct regcache *regcache = get_thread_regcache (current_thread, 0);
   const struct target_desc *tdesc = regcache->tdesc;
 
-#ifdef __powerpc64__
-  if (tdesc == tdesc_powerpc_64l)
-    return PPC_TDESC_BASE;
-  if (tdesc == tdesc_powerpc_altivec64l)
-    return PPC_TDESC_ALTIVEC;
-  if (tdesc == tdesc_powerpc_vsx64l)
-    return PPC_TDESC_VSX;
-  if (tdesc == tdesc_powerpc_isa205_64l)
-    return PPC_TDESC_ISA205;
-  if (tdesc == tdesc_powerpc_isa205_altivec64l)
-    return PPC_TDESC_ISA205_ALTIVEC;
-  if (tdesc == tdesc_powerpc_isa205_vsx64l)
-    return PPC_TDESC_ISA205_VSX;
-  if (tdesc == tdesc_powerpc_isa205_ppr_dscr_vsx64l)
-    return PPC_TDESC_ISA205_PPR_DSCR_VSX;
-  if (tdesc == tdesc_powerpc_isa207_vsx64l)
-    return PPC_TDESC_ISA207_VSX;
-  if (tdesc == tdesc_powerpc_isa207_htm_vsx64l)
-    return PPC_TDESC_ISA207_HTM_VSX;
-#endif
-
-  if (tdesc == tdesc_powerpc_32l)
-    return PPC_TDESC_BASE;
-  if (tdesc == tdesc_powerpc_altivec32l)
-    return PPC_TDESC_ALTIVEC;
-  if (tdesc == tdesc_powerpc_vsx32l)
-    return PPC_TDESC_VSX;
-  if (tdesc == tdesc_powerpc_isa205_32l)
-    return PPC_TDESC_ISA205;
-  if (tdesc == tdesc_powerpc_isa205_altivec32l)
-    return PPC_TDESC_ISA205_ALTIVEC;
-  if (tdesc == tdesc_powerpc_isa205_vsx32l)
-    return PPC_TDESC_ISA205_VSX;
-  if (tdesc == tdesc_powerpc_isa205_ppr_dscr_vsx32l)
-    return PPC_TDESC_ISA205_PPR_DSCR_VSX;
-  if (tdesc == tdesc_powerpc_isa207_vsx32l)
-    return PPC_TDESC_ISA207_VSX;
-  if (tdesc == tdesc_powerpc_isa207_htm_vsx32l)
-    return PPC_TDESC_ISA207_HTM_VSX;
-  if (tdesc == tdesc_powerpc_e500l)
-    return PPC_TDESC_E500;
-
-  return 0;
+  return ppc_get_ipa_tdesc_idx (tdesc);
 }
 
 /* The linux target ops object.  */
@@ -3454,29 +3449,5 @@ linux_process_target *the_linux_target = &the_ppc_target;
 void
 initialize_low_arch (void)
 {
-  /* Initialize the Linux target descriptions.  */
-
-  init_registers_powerpc_32l ();
-  init_registers_powerpc_altivec32l ();
-  init_registers_powerpc_vsx32l ();
-  init_registers_powerpc_isa205_32l ();
-  init_registers_powerpc_isa205_altivec32l ();
-  init_registers_powerpc_isa205_vsx32l ();
-  init_registers_powerpc_isa205_ppr_dscr_vsx32l ();
-  init_registers_powerpc_isa207_vsx32l ();
-  init_registers_powerpc_isa207_htm_vsx32l ();
-  init_registers_powerpc_e500l ();
-#if __powerpc64__
-  init_registers_powerpc_64l ();
-  init_registers_powerpc_altivec64l ();
-  init_registers_powerpc_vsx64l ();
-  init_registers_powerpc_isa205_64l ();
-  init_registers_powerpc_isa205_altivec64l ();
-  init_registers_powerpc_isa205_vsx64l ();
-  init_registers_powerpc_isa205_ppr_dscr_vsx64l ();
-  init_registers_powerpc_isa207_vsx64l ();
-  init_registers_powerpc_isa207_htm_vsx64l ();
-#endif
-
   initialize_regsets_info (&ppc_regsets_info);
 }
diff --git a/gdbserver/linux-ppc-tdesc-init.h b/gdbserver/linux-ppc-tdesc-init.h
deleted file mode 100644
index 3afd78baee..0000000000
--- a/gdbserver/linux-ppc-tdesc-init.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Low level support for ppc, shared between gdbserver and IPA.
-
-   Copyright (C) 2016-2020 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef GDBSERVER_LINUX_PPC_TDESC_INIT_H
-#define GDBSERVER_LINUX_PPC_TDESC_INIT_H
-
-/* Note: since IPA obviously knows what ABI it's running on (32 vs 64),
-   it's sufficient to pass only the register set here.  This, together with
-   the ABI known at IPA compile time, maps to a tdesc.  */
-
-enum ppc_linux_tdesc {
-  PPC_TDESC_BASE,
-  PPC_TDESC_ALTIVEC,
-  PPC_TDESC_CELL,  /* No longer used, but kept to avoid ABI changes.  */
-  PPC_TDESC_VSX,
-  PPC_TDESC_ISA205,
-  PPC_TDESC_ISA205_ALTIVEC,
-  PPC_TDESC_ISA205_VSX,
-  PPC_TDESC_ISA205_PPR_DSCR_VSX,
-  PPC_TDESC_ISA207_VSX,
-  PPC_TDESC_ISA207_HTM_VSX,
-  PPC_TDESC_E500,
-};
-
-#if !defined __powerpc64__ || !defined IN_PROCESS_AGENT
-
-/* Defined in auto-generated file powerpc-32l.c.  */
-void init_registers_powerpc_32l (void);
-
-/* Defined in auto-generated file powerpc-altivec32l.c.  */
-void init_registers_powerpc_altivec32l (void);
-
-/* Defined in auto-generated file powerpc-vsx32l.c.  */
-void init_registers_powerpc_vsx32l (void);
-
-/* Defined in auto-generated file powerpc-isa205-32l.c.  */
-void init_registers_powerpc_isa205_32l (void);
-
-/* Defined in auto-generated file powerpc-isa205-altivec32l.c.  */
-void init_registers_powerpc_isa205_altivec32l (void);
-
-/* Defined in auto-generated file powerpc-isa205-vsx32l.c.  */
-void init_registers_powerpc_isa205_vsx32l (void);
-
-/* Defined in auto-generated file powerpc-isa205-ppr-dscr-vsx32l.c.  */
-void init_registers_powerpc_isa205_ppr_dscr_vsx32l (void);
-
-/* Defined in auto-generated file powerpc-isa207-vsx32l.c.  */
-void init_registers_powerpc_isa207_vsx32l (void);
-
-/* Defined in auto-generated file powerpc-isa207-htm-vsx32l.c.  */
-void init_registers_powerpc_isa207_htm_vsx32l (void);
-
-/* Defined in auto-generated file powerpc-e500l.c.  */
-void init_registers_powerpc_e500l (void);
-
-#endif
-
-#if defined __powerpc64__
-
-/* Defined in auto-generated file powerpc-64l.c.  */
-void init_registers_powerpc_64l (void);
-
-/* Defined in auto-generated file powerpc-altivec64l.c.  */
-void init_registers_powerpc_altivec64l (void);
-
-/* Defined in auto-generated file powerpc-vsx64l.c.  */
-void init_registers_powerpc_vsx64l (void);
-
-/* Defined in auto-generated file powerpc-isa205-64l.c.  */
-void init_registers_powerpc_isa205_64l (void);
-
-/* Defined in auto-generated file powerpc-isa205-altivec64l.c.  */
-void init_registers_powerpc_isa205_altivec64l (void);
-
-/* Defined in auto-generated file powerpc-isa205-vsx64l.c.  */
-void init_registers_powerpc_isa205_vsx64l (void);
-
-/* Defined in auto-generated file powerpc-isa205-ppr-dscr-vsx64l.c.  */
-void init_registers_powerpc_isa205_ppr_dscr_vsx64l (void);
-
-/* Defined in auto-generated file powerpc-isa207-vsx64l.c.  */
-void init_registers_powerpc_isa207_vsx64l (void);
-
-/* Defined in auto-generated file powerpc-isa207-htm-vsx64l.c.  */
-void init_registers_powerpc_isa207_htm_vsx64l (void);
-
-#endif
-
-#endif /* GDBSERVER_LINUX_PPC_TDESC_INIT_H */
diff --git a/gdbserver/linux-ppc-tdesc.cc b/gdbserver/linux-ppc-tdesc.cc
new file mode 100644
index 0000000000..610d6d111d
--- /dev/null
+++ b/gdbserver/linux-ppc-tdesc.cc
@@ -0,0 +1,156 @@
+/* GNU/Linux/Power specific target description, for the remote server
+   for GDB.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of GDB.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "server.h"
+
+#include "arch/ppc-linux-common.h"
+#include "linux-ppc-tdesc.h"
+
+#include "tdesc.h"
+
+/* All ppc target descriptors avaliable.  */
+static struct target_desc *ppc_tdescs[PPC_TDESC_LAST] = { };
+
+/* Supported ISA combinations. For now ISA only collects core registers:
+   GPR's. This is here to match with registers collected by linux (low).  */
+static enum ppc_linux_tdesc
+get_ppc_tdesc_idx (const struct ppc_linux_features features)
+{
+  enum ppc_linux_tdesc idx = PPC_TDESC_LAST;
+
+  if (features.wordsize == 4 || features.wordsize == 8)
+    idx = PPC_TDESC_CORE;
+  if (features.altivec)
+    idx = PPC_TDESC_ALTIVEC;
+  if (features.vsx)
+    idx = PPC_TDESC_VSX;
+  if (features.fpscr64)
+    {
+      idx = PPC_TDESC_FPSCR64;
+      if (features.vsx)
+	idx = PPC_TDESC_FPSCR64_VSX;
+      if (features.ppr && features.dscr)
+	idx = PPC_TDESC_FPSCR64_PPR_DSCR_VSX;
+    }
+  if (features.tar && features.pmu && features.vsx)
+    {
+      idx = PPC_TDESC_ISA207_VSX;
+      if (features.htm.core)
+	idx = PPC_TDESC_ISA207_HTM_VSX;
+    }
+  if (features.spe)
+    idx = PPC_TDESC_E500;
+
+  return idx;
+}
+
+/* Convert index to ppc cpu features.  */
+struct ppc_linux_features idx_to_ppc_features (int idx)
+{
+  struct ppc_linux_features features;
+
+#if __powerpc64__
+  features.wordsize = 8;
+#else
+  features.wordsize = 4;
+#endif
+
+  switch (idx)
+  {
+    default:
+    case PPC_TDESC_CORE:
+    break;
+    case PPC_TDESC_ALTIVEC:
+    features.altivec = true;
+    break;
+    case PPC_TDESC_VSX:
+    features.altivec = true;
+    features.vsx = true;
+    break;
+    case PPC_TDESC_FPSCR64:
+    features.fpscr64 = true;
+    break;
+    case PPC_TDESC_FPSCR64_VSX:
+    features.fpscr64 = true;
+    features.altivec = true;
+    features.vsx = true;
+    break;
+    case PPC_TDESC_FPSCR64_PPR_DSCR_VSX:
+    features.fpscr64 = true;
+    features.altivec = true;
+    features.vsx = true;
+    features.ppr = true;
+    features.dscr = true;
+    break;
+    case PPC_TDESC_ISA207_VSX:
+    features.fpscr64 = true;
+    features.altivec = true;
+    features.vsx = true;
+    features.ppr = true;
+    features.dscr = true;
+    features.tar = true;
+    features.pmu = true;
+    break;
+    case PPC_TDESC_ISA207_HTM_VSX:
+    features.fpscr64 = true;
+    features.altivec = true;
+    features.vsx = true;
+    features.ppr = true;
+    features.dscr = true;
+    features.tar = true;
+    features.pmu = true;
+    features.htm.core = true;
+    break;
+    case PPC_TDESC_E500:
+    features.spe = true;
+    break;
+  }
+
+  return features;
+}
+
+#ifndef IN_PROCESS_AGENT
+int ppc_get_ipa_tdesc_idx (const struct target_desc *tdesc)
+{
+  for (int i = 0; i < PPC_TDESC_LAST; i++)
+     {
+       if (tdesc == ppc_tdescs[i])
+	  return i;
+     }
+  return PPC_TDESC_CORE;
+}
+#endif
+
+/* Create the Power target description.  */
+const target_desc *
+ppc_linux_read_description (struct ppc_linux_features features)
+{
+  enum ppc_linux_tdesc idx = get_ppc_tdesc_idx(features);
+
+  if (idx == PPC_TDESC_LAST)
+    return NULL;
+
+  struct target_desc **tdesc = NULL;
+  tdesc = &ppc_tdescs[idx];
+
+  if (*tdesc == NULL)
+    {
+      *tdesc = ppc_linux_create_target_description (features);
+
+      static const char* expedite_regs[] = { "r1", "pc" };
+      init_target_desc (*tdesc, expedite_regs);
+    }
+  return *tdesc;
+}
diff --git a/gdbserver/linux-ppc-tdesc.h b/gdbserver/linux-ppc-tdesc.h
new file mode 100644
index 0000000000..643e030d56
--- /dev/null
+++ b/gdbserver/linux-ppc-tdesc.h
@@ -0,0 +1,46 @@
+/* Low level support for Power, shared between gdbserver and IPA.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of GDB.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef GDBSERVER_LINUX_PPC_TDESC_H
+#define GDBSERVER_LINUX_PPC_TDESC_H
+
+/* IPA knows what ABI is running if is a ppc32 or ppc64. So we can
+   just indicate the register set which maps to a tdesc. IPA only
+   collects the core registers (gpr) for ppc for now but we need to
+   map the register sets that we may have avaliable in linux-low.  */
+enum ppc_linux_tdesc
+{
+  PPC_TDESC_CORE = 0,
+  PPC_TDESC_ALTIVEC = 1,
+  PPC_TDESC_VSX = 2,
+  PPC_TDESC_FPSCR64 = 3,
+  PPC_TDESC_FPSCR64_VSX = 4,
+  PPC_TDESC_FPSCR64_PPR_DSCR_VSX = 5,
+  PPC_TDESC_ISA207_VSX = 6,
+  PPC_TDESC_ISA207_HTM_VSX = 7,
+  PPC_TDESC_E500 = 8,
+  PPC_TDESC_LAST = 9,
+};
+
+#if !defined IN_PROCESS_AGENT 
+int ppc_get_ipa_tdesc_idx (const struct target_desc *tdesc);                  
+#endif
+
+const target_desc *
+ppc_linux_read_description (struct ppc_linux_features features);
+
+struct ppc_linux_features
+idx_to_ppc_features (int idx);
+
+#endif /* GDBSERVER_LINUX_PPC_TDESC_H */
-- 
2.17.1



More information about the Gdb-patches mailing list