[v2] Use flexible target descriptors for Linux PowerPC

Message ID 20200703190321.156086-1-rcardoso@linux.ibm.com
State New
Headers show
Series
  • [v2] Use flexible target descriptors for Linux PowerPC
Related show

Commit Message

Jose E. Marchesi via Gdb-patches July 3, 2020, 7:03 p.m.
Use flexible target descriptors for Linux PowerPC. This allows a fine-tune
selection of avalible target CPU features por POWER.

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/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/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/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.
---
 gdb/arch/ppc-linux-common.c                   | 135 ++++--
 gdb/arch/ppc-linux-common.h                   |  47 ++-
 gdb/arch/ppc-linux-tdesc.h                    |  46 --
 gdb/features/Makefile                         |  54 ++-
 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/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                           |  73 +++-
 gdb/ppc-linux-tdep.c                          | 105 +++--
 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                       |  45 +-
 gdbserver/linux-ppc-ipa.cc                    |  88 +---
 gdbserver/linux-ppc-low.cc                    |  41 +-
 gdbserver/linux-ppc-tdesc-init.h              | 106 -----
 gdbserver/linux-ppc-tdesc.cc                  |  47 +++
 gdbserver/linux-ppc-tdesc.h                   |  21 +
 92 files changed, 1116 insertions(+), 6945 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
 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

-- 
2.17.1

Comments

Jose E. Marchesi via Gdb-patches July 9, 2020, 3:48 p.m. | #1
On Fri, Jul 03, 2020 at 04:03:21PM -0300, Rogerio Alves wrote:
> Use flexible target descriptors for Linux PowerPC. This allows a fine-tune

> selection of avalible target CPU features por POWER.


Thanks for working on this!

> diff --git a/gdb/arch/ppc-linux-common.c b/gdb/arch/ppc-linux-common.c

> index 183fc03395..36e2319a7f 100644

> --- a/gdb/arch/ppc-linux-common.c

> +++ b/gdb/arch/ppc-linux-common.c

> -const struct target_desc *

> -ppc_linux_match_description (struct ppc_linux_features features)

> +const target_desc *

> +ppc_create_target_description (struct ppc_linux_features features)


So you've renamed it from a name including "linux" to one without,
while the function is still actually Linux-specific.  Is this a
good idea?

[ I guess a separate question is whether we shouldn't also switch
all other powerpc targets to the new method ... ]

>  {

> -  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");


Do we need to call set_tdesc_osabi here like is done for other targets?

> index cc65baa6ed..3140eeb00c 100644

> --- a/gdb/features/Makefile

> +++ b/gdb/features/Makefile

> @@ -51,17 +51,6 @@ WHICH = arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 \

>  	mips64-linux mips64-dsp-linux \

>  	nios2-linux \

>  	rs6000/powerpc-32 \


It seems to me that this file is actually unused as well, so we can really
remove all the rs6000 regformats files then.  (Including the special Makefile
rule associated with them.)

Talking about removed regformats files: did you verify that the new code still
uses the same layout of the register packets, e.g. by running a new gdb against
an old gdbserver and vice versa?

> diff --git a/gdbserver/configure.srv b/gdbserver/configure.srv

> index 9a027e44af..0ff094d32c 100644

> --- a/gdbserver/configure.srv

> +++ b/gdbserver/configure.srv


> -  powerpc*-*-linux*)	srv_regobj="powerpc-32l.o"


Should we now use
  srv_regobj=""
like the other targets do?

>  			ipa_obj="${ipa_ppc_linux_regobj} linux-ppc-ipa.o"

> +			ipa_obj="${ipa_obj} linux-ppc-tdesc-ipa.o"

> +			ipa_obj="${ipa_obj} arch/ppc-linux-common-ipa.o"


I believe we now no longer need ${ipa_ppc_linux_regobj}, right?

> --- a/gdbserver/linux-ppc-ipa.cc

> +++ b/gdbserver/linux-ppc-ipa.cc

> @@ -22,7 +22,6 @@

>  #include <sys/mman.h>

>  #include "tracepoint.h"

>  #include "arch/ppc-linux-tdesc.h"


Wasn't that file deleted?  How does this still build?  Or am I
missing something here ...

> @@ -174,58 +173,12 @@ alloc_jump_pad_buffer (size_t size)

>  const struct target_desc *

>  get_ipa_tdesc (int idx)

>  {

> -  switch (idx)

> -    {

> -#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

> -    }

> +  bool is_ppc64 = false;

> +  #ifdef __powerpc64__

> +    is_ppc64 = true;

> +  #endif

> +

> +  return ppc_linux_read_description (is_ppc64);


Something seems wrong here.  If I'm reading this correctly,
that description will only have the bare minimum register set,
with all optional features switched off.  The original code
used the full register set available on the current machine.

> @@ -234,26 +187,11 @@ get_ipa_tdesc (int idx)

>  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

> +

> +  bool is_ppc64 = false;

> +  #ifdef __powerpc64__

> +    is_ppc64 = true;

> +  #endif

> +

> +  ppc_linux_read_description (is_ppc64)


Why do you call that routine and ignore it's result?
Isn't that a no-op here?

> diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc

> index 337d555aee..b982be3e1b 100644

> --- a/gdbserver/linux-ppc-low.cc

> +++ b/gdbserver/linux-ppc-low.cc

> @@ -29,7 +29,6 @@

>  #include "arch/ppc-linux-tdesc.h"


Same question as above: wasn't that file deleted?

> diff --git a/gdbserver/linux-ppc-tdesc.cc b/gdbserver/linux-ppc-tdesc.cc

> new file mode 100644

> index 0000000000..3bf97d20fc


> +#include <inttypes.h>


What is this needed for?

> +/* All possible ppc target descriptors.  */

> +struct target_desc *tdesc_ppc_list[2];


See above, I don't believe it is correct to only
support two variants here.

> +/* Create the Power target description.  */

> +const target_desc *

> +ppc_linux_read_description (bool is_ppc64)

> +{

> +  struct target_desc *tdesc = tdesc_ppc_list[is_ppc64];

> +

> +  if (tdesc == NULL)

> +   {

> +      struct ppc_linux_features features;

> +      features.wordsize = (is_ppc64) ? 8 : 4;

> +      *tdesc = ppc_create_target_description (features);

> +

> +      static const char* expedite_regs[] = { "r1", "pc" };

> +      init_target_desc (tdesc, expedite_regs);

> +

> +      tdesc_ppc_list[is_pp64] = tdesc;

> +   }

> +

> +  return tdesc;

> +}


You're using this only in the -ipa code.  I don't think
it makes sense to have a separate file just for that.

On some other platforms that do have this file, they're
using it both from the linux-low code and the -ipa code,
but you're directly calling ppc_create_target_description
there.

However, it does look like you're missing the call to
init_target_desc in your linux-low code, so we don't
actually get expedite_regs set, which is a regression.

Bye,
Ulrich

Patch

diff --git a/gdb/arch/ppc-linux-common.c b/gdb/arch/ppc-linux-common.c
index 183fc03395..36e2319a7f 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-fpsrc.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,103 @@ 
 #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)
+const target_desc *
+ppc_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");
+      #endif
+      regnum = create_feature_rs6000_power64_core (tdesc, regnum);
+      regnum = create_feature_rs6000_power64_linux (tdesc, regnum);
+
+      if (feature.htm.core)
+	regnum = create_feature_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");
+      #endif
+      regnum = create_feature_rs6000_power_core (tdesc, regnum);
+      regnum = create_feature_rs6000_power_linux (tdesc, regnum);
+
+      if (feature.htm.core)
+	regnum = create_feature_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..0e0a6b4be0 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.  */
+const target_desc * ppc_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..3140eeb00c 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -51,17 +51,6 @@  WHICH = arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 \
 	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 +107,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 +116,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 +152,7 @@  aarch64-feature = 1
 arm-feature = 1
 i386-feature = 1
 riscv-feature = 1
+rs6000-feature =1
 tic6x-feature = 1
 
 all: $(OUTPUTS)
@@ -237,6 +208,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/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..93ff078be2 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"
 
@@ -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.fpsrc64 = ppc_linux_has_fpsrc64 (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_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..8d5cf2e3b5 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -37,7 +37,6 @@ 
 #include "ppc64-tdep.h"
 #include "ppc-linux-tdep.h"
 #include "arch/ppc-linux-common.h"
-#include "arch/ppc-linux-tdesc.h"
 #include "glibc-tdep.h"
 #include "trad-frame.h"
 #include "frame-unwind.h"
@@ -62,26 +61,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 +1542,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 +1575,48 @@  ppc_linux_core_read_description (struct gdbarch *gdbarch,
 
   CORE_ADDR hwcap = linux_get_hwcap (target);
 
-  features.isa205 = ppc_linux_has_isa205 (hwcap);
+  features.fpsrc64 = ppc_linux_has_fpsrc64 (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_create_target_description (features);
 }
 
 
@@ -2167,25 +2177,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..0ff094d32c 100644
--- a/gdbserver/configure.srv
+++ b/gdbserver/configure.srv
@@ -205,43 +205,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,17 +228,7 @@  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"
@@ -273,6 +236,8 @@  case "${gdbserver_host}" in
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
 			ipa_obj="${ipa_ppc_linux_regobj} 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..b9443a6a64 100644
--- a/gdbserver/linux-ppc-ipa.cc
+++ b/gdbserver/linux-ppc-ipa.cc
@@ -22,7 +22,6 @@ 
 #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>
@@ -174,58 +173,12 @@  alloc_jump_pad_buffer (size_t size)
 const struct target_desc *
 get_ipa_tdesc (int idx)
 {
-  switch (idx)
-    {
-#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
-    }
+  bool is_ppc64 = false;
+  #ifdef __powerpc64__
+    is_ppc64 = true;
+  #endif
+
+  return ppc_linux_read_description (is_ppc64);
 }
 
 
@@ -234,26 +187,11 @@  get_ipa_tdesc (int idx)
 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
+
+  bool is_ppc64 = false;
+  #ifdef __powerpc64__
+    is_ppc64 = true;
+  #endif
+
+  ppc_linux_read_description (is_ppc64)
 }
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
index 337d555aee..b982be3e1b 100644
--- a/gdbserver/linux-ppc-low.cc
+++ b/gdbserver/linux-ppc-low.cc
@@ -29,7 +29,6 @@ 
 #include "arch/ppc-linux-tdesc.h"
 #include "nat/ppc-linux.h"
 #include "nat/linux-ptrace.h"
-#include "linux-ppc-tdesc-init.h"
 #include "ax.h"
 #include "tracepoint.h"
 
@@ -885,10 +884,7 @@  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;
+  tdesc = ppc_create_target_description (features);
 
   current_process ()->tdesc = tdesc;
 
@@ -897,7 +893,7 @@  ppc_target::low_arch_setup ()
   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;
@@ -928,13 +924,14 @@  ppc_target::low_arch_setup ()
 	}
     }
 
-  tdesc = ppc_linux_match_description (features);
+  tdesc = ppc_create_target_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_create_target_description (features);
 
   if (!ppc_regmap_adjusted)
     {
@@ -973,59 +970,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:
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..3bf97d20fc
--- /dev/null
+++ b/gdbserver/linux-ppc-tdesc.cc
@@ -0,0 +1,47 @@ 
+/* 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"
+#include "linux-ppc-low.h"
+#include <inttypes.h>
+
+/* All possible ppc target descriptors.  */
+struct target_desc *tdesc_ppc_list[2];
+
+/* Create the Power target description.  */
+const target_desc *
+ppc_linux_read_description (bool is_ppc64)
+{
+  struct target_desc *tdesc = tdesc_ppc_list[is_ppc64];
+
+  if (tdesc == NULL)
+   {
+      struct ppc_linux_features features;
+      features.wordsize = (is_ppc64) ? 8 : 4;
+      *tdesc = ppc_create_target_description (features);
+
+      static const char* expedite_regs[] = { "r1", "pc" };
+      init_target_desc (tdesc, expedite_regs);
+
+      tdesc_ppc_list[is_pp64] = tdesc;
+   }
+
+  return tdesc;
+}
diff --git a/gdbserver/linux-ppc-tdesc.h b/gdbserver/linux-ppc-tdesc.h
new file mode 100644
index 0000000000..12927bee61
--- /dev/null
+++ b/gdbserver/linux-ppc-tdesc.h
@@ -0,0 +1,21 @@ 
+/* 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
+
+const target_desc * ppc_linux_read_description
+(bool is_ppc64);
+
+#endif /* GDBSERVER_LINUX_PPC_TDESC_H */