public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: "Terry Guo" <terry.guo@arm.com>
To: <gdb-patches@sourceware.org>
Subject: [Patch]Clean up the XML files for ARM
Date: Wed, 11 Jun 2014 06:46:00 -0000	[thread overview]
Message-ID: <000b01cf8540$dafa6d80$90ef4880$@arm.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 2497 bytes --]

Hi There,

Under folder gdb/features we are having more and more ARM related XML files.
This patch intends to move those ARM XML files into a new folder named arm.
All the references to those files are now prefixed with folder name arm.
Please be noted that this doesn't include AArch64 XML files so far. Is it ok
to GDB trunk?

BR,
Terry

2014-06-11  Terry Guo  <terry.guo@arm.com>

     * features/arm-core.xml: Move to ...
     * features/arm/arm-core.xml: ... here.
     * features/arm-fpa.xml: Move to ...
     * features/arm/arm-fpa.xml: ... here.
     * features/arm-m-profile.xml: Move to ...
     * features/arm/arm-m-profile.xml: ... here.
     * features/arm-vfpv2.xml: Move to ...
     * features/arm/arm-vfpv2.xml: ... here.
     * features/arm-vfpv3.xml: Move to ...
     * features/arm/arm-vfpv3.xml: ... here.
     * features/arm-with-iwmmxt.xml: Move to ...
     * features/arm/arm-with-iwmmxt.xml: ... here.
     * features/arm-with-iwmmxt.c: Move to ...
     * features/arm/arm-with-iwmmxt.c: ... here.
     * features/arm-with-m.xml: Move to ...
     * features/arm/arm-with-m.xml: ... here.
     * features/arm-with-m.c: Move to ...
     * features/arm/arm-with-m.c: ... here.
     * features/arm-with-m-fpa-layout.xml: Move to ...
     * features/arm/arm-with-m-fpa-layout.xml: ... here.
     * features/arm-with-m-fpa-layout.c: Move to ...
     * features/arm/arm-with-m-fpa-layout.c: ... here.
     * features/arm-with-m-vfp-d16.xml: Move to ...
     * features/arm/arm-with-m-vfp-d16.xml: ... here.
     * features/arm-with-m-vfp-d16.c: Move to ...
     * features/arm/arm-with-m-vfp-d16.c: ... here.
     * features/arm-with-neon.xml: Move to ...
     * features/arm/arm-with-neon.xml: ... here.
     * features/arm-with-neon.c: Move to ...
     * features/arm/arm-with-neon.c: ... here.
     * features/arm-with-vfpv2.xml: Move to ...
     * features/arm/arm-with-vfpv2.xml: ... here.
     * features/arm-with-vfpv2.c: Move to ...
     * features/arm/arm-with-vfpv2.c: ... here.
     * features/arm-with-vfpv3.xml: Move to ...
     * features/arm/arm-with-vfpv3.xml: ... here.
     * features/arm-with-vfpv3.c: Move to ...
     * features/arm/arm-with-vfpv3.c: ... here.
     * features/Makefile: Use new paths to refer ARM files.
     * arm-tdep.c: Use new paths to include files.

gdb/gdbserver/ChangeLog:

2014-06-11  Terry Guo  <terry.guo@arm.com>

     * configure.srv: Use new paths to refer ARM XML files.

[-- Attachment #2: gdb-clean-xml-for-arm-v1.txt --]
[-- Type: text/plain, Size: 77536 bytes --]

diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 74942b1..9ff3aac 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -59,13 +59,13 @@
 #include "record.h"
 #include "record-full.h"
 
-#include "features/arm-with-m.c"
-#include "features/arm-with-m-fpa-layout.c"
-#include "features/arm-with-m-vfp-d16.c"
-#include "features/arm-with-iwmmxt.c"
-#include "features/arm-with-vfpv2.c"
-#include "features/arm-with-vfpv3.c"
-#include "features/arm-with-neon.c"
+#include "features/arm/arm-with-m.c"
+#include "features/arm/arm-with-m-fpa-layout.c"
+#include "features/arm/arm-with-m-vfp-d16.c"
+#include "features/arm/arm-with-iwmmxt.c"
+#include "features/arm/arm-with-vfpv2.c"
+#include "features/arm/arm-with-vfpv3.c"
+#include "features/arm/arm-with-neon.c"
 
 static int arm_debug;
 
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index dbf4963..244a3c4 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -31,8 +31,8 @@
 #   make GDB=/path/to/gdb XMLTOC="xml files" cfiles
 
 WHICH = aarch64 \
-	arm-with-iwmmxt arm-with-vfpv2 arm-with-vfpv3 arm-with-neon \
-	arm-with-m arm-with-m-fpa-layout arm-with-m-vfp-d16 \
+	arm/arm-with-iwmmxt arm/arm-with-vfpv2 arm/arm-with-vfpv3 arm/arm-with-neon \
+	arm/arm-with-m arm/arm-with-m-fpa-layout arm/arm-with-m-vfp-d16 \
 	i386/i386 i386/i386-linux \
 	i386/i386-mmx i386/i386-mmx-linux \
 	i386/amd64 i386/amd64-linux \
@@ -61,7 +61,7 @@ WHICH = aarch64 \
 
 # Record which registers should be sent to GDB by default after stop.
 aarch64-expedite = x29,sp,pc
-arm-expedite = r11,sp,pc
+arm/arm-expedite = r11,sp,pc
 i386/i386-expedite = ebp,esp,eip
 i386/i386-linux-expedite = ebp,esp,eip
 i386/amd64-expedite = rbp,rsp,rip
@@ -141,7 +141,7 @@ cfiles: $(CFILES)
 	sh ../../move-if-change $@.tmp $@
 
 # Other dependencies.
-$(outdir)/arm-with-iwmmxt.dat: arm-core.xml xscale-iwmmxt.xml
+$(outdir)/arm/arm-with-iwmmxt.dat: arm/arm-core.xml arm/xscale-iwmmxt.xml
 $(outdir)/i386/i386.dat: i386/32bit-core.xml i386/32bit-sse.xml
 $(outdir)/i386/i386-linux.dat: i386/32bit-core.xml i386/32bit-sse.xml \
 			       i386/32bit-linux.xml
diff --git a/gdb/features/arm-core.xml b/gdb/features/arm-core.xml
deleted file mode 100644
index 422d9bd..0000000
--- a/gdb/features/arm-core.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2014 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 feature SYSTEM "gdb-target.dtd">
-<feature name="org.gnu.gdb.arm.core">
-  <reg name="r0" bitsize="32" type="uint32"/>
-  <reg name="r1" bitsize="32" type="uint32"/>
-  <reg name="r2" bitsize="32" type="uint32"/>
-  <reg name="r3" bitsize="32" type="uint32"/>
-  <reg name="r4" bitsize="32" type="uint32"/>
-  <reg name="r5" bitsize="32" type="uint32"/>
-  <reg name="r6" bitsize="32" type="uint32"/>
-  <reg name="r7" bitsize="32" type="uint32"/>
-  <reg name="r8" bitsize="32" type="uint32"/>
-  <reg name="r9" bitsize="32" type="uint32"/>
-  <reg name="r10" bitsize="32" type="uint32"/>
-  <reg name="r11" bitsize="32" type="uint32"/>
-  <reg name="r12" bitsize="32" type="uint32"/>
-  <reg name="sp" bitsize="32" type="data_ptr"/>
-  <reg name="lr" bitsize="32"/>
-  <reg name="pc" bitsize="32" type="code_ptr"/>
-
-  <!-- The CPSR is register 25, rather than register 16, because
-       the FPA registers historically were placed between the PC
-       and the CPSR in the "g" packet.  -->
-  <reg name="cpsr" bitsize="32" regnum="25"/>
-</feature>
diff --git a/gdb/features/arm-fpa.xml b/gdb/features/arm-fpa.xml
deleted file mode 100644
index 8e21450..0000000
--- a/gdb/features/arm-fpa.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2014 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 feature SYSTEM "gdb-target.dtd">
-<feature name="org.gnu.gdb.arm.fpa">
-  <!-- f0's regnum is set explicitly, because the FPA registers
-       historically were placed between the PC and the CPSR in the "g"
-       packet - in the middle of org.gnu.gdb.arm.core.  -->
-  <reg name="f0" bitsize="96" type="arm_fpa_ext" regnum="16"/>
-  <reg name="f1" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="f2" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="f3" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="f4" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="f5" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="f6" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="f7" bitsize="96" type="arm_fpa_ext"/>
-
-  <reg name="fps" bitsize="32"/>
-</feature>
diff --git a/gdb/features/arm-m-profile.xml b/gdb/features/arm-m-profile.xml
deleted file mode 100644
index 06d660a..0000000
--- a/gdb/features/arm-m-profile.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2014 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 feature SYSTEM "gdb-target.dtd">
-<feature name="org.gnu.gdb.arm.m-profile">
-  <reg name="r0" bitsize="32"/>
-  <reg name="r1" bitsize="32"/>
-  <reg name="r2" bitsize="32"/>
-  <reg name="r3" bitsize="32"/>
-  <reg name="r4" bitsize="32"/>
-  <reg name="r5" bitsize="32"/>
-  <reg name="r6" bitsize="32"/>
-  <reg name="r7" bitsize="32"/>
-  <reg name="r8" bitsize="32"/>
-  <reg name="r9" bitsize="32"/>
-  <reg name="r10" bitsize="32"/>
-  <reg name="r11" bitsize="32"/>
-  <reg name="r12" bitsize="32"/>
-  <reg name="sp" bitsize="32" type="data_ptr"/>
-  <reg name="lr" bitsize="32"/>
-  <reg name="pc" bitsize="32" type="code_ptr"/>
-  <reg name="xpsr" bitsize="32" regnum="25"/>
-</feature>
diff --git a/gdb/features/arm-vfpv2.xml b/gdb/features/arm-vfpv2.xml
deleted file mode 100644
index 5e552e0..0000000
--- a/gdb/features/arm-vfpv2.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2014 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 feature SYSTEM "gdb-target.dtd">
-<feature name="org.gnu.gdb.arm.vfp">
-  <reg name="d0" bitsize="64" type="ieee_double"/>
-  <reg name="d1" bitsize="64" type="ieee_double"/>
-  <reg name="d2" bitsize="64" type="ieee_double"/>
-  <reg name="d3" bitsize="64" type="ieee_double"/>
-  <reg name="d4" bitsize="64" type="ieee_double"/>
-  <reg name="d5" bitsize="64" type="ieee_double"/>
-  <reg name="d6" bitsize="64" type="ieee_double"/>
-  <reg name="d7" bitsize="64" type="ieee_double"/>
-  <reg name="d8" bitsize="64" type="ieee_double"/>
-  <reg name="d9" bitsize="64" type="ieee_double"/>
-  <reg name="d10" bitsize="64" type="ieee_double"/>
-  <reg name="d11" bitsize="64" type="ieee_double"/>
-  <reg name="d12" bitsize="64" type="ieee_double"/>
-  <reg name="d13" bitsize="64" type="ieee_double"/>
-  <reg name="d14" bitsize="64" type="ieee_double"/>
-  <reg name="d15" bitsize="64" type="ieee_double"/>
-
-  <reg name="fpscr" bitsize="32" type="int" group="float"/>
-</feature>
diff --git a/gdb/features/arm-vfpv3.xml b/gdb/features/arm-vfpv3.xml
deleted file mode 100644
index 4cd5983..0000000
--- a/gdb/features/arm-vfpv3.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2014 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 feature SYSTEM "gdb-target.dtd">
-<feature name="org.gnu.gdb.arm.vfp">
-  <reg name="d0" bitsize="64" type="ieee_double"/>
-  <reg name="d1" bitsize="64" type="ieee_double"/>
-  <reg name="d2" bitsize="64" type="ieee_double"/>
-  <reg name="d3" bitsize="64" type="ieee_double"/>
-  <reg name="d4" bitsize="64" type="ieee_double"/>
-  <reg name="d5" bitsize="64" type="ieee_double"/>
-  <reg name="d6" bitsize="64" type="ieee_double"/>
-  <reg name="d7" bitsize="64" type="ieee_double"/>
-  <reg name="d8" bitsize="64" type="ieee_double"/>
-  <reg name="d9" bitsize="64" type="ieee_double"/>
-  <reg name="d10" bitsize="64" type="ieee_double"/>
-  <reg name="d11" bitsize="64" type="ieee_double"/>
-  <reg name="d12" bitsize="64" type="ieee_double"/>
-  <reg name="d13" bitsize="64" type="ieee_double"/>
-  <reg name="d14" bitsize="64" type="ieee_double"/>
-  <reg name="d15" bitsize="64" type="ieee_double"/>
-  <reg name="d16" bitsize="64" type="ieee_double"/>
-  <reg name="d17" bitsize="64" type="ieee_double"/>
-  <reg name="d18" bitsize="64" type="ieee_double"/>
-  <reg name="d19" bitsize="64" type="ieee_double"/>
-  <reg name="d20" bitsize="64" type="ieee_double"/>
-  <reg name="d21" bitsize="64" type="ieee_double"/>
-  <reg name="d22" bitsize="64" type="ieee_double"/>
-  <reg name="d23" bitsize="64" type="ieee_double"/>
-  <reg name="d24" bitsize="64" type="ieee_double"/>
-  <reg name="d25" bitsize="64" type="ieee_double"/>
-  <reg name="d26" bitsize="64" type="ieee_double"/>
-  <reg name="d27" bitsize="64" type="ieee_double"/>
-  <reg name="d28" bitsize="64" type="ieee_double"/>
-  <reg name="d29" bitsize="64" type="ieee_double"/>
-  <reg name="d30" bitsize="64" type="ieee_double"/>
-  <reg name="d31" bitsize="64" type="ieee_double"/>
-
-  <reg name="fpscr" bitsize="32" type="int" group="float"/>
-</feature>
diff --git a/gdb/features/arm-with-iwmmxt.c b/gdb/features/arm-with-iwmmxt.c
deleted file mode 100644
index 1770e03..0000000
--- a/gdb/features/arm-with-iwmmxt.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-iwmmxt.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_arm_with_iwmmxt;
-static void
-initialize_tdesc_arm_with_iwmmxt (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-  struct tdesc_type *field_type;
-  struct tdesc_type *type;
-
-  set_tdesc_architecture (result, bfd_scan_arch ("iwmmxt"));
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.xscale.iwmmxt");
-  field_type = tdesc_named_type (feature, "uint8");
-  tdesc_create_vector (feature, "iwmmxt_v8u8", field_type, 8);
-
-  field_type = tdesc_named_type (feature, "uint16");
-  tdesc_create_vector (feature, "iwmmxt_v4u16", field_type, 4);
-
-  field_type = tdesc_named_type (feature, "uint32");
-  tdesc_create_vector (feature, "iwmmxt_v2u32", field_type, 2);
-
-  type = tdesc_create_union (feature, "iwmmxt_vec64i");
-  field_type = tdesc_named_type (feature, "iwmmxt_v8u8");
-  tdesc_add_field (type, "u8", field_type);
-  field_type = tdesc_named_type (feature, "iwmmxt_v4u16");
-  tdesc_add_field (type, "u16", field_type);
-  field_type = tdesc_named_type (feature, "iwmmxt_v2u32");
-  tdesc_add_field (type, "u32", field_type);
-  field_type = tdesc_named_type (feature, "uint64");
-  tdesc_add_field (type, "u64", field_type);
-
-  tdesc_create_reg (feature, "wR0", 26, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR1", 27, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR2", 28, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR3", 29, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR4", 30, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR5", 31, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR6", 32, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR7", 33, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR8", 34, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR9", 35, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR10", 36, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR11", 37, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR12", 38, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR13", 39, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR14", 40, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wR15", 41, 1, NULL, 64, "iwmmxt_vec64i");
-  tdesc_create_reg (feature, "wCSSF", 42, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "wCASF", 43, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "wCGR0", 44, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "wCGR1", 45, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "wCGR2", 46, 1, "vector", 32, "int");
-  tdesc_create_reg (feature, "wCGR3", 47, 1, "vector", 32, "int");
-
-  tdesc_arm_with_iwmmxt = result;
-}
diff --git a/gdb/features/arm-with-iwmmxt.xml b/gdb/features/arm-with-iwmmxt.xml
deleted file mode 100644
index 5adadee..0000000
--- a/gdb/features/arm-with-iwmmxt.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2014 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>iwmmxt</architecture>
-  <xi:include href="arm-core.xml"/>
-  <xi:include href="xscale-iwmmxt.xml"/>
-</target>
diff --git a/gdb/features/arm-with-m-fpa-layout.c b/gdb/features/arm-with-m-fpa-layout.c
deleted file mode 100644
index bc51f05..0000000
--- a/gdb/features/arm-with-m-fpa-layout.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-m-fpa-layout.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_arm_with_m_fpa_layout;
-static void
-initialize_tdesc_arm_with_m_fpa_layout (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "", 16, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 17, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 18, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 19, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 20, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 21, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 22, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 23, 1, NULL, 96, "arm_fpa_ext");
-  tdesc_create_reg (feature, "", 24, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "xpsr", 25, 1, NULL, 32, "int");
-
-  tdesc_arm_with_m_fpa_layout = result;
-}
diff --git a/gdb/features/arm-with-m-fpa-layout.xml b/gdb/features/arm-with-m-fpa-layout.xml
deleted file mode 100644
index 18b5b0a..0000000
--- a/gdb/features/arm-with-m-fpa-layout.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2014 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.  -->
-
-<!-- A target description for an M-profile device, for stubs that
-     transfer registers using the historical fpa layout.  -->
-
-<!DOCTYPE target SYSTEM "gdb-target.dtd">
-<target>
-<feature name="org.gnu.gdb.arm.m-profile">
-  <reg name="r0" bitsize="32"/>
-  <reg name="r1" bitsize="32"/>
-  <reg name="r2" bitsize="32"/>
-  <reg name="r3" bitsize="32"/>
-  <reg name="r4" bitsize="32"/>
-  <reg name="r5" bitsize="32"/>
-  <reg name="r6" bitsize="32"/>
-  <reg name="r7" bitsize="32"/>
-  <reg name="r8" bitsize="32"/>
-  <reg name="r9" bitsize="32"/>
-  <reg name="r10" bitsize="32"/>
-  <reg name="r11" bitsize="32"/>
-  <reg name="r12" bitsize="32"/>
-  <reg name="sp" bitsize="32" type="data_ptr"/>
-  <reg name="lr" bitsize="32"/>
-  <reg name="pc" bitsize="32" type="code_ptr"/>
-
-  <!-- Slack for unused FPA registers (f0-f7 + fps).
-       See arm-fpa.xml.  -->
-  <reg name="" bitsize="96" type="arm_fpa_ext" regnum="16"/>
-  <reg name="" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="" bitsize="96" type="arm_fpa_ext"/>
-  <reg name="" bitsize="32"/>
-
-  <reg name="xpsr" bitsize="32" regnum="25"/>
-</feature>
-</target>
diff --git a/gdb/features/arm-with-m-vfp-d16.c b/gdb/features/arm-with-m-vfp-d16.c
deleted file mode 100644
index a0da583..0000000
--- a/gdb/features/arm-with-m-vfp-d16.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-m-vfp-d16.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_arm_with_m_vfp_d16;
-static void
-initialize_tdesc_arm_with_m_vfp_d16 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "xpsr", 25, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
-  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 42, 1, "float", 32, "int");
-
-  tdesc_arm_with_m_vfp_d16 = result;
-}
diff --git a/gdb/features/arm-with-m-vfp-d16.xml b/gdb/features/arm-with-m-vfp-d16.xml
deleted file mode 100644
index a6527ab..0000000
--- a/gdb/features/arm-with-m-vfp-d16.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2014 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>
-  <xi:include href="arm-m-profile.xml"/>
-  <!-- Layout of vfpv4-sp-d16 is identical to vfpv2 -->
-  <xi:include href="arm-vfpv2.xml"/>
-</target>
diff --git a/gdb/features/arm-with-m.c b/gdb/features/arm-with-m.c
deleted file mode 100644
index 8e27a80..0000000
--- a/gdb/features/arm-with-m.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-m.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_arm_with_m;
-static void
-initialize_tdesc_arm_with_m (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
-  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "xpsr", 25, 1, NULL, 32, "int");
-
-  tdesc_arm_with_m = result;
-}
diff --git a/gdb/features/arm-with-m.xml b/gdb/features/arm-with-m.xml
deleted file mode 100644
index 6b82405..0000000
--- a/gdb/features/arm-with-m.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2014 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>
-  <xi:include href="arm-m-profile.xml"/>
-</target>
diff --git a/gdb/features/arm-with-neon.c b/gdb/features/arm-with-neon.c
deleted file mode 100644
index 61c9a3a..0000000
--- a/gdb/features/arm-with-neon.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-neon.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_arm_with_neon;
-static void
-initialize_tdesc_arm_with_neon (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
-  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d16", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d17", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d18", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d19", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d20", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d21", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d22", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d23", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d24", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d25", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d26", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d27", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d28", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d29", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d30", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d31", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 58, 1, "float", 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.neon");
-
-  tdesc_arm_with_neon = result;
-}
diff --git a/gdb/features/arm-with-neon.xml b/gdb/features/arm-with-neon.xml
deleted file mode 100644
index 53d1618..0000000
--- a/gdb/features/arm-with-neon.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2014 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>
-  <xi:include href="arm-core.xml"/>
-  <xi:include href="arm-vfpv3.xml"/>
-  <feature name="org.gnu.gdb.arm.neon"/>
-</target>
diff --git a/gdb/features/arm-with-vfpv2.c b/gdb/features/arm-with-vfpv2.c
deleted file mode 100644
index 78e3c81..0000000
--- a/gdb/features/arm-with-vfpv2.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-vfpv2.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_arm_with_vfpv2;
-static void
-initialize_tdesc_arm_with_vfpv2 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
-  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 42, 1, "float", 32, "int");
-
-  tdesc_arm_with_vfpv2 = result;
-}
diff --git a/gdb/features/arm-with-vfpv2.xml b/gdb/features/arm-with-vfpv2.xml
deleted file mode 100644
index 98a5a1c..0000000
--- a/gdb/features/arm-with-vfpv2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2014 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>
-  <xi:include href="arm-core.xml"/>
-  <xi:include href="arm-vfpv2.xml"/>
-</target>
diff --git a/gdb/features/arm-with-vfpv3.c b/gdb/features/arm-with-vfpv3.c
deleted file mode 100644
index e48ca79..0000000
--- a/gdb/features/arm-with-vfpv3.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-vfpv3.xml */
-
-#include "defs.h"
-#include "osabi.h"
-#include "target-descriptions.h"
-
-struct target_desc *tdesc_arm_with_vfpv3;
-static void
-initialize_tdesc_arm_with_vfpv3 (void)
-{
-  struct target_desc *result = allocate_target_description ();
-  struct tdesc_feature *feature;
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
-  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
-  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
-  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
-
-  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
-  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d16", 42, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d17", 43, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d18", 44, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d19", 45, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d20", 46, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d21", 47, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d22", 48, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d23", 49, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d24", 50, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d25", 51, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d26", 52, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d27", 53, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d28", 54, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d29", 55, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d30", 56, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "d31", 57, 1, NULL, 64, "ieee_double");
-  tdesc_create_reg (feature, "fpscr", 58, 1, "float", 32, "int");
-
-  tdesc_arm_with_vfpv3 = result;
-}
diff --git a/gdb/features/arm-with-vfpv3.xml b/gdb/features/arm-with-vfpv3.xml
deleted file mode 100644
index aa39548..0000000
--- a/gdb/features/arm-with-vfpv3.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2014 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>
-  <xi:include href="arm-core.xml"/>
-  <xi:include href="arm-vfpv3.xml"/>
-</target>
diff --git a/gdb/features/arm/arm-core.xml b/gdb/features/arm/arm-core.xml
new file mode 100644
index 0000000..422d9bd
--- /dev/null
+++ b/gdb/features/arm/arm-core.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2007-2014 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 feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.arm.core">
+  <reg name="r0" bitsize="32" type="uint32"/>
+  <reg name="r1" bitsize="32" type="uint32"/>
+  <reg name="r2" bitsize="32" type="uint32"/>
+  <reg name="r3" bitsize="32" type="uint32"/>
+  <reg name="r4" bitsize="32" type="uint32"/>
+  <reg name="r5" bitsize="32" type="uint32"/>
+  <reg name="r6" bitsize="32" type="uint32"/>
+  <reg name="r7" bitsize="32" type="uint32"/>
+  <reg name="r8" bitsize="32" type="uint32"/>
+  <reg name="r9" bitsize="32" type="uint32"/>
+  <reg name="r10" bitsize="32" type="uint32"/>
+  <reg name="r11" bitsize="32" type="uint32"/>
+  <reg name="r12" bitsize="32" type="uint32"/>
+  <reg name="sp" bitsize="32" type="data_ptr"/>
+  <reg name="lr" bitsize="32"/>
+  <reg name="pc" bitsize="32" type="code_ptr"/>
+
+  <!-- The CPSR is register 25, rather than register 16, because
+       the FPA registers historically were placed between the PC
+       and the CPSR in the "g" packet.  -->
+  <reg name="cpsr" bitsize="32" regnum="25"/>
+</feature>
diff --git a/gdb/features/arm/arm-fpa.xml b/gdb/features/arm/arm-fpa.xml
new file mode 100644
index 0000000..8e21450
--- /dev/null
+++ b/gdb/features/arm/arm-fpa.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2007-2014 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 feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.arm.fpa">
+  <!-- f0's regnum is set explicitly, because the FPA registers
+       historically were placed between the PC and the CPSR in the "g"
+       packet - in the middle of org.gnu.gdb.arm.core.  -->
+  <reg name="f0" bitsize="96" type="arm_fpa_ext" regnum="16"/>
+  <reg name="f1" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="f2" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="f3" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="f4" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="f5" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="f6" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="f7" bitsize="96" type="arm_fpa_ext"/>
+
+  <reg name="fps" bitsize="32"/>
+</feature>
diff --git a/gdb/features/arm/arm-m-profile.xml b/gdb/features/arm/arm-m-profile.xml
new file mode 100644
index 0000000..06d660a
--- /dev/null
+++ b/gdb/features/arm/arm-m-profile.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2010-2014 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 feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.arm.m-profile">
+  <reg name="r0" bitsize="32"/>
+  <reg name="r1" bitsize="32"/>
+  <reg name="r2" bitsize="32"/>
+  <reg name="r3" bitsize="32"/>
+  <reg name="r4" bitsize="32"/>
+  <reg name="r5" bitsize="32"/>
+  <reg name="r6" bitsize="32"/>
+  <reg name="r7" bitsize="32"/>
+  <reg name="r8" bitsize="32"/>
+  <reg name="r9" bitsize="32"/>
+  <reg name="r10" bitsize="32"/>
+  <reg name="r11" bitsize="32"/>
+  <reg name="r12" bitsize="32"/>
+  <reg name="sp" bitsize="32" type="data_ptr"/>
+  <reg name="lr" bitsize="32"/>
+  <reg name="pc" bitsize="32" type="code_ptr"/>
+  <reg name="xpsr" bitsize="32" regnum="25"/>
+</feature>
diff --git a/gdb/features/arm/arm-vfpv2.xml b/gdb/features/arm/arm-vfpv2.xml
new file mode 100644
index 0000000..5e552e0
--- /dev/null
+++ b/gdb/features/arm/arm-vfpv2.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-2014 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 feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.arm.vfp">
+  <reg name="d0" bitsize="64" type="ieee_double"/>
+  <reg name="d1" bitsize="64" type="ieee_double"/>
+  <reg name="d2" bitsize="64" type="ieee_double"/>
+  <reg name="d3" bitsize="64" type="ieee_double"/>
+  <reg name="d4" bitsize="64" type="ieee_double"/>
+  <reg name="d5" bitsize="64" type="ieee_double"/>
+  <reg name="d6" bitsize="64" type="ieee_double"/>
+  <reg name="d7" bitsize="64" type="ieee_double"/>
+  <reg name="d8" bitsize="64" type="ieee_double"/>
+  <reg name="d9" bitsize="64" type="ieee_double"/>
+  <reg name="d10" bitsize="64" type="ieee_double"/>
+  <reg name="d11" bitsize="64" type="ieee_double"/>
+  <reg name="d12" bitsize="64" type="ieee_double"/>
+  <reg name="d13" bitsize="64" type="ieee_double"/>
+  <reg name="d14" bitsize="64" type="ieee_double"/>
+  <reg name="d15" bitsize="64" type="ieee_double"/>
+
+  <reg name="fpscr" bitsize="32" type="int" group="float"/>
+</feature>
diff --git a/gdb/features/arm/arm-vfpv3.xml b/gdb/features/arm/arm-vfpv3.xml
new file mode 100644
index 0000000..4cd5983
--- /dev/null
+++ b/gdb/features/arm/arm-vfpv3.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-2014 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 feature SYSTEM "gdb-target.dtd">
+<feature name="org.gnu.gdb.arm.vfp">
+  <reg name="d0" bitsize="64" type="ieee_double"/>
+  <reg name="d1" bitsize="64" type="ieee_double"/>
+  <reg name="d2" bitsize="64" type="ieee_double"/>
+  <reg name="d3" bitsize="64" type="ieee_double"/>
+  <reg name="d4" bitsize="64" type="ieee_double"/>
+  <reg name="d5" bitsize="64" type="ieee_double"/>
+  <reg name="d6" bitsize="64" type="ieee_double"/>
+  <reg name="d7" bitsize="64" type="ieee_double"/>
+  <reg name="d8" bitsize="64" type="ieee_double"/>
+  <reg name="d9" bitsize="64" type="ieee_double"/>
+  <reg name="d10" bitsize="64" type="ieee_double"/>
+  <reg name="d11" bitsize="64" type="ieee_double"/>
+  <reg name="d12" bitsize="64" type="ieee_double"/>
+  <reg name="d13" bitsize="64" type="ieee_double"/>
+  <reg name="d14" bitsize="64" type="ieee_double"/>
+  <reg name="d15" bitsize="64" type="ieee_double"/>
+  <reg name="d16" bitsize="64" type="ieee_double"/>
+  <reg name="d17" bitsize="64" type="ieee_double"/>
+  <reg name="d18" bitsize="64" type="ieee_double"/>
+  <reg name="d19" bitsize="64" type="ieee_double"/>
+  <reg name="d20" bitsize="64" type="ieee_double"/>
+  <reg name="d21" bitsize="64" type="ieee_double"/>
+  <reg name="d22" bitsize="64" type="ieee_double"/>
+  <reg name="d23" bitsize="64" type="ieee_double"/>
+  <reg name="d24" bitsize="64" type="ieee_double"/>
+  <reg name="d25" bitsize="64" type="ieee_double"/>
+  <reg name="d26" bitsize="64" type="ieee_double"/>
+  <reg name="d27" bitsize="64" type="ieee_double"/>
+  <reg name="d28" bitsize="64" type="ieee_double"/>
+  <reg name="d29" bitsize="64" type="ieee_double"/>
+  <reg name="d30" bitsize="64" type="ieee_double"/>
+  <reg name="d31" bitsize="64" type="ieee_double"/>
+
+  <reg name="fpscr" bitsize="32" type="int" group="float"/>
+</feature>
diff --git a/gdb/features/arm/arm-with-iwmmxt.c b/gdb/features/arm/arm-with-iwmmxt.c
new file mode 100644
index 0000000..1770e03
--- /dev/null
+++ b/gdb/features/arm/arm-with-iwmmxt.c
@@ -0,0 +1,82 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: arm-with-iwmmxt.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_arm_with_iwmmxt;
+static void
+initialize_tdesc_arm_with_iwmmxt (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+  struct tdesc_type *field_type;
+  struct tdesc_type *type;
+
+  set_tdesc_architecture (result, bfd_scan_arch ("iwmmxt"));
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.xscale.iwmmxt");
+  field_type = tdesc_named_type (feature, "uint8");
+  tdesc_create_vector (feature, "iwmmxt_v8u8", field_type, 8);
+
+  field_type = tdesc_named_type (feature, "uint16");
+  tdesc_create_vector (feature, "iwmmxt_v4u16", field_type, 4);
+
+  field_type = tdesc_named_type (feature, "uint32");
+  tdesc_create_vector (feature, "iwmmxt_v2u32", field_type, 2);
+
+  type = tdesc_create_union (feature, "iwmmxt_vec64i");
+  field_type = tdesc_named_type (feature, "iwmmxt_v8u8");
+  tdesc_add_field (type, "u8", field_type);
+  field_type = tdesc_named_type (feature, "iwmmxt_v4u16");
+  tdesc_add_field (type, "u16", field_type);
+  field_type = tdesc_named_type (feature, "iwmmxt_v2u32");
+  tdesc_add_field (type, "u32", field_type);
+  field_type = tdesc_named_type (feature, "uint64");
+  tdesc_add_field (type, "u64", field_type);
+
+  tdesc_create_reg (feature, "wR0", 26, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR1", 27, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR2", 28, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR3", 29, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR4", 30, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR5", 31, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR6", 32, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR7", 33, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR8", 34, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR9", 35, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR10", 36, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR11", 37, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR12", 38, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR13", 39, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR14", 40, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wR15", 41, 1, NULL, 64, "iwmmxt_vec64i");
+  tdesc_create_reg (feature, "wCSSF", 42, 1, "vector", 32, "int");
+  tdesc_create_reg (feature, "wCASF", 43, 1, "vector", 32, "int");
+  tdesc_create_reg (feature, "wCGR0", 44, 1, "vector", 32, "int");
+  tdesc_create_reg (feature, "wCGR1", 45, 1, "vector", 32, "int");
+  tdesc_create_reg (feature, "wCGR2", 46, 1, "vector", 32, "int");
+  tdesc_create_reg (feature, "wCGR3", 47, 1, "vector", 32, "int");
+
+  tdesc_arm_with_iwmmxt = result;
+}
diff --git a/gdb/features/arm/arm-with-iwmmxt.xml b/gdb/features/arm/arm-with-iwmmxt.xml
new file mode 100644
index 0000000..5adadee
--- /dev/null
+++ b/gdb/features/arm/arm-with-iwmmxt.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2007-2014 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>iwmmxt</architecture>
+  <xi:include href="arm-core.xml"/>
+  <xi:include href="xscale-iwmmxt.xml"/>
+</target>
diff --git a/gdb/features/arm/arm-with-m-fpa-layout.c b/gdb/features/arm/arm-with-m-fpa-layout.c
new file mode 100644
index 0000000..bc51f05
--- /dev/null
+++ b/gdb/features/arm/arm-with-m-fpa-layout.c
@@ -0,0 +1,44 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: arm-with-m-fpa-layout.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_arm_with_m_fpa_layout;
+static void
+initialize_tdesc_arm_with_m_fpa_layout (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
+  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "", 16, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 17, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 18, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 19, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 20, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 21, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 22, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 23, 1, NULL, 96, "arm_fpa_ext");
+  tdesc_create_reg (feature, "", 24, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "xpsr", 25, 1, NULL, 32, "int");
+
+  tdesc_arm_with_m_fpa_layout = result;
+}
diff --git a/gdb/features/arm/arm-with-m-fpa-layout.xml b/gdb/features/arm/arm-with-m-fpa-layout.xml
new file mode 100644
index 0000000..18b5b0a
--- /dev/null
+++ b/gdb/features/arm/arm-with-m-fpa-layout.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2007-2014 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.  -->
+
+<!-- A target description for an M-profile device, for stubs that
+     transfer registers using the historical fpa layout.  -->
+
+<!DOCTYPE target SYSTEM "gdb-target.dtd">
+<target>
+<feature name="org.gnu.gdb.arm.m-profile">
+  <reg name="r0" bitsize="32"/>
+  <reg name="r1" bitsize="32"/>
+  <reg name="r2" bitsize="32"/>
+  <reg name="r3" bitsize="32"/>
+  <reg name="r4" bitsize="32"/>
+  <reg name="r5" bitsize="32"/>
+  <reg name="r6" bitsize="32"/>
+  <reg name="r7" bitsize="32"/>
+  <reg name="r8" bitsize="32"/>
+  <reg name="r9" bitsize="32"/>
+  <reg name="r10" bitsize="32"/>
+  <reg name="r11" bitsize="32"/>
+  <reg name="r12" bitsize="32"/>
+  <reg name="sp" bitsize="32" type="data_ptr"/>
+  <reg name="lr" bitsize="32"/>
+  <reg name="pc" bitsize="32" type="code_ptr"/>
+
+  <!-- Slack for unused FPA registers (f0-f7 + fps).
+       See arm-fpa.xml.  -->
+  <reg name="" bitsize="96" type="arm_fpa_ext" regnum="16"/>
+  <reg name="" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="" bitsize="96" type="arm_fpa_ext"/>
+  <reg name="" bitsize="32"/>
+
+  <reg name="xpsr" bitsize="32" regnum="25"/>
+</feature>
+</target>
diff --git a/gdb/features/arm/arm-with-m-vfp-d16.c b/gdb/features/arm/arm-with-m-vfp-d16.c
new file mode 100644
index 0000000..a0da583
--- /dev/null
+++ b/gdb/features/arm/arm-with-m-vfp-d16.c
@@ -0,0 +1,54 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: arm-with-m-vfp-d16.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_arm_with_m_vfp_d16;
+static void
+initialize_tdesc_arm_with_m_vfp_d16 (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
+  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "xpsr", 25, 1, NULL, 32, "int");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
+  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "fpscr", 42, 1, "float", 32, "int");
+
+  tdesc_arm_with_m_vfp_d16 = result;
+}
diff --git a/gdb/features/arm/arm-with-m-vfp-d16.xml b/gdb/features/arm/arm-with-m-vfp-d16.xml
new file mode 100644
index 0000000..a6527ab
--- /dev/null
+++ b/gdb/features/arm/arm-with-m-vfp-d16.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2010-2014 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>
+  <xi:include href="arm-m-profile.xml"/>
+  <!-- Layout of vfpv4-sp-d16 is identical to vfpv2 -->
+  <xi:include href="arm-vfpv2.xml"/>
+</target>
diff --git a/gdb/features/arm/arm-with-m.c b/gdb/features/arm/arm-with-m.c
new file mode 100644
index 0000000..8e27a80
--- /dev/null
+++ b/gdb/features/arm/arm-with-m.c
@@ -0,0 +1,35 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: arm-with-m.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_arm_with_m;
+static void
+initialize_tdesc_arm_with_m (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.m-profile");
+  tdesc_create_reg (feature, "r0", 0, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r1", 1, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r2", 2, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r3", 3, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r4", 4, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r5", 5, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r6", 6, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r7", 7, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r8", 8, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r9", 9, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r10", 10, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r11", 11, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "r12", 12, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "sp", 13, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "xpsr", 25, 1, NULL, 32, "int");
+
+  tdesc_arm_with_m = result;
+}
diff --git a/gdb/features/arm/arm-with-m.xml b/gdb/features/arm/arm-with-m.xml
new file mode 100644
index 0000000..6b82405
--- /dev/null
+++ b/gdb/features/arm/arm-with-m.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2010-2014 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>
+  <xi:include href="arm-m-profile.xml"/>
+</target>
diff --git a/gdb/features/arm/arm-with-neon.c b/gdb/features/arm/arm-with-neon.c
new file mode 100644
index 0000000..61c9a3a
--- /dev/null
+++ b/gdb/features/arm/arm-with-neon.c
@@ -0,0 +1,72 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: arm-with-neon.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_arm_with_neon;
+static void
+initialize_tdesc_arm_with_neon (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
+  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d16", 42, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d17", 43, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d18", 44, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d19", 45, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d20", 46, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d21", 47, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d22", 48, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d23", 49, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d24", 50, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d25", 51, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d26", 52, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d27", 53, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d28", 54, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d29", 55, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d30", 56, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d31", 57, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "fpscr", 58, 1, "float", 32, "int");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.neon");
+
+  tdesc_arm_with_neon = result;
+}
diff --git a/gdb/features/arm/arm-with-neon.xml b/gdb/features/arm/arm-with-neon.xml
new file mode 100644
index 0000000..53d1618
--- /dev/null
+++ b/gdb/features/arm/arm-with-neon.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-2014 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>
+  <xi:include href="arm-core.xml"/>
+  <xi:include href="arm-vfpv3.xml"/>
+  <feature name="org.gnu.gdb.arm.neon"/>
+</target>
diff --git a/gdb/features/arm/arm-with-vfpv2.c b/gdb/features/arm/arm-with-vfpv2.c
new file mode 100644
index 0000000..78e3c81
--- /dev/null
+++ b/gdb/features/arm/arm-with-vfpv2.c
@@ -0,0 +1,54 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: arm-with-vfpv2.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_arm_with_vfpv2;
+static void
+initialize_tdesc_arm_with_vfpv2 (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
+  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "fpscr", 42, 1, "float", 32, "int");
+
+  tdesc_arm_with_vfpv2 = result;
+}
diff --git a/gdb/features/arm/arm-with-vfpv2.xml b/gdb/features/arm/arm-with-vfpv2.xml
new file mode 100644
index 0000000..98a5a1c
--- /dev/null
+++ b/gdb/features/arm/arm-with-vfpv2.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-2014 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>
+  <xi:include href="arm-core.xml"/>
+  <xi:include href="arm-vfpv2.xml"/>
+</target>
diff --git a/gdb/features/arm/arm-with-vfpv3.c b/gdb/features/arm/arm-with-vfpv3.c
new file mode 100644
index 0000000..e48ca79
--- /dev/null
+++ b/gdb/features/arm/arm-with-vfpv3.c
@@ -0,0 +1,70 @@
+/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
+  Original: arm-with-vfpv3.xml */
+
+#include "defs.h"
+#include "osabi.h"
+#include "target-descriptions.h"
+
+struct target_desc *tdesc_arm_with_vfpv3;
+static void
+initialize_tdesc_arm_with_vfpv3 (void)
+{
+  struct target_desc *result = allocate_target_description ();
+  struct tdesc_feature *feature;
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.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, "sp", 13, 1, NULL, 32, "data_ptr");
+  tdesc_create_reg (feature, "lr", 14, 1, NULL, 32, "int");
+  tdesc_create_reg (feature, "pc", 15, 1, NULL, 32, "code_ptr");
+  tdesc_create_reg (feature, "cpsr", 25, 1, NULL, 32, "int");
+
+  feature = tdesc_create_feature (result, "org.gnu.gdb.arm.vfp");
+  tdesc_create_reg (feature, "d0", 26, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d1", 27, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d2", 28, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d3", 29, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d4", 30, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d5", 31, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d6", 32, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d7", 33, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d8", 34, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d9", 35, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d10", 36, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d11", 37, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d12", 38, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d13", 39, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d14", 40, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d15", 41, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d16", 42, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d17", 43, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d18", 44, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d19", 45, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d20", 46, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d21", 47, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d22", 48, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d23", 49, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d24", 50, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d25", 51, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d26", 52, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d27", 53, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d28", 54, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d29", 55, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d30", 56, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "d31", 57, 1, NULL, 64, "ieee_double");
+  tdesc_create_reg (feature, "fpscr", 58, 1, "float", 32, "int");
+
+  tdesc_arm_with_vfpv3 = result;
+}
diff --git a/gdb/features/arm/arm-with-vfpv3.xml b/gdb/features/arm/arm-with-vfpv3.xml
new file mode 100644
index 0000000..aa39548
--- /dev/null
+++ b/gdb/features/arm/arm-with-vfpv3.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009-2014 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>
+  <xi:include href="arm-core.xml"/>
+  <xi:include href="arm-vfpv3.xml"/>
+</target>
diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
index cc4f53d..b69a68d 100644
--- a/gdb/gdbserver/configure.srv
+++ b/gdb/gdbserver/configure.srv
@@ -63,14 +63,14 @@ case "${target}" in
 			srv_regobj="${srv_regobj} arm-with-vfpv3.o"
 			srv_regobj="${srv_regobj} arm-with-neon.o"
 			srv_tgtobj="$srv_linux_obj linux-arm-low.o"
-			srv_xmlfiles="arm-with-iwmmxt.xml"
-			srv_xmlfiles="${srv_xmlfiles} arm-with-vfpv2.xml"
-			srv_xmlfiles="${srv_xmlfiles} arm-with-vfpv3.xml"
-			srv_xmlfiles="${srv_xmlfiles} arm-with-neon.xml"
-			srv_xmlfiles="${srv_xmlfiles} arm-core.xml"
-			srv_xmlfiles="${srv_xmlfiles} xscale-iwmmxt.xml"
-			srv_xmlfiles="${srv_xmlfiles} arm-vfpv2.xml"
-			srv_xmlfiles="${srv_xmlfiles} arm-vfpv3.xml"
+			srv_xmlfiles="arm/arm-with-iwmmxt.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/arm-with-vfpv2.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/arm-with-vfpv3.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/arm-with-neon.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/arm-core.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/xscale-iwmmxt.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/arm-vfpv2.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/arm-vfpv3.xml"
 			srv_linux_usrregs=yes
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes

             reply	other threads:[~2014-06-11  6:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-11  6:46 Terry Guo [this message]
2014-06-11  8:16 ` Will Newton
2014-06-11  9:12   ` Terry Guo
2014-06-11 11:24     ` Luis Machado
2014-06-12  3:40       ` Terry Guo
2014-06-16  2:12         ` Terry Guo
2014-06-16  7:27           ` Will Newton
2014-06-20  3:05             ` Terry Guo
2014-06-20  5:03               ` Luis Gustavo
2014-06-20  9:52               ` Pedro Alves
2014-06-20 10:21                 ` Terry Guo
2014-06-20 11:21                   ` Pedro Alves
2014-06-22  4:36                     ` Terry Guo
2014-06-23 12:41                       ` Pedro Alves
2014-06-25  1:30                         ` Terry Guo
2016-10-04 10:11 [PATCH] Clean " Yao Qi
2016-10-04 18:40 ` Pedro Alves
2016-10-05  8:38   ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000b01cf8540$dafa6d80$90ef4880$@arm.com' \
    --to=terry.guo@arm.com \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).