Clean up the XML files for ARM

Message ID 002601cf8dd3$6ee6f780$4cb4e680$@arm.com
State New, archived
Headers

Commit Message

Terry Guo June 22, 2014, 4:35 a.m. UTC
  > -----Original Message-----
> From: Pedro Alves [mailto:palves@redhat.com]
> Sent: Friday, June 20, 2014 7:22 PM
> To: Terry Guo
> Cc: lgustavo@codesourcery.com; gdb-patches@sourceware.org; 'Will
> Newton'
> Subject: Re: [Patch]Clean up the XML files for ARM
> 
> On 06/20/2014 11:21 AM, Terry Guo wrote:
> > diff --git a/gdb/features/arm-with-m.c b/gdb/features/arm/with-m.c
> > similarity index 100%
> > rename from gdb/features/arm-with-m.c
> > rename to gdb/features/arm/with-m.c
> 
> See arm-with-m.c:
> 
> /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
>   Original: arm-with-m.xml */
> 
> That's now stale.  Please regenerate the files (with features/Makefile),
> which also serves to make sure we can still regenerate them without
> error.
> 
> --
> Pedro Alves
> 

Thank you Pedro. I updated the patch per your comments.

BR,
Terry

2014-06-22  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 and regenerated.
     * 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 and regenerated.
     * 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 and regenerated.
     * 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 and regenerated.
     * 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 and regenerated.
     * 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 and regenerated.
     * 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 and regenerated.
     * features/Makefile: Use new paths to refer ARM files.
     * arm-tdep.c: Use new paths to include files.
     (arm_register_g_packet_guesses): Updated with new tdesc names.
     (_initialize_arm_tdep): Updated with new tdesc initialization function names.

gdb/testsuite/ChangeLog:

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

     * gdb.xml/tdesc-regs.exp: Set regdir for arm targets.

gdb/gdbserver/ChangeLog:

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

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

Comments

Pedro Alves June 23, 2014, 12:41 p.m. UTC | #1
On 06/22/2014 05:35 AM, Terry Guo wrote:
> rename from gdb/features/arm-with-m-vfp-d16.c
> rename to gdb/features/arm/with-m-vfp-d16.c
> index a0da583..5f47e3d 100644
> --- a/gdb/features/arm-with-m-vfp-d16.c
> +++ b/gdb/features/arm/with-m-vfp-d16.c
> @@ -1,13 +1,13 @@
>  /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
> -  Original: arm-with-m-vfp-d16.xml */
> +  Original: with-m-vfp-d16.xml */

Thank you.

However, I've just now realized a design problem with
losing the prefixes all over...  :-(

> -struct target_desc *tdesc_arm_with_m_vfp_d16;
> +struct target_desc *tdesc_with_m_vfp_d16;
>  static void
> -initialize_tdesc_arm_with_m_vfp_d16 (void)
> +initialize_tdesc_with_m_vfp_d16 (void)
>  {

Losing the prefix in the generated code is problematic for
multi-arch (--enable-target=all) builds, because this way we're
open for conflict between archs.  E.g., say we have

 arch1/linux.xml
 arch1/linux.c
 arch2/linux.xml
 arch2/linux.c

Then we end up with multiple conflicting definitions of
"struct target_desc *tdesc_linux;"

I think we should fix this by making the directory name be a prefix
in the generated code.  That is, in the ARM case, these hunks would
disappear from your patch:

> -struct target_desc *tdesc_arm_with_m_vfp_d16;
> +struct target_desc *tdesc_with_m_vfp_d16;
>  static void
> -initialize_tdesc_arm_with_m_vfp_d16 (void)
> +initialize_tdesc_with_m_vfp_d16 (void)
>  {

Would you like to work on this?
  
Terry Guo June 25, 2014, 1:29 a.m. UTC | #2
osing the prefix in the generated code is problematic for multi-arch (--
> enable-target=all) builds, because this way we're open for conflict between
> archs.  E.g., say we have
> 
>  arch1/linux.xml
>  arch1/linux.c
>  arch2/linux.xml
>  arch2/linux.c
> 
> Then we end up with multiple conflicting definitions of "struct target_desc
> *tdesc_linux;"
> 
> I think we should fix this by making the directory name be a prefix in the
> generated code.  That is, in the ARM case, these hunks would disappear from
> your patch:
> 
> > -struct target_desc *tdesc_arm_with_m_vfp_d16;
> > +struct target_desc *tdesc_with_m_vfp_d16;
> >  static void
> > -initialize_tdesc_arm_with_m_vfp_d16 (void)
> > +initialize_tdesc_with_m_vfp_d16 (void)
> >  {
> 
> Would you like to work on this?
> 
> --
> Pedro Alves
> 

You are right. I will work on this.

BR,
Terry
  

Patch

diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 74942b1..248d87c 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/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"
 
 static int arm_debug;
 
@@ -9802,14 +9802,14 @@  arm_register_g_packet_guesses (struct gdbarch *gdbarch)
 				      (16 * INT_REGISTER_SIZE)
 				      + (8 * FP_REGISTER_SIZE)
 				      + (2 * INT_REGISTER_SIZE),
-				      tdesc_arm_with_m_fpa_layout);
+				      tdesc_with_m_fpa_layout);
 
       /* The regular M-profile layout.  */
       register_remote_g_packet_guess (gdbarch,
 				      /* r0-r12,sp,lr,pc; xpsr */
 				      (16 * INT_REGISTER_SIZE)
 				      + INT_REGISTER_SIZE,
-				      tdesc_arm_with_m);
+				      tdesc_with_m);
 
       /* M-profile plus M4F VFP.  */
       register_remote_g_packet_guess (gdbarch,
@@ -9817,7 +9817,7 @@  arm_register_g_packet_guesses (struct gdbarch *gdbarch)
 				      (16 * INT_REGISTER_SIZE)
 				      + (16 * VFP_REGISTER_SIZE)
 				      + (2 * INT_REGISTER_SIZE),
-				      tdesc_arm_with_m_vfp_d16);
+				      tdesc_with_m_vfp_d16);
     }
 
   /* Otherwise we don't have a useful guess.  */
@@ -10452,13 +10452,13 @@  _initialize_arm_tdep (void)
 				  arm_elf_osabi_sniffer);
 
   /* Initialize the standard target descriptions.  */
-  initialize_tdesc_arm_with_m ();
-  initialize_tdesc_arm_with_m_fpa_layout ();
-  initialize_tdesc_arm_with_m_vfp_d16 ();
-  initialize_tdesc_arm_with_iwmmxt ();
-  initialize_tdesc_arm_with_vfpv2 ();
-  initialize_tdesc_arm_with_vfpv3 ();
-  initialize_tdesc_arm_with_neon ();
+  initialize_tdesc_with_m ();
+  initialize_tdesc_with_m_fpa_layout ();
+  initialize_tdesc_with_m_vfp_d16 ();
+  initialize_tdesc_with_iwmmxt ();
+  initialize_tdesc_with_vfpv2 ();
+  initialize_tdesc_with_vfpv3 ();
+  initialize_tdesc_with_neon ();
 
   /* Get the number of possible sets of register names defined in opcodes.  */
   num_disassembly_options = get_arm_regname_num_options ();
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index dbf4963..93ddbe2 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/with-iwmmxt arm/with-vfpv2 arm/with-vfpv3 arm/with-neon \
+	arm/with-m arm/with-m-fpa-layout 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/with-iwmmxt.dat: 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
similarity index 100%
rename from gdb/features/arm-core.xml
rename to gdb/features/arm/core.xml
diff --git a/gdb/features/arm-fpa.xml b/gdb/features/arm/fpa.xml
similarity index 100%
rename from gdb/features/arm-fpa.xml
rename to gdb/features/arm/fpa.xml
diff --git a/gdb/features/arm-m-profile.xml b/gdb/features/arm/m-profile.xml
similarity index 100%
rename from gdb/features/arm-m-profile.xml
rename to gdb/features/arm/m-profile.xml
diff --git a/gdb/features/arm-vfpv2.xml b/gdb/features/arm/vfpv2.xml
similarity index 100%
rename from gdb/features/arm-vfpv2.xml
rename to gdb/features/arm/vfpv2.xml
diff --git a/gdb/features/arm-vfpv3.xml b/gdb/features/arm/vfpv3.xml
similarity index 100%
rename from gdb/features/arm-vfpv3.xml
rename to gdb/features/arm/vfpv3.xml
diff --git a/gdb/features/arm-with-iwmmxt.c b/gdb/features/arm/with-iwmmxt.c
similarity index 96%
rename from gdb/features/arm-with-iwmmxt.c
rename to gdb/features/arm/with-iwmmxt.c
index 1770e03..378286f 100644
--- a/gdb/features/arm-with-iwmmxt.c
+++ b/gdb/features/arm/with-iwmmxt.c
@@ -1,13 +1,13 @@ 
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-iwmmxt.xml */
+  Original: with-iwmmxt.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_arm_with_iwmmxt;
+struct target_desc *tdesc_with_iwmmxt;
 static void
-initialize_tdesc_arm_with_iwmmxt (void)
+initialize_tdesc_with_iwmmxt (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -78,5 +78,5 @@  initialize_tdesc_arm_with_iwmmxt (void)
   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;
+  tdesc_with_iwmmxt = result;
 }
diff --git a/gdb/features/arm-with-iwmmxt.xml b/gdb/features/arm/with-iwmmxt.xml
similarity index 92%
rename from gdb/features/arm-with-iwmmxt.xml
rename to gdb/features/arm/with-iwmmxt.xml
index 5adadee..6b2939d 100644
--- a/gdb/features/arm-with-iwmmxt.xml
+++ b/gdb/features/arm/with-iwmmxt.xml
@@ -8,6 +8,6 @@ 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
   <architecture>iwmmxt</architecture>
-  <xi:include href="arm-core.xml"/>
+  <xi:include href="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
similarity index 91%
rename from gdb/features/arm-with-m-fpa-layout.c
rename to gdb/features/arm/with-m-fpa-layout.c
index bc51f05..941f21b 100644
--- a/gdb/features/arm-with-m-fpa-layout.c
+++ b/gdb/features/arm/with-m-fpa-layout.c
@@ -1,13 +1,13 @@ 
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-m-fpa-layout.xml */
+  Original: with-m-fpa-layout.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_arm_with_m_fpa_layout;
+struct target_desc *tdesc_with_m_fpa_layout;
 static void
-initialize_tdesc_arm_with_m_fpa_layout (void)
+initialize_tdesc_with_m_fpa_layout (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -40,5 +40,5 @@  initialize_tdesc_arm_with_m_fpa_layout (void)
   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;
+  tdesc_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
similarity index 100%
rename from gdb/features/arm-with-m-fpa-layout.xml
rename to gdb/features/arm/with-m-fpa-layout.xml
diff --git a/gdb/features/arm-with-m-vfp-d16.c b/gdb/features/arm/with-m-vfp-d16.c
similarity index 94%
rename from gdb/features/arm-with-m-vfp-d16.c
rename to gdb/features/arm/with-m-vfp-d16.c
index a0da583..5f47e3d 100644
--- a/gdb/features/arm-with-m-vfp-d16.c
+++ b/gdb/features/arm/with-m-vfp-d16.c
@@ -1,13 +1,13 @@ 
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-m-vfp-d16.xml */
+  Original: with-m-vfp-d16.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_arm_with_m_vfp_d16;
+struct target_desc *tdesc_with_m_vfp_d16;
 static void
-initialize_tdesc_arm_with_m_vfp_d16 (void)
+initialize_tdesc_with_m_vfp_d16 (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -50,5 +50,5 @@  initialize_tdesc_arm_with_m_vfp_d16 (void)
   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;
+  tdesc_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
similarity index 83%
rename from gdb/features/arm-with-m-vfp-d16.xml
rename to gdb/features/arm/with-m-vfp-d16.xml
index a6527ab..7fb6fb9 100644
--- a/gdb/features/arm-with-m-vfp-d16.xml
+++ b/gdb/features/arm/with-m-vfp-d16.xml
@@ -7,7 +7,7 @@ 
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
-  <xi:include href="arm-m-profile.xml"/>
+  <xi:include href="m-profile.xml"/>
   <!-- Layout of vfpv4-sp-d16 is identical to vfpv2 -->
-  <xi:include href="arm-vfpv2.xml"/>
+  <xi:include href="vfpv2.xml"/>
 </target>
diff --git a/gdb/features/arm-with-m.c b/gdb/features/arm/with-m.c
similarity index 91%
rename from gdb/features/arm-with-m.c
rename to gdb/features/arm/with-m.c
index 8e27a80..5ce95d6 100644
--- a/gdb/features/arm-with-m.c
+++ b/gdb/features/arm/with-m.c
@@ -1,13 +1,13 @@ 
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-m.xml */
+  Original: with-m.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_arm_with_m;
+struct target_desc *tdesc_with_m;
 static void
-initialize_tdesc_arm_with_m (void)
+initialize_tdesc_with_m (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -31,5 +31,5 @@  initialize_tdesc_arm_with_m (void)
   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;
+  tdesc_with_m = result;
 }
diff --git a/gdb/features/arm-with-m.xml b/gdb/features/arm/with-m.xml
similarity index 89%
rename from gdb/features/arm-with-m.xml
rename to gdb/features/arm/with-m.xml
index 6b82405..b1a4316 100644
--- a/gdb/features/arm-with-m.xml
+++ b/gdb/features/arm/with-m.xml
@@ -7,5 +7,5 @@ 
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
-  <xi:include href="arm-m-profile.xml"/>
+  <xi:include href="m-profile.xml"/>
 </target>
diff --git a/gdb/features/arm-with-neon.c b/gdb/features/arm/with-neon.c
similarity index 96%
rename from gdb/features/arm-with-neon.c
rename to gdb/features/arm/with-neon.c
index 61c9a3a..2139a59 100644
--- a/gdb/features/arm-with-neon.c
+++ b/gdb/features/arm/with-neon.c
@@ -1,13 +1,13 @@ 
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-neon.xml */
+  Original: with-neon.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_arm_with_neon;
+struct target_desc *tdesc_with_neon;
 static void
-initialize_tdesc_arm_with_neon (void)
+initialize_tdesc_with_neon (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -68,5 +68,5 @@  initialize_tdesc_arm_with_neon (void)
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.arm.neon");
 
-  tdesc_arm_with_neon = result;
+  tdesc_with_neon = result;
 }
diff --git a/gdb/features/arm-with-neon.xml b/gdb/features/arm/with-neon.xml
similarity index 83%
rename from gdb/features/arm-with-neon.xml
rename to gdb/features/arm/with-neon.xml
index 53d1618..096bb5a 100644
--- a/gdb/features/arm-with-neon.xml
+++ b/gdb/features/arm/with-neon.xml
@@ -7,7 +7,7 @@ 
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
-  <xi:include href="arm-core.xml"/>
-  <xi:include href="arm-vfpv3.xml"/>
+  <xi:include href="core.xml"/>
+  <xi:include href="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
similarity index 94%
rename from gdb/features/arm-with-vfpv2.c
rename to gdb/features/arm/with-vfpv2.c
index 78e3c81..484bf24 100644
--- a/gdb/features/arm-with-vfpv2.c
+++ b/gdb/features/arm/with-vfpv2.c
@@ -1,13 +1,13 @@ 
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-vfpv2.xml */
+  Original: with-vfpv2.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_arm_with_vfpv2;
+struct target_desc *tdesc_with_vfpv2;
 static void
-initialize_tdesc_arm_with_vfpv2 (void)
+initialize_tdesc_with_vfpv2 (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -50,5 +50,5 @@  initialize_tdesc_arm_with_vfpv2 (void)
   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;
+  tdesc_with_vfpv2 = result;
 }
diff --git a/gdb/features/arm-with-vfpv3.xml b/gdb/features/arm/with-vfpv2.xml
similarity index 82%
rename from gdb/features/arm-with-vfpv3.xml
rename to gdb/features/arm/with-vfpv2.xml
index aa39548..136c694 100644
--- a/gdb/features/arm-with-vfpv3.xml
+++ b/gdb/features/arm/with-vfpv2.xml
@@ -7,6 +7,6 @@ 
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
-  <xi:include href="arm-core.xml"/>
-  <xi:include href="arm-vfpv3.xml"/>
+  <xi:include href="core.xml"/>
+  <xi:include href="vfpv2.xml"/>
 </target>
diff --git a/gdb/features/arm-with-vfpv3.c b/gdb/features/arm/with-vfpv3.c
similarity index 96%
rename from gdb/features/arm-with-vfpv3.c
rename to gdb/features/arm/with-vfpv3.c
index e48ca79..e6d5dae 100644
--- a/gdb/features/arm-with-vfpv3.c
+++ b/gdb/features/arm/with-vfpv3.c
@@ -1,13 +1,13 @@ 
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: arm-with-vfpv3.xml */
+  Original: with-vfpv3.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_arm_with_vfpv3;
+struct target_desc *tdesc_with_vfpv3;
 static void
-initialize_tdesc_arm_with_vfpv3 (void)
+initialize_tdesc_with_vfpv3 (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -66,5 +66,5 @@  initialize_tdesc_arm_with_vfpv3 (void)
   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;
+  tdesc_with_vfpv3 = result;
 }
diff --git a/gdb/features/arm-with-vfpv2.xml b/gdb/features/arm/with-vfpv3.xml
similarity index 82%
rename from gdb/features/arm-with-vfpv2.xml
rename to gdb/features/arm/with-vfpv3.xml
index 98a5a1c..855ad13 100644
--- a/gdb/features/arm-with-vfpv2.xml
+++ b/gdb/features/arm/with-vfpv3.xml
@@ -7,6 +7,6 @@ 
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
-  <xi:include href="arm-core.xml"/>
-  <xi:include href="arm-vfpv2.xml"/>
+  <xi:include href="core.xml"/>
+  <xi:include href="vfpv3.xml"/>
 </target>
diff --git a/gdb/features/xscale-iwmmxt.xml b/gdb/features/arm/xscale-iwmmxt.xml
similarity index 100%
rename from gdb/features/xscale-iwmmxt.xml
rename to gdb/features/arm/xscale-iwmmxt.xml
diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
index cc4f53d..1b816ec 100644
--- a/gdb/gdbserver/configure.srv
+++ b/gdb/gdbserver/configure.srv
@@ -58,19 +58,19 @@  case "${target}" in
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
 			;;
-  arm*-*-linux*)	srv_regobj="reg-arm.o arm-with-iwmmxt.o"
-			srv_regobj="${srv_regobj} arm-with-vfpv2.o"
-			srv_regobj="${srv_regobj} arm-with-vfpv3.o"
-			srv_regobj="${srv_regobj} arm-with-neon.o"
+  arm*-*-linux*)	srv_regobj="reg-arm.o with-iwmmxt.o"
+			srv_regobj="${srv_regobj} with-vfpv2.o"
+			srv_regobj="${srv_regobj} with-vfpv3.o"
+			srv_regobj="${srv_regobj} 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/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} arm/xscale-iwmmxt.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/vfpv2.xml"
+			srv_xmlfiles="${srv_xmlfiles} arm/vfpv3.xml"
 			srv_linux_usrregs=yes
 			srv_linux_regsets=yes
 			srv_linux_thread_db=yes
diff --git a/gdb/testsuite/gdb.xml/tdesc-regs.exp b/gdb/testsuite/gdb.xml/tdesc-regs.exp
index 0e4547c..18a99ba 100644
--- a/gdb/testsuite/gdb.xml/tdesc-regs.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp
@@ -28,7 +28,8 @@  set regdir ""
 set architecture ""
 switch -glob -- [istarget] {
     "arm*-*-*" {
-        set core-regs {arm-core.xml}
+        set regdir "arm/"
+        set core-regs {core.xml}
     }
     "*m68k-*-*" {
         set core-regs {m68k-core.xml}