Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Michael Sturm <michael.sturm@intel.com>
To: mark.kettenis@xs4all.nl, palves@redhat.com, eliz@gnu.org
Cc: gdb-patches@sourceware.org, michael.sturm@intel.com
Subject: [PATCH v2 3/5] Rename target descriptions to reflect actual content of description.
Date: Thu, 01 Dec 2016 13:39:00 -0000	[thread overview]
Message-ID: <1480599538-30543-4-git-send-email-michael.sturm@intel.com> (raw)
In-Reply-To: <1480599538-30543-1-git-send-email-michael.sturm@intel.com>

To better reflect the actual feature set covered by the IA target
descriptions, the existing descriptions are renamed. Each feature of
the extended state is added to the name of a description or xstate mask
starting from AVX.
For example, amd64-mpx-avx512-linux becomes amd64-avx-mpx-avx512-linux,
while amd64-avx-linux remains unchanged.
Likewise, the corresponding xstate masks are changed, e.g. from
X86_XSTATE_MPX_AVX512_MASK to X86_XSTATE_AVX_MPX_AVX512_MASK.

gdb/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * amd64-linux-tdep.c (features/i386/amd64-avx512-linux.c): Rename
     include to...
     (features/i386/amd64-avx-mpx-avx512-linux.c): ...this.
     (features/i386/x32-avx512-linux.c): Rename include to...
     (features/i386/x32-avx-mpx-avx512-linux.c): ...this.
     (amd64_linux_core_read_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     X86_XSTATE_AVX512_MASK, desc_x32_avx512_linux, tdesc_amd64_avx512_linux.
     (_initialize_amd64_linux_tdep): Rename
     initialize_tdesc_amd64_avx512_linux, initialize_tdesc_x32_avx512_linux.
     * amd64-linux-tdep.h (tdesc_amd64_avx512_linux): Rename to...
     (tdesc_amd64_avx_mpx_avx512_linux): ...this.
     (tdesc_x32_avx512_linux): Rename to...
     (tdesc_x32_avx_mpx_avx512_linux): ...this.
     * amd64-tdep.c (features/i386/amd64-avx512.c): Rename include to...
     (features/i386/amd64-avx-mpx-avx512.c): ...this.
     (features/i386/x32-avx512.c): Rename include to...
     (features/i386/x32-avx-mpx-avx512.c): ...this.
     (amd64_target_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     X86_XSTATE_AVX512_MASK, tdesc_amd64_avx512.
     (_initialize_amd64_tdep): Rename initialize_tdesc_amd64_avx512. Rename
     initialize_tdesc_x32_avx512.
     * common/x86-xstate.h (X86_XSTATE_AVX512_MASK): Rename to...
     (X86_XSTATE_AVX_AVX512_MASK): ...this.
     (86_XSTATE_MPX_AVX512_MASK): Rename to...
     (X86_XSTATE_AVX_MPX_AVX512_MASK): ...this.
     (X86_XSTATE_ALL_MASK): Rename X86_XSTATE_MPX_AVX512_MASK to
     X86_XSTATE_AVX_MPX_AVX512_MASK.
     * features/Makefile (WHICH): Rename i386/i386-avx512,
     i386/i386-avx512-linux, i386/amd64-avx512, i386/amd64-avx512-linux,
     i386/x32-avx512, i386/x32-avx512-linux.
     (i386/i386-avx512-expedite, i386/i386-avx512-linux-expedite,
     i386/amd64-avx512-expedite, i386/amd64-avx512-linux-expedite,
     i386/x32-avx512-expedite, i386/x32-avx512-linux-expedite): Rename
     expedites.
     (XMLTOC): Rename i386/amd64-avx512-linux.xml, i386/amd64-avx512.xml,
     i386/i386-avx512-linux.xml, i386/i386-avx512.xml,
     i386/x32-avx512-linux.xml, i386/x32-avx512.xml.
     ($(outdir)/i386/i386-avx512.dat): Rename dat file in rule.
     ($(outdir)/i386/i386-avx512-linux.dat): Likewise.
     ($(outdir)/i386/amd64-avx512.dat): Likewise.
     ($(outdir)/i386/amd64-avx512-linux.dat): Likewise.
     ($(outdir)/i386/x32-avx512.dat): Likewise.
     ($(outdir)/i386/x32-avx512-linux.dat): Likewise.
     * features/i386/amd64-avx512-linux.c: Regenerate from renamed XML file.
     * features/i386/amd64-avx512-linux.xml: Rename XML file.
     * features/i386/amd64-avx512.c: Regenerate from renamed XML file.
     * features/i386/amd64-avx512.xml: Rename XML file.
     * features/i386/i386-avx512-linux.c: Regenerate from renamed XML file.
     * features/i386/i386-avx512-linux.xml: Rename XML file.
     * features/i386/i386-avx512.c: Regenerate from renamed XML file.
     * features/i386/i386-avx512.xml: Rename XML file.
     * features/i386/x32-avx512-linux.c: Regenerate from renamed XML file.
     * features/i386/x32-avx512-linux.xml: Rename XML file.
     * features/i386/x32-avx512.c: Regenerate from renamed XML file.
     * features/i386/x32-avx512.xml: Rename XML file.
     * i386-linux-tdep.c (features/i386/i386-avx512-linux.c): Rename to...
     (features/i386/i386-avx-mpx-avx512-linux.c): ...this.
     (i386_linux_core_read_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     X86_XSTATE_AVX512_MASK, tdesc_i386_avx512_linux.
     (_initialize_i386_linux_tdep): Rename initialize_tdesc_i386_avx512_linux.
     * i386-linux-tdep.h (tdesc_i386_avx512_linux): Rename to...
     (tdesc_i386_avx_mpx_avx512_linux): ...this.
     * i386-tdep.c (features/i386/i386-avx512.c): Rename to...
     (features/i386/i386-avx-mpx-avx512.c): ...this.
     (i386_register_reggroup_p): Rename X86_XSTATE_AVX512_MASK.
     (i386_validate_tdesc_p): Likewise.
     (i386_target_description): Rename X86_XSTATE_MPX_AVX512_MASK,
     tdesc_i386_avx512.
     (_initialize_i386_tdep): Rename initialize_tdesc_i386_avx512.
     * regformats/i386/amd64-avx512-linux.dat: Regenerate from renamed XML
     file.
     * regformats/i386/amd64-avx512.dat: Likewise.
     * regformats/i386/i386-avx512-linux.dat: Likewise.
     * regformats/i386/i386-avx512.dat: Likewise.
     * regformats/i386/x32-avx512-linux.dat: Likewise.
     * regformats/i386/x32-avx512.dat: Likewise.
     * x86-Linux-nat.c (x86_linux_read_description): Rename
     X86_XSTATE_MPX_AVX512_MASK, X86_XSTATE_AVX512_MASK,
     tdesc_x32_avx512_linux, tdesc_amd64_avx512_linux, tdesc_i386_avx512_linux.

gdbserver/Changelog:
2016-04-18  Michael Sturm  <michael.sturm@intel.com>

     * Makefile.in (clean): Rename i386-avx512.c, i386-avx512-linux.c,
     amd64-avx512.c, amd64-avx512-linux.c, x32-avx512.c, x32-avx512-linux.c.
     (i386-avx512-linux-ipa.o): Rename rule and source files.
     (amd64-avx512-linux-ipa.o): Likewise.
     (i386-avx512.c): Rename rule, source fils and dat files.
     (i386-avx512-linux.c): Likewise.
     (amd64-avx512.c): Likewise.
     (amd64-avx512-linux.c): Likewise.
     (x32-avx512.c): Likewise.
     (x32-avx512-linux.c): Likewise.
     * configfure.srv (srv_i386_regobj): Rename i386-avx512.o.
     (i386_linux_regobj): Rename i386-avx512-linux.o.
     (srv_amd64_regobj): Rename amd64-avx512.o, x32-avx512.o.
     (srv_amd64_linux_regobj): Rename amd64-avx512-linux.o,
     x32-avx512-linux.o.
     (ipa_i386_linux_regobj): Rename i386-avx512-linux-ipa.o.
     (ipa_amd64_linux_regobj): Rename amd64-avx512-linux-ipa.o.
     (srv_i386_xmlfiles): Rename i386/i386-avx512.xml.
     (srv_amd64_xmlfiles): Rename i386/amd64-avx512.xml, i386/x32-avx512.xml.
     (srv_i386_linux_xmlfiles): Rename i386/i386-avx512-linux.xml.
     (srv_amd64_linux_xmlfiles): Rename i386/amd64-avx512-linux.xml,
     i386/x32-avx512-linux.xml).
     * linux-amd64-ipa.c (get_ipa_tdesc): Rename X86_TDESC_AVX512 and returned
     tdesc for that case.
     (initialize_low_tracepoint): Rename init_registers_amd64_avx512_linux.
     * linux-i386-ipa.c (get_ipa_tdesc): Rename X86_TDESC_AVX512 and tdesc
     returned for that case.
     (initialize_low_tracepoint): Rename init_registers_i386_avx512_linux.
     * linux-x86-low.c (x86_linux_read_description): Rename
     X86_XSTATE_AVX512_MASK and tdesc returned for that case.
     (x86_get_ipa_tdesc_idx): Rename tdesc_amd64_avx512_linux,
     tdesc_x32_avx512_linux and mask returned for these descriptions.
     Rename tdesc_i386_avx512_linux and mask returned for that description.
     (initialize_low_arch): Rename init_registers_amd64_avx512_linux,
     init_registers_x32_avx512_linux, init_registers_i386_avx512_linux.
     * linux-x86-tdesc.h (enum x86_linux_tdesc): Rename X86_TDESC_AVX512.
     (init_registers_amd64_avx512_linux): Rename to...
     (init_registers_amd64_avx_mpx_avx512_linux): ...this.
     (tdesc_amd64_avx512_linux): Rename to...
     (tdesc_amd64_avx_mpx_avx512_linux): ...this.
     (init_registers_x32_avx512_linux): Rename to...
     (init_registers_x32_avx_mpx_avx512_linux): ...this.
     (tdesc_x32_avx512_linux): Rename to...
     (tdesc_x32_avx_mpx_avx512_linux): ...this.
     (init_registers_i386_avx512_linux): Rename to...
     (init_registers_i386_avx_mpx_avx512_linux): ...this.
     (tdesc_i386_avx512_linux): Rename to...
     (tdesc_i386_avx_mpx_avx512_linux): ...this.

Change-Id: Idb83be3b3b72d5487542d4b568193df2777a3d9d
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
---
 gdb/amd64-linux-tdep.c                             | 16 +++---
 gdb/amd64-linux-tdep.h                             |  4 +-
 gdb/amd64-tdep.c                                   | 14 ++---
 gdb/common/x86-xstate.h                            |  6 +--
 gdb/features/Makefile                              | 61 +++++++++++++++-------
 ...avx512-linux.c => amd64-avx-mpx-avx512-linux.c} |  8 +--
 ...12-linux.xml => amd64-avx-mpx-avx512-linux.xml} |  2 +-
 .../{amd64-avx512.c => amd64-avx-mpx-avx512.c}     |  8 +--
 .../{amd64-avx512.xml => amd64-avx-mpx-avx512.xml} |  2 +-
 ...-avx512-linux.c => i386-avx-mpx-avx512-linux.c} |  8 +--
 ...512-linux.xml => i386-avx-mpx-avx512-linux.xml} |  2 +-
 .../i386/{i386-avx512.c => i386-avx-mpx-avx512.c}  |  8 +--
 .../{i386-avx512.xml => i386-avx-mpx-avx512.xml}   |  2 +-
 ...2-avx512-linux.c => x32-avx-mpx-avx512-linux.c} |  8 +--
 ...x512-linux.xml => x32-avx-mpx-avx512-linux.xml} |  2 +-
 .../i386/{x32-avx512.c => x32-avx-mpx-avx512.c}    |  8 +--
 .../{x32-avx512.xml => x32-avx-mpx-avx512.xml}     |  2 +-
 gdb/gdbserver/Makefile.in                          | 34 ++++++------
 gdb/gdbserver/configure.srv                        | 21 ++++----
 gdb/gdbserver/linux-amd64-ipa.c                    | 11 ++--
 gdb/gdbserver/linux-i386-ipa.c                     |  6 +--
 gdb/gdbserver/linux-x86-low.c                      | 29 +++++-----
 gdb/gdbserver/linux-x86-tdesc.h                    | 20 +++----
 gdb/i386-linux-tdep.c                              | 10 ++--
 gdb/i386-linux-tdep.h                              |  2 +-
 gdb/i386-tdep.c                                    | 20 +++----
 ...2-avx512.dat => amd64-avx-mpx-avx512-linux.dat} |  7 +--
 ...2-avx512-linux.dat => amd64-avx-mpx-avx512.dat} |  7 ++-
 ...512-linux.dat => i386-avx-mpx-avx512-linux.dat} |  6 +--
 .../{i386-avx512.dat => i386-avx-mpx-avx512.dat}   |  6 +--
 ...x512-linux.dat => x32-avx-mpx-avx512-linux.dat} |  6 +--
 .../{amd64-avx512.dat => x32-avx-mpx-avx512.dat}   |  6 +--
 gdb/x86-linux-nat.c                                | 14 ++---
 33 files changed, 198 insertions(+), 168 deletions(-)
 rename gdb/features/i386/{amd64-avx512-linux.c => amd64-avx-mpx-avx512-linux.c} (98%)
 rename gdb/features/i386/{amd64-avx512-linux.xml => amd64-avx-mpx-avx512-linux.xml} (88%)
 rename gdb/features/i386/{amd64-avx512.c => amd64-avx-mpx-avx512.c} (98%)
 rename gdb/features/i386/{amd64-avx512.xml => amd64-avx-mpx-avx512.xml} (93%)
 rename gdb/features/i386/{i386-avx512-linux.c => i386-avx-mpx-avx512-linux.c} (98%)
 rename gdb/features/i386/{i386-avx512-linux.xml => i386-avx-mpx-avx512-linux.xml} (88%)
 rename gdb/features/i386/{i386-avx512.c => i386-avx-mpx-avx512.c} (98%)
 rename gdb/features/i386/{i386-avx512.xml => i386-avx-mpx-avx512.xml} (94%)
 rename gdb/features/i386/{x32-avx512-linux.c => x32-avx-mpx-avx512-linux.c} (98%)
 rename gdb/features/i386/{x32-avx512-linux.xml => x32-avx-mpx-avx512-linux.xml} (89%)
 rename gdb/features/i386/{x32-avx512.c => x32-avx-mpx-avx512.c} (98%)
 rename gdb/features/i386/{x32-avx512.xml => x32-avx-mpx-avx512.xml} (94%)
 rename gdb/regformats/i386/{x32-avx512.dat => amd64-avx-mpx-avx512-linux.dat} (91%)
 rename gdb/regformats/i386/{x32-avx512-linux.dat => amd64-avx-mpx-avx512.dat} (93%)
 rename gdb/regformats/i386/{i386-avx512-linux.dat => i386-avx-mpx-avx512-linux.dat} (84%)
 rename gdb/regformats/i386/{i386-avx512.dat => i386-avx-mpx-avx512.dat} (86%)
 rename gdb/regformats/i386/{amd64-avx512-linux.dat => x32-avx-mpx-avx512-linux.dat} (92%)
 rename gdb/regformats/i386/{amd64-avx512.dat => x32-avx-mpx-avx512.dat} (93%)

diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index 3f2a92b..d70c4b0 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -44,11 +44,11 @@
 #include "features/i386/amd64-avx-linux.c"
 #include "features/i386/amd64-mpx-linux.c"
 #include "features/i386/amd64-avx-mpx-linux.c"
-#include "features/i386/amd64-avx512-linux.c"
+#include "features/i386/amd64-avx-mpx-avx512-linux.c"
 
 #include "features/i386/x32-linux.c"
 #include "features/i386/x32-avx-linux.c"
-#include "features/i386/x32-avx512-linux.c"
+#include "features/i386/x32-avx-mpx-avx512-linux.c"
 
 /* The syscall's XML filename for i386.  */
 #define XML_SYSCALL_FILENAME_AMD64 "syscalls/amd64-linux.xml"
@@ -1580,12 +1580,12 @@ amd64_linux_core_read_description (struct gdbarch *gdbarch,
 
   switch (xcr0 & X86_XSTATE_ALL_MASK)
     {
-    case X86_XSTATE_MPX_AVX512_MASK:
-    case X86_XSTATE_AVX512_MASK:
+    case X86_XSTATE_AVX_MPX_AVX512_MASK:
+    case X86_XSTATE_AVX_AVX512_MASK:
       if (gdbarch_ptr_bit (gdbarch) == 32)
-	return tdesc_x32_avx512_linux;
+	return tdesc_x32_avx_mpx_avx512_linux;
       else
-	return tdesc_amd64_avx512_linux;
+	return tdesc_amd64_avx_mpx_avx512_linux;
     case X86_XSTATE_MPX_MASK:
       if (gdbarch_ptr_bit (gdbarch) == 32)
 	return tdesc_x32_avx_linux;  /* No x32 MPX falling back to AVX.  */
@@ -2291,9 +2291,9 @@ _initialize_amd64_linux_tdep (void)
   initialize_tdesc_amd64_avx_linux ();
   initialize_tdesc_amd64_mpx_linux ();
   initialize_tdesc_amd64_avx_mpx_linux ();
-  initialize_tdesc_amd64_avx512_linux ();
+  initialize_tdesc_amd64_avx_mpx_avx512_linux ();
 
   initialize_tdesc_x32_linux ();
   initialize_tdesc_x32_avx_linux ();
-  initialize_tdesc_x32_avx512_linux ();
+  initialize_tdesc_x32_avx_mpx_avx512_linux ();
 }
diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h
index d64d5d6..23c02f1 100644
--- a/gdb/amd64-linux-tdep.h
+++ b/gdb/amd64-linux-tdep.h
@@ -36,11 +36,11 @@ extern struct target_desc *tdesc_amd64_linux;
 extern struct target_desc *tdesc_amd64_avx_linux;
 extern struct target_desc *tdesc_amd64_mpx_linux;
 extern struct target_desc *tdesc_amd64_avx_mpx_linux;
-extern struct target_desc *tdesc_amd64_avx512_linux;
+extern struct target_desc *tdesc_amd64_avx_mpx_avx512_linux;
 
 extern struct target_desc *tdesc_x32_linux;
 extern struct target_desc *tdesc_x32_avx_linux;
-extern struct target_desc *tdesc_x32_avx512_linux;
+extern struct target_desc *tdesc_x32_avx_mpx_avx512_linux;
 
 /* Enum that defines the syscall identifiers for amd64 linux.
    Used for process record/replay, these will be translated into
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index a3a1fde..36c3773 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -46,11 +46,11 @@
 #include "features/i386/amd64-avx.c"
 #include "features/i386/amd64-mpx.c"
 #include "features/i386/amd64-avx-mpx.c"
-#include "features/i386/amd64-avx512.c"
+#include "features/i386/amd64-avx-mpx-avx512.c"
 
 #include "features/i386/x32.c"
 #include "features/i386/x32-avx.c"
-#include "features/i386/x32-avx512.c"
+#include "features/i386/x32-avx-mpx-avx512.c"
 
 #include "ax.h"
 #include "ax-gdb.h"
@@ -3189,9 +3189,9 @@ amd64_target_description (uint64_t xcr0)
 {
   switch (xcr0 & X86_XSTATE_ALL_MASK)
     {
-    case X86_XSTATE_MPX_AVX512_MASK:
-    case X86_XSTATE_AVX512_MASK:
-      return tdesc_amd64_avx512;
+    case X86_XSTATE_AVX_MPX_AVX512_MASK:
+    case X86_XSTATE_AVX_AVX512_MASK:
+      return tdesc_amd64_avx_mpx_avx512;
     case X86_XSTATE_MPX_MASK:
       return tdesc_amd64_mpx;
     case X86_XSTATE_AVX_MPX_MASK:
@@ -3213,11 +3213,11 @@ _initialize_amd64_tdep (void)
   initialize_tdesc_amd64_avx ();
   initialize_tdesc_amd64_mpx ();
   initialize_tdesc_amd64_avx_mpx ();
-  initialize_tdesc_amd64_avx512 ();
+  initialize_tdesc_amd64_avx_mpx_avx512 ();
 
   initialize_tdesc_x32 ();
   initialize_tdesc_x32_avx ();
-  initialize_tdesc_x32_avx512 ();
+  initialize_tdesc_x32_avx_mpx_avx512 ();
 }
 \f
 
diff --git a/gdb/common/x86-xstate.h b/gdb/common/x86-xstate.h
index 0aa9164..6f7dc75 100644
--- a/gdb/common/x86-xstate.h
+++ b/gdb/common/x86-xstate.h
@@ -41,10 +41,10 @@
 #define X86_XSTATE_AVX_MASK	(X86_XSTATE_SSE_MASK | X86_XSTATE_AVX)
 #define X86_XSTATE_MPX_MASK	(X86_XSTATE_SSE_MASK | X86_XSTATE_MPX)
 #define X86_XSTATE_AVX_MPX_MASK	(X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)
-#define X86_XSTATE_AVX512_MASK	(X86_XSTATE_AVX_MASK | X86_XSTATE_AVX512)
-#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_AVX_MPX_MASK | X86_XSTATE_AVX512)
+#define X86_XSTATE_AVX_AVX512_MASK	(X86_XSTATE_AVX_MASK | X86_XSTATE_AVX512)
+#define X86_XSTATE_AVX_MPX_AVX512_MASK (X86_XSTATE_AVX_MPX_MASK | X86_XSTATE_AVX512)
 
-#define X86_XSTATE_ALL_MASK	(X86_XSTATE_MPX_AVX512_MASK)
+#define X86_XSTATE_ALL_MASK	(X86_XSTATE_AVX_MPX_AVX512_MASK)
 
 #define X86_XSTATE_SSE_SIZE	576
 #define X86_XSTATE_AVX_SIZE	832
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 30eed5d..03844d7 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -52,14 +52,14 @@ WHICH = aarch64 \
 	i386/i386-avx i386/i386-avx-linux \
 	i386/i386-mpx i386/i386-mpx-linux \
 	i386/i386-avx-mpx i386/i386-avx-mpx-linux \
-	i386/i386-avx512 i386/i386-avx512-linux \
+	i386/i386-avx-mpx-avx512 i386/i386-avx-mpx-avx512-linux \
 	i386/amd64-avx i386/amd64-avx-linux \
 	i386/amd64-mpx i386/amd64-mpx-linux \
 	i386/amd64-avx-mpx i386/amd64-avx-mpx-linux \
-	i386/amd64-avx512 i386/amd64-avx512-linux \
+	i386/amd64-avx-mpx-avx512 i386/amd64-avx-mpx-avx512-linux \
 	i386/x32 i386/x32-linux \
 	i386/x32-avx i386/x32-avx-linux \
-	i386/x32-avx512 i386/x32-avx512-linux \
+	i386/x32-avx-mpx-avx512 i386/x32-avx-mpx-avx512-linux \
 	mips-linux mips-dsp-linux \
 	microblaze-with-stack-protect \
 	mips64-linux mips64-dsp-linux \
@@ -82,9 +82,34 @@ WHICH = aarch64 \
 # Record which registers should be sent to GDB by default after stop.
 aarch64-expedite = x29,sp,pc
 arm-expedite = r11,sp,pc
-i386-expedite = ebp,esp,eip
-amd64-expedite = rbp,rsp,rip
-x32-expedite = rbp,rsp,rip
+i386/i386-expedite = ebp,esp,eip
+i386/i386-linux-expedite = ebp,esp,eip
+i386/amd64-expedite = rbp,rsp,rip
+i386/amd64-linux-expedite = rbp,rsp,rip
+i386/i386-avx-expedite = ebp,esp,eip
+i386/i386-avx-linux-expedite = ebp,esp,eip
+i386/i386-mpx-expedite = ebp,esp,eip
+i386/i386-avx-mpx-expedite = ebp,esp,eip
+i386/i386-mpx-linux-expedite = ebp,esp,eip
+i386/i386-avx-mpx-linux-expedite = ebp,esp,eip
+i386/i386-avx-mpx-avx512-expedite = ebp,esp,eip
+i386/i386-avx-mpx-avx512-linux-expedite = ebp,esp,eip
+i386/i386-mmx-expedite = ebp,esp,eip
+i386/i386-mmx-linux-expedite = ebp,esp,eip
+i386/amd64-avx-expedite = rbp,rsp,rip
+i386/amd64-avx-linux-expedite = rbp,rsp,rip
+i386/amd64-mpx-expedite = rbp,rsp,rip
+i386/amd64-avx-mpx-expedite = rbp,rsp,rip
+i386/amd64-mpx-linux-expedite = rbp,rsp,rip
+i386/amd64-avx-mpx-linux-expedite = rbp,rsp,rip
+i386/amd64-avx-mpx-avx512-expedite = rbp,rsp,rip
+i386/amd64-avx-mpx-avx512-linux-expedite = rbp,rsp,rip
+i386/x32-expedite = rbp,rsp,rip
+i386/x32-linux-expedite = rbp,rsp,rip
+i386/x32-avx-expedite = rbp,rsp,rip
+i386/x32-avx-linux-expedite = rbp,rsp,rip
+i386/x32-avx-mpx-avx512-expedite = rbp,rsp,rip
+i386/x32-avx-mpx-avx512-linux-expedite = rbp,rsp,rip
 mips-expedite = r29,pc
 mips-dsp-expedite = r29,pc
 mips64-expedite = r29,pc
@@ -138,8 +163,8 @@ XMLTOC = \
 	arm/arm-with-vfpv3.xml \
 	i386/amd64-avx-linux.xml \
 	i386/amd64-avx.xml \
-	i386/amd64-avx512-linux.xml \
-	i386/amd64-avx512.xml \
+	i386/amd64-avx-mpx-avx512-linux.xml \
+	i386/amd64-avx-mpx-avx512.xml \
 	i386/amd64-linux.xml \
 	i386/amd64-mpx-linux.xml \
 	i386/amd64-mpx.xml \
@@ -148,8 +173,8 @@ XMLTOC = \
 	i386/amd64.xml \
 	i386/i386-avx-linux.xml \
 	i386/i386-avx.xml \
-	i386/i386-avx512-linux.xml \
-	i386/i386-avx512.xml \
+	i386/i386-avx-mpx-avx512-linux.xml \
+	i386/i386-avx-mpx-avx512.xml \
 	i386/i386-linux.xml \
 	i386/i386-mmx-linux.xml \
 	i386/i386-mmx.xml \
@@ -160,8 +185,8 @@ XMLTOC = \
 	i386/i386.xml \
 	i386/x32-avx-linux.xml \
 	i386/x32-avx.xml \
-	i386/x32-avx512-linux.xml \
-	i386/x32-avx512.xml \
+	i386/x32-avx-mpx-avx512-linux.xml \
+	i386/x32-avx-mpx-avx512.xml \
 	i386/x32-linux.xml \
 	i386/x32.xml \
 	microblaze-with-stack-protect.xml \
@@ -271,9 +296,9 @@ $(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml \
 			       i386/32bit-linux.xml i386/32bit-mpx.xml
 $(outdir)/i386/i386-avx-mpx-linux.dat: i386/32bit-core.xml \
 			       i386/32bit-linux.xml i386/32bit-mpx.xml
-$(outdir)/i386/i386-avx512.dat: i386/32bit-core.xml i386/32bit-avx.xml \
+$(outdir)/i386/i386-avx-mpx-avx512.dat: i386/32bit-core.xml i386/32bit-avx.xml \
 			       i386/32bit-mpx.xml i386/32bit-avx512.xml
-$(outdir)/i386/i386-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
+$(outdir)/i386/i386-avx-mpx-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
 			       i386/32bit-linux.xml i386/32bit-mpx.xml i386/32bit-avx512.xml
 $(outdir)/i386/i386-mmx.dat: i386/32bit-core.xml 
 $(outdir)/i386/i386-mmx-linux.dat: i386/32bit-core.xml i386/32bit-linux.xml
@@ -288,9 +313,9 @@ $(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \
 			       i386/64bit-mpx.xml
 $(outdir)/i386/amd64-avx-mpx.dat: i386/64bit-core.xml \
 			       i386/64bit-mpx.xml
-$(outdir)/i386/amd64-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+$(outdir)/i386/amd64-avx-mpx-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \
 			       i386/64bit-mpx.xml i386/64bit-avx512.xml
-$(outdir)/i386/amd64-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
+$(outdir)/i386/amd64-avx-mpx-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
 			       i386/64bit-mpx.xml i386/64bit-avx512.xml \
 			       i386/64bit-linux.xml
 $(outdir)/i386/x32.dat: i386/x32-core.xml i386/64bit-sse.xml
@@ -299,9 +324,9 @@ $(outdir)/i386/x32-linux.dat: i386/x32-core.xml i386/64bit-sse.xml \
 $(outdir)/i386/x32-avx.dat: i386/x32-core.xml i386/64bit-avx.xml
 $(outdir)/i386/x32-avx-linux.dat: i386/x32-core.xml i386/64bit-avx.xml \
 				  i386/64bit-linux.xml
-$(outdir)/i386/x32-avx512.dat: i386/x32-core.xml i386/64bit-avx.xml \
+$(outdir)/i386/x32-avx-mpx-avx512.dat: i386/x32-core.xml i386/64bit-avx.xml \
 			       i386/64bit-mpx.xml i386/64bit-avx512.xml
-$(outdir)/i386/x32-avx512-linux.dat: i386/x32-core.xml i386/64bit-avx.xml \
+$(outdir)/i386/x32-avx-mpx-avx512-linux.dat: i386/x32-core.xml i386/64bit-avx.xml \
 			       i386/64bit-mpx.xml i386/64bit-avx512.xml i386/64bit-linux.xml
 
 # 'all' doesn't build the C files, so don't delete them in 'clean'
diff --git a/gdb/features/i386/amd64-avx512-linux.c b/gdb/features/i386/amd64-avx-mpx-avx512-linux.c
similarity index 98%
rename from gdb/features/i386/amd64-avx512-linux.c
rename to gdb/features/i386/amd64-avx-mpx-avx512-linux.c
index ec3ba61..17bfa13 100644
--- a/gdb/features/i386/amd64-avx512-linux.c
+++ b/gdb/features/i386/amd64-avx-mpx-avx512-linux.c
@@ -1,13 +1,13 @@
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx512-linux.xml */
+  Original: amd64-avx-mpx-avx512-linux.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_amd64_avx512_linux;
+struct target_desc *tdesc_amd64_avx_mpx_avx512_linux;
 static void
-initialize_tdesc_amd64_avx512_linux (void)
+initialize_tdesc_amd64_avx_mpx_avx512_linux (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -318,5 +318,5 @@ initialize_tdesc_amd64_avx512_linux (void)
   tdesc_create_reg (feature, "zmm30h", 150, 1, NULL, 256, "v2ui128");
   tdesc_create_reg (feature, "zmm31h", 151, 1, NULL, 256, "v2ui128");
 
-  tdesc_amd64_avx512_linux = result;
+  tdesc_amd64_avx_mpx_avx512_linux = result;
 }
diff --git a/gdb/features/i386/amd64-avx512-linux.xml b/gdb/features/i386/amd64-avx-mpx-avx512-linux.xml
similarity index 88%
rename from gdb/features/i386/amd64-avx512-linux.xml
rename to gdb/features/i386/amd64-avx-mpx-avx512-linux.xml
index f8eb35a..4a761aa 100644
--- a/gdb/features/i386/amd64-avx512-linux.xml
+++ b/gdb/features/i386/amd64-avx-mpx-avx512-linux.xml
@@ -5,7 +5,7 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 
-<!-- AMD64 with AVX512 - Includes Linux-only special "register".  -->
+<!-- AMD64 with AVX, MPX, AVX512 - Includes Linux-only special "register".  -->
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
diff --git a/gdb/features/i386/amd64-avx512.c b/gdb/features/i386/amd64-avx-mpx-avx512.c
similarity index 98%
rename from gdb/features/i386/amd64-avx512.c
rename to gdb/features/i386/amd64-avx-mpx-avx512.c
index 09b73f4..486931f 100644
--- a/gdb/features/i386/amd64-avx512.c
+++ b/gdb/features/i386/amd64-avx-mpx-avx512.c
@@ -1,13 +1,13 @@
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: amd64-avx512.xml */
+  Original: amd64-avx-mpx-avx512.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_amd64_avx512;
+struct target_desc *tdesc_amd64_avx_mpx_avx512;
 static void
-initialize_tdesc_amd64_avx512 (void)
+initialize_tdesc_amd64_avx_mpx_avx512 (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -313,5 +313,5 @@ initialize_tdesc_amd64_avx512 (void)
   tdesc_create_reg (feature, "zmm30h", 149, 1, NULL, 256, "v2ui128");
   tdesc_create_reg (feature, "zmm31h", 150, 1, NULL, 256, "v2ui128");
 
-  tdesc_amd64_avx512 = result;
+  tdesc_amd64_avx_mpx_avx512 = result;
 }
diff --git a/gdb/features/i386/amd64-avx512.xml b/gdb/features/i386/amd64-avx-mpx-avx512.xml
similarity index 93%
rename from gdb/features/i386/amd64-avx512.xml
rename to gdb/features/i386/amd64-avx-mpx-avx512.xml
index 4db851d..dc67893 100644
--- a/gdb/features/i386/amd64-avx512.xml
+++ b/gdb/features/i386/amd64-avx-mpx-avx512.xml
@@ -5,7 +5,7 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 
-<!-- AMD64 with AVX512 -->
+<!-- AMD64 with AVX, MPX, AVX512 -->
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
diff --git a/gdb/features/i386/i386-avx512-linux.c b/gdb/features/i386/i386-avx-mpx-avx512-linux.c
similarity index 98%
rename from gdb/features/i386/i386-avx512-linux.c
rename to gdb/features/i386/i386-avx-mpx-avx512-linux.c
index 0d3ab22..0fa3552 100644
--- a/gdb/features/i386/i386-avx512-linux.c
+++ b/gdb/features/i386/i386-avx-mpx-avx512-linux.c
@@ -1,13 +1,13 @@
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx512-linux.xml */
+  Original: i386-avx-mpx-avx512-linux.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_i386_avx512_linux;
+struct target_desc *tdesc_i386_avx_mpx_avx512_linux;
 static void
-initialize_tdesc_i386_avx512_linux (void)
+initialize_tdesc_i386_avx_mpx_avx512_linux (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -204,5 +204,5 @@ initialize_tdesc_i386_avx512_linux (void)
   tdesc_create_reg (feature, "zmm6h", 70, 1, NULL, 256, "v2ui128");
   tdesc_create_reg (feature, "zmm7h", 71, 1, NULL, 256, "v2ui128");
 
-  tdesc_i386_avx512_linux = result;
+  tdesc_i386_avx_mpx_avx512_linux = result;
 }
diff --git a/gdb/features/i386/i386-avx512-linux.xml b/gdb/features/i386/i386-avx-mpx-avx512-linux.xml
similarity index 88%
rename from gdb/features/i386/i386-avx512-linux.xml
rename to gdb/features/i386/i386-avx-mpx-avx512-linux.xml
index c009bdf..0fc59b8 100644
--- a/gdb/features/i386/i386-avx512-linux.xml
+++ b/gdb/features/i386/i386-avx-mpx-avx512-linux.xml
@@ -5,7 +5,7 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 
-<!-- I386 with AVX512 - Includes Linux-only special "register".  -->
+<!-- I386 with AVX, MPX, AVX512 - Includes Linux-only special "register".  -->
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
diff --git a/gdb/features/i386/i386-avx512.c b/gdb/features/i386/i386-avx-mpx-avx512.c
similarity index 98%
rename from gdb/features/i386/i386-avx512.c
rename to gdb/features/i386/i386-avx-mpx-avx512.c
index 1cb68a1..ad5ac3b 100644
--- a/gdb/features/i386/i386-avx512.c
+++ b/gdb/features/i386/i386-avx-mpx-avx512.c
@@ -1,13 +1,13 @@
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: i386-avx512.xml */
+  Original: i386-avx-mpx-avx512.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_i386_avx512;
+struct target_desc *tdesc_i386_avx_mpx_avx512;
 static void
-initialize_tdesc_i386_avx512 (void)
+initialize_tdesc_i386_avx_mpx_avx512 (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -199,5 +199,5 @@ initialize_tdesc_i386_avx512 (void)
   tdesc_create_reg (feature, "zmm6h", 69, 1, NULL, 256, "v2ui128");
   tdesc_create_reg (feature, "zmm7h", 70, 1, NULL, 256, "v2ui128");
 
-  tdesc_i386_avx512 = result;
+  tdesc_i386_avx_mpx_avx512 = result;
 }
diff --git a/gdb/features/i386/i386-avx512.xml b/gdb/features/i386/i386-avx-mpx-avx512.xml
similarity index 94%
rename from gdb/features/i386/i386-avx512.xml
rename to gdb/features/i386/i386-avx-mpx-avx512.xml
index f3db235..6789eb6 100644
--- a/gdb/features/i386/i386-avx512.xml
+++ b/gdb/features/i386/i386-avx-mpx-avx512.xml
@@ -5,7 +5,7 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 
-<!-- I386 with AVX512 -->
+<!-- I386 with AVX, MPX, AVX512 -->
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
diff --git a/gdb/features/i386/x32-avx512-linux.c b/gdb/features/i386/x32-avx-mpx-avx512-linux.c
similarity index 98%
rename from gdb/features/i386/x32-avx512-linux.c
rename to gdb/features/i386/x32-avx-mpx-avx512-linux.c
index 7b2ab90..9594835 100644
--- a/gdb/features/i386/x32-avx512-linux.c
+++ b/gdb/features/i386/x32-avx-mpx-avx512-linux.c
@@ -1,13 +1,13 @@
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32-avx512-linux.xml */
+  Original: x32-avx-mpx-avx512-linux.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_x32_avx512_linux;
+struct target_desc *tdesc_x32_avx_mpx_avx512_linux;
 static void
-initialize_tdesc_x32_avx512_linux (void)
+initialize_tdesc_x32_avx_mpx_avx512_linux (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -318,5 +318,5 @@ initialize_tdesc_x32_avx512_linux (void)
   tdesc_create_reg (feature, "zmm30h", 150, 1, NULL, 256, "v2ui128");
   tdesc_create_reg (feature, "zmm31h", 151, 1, NULL, 256, "v2ui128");
 
-  tdesc_x32_avx512_linux = result;
+  tdesc_x32_avx_mpx_avx512_linux = result;
 }
diff --git a/gdb/features/i386/x32-avx512-linux.xml b/gdb/features/i386/x32-avx-mpx-avx512-linux.xml
similarity index 89%
rename from gdb/features/i386/x32-avx512-linux.xml
rename to gdb/features/i386/x32-avx-mpx-avx512-linux.xml
index 2056873..aa8c090 100644
--- a/gdb/features/i386/x32-avx512-linux.xml
+++ b/gdb/features/i386/x32-avx-mpx-avx512-linux.xml
@@ -5,7 +5,7 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 
-<!-- X32 with AVX512 - Includes Linux-only special "register".  -->
+<!-- X32 with AVX, MPX, AVX512 - Includes Linux-only special "register".  -->
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
diff --git a/gdb/features/i386/x32-avx512.c b/gdb/features/i386/x32-avx-mpx-avx512.c
similarity index 98%
rename from gdb/features/i386/x32-avx512.c
rename to gdb/features/i386/x32-avx-mpx-avx512.c
index acbfaea..20deeab 100644
--- a/gdb/features/i386/x32-avx512.c
+++ b/gdb/features/i386/x32-avx-mpx-avx512.c
@@ -1,13 +1,13 @@
 /* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:
-  Original: x32-avx512.xml */
+  Original: x32-avx-mpx-avx512.xml */
 
 #include "defs.h"
 #include "osabi.h"
 #include "target-descriptions.h"
 
-struct target_desc *tdesc_x32_avx512;
+struct target_desc *tdesc_x32_avx_mpx_avx512;
 static void
-initialize_tdesc_x32_avx512 (void)
+initialize_tdesc_x32_avx_mpx_avx512 (void)
 {
   struct target_desc *result = allocate_target_description ();
   struct tdesc_feature *feature;
@@ -313,5 +313,5 @@ initialize_tdesc_x32_avx512 (void)
   tdesc_create_reg (feature, "zmm30h", 149, 1, NULL, 256, "v2ui128");
   tdesc_create_reg (feature, "zmm31h", 150, 1, NULL, 256, "v2ui128");
 
-  tdesc_x32_avx512 = result;
+  tdesc_x32_avx_mpx_avx512 = result;
 }
diff --git a/gdb/features/i386/x32-avx512.xml b/gdb/features/i386/x32-avx-mpx-avx512.xml
similarity index 94%
rename from gdb/features/i386/x32-avx512.xml
rename to gdb/features/i386/x32-avx-mpx-avx512.xml
index 25a21a6..11f3fa6 100644
--- a/gdb/features/i386/x32-avx512.xml
+++ b/gdb/features/i386/x32-avx-mpx-avx512.xml
@@ -5,7 +5,7 @@
      are permitted in any medium without royalty provided the copyright
      notice and this notice are preserved.  -->
 
-<!-- X32 with AVX512 -->
+<!-- X32 with AVX, MPX, AVX512 -->
 
 <!DOCTYPE target SYSTEM "gdb-target.dtd">
 <target>
diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index e17cf70..ea05304 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -445,15 +445,15 @@ clean:
 	rm -f i386-avx.c i386-avx-linux.c
 	rm -f i386-mpx.c i386-mpx-linux.c
 	rm -f i386-avx-mpx.c i386-avx-mpx-linux.c
-	rm -f i386-avx512.c i386-avx512-linux.c
+	rm -f i386-avx-mpx-avx512.c i386-avx-mpx-avx512-linux.c
 	rm -f amd64-avx.c amd64-avx-linux.c
 	rm -f amd64-mpx.c amd64-mpx-linux.c
 	rm -f amd64-avx-mpx.c amd64-avx-mpx-linux.c
-	rm -f amd64-avx512.c amd64-avx512-linux.c
+	rm -f amd64-avx-mpx-avx512.c amd64-avx-mpx-avx512-linux.c
 	rm -f i386-mmx.c i386-mmx-linux.c
 	rm -f x32.c x32-linux.c
 	rm -f x32-avx.c x32-avx-linux.c
-	rm -f x32-avx512.c x32-avx512-linux.c
+	rm -f x32-avx-mpx-avx512.c x32-avx-mpx-avx512-linux.c
 	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
 
 maintainer-clean realclean distclean: clean
@@ -577,7 +577,7 @@ i386-mpx-linux-ipa.o: i386-mpx-linux.c
 i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
-i386-avx512-linux-ipa.o: i386-avx512-linux.c
+i386-avx-mpx-avx512-linux-ipa.o: i386-avx-mpx-avx512-linux.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
 linux-i386-ipa.o: linux-i386-ipa.c
@@ -598,7 +598,7 @@ amd64-mpx-linux-ipa.o: amd64-mpx-linux.c
 amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
-amd64-avx512-linux-ipa.o: amd64-avx512-linux.c
+amd64-avx-mpx-avx512-linux-ipa.o: amd64-avx-mpx-avx512-linux.c
 	$(IPAGENT_COMPILE) $<
 	$(POSTCOMPILE)
 linux-aarch64-ipa.o: linux-aarch64-ipa.c
@@ -894,10 +894,10 @@ i386-avx.c : $(srcdir)/../regformats/i386/i386-avx.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx.dat i386-avx.c
 i386-avx-linux.c : $(srcdir)/../regformats/i386/i386-avx-linux.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-linux.dat i386-avx-linux.c
-i386-avx512.c : $(srcdir)/../regformats/i386/i386-avx512.dat $(regdat_sh)
-	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx512.dat i386-avx512.c
-i386-avx512-linux.c : $(srcdir)/../regformats/i386/i386-avx512-linux.dat $(regdat_sh)
-	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx512-linux.dat i386-avx512-linux.c
+i386-avx-mpx-avx512.c : $(srcdir)/../regformats/i386/i386-avx-mpx-avx512.dat $(regdat_sh)
+	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx-avx512.dat i386-avx-mpx-avx512.c
+i386-avx-mpx-avx512-linux.c : $(srcdir)/../regformats/i386/i386-avx-mpx-avx512-linux.dat $(regdat_sh)
+	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-mpx-avx512-linux.dat i386-avx-mpx-avx512-linux.c
 i386-mpx.c : $(srcdir)/../regformats/i386/i386-mpx.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-mpx.dat i386-mpx.c
 i386-mpx-linux.c : $(srcdir)/../regformats/i386/i386-mpx-linux.dat $(regdat_sh)
@@ -1012,10 +1012,10 @@ amd64-avx.c : $(srcdir)/../regformats/i386/amd64-avx.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx.dat amd64-avx.c
 amd64-avx-linux.c : $(srcdir)/../regformats/i386/amd64-avx-linux.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-linux.dat amd64-avx-linux.c
-amd64-avx512.c : $(srcdir)/../regformats/i386/amd64-avx512.dat $(regdat_sh)
-	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx512.dat amd64-avx512.c
-amd64-avx512-linux.c : $(srcdir)/../regformats/i386/amd64-avx512-linux.dat $(regdat_sh)
-	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx512-linux.dat amd64-avx512-linux.c
+amd64-avx-mpx-avx512.c : $(srcdir)/../regformats/i386/amd64-avx-mpx-avx512.dat $(regdat_sh)
+	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx-avx512.dat amd64-avx-mpx-avx512.c
+amd64-avx-mpx-avx512-linux.c : $(srcdir)/../regformats/i386/amd64-avx-mpx-avx512-linux.dat $(regdat_sh)
+	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-mpx-avx512-linux.dat amd64-avx-mpx-avx512-linux.c
 amd64-mpx.c : $(srcdir)/../regformats/i386/amd64-mpx.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-mpx.dat amd64-mpx.c
 amd64-mpx-linux.c : $(srcdir)/../regformats/i386/amd64-mpx-linux.dat $(regdat_sh)
@@ -1032,10 +1032,10 @@ x32-avx.c : $(srcdir)/../regformats/i386/x32-avx.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx.dat x32-avx.c
 x32-avx-linux.c : $(srcdir)/../regformats/i386/x32-avx-linux.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-linux.dat x32-avx-linux.c
-x32-avx512.c : $(srcdir)/../regformats/i386/x32-avx512.dat $(regdat_sh)
-	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx512.dat x32-avx512.c
-x32-avx512-linux.c : $(srcdir)/../regformats/i386/x32-avx512-linux.dat $(regdat_sh)
-	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx512-linux.dat x32-avx512-linux.c
+x32-avx-mpx-avx512.c : $(srcdir)/../regformats/i386/x32-avx-mpx-avx512.dat $(regdat_sh)
+	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-mpx-avx512.dat x32-avx-mpx-avx512.c
+x32-avx-mpx-avx512-linux.c : $(srcdir)/../regformats/i386/x32-avx-mpx-avx512-linux.dat $(regdat_sh)
+	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-mpx-avx512-linux.dat x32-avx-mpx-avx512-linux.c
 reg-xtensa.c : $(srcdir)/../regformats/reg-xtensa.dat $(regdat_sh)
 	$(SHELL) $(regdat_sh) $(srcdir)/../regformats/reg-xtensa.dat reg-xtensa.c
 reg-tilegx.c : $(srcdir)/../regformats/reg-tilegx.dat $(regdat_sh)
diff --git a/gdb/gdbserver/configure.srv b/gdb/gdbserver/configure.srv
index 3267599..d0ce802 100644
--- a/gdb/gdbserver/configure.srv
+++ b/gdb/gdbserver/configure.srv
@@ -24,22 +24,21 @@
 # Default hostio_last_error implementation
 srv_hostio_err_objs="hostio-errno.o"
 
-srv_i386_regobj="i386.o i386-avx.o i386-avx512.o i386-mpx.o i386-avx-mpx.o i386-mmx.o"
-srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx512-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o"
-srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx512.o amd64-mpx.o amd64-avx-mpx.o x32.o x32-avx.o x32-avx512.o"
-srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx512-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx512-linux.o"
+srv_i386_regobj="i386.o i386-avx.o i386-avx-mpx-avx512.o i386-mpx.o i386-avx-mpx.o i386-mmx.o"
+srv_i386_linux_regobj="i386-linux.o i386-avx-linux.o i386-avx-mpx-avx512-linux.o i386-mpx-linux.o i386-avx-mpx-linux.o i386-mmx-linux.o"
+srv_amd64_regobj="amd64.o amd64-avx.o amd64-avx-mpx-avx512.o amd64-mpx.o amd64-avx-mpx.o x32.o x32-avx.o x32-avx-mpx-avx512.o"
+srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx-mpx-avx512-linux.o amd64-mpx-linux.o amd64-avx-mpx-linux.o x32-linux.o x32-avx-linux.o x32-avx-mpx-avx512-linux.o"
 
-ipa_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o  i386-avx-mpx-linux-ipa.o i386-avx512-linux-ipa.o i386-mpx-linux-ipa.o i386-mmx-linux-ipa.o"
-ipa_amd64_linux_regobj="amd64-linux-ipa.o amd64-avx-linux-ipa.o amd64-avx-mpx-linux-ipa.o amd64-avx512-linux-ipa.o amd64-mpx-linux-ipa.o"
-ipa_x32_linux_regobj="x32-linux-ipa.o x32-avx-linux-ipa.o x32-avx512-linux-ipa.o"
+ipa_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o  i386-avx-mpx-linux-ipa.o i386-avx-mpx-avx512-linux-ipa.o i386-mpx-linux-ipa.o i386-mmx-linux-ipa.o"
+ipa_amd64_linux_regobj="amd64-linux-ipa.o amd64-avx-linux-ipa.o amd64-avx-mpx-linux-ipa.o amd64-avx-mpx-avx512-linux-ipa.o amd64-mpx-linux-ipa.o"
 ipa_ppc_linux_regobj="powerpc-32l-ipa.o powerpc-altivec32l-ipa.o powerpc-cell32l-ipa.o powerpc-vsx32l-ipa.o powerpc-isa205-32l-ipa.o powerpc-isa205-altivec32l-ipa.o powerpc-isa205-vsx32l-ipa.o powerpc-e500l-ipa.o powerpc-64l-ipa.o powerpc-altivec64l-ipa.o powerpc-cell64l-ipa.o powerpc-vsx64l-ipa.o powerpc-isa205-64l-ipa.o powerpc-isa205-altivec64l-ipa.o powerpc-isa205-vsx64l-ipa.o"
 
 srv_i386_32bit_xmlfiles="i386/32bit-core.xml i386/32bit-sse.xml i386/32bit-avx.xml i386/32bit-avx512.xml i386/32bit-mpx.xml"
 srv_i386_64bit_xmlfiles="i386/64bit-core.xml i386/64bit-sse.xml i386/64bit-avx.xml i386/64bit-avx512.xml i386/x32-core.xml i386/64bit-mpx.xml"
-srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx512.xml i386/i386-mpx.xml i386/i386-avx-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
-srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx512.xml i386/amd64-mpx.xml i386/amd64-avx-mpx.xml  $srv_i386_64bit_xmlfiles"
-srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml i386/i386-avx-mpx-linux.xml $srv_i386_32bit_xmlfiles"
-srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/amd64-avx-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx512-linux.xml $srv_i386_64bit_xmlfiles"
+srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx-mpx-avx512.xml i386/i386-mpx.xml i386/i386-avx-mpx.xml i386/i386-mmx.xml $srv_i386_32bit_xmlfiles"
+srv_amd64_xmlfiles="i386/amd64.xml i386/amd64-avx.xml i386/amd64-avx-mpx-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx-mpx-avx512.xml i386/amd64-mpx.xml i386/amd64-avx-mpx.xml  $srv_i386_64bit_xmlfiles"
+srv_i386_linux_xmlfiles="i386/i386-linux.xml i386/i386-avx-linux.xml i386/i386-avx-mpx-avx512-linux.xml i386/i386-mmx-linux.xml i386/32bit-linux.xml i386/i386-mpx-linux.xml i386/i386-avx-mpx-linux.xml $srv_i386_32bit_xmlfiles"
+srv_amd64_linux_xmlfiles="i386/amd64-linux.xml i386/amd64-avx-linux.xml i386/amd64-avx-mpx-avx512-linux.xml i386/64bit-linux.xml i386/amd64-mpx-linux.xml i386/amd64-avx-mpx-linux.xml i386/x32-linux.xml i386/x32-avx-linux.xml i386/x32-avx-mpx-avx512-linux.xml $srv_i386_64bit_xmlfiles"
 
 
 # Linux object files.  This is so we don't have to repeat
diff --git a/gdb/gdbserver/linux-amd64-ipa.c b/gdb/gdbserver/linux-amd64-ipa.c
index 0625b85..23353db 100644
--- a/gdb/gdbserver/linux-amd64-ipa.c
+++ b/gdb/gdbserver/linux-amd64-ipa.c
@@ -197,8 +197,12 @@ get_ipa_tdesc (int idx)
       return tdesc_amd64_mpx_linux;
     case X86_TDESC_AVX_MPX:
       return tdesc_amd64_avx_mpx_linux;
-    case X86_TDESC_AVX512:
-      return tdesc_amd64_avx512_linux;
+    case X86_TDESC_AVX_MPX_AVX512:
+      return tdesc_amd64_avx_mpx_avx512_linux;
+    default:
+      internal_error (__FILE__, __LINE__,
+		      "unknown ipa tdesc index: %d", idx);
+      return tdesc_amd64_linux;
     }
 #endif
 
@@ -278,7 +282,6 @@ initialize_low_tracepoint (void)
   init_registers_amd64_linux ();
   init_registers_amd64_avx_linux ();
   init_registers_amd64_avx_mpx_linux ();
-  init_registers_amd64_mpx_linux ();
-  init_registers_amd64_avx512_linux ();
+  init_registers_amd64_avx_mpx_avx512_linux ();
 #endif
 }
diff --git a/gdb/gdbserver/linux-i386-ipa.c b/gdb/gdbserver/linux-i386-ipa.c
index 6cf4e45..4d9c22e 100644
--- a/gdb/gdbserver/linux-i386-ipa.c
+++ b/gdb/gdbserver/linux-i386-ipa.c
@@ -262,8 +262,8 @@ get_ipa_tdesc (int idx)
       return tdesc_i386_mpx_linux;
     case X86_TDESC_AVX_MPX:
       return tdesc_i386_avx_mpx_linux;
-    case X86_TDESC_AVX512:
-      return tdesc_i386_avx512_linux;
+    case X86_TDESC_AVX_MPX_AVX512:
+      return tdesc_i386_avx_mpx_avx512_linux;
     default:
       internal_error (__FILE__, __LINE__,
 		      "unknown ipa tdesc index: %d", idx);
@@ -293,6 +293,6 @@ initialize_low_tracepoint (void)
   init_registers_i386_linux ();
   init_registers_i386_avx_linux ();
   init_registers_i386_mpx_linux ();
-  init_registers_i386_avx512_linux ();
+  init_registers_i386_avx_mpx_avx512_linux ();
   initialize_fast_tracepoint_trampoline_buffer ();
 }
diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c
index acded1a..700b000 100644
--- a/gdb/gdbserver/linux-x86-low.c
+++ b/gdb/gdbserver/linux-x86-low.c
@@ -790,8 +790,9 @@ x86_linux_read_description (void)
 	    {
 	      switch (xcr0 & X86_XSTATE_ALL_MASK)
 	        {
-		case X86_XSTATE_AVX512_MASK:
-		  return tdesc_amd64_avx512_linux;
+		case X86_XSTATE_AVX_MPX_AVX512_MASK:
+		case X86_XSTATE_AVX_AVX512_MASK:
+		  return tdesc_amd64_avx_mpx_avx512_linux;
 
 		case X86_XSTATE_AVX_MPX_MASK:
 		  return tdesc_amd64_avx_mpx_linux;
@@ -815,8 +816,9 @@ x86_linux_read_description (void)
 	    {
 	      switch (xcr0 & X86_XSTATE_ALL_MASK)
 	        {
-		case X86_XSTATE_AVX512_MASK:
-		  return tdesc_x32_avx512_linux;
+		case X86_XSTATE_AVX_MPX_AVX512_MASK:
+		case X86_XSTATE_AVX_AVX512_MASK:
+		  return tdesc_x32_avx_mpx_avx512_linux;
 
 		case X86_XSTATE_MPX_MASK: /* No MPX on x32.  */
 		case X86_XSTATE_AVX_MASK:
@@ -837,8 +839,9 @@ x86_linux_read_description (void)
 	{
 	  switch (xcr0 & X86_XSTATE_ALL_MASK)
 	    {
-	    case (X86_XSTATE_AVX512_MASK):
-	      return tdesc_i386_avx512_linux;
+	    case X86_XSTATE_AVX_MPX_AVX512_MASK:
+	    case (X86_XSTATE_AVX_AVX512_MASK):
+	      return tdesc_i386_avx_mpx_avx512_linux;
 
 	    case (X86_XSTATE_MPX_MASK):
 	      return tdesc_i386_mpx_linux;
@@ -2863,8 +2866,8 @@ x86_get_ipa_tdesc_idx (void)
     return X86_TDESC_MPX;
   if (tdesc == tdesc_amd64_avx_mpx_linux)
     return X86_TDESC_AVX_MPX;
-  if (tdesc == tdesc_amd64_avx512_linux || tdesc == tdesc_x32_avx512_linux)
-    return X86_TDESC_AVX512;
+  if (tdesc == tdesc_amd64_avx_mpx_avx512_linux || tdesc == tdesc_x32_avx_mpx_avx512_linux)
+    return X86_TDESC_AVX_MPX_AVX512;
 #endif
 
   if (tdesc == tdesc_i386_mmx_linux)
@@ -2877,8 +2880,8 @@ x86_get_ipa_tdesc_idx (void)
     return X86_TDESC_MPX;
   if (tdesc == tdesc_i386_avx_mpx_linux)
     return X86_TDESC_AVX_MPX;
-  if (tdesc == tdesc_i386_avx512_linux)
-    return X86_TDESC_AVX512;
+  if (tdesc == tdesc_i386_avx_mpx_avx512_linux)
+    return X86_TDESC_AVX_MPX_AVX512;
 
   return 0;
 }
@@ -2936,13 +2939,13 @@ initialize_low_arch (void)
 #ifdef __x86_64__
   init_registers_amd64_linux ();
   init_registers_amd64_avx_linux ();
-  init_registers_amd64_avx512_linux ();
   init_registers_amd64_mpx_linux ();
   init_registers_amd64_avx_mpx_linux ();
+  init_registers_amd64_avx_mpx_avx512_linux ();
 
   init_registers_x32_linux ();
   init_registers_x32_avx_linux ();
-  init_registers_x32_avx512_linux ();
+  init_registers_x32_avx_mpx_avx512_linux ();
 
   tdesc_amd64_linux_no_xml = XNEW (struct target_desc);
   copy_target_description (tdesc_amd64_linux_no_xml, tdesc_amd64_linux);
@@ -2951,9 +2954,9 @@ initialize_low_arch (void)
   init_registers_i386_linux ();
   init_registers_i386_mmx_linux ();
   init_registers_i386_avx_linux ();
-  init_registers_i386_avx512_linux ();
   init_registers_i386_mpx_linux ();
   init_registers_i386_avx_mpx_linux ();
+  init_registers_i386_avx_mpx_avx512_linux ();
 
   tdesc_i386_linux_no_xml = XNEW (struct target_desc);
   copy_target_description (tdesc_i386_linux_no_xml, tdesc_i386_linux);
diff --git a/gdb/gdbserver/linux-x86-tdesc.h b/gdb/gdbserver/linux-x86-tdesc.h
index 720f50c..1f11077 100644
--- a/gdb/gdbserver/linux-x86-tdesc.h
+++ b/gdb/gdbserver/linux-x86-tdesc.h
@@ -28,7 +28,7 @@ enum x86_linux_tdesc {
   X86_TDESC_AVX = 2,
   X86_TDESC_MPX = 3,
   X86_TDESC_AVX_MPX = 4,
-  X86_TDESC_AVX512 = 5,
+  X86_TDESC_AVX_MPX_AVX512 = 5,
 };
 
 #ifdef __x86_64__
@@ -42,9 +42,9 @@ extern const struct target_desc *tdesc_amd64_linux;
 void init_registers_amd64_avx_linux (void);
 extern const struct target_desc *tdesc_amd64_avx_linux;
 
-/* Defined in auto-generated file amd64-avx512-linux.c.  */
-void init_registers_amd64_avx512_linux (void);
-extern const struct target_desc *tdesc_amd64_avx512_linux;
+/* Defined in auto-generated file amd64-avx-mpx-avx512-linux.c.  */
+void init_registers_amd64_avx_mpx_avx512_linux (void);
+extern const struct target_desc *tdesc_amd64_avx_mpx_avx512_linux;
 
 /* Defined in auto-generated file amd64-avx-mpx-linux.c.  */
 void init_registers_amd64_avx_mpx_linux (void);
@@ -64,9 +64,9 @@ extern const struct target_desc *tdesc_x32_linux;
 void init_registers_x32_avx_linux (void);
 extern const struct target_desc *tdesc_x32_avx_linux;
 
-/* Defined in auto-generated file x32-avx512-linux.c.  */
-void init_registers_x32_avx512_linux (void);
-extern const struct target_desc *tdesc_x32_avx512_linux;
+/* Defined in auto-generated file x32-avx-mpx-avx512-linux.c.  */
+void init_registers_x32_avx_mpx_avx512_linux (void);
+extern const struct target_desc *tdesc_x32_avx_mpx_avx512_linux;
 #endif
 
 #endif
@@ -88,9 +88,9 @@ extern const struct target_desc *tdesc_i386_avx_linux;
 void init_registers_i386_avx_mpx_linux (void);
 extern const struct target_desc *tdesc_i386_avx_mpx_linux;
 
-/* Defined in auto-generated file i386-avx512-linux.c.  */
-void init_registers_i386_avx512_linux (void);
-extern const struct target_desc *tdesc_i386_avx512_linux;
+/* Defined in auto-generated file i386-avx-mpx-avx512-linux.c.  */
+void init_registers_i386_avx_mpx_avx512_linux (void);
+extern const struct target_desc *tdesc_i386_avx_mpx_avx512_linux;
 
 /* Defined in auto-generated file i386-mpx-linux.c.  */
 void init_registers_i386_mpx_linux (void);
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index eeaf621..3ebd3ec 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -50,7 +50,7 @@
 #include "features/i386/i386-mpx-linux.c"
 #include "features/i386/i386-avx-mpx-linux.c"
 #include "features/i386/i386-avx-linux.c"
-#include "features/i386/i386-avx512-linux.c"
+#include "features/i386/i386-avx-mpx-avx512-linux.c"
 
 /* Return non-zero, when the register is in the corresponding register
    group.  Put the LINUX_ORIG_EAX register in the system group.  */
@@ -693,9 +693,9 @@ i386_linux_core_read_description (struct gdbarch *gdbarch,
 
   switch ((xcr0 & X86_XSTATE_ALL_MASK))
     {
-    case X86_XSTATE_MPX_AVX512_MASK:
-    case X86_XSTATE_AVX512_MASK:
-      return tdesc_i386_avx512_linux;
+    case X86_XSTATE_AVX_MPX_AVX512_MASK:
+    case X86_XSTATE_AVX_AVX512_MASK:
+      return tdesc_i386_avx_mpx_avx512_linux;
     case X86_XSTATE_MPX_MASK:
       return tdesc_i386_mpx_linux;
     case X86_XSTATE_AVX_MPX_MASK:
@@ -1091,5 +1091,5 @@ _initialize_i386_linux_tdep (void)
   initialize_tdesc_i386_avx_linux ();
   initialize_tdesc_i386_mpx_linux ();
   initialize_tdesc_i386_avx_mpx_linux ();
-  initialize_tdesc_i386_avx512_linux ();
+  initialize_tdesc_i386_avx_mpx_avx512_linux ();
 }
diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h
index 924a154..67a57c9 100644
--- a/gdb/i386-linux-tdep.h
+++ b/gdb/i386-linux-tdep.h
@@ -48,7 +48,7 @@ extern struct target_desc *tdesc_i386_mmx_linux;
 extern struct target_desc *tdesc_i386_avx_linux;
 extern struct target_desc *tdesc_i386_mpx_linux;
 extern struct target_desc *tdesc_i386_avx_mpx_linux;
-extern struct target_desc *tdesc_i386_avx512_linux;
+extern struct target_desc *tdesc_i386_avx_mpx_avx512_linux;
 
 /* Format of XSAVE extended state is:
  	struct
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 22fb54c..20c20b6 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -54,7 +54,7 @@
 #include "features/i386/i386-avx.c"
 #include "features/i386/i386-mpx.c"
 #include "features/i386/i386-avx-mpx.c"
-#include "features/i386/i386-avx512.c"
+#include "features/i386/i386-avx-mpx-avx512.c"
 #include "features/i386/i386-mmx.c"
 
 #include "ax.h"
@@ -4555,11 +4555,11 @@ i386_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
   ymm_avx512_regnum_p = i386_ymm_avx512_regnum_p (gdbarch, regnum);
   zmm_regnum_p = i386_zmm_regnum_p (gdbarch, regnum);
 
-  avx512_p = ((tdep->xcr0 & X86_XSTATE_AVX512_MASK)
-	      == X86_XSTATE_AVX512_MASK);
-  avx_p = ((tdep->xcr0 & X86_XSTATE_AVX512_MASK)
+  avx512_p = ((tdep->xcr0 & X86_XSTATE_AVX_AVX512_MASK)
+	      == X86_XSTATE_AVX_AVX512_MASK);
+  avx_p = ((tdep->xcr0 & X86_XSTATE_AVX_AVX512_MASK)
 	   == X86_XSTATE_AVX_MASK) && !avx512_p;
-  sse_p = ((tdep->xcr0 & X86_XSTATE_AVX512_MASK)
+  sse_p = ((tdep->xcr0 & X86_XSTATE_AVX_AVX512_MASK)
 	   == X86_XSTATE_SSE_MASK) && !avx512_p && ! avx_p;
 
   if (group == vector_reggroup)
@@ -8215,7 +8215,7 @@ i386_validate_tdesc_p (struct gdbarch_tdep *tdep,
       if (!feature_avx)
 	return 0;
 
-      tdep->xcr0 = X86_XSTATE_MPX_AVX512_MASK;
+      tdep->xcr0 = X86_XSTATE_AVX_MPX_AVX512_MASK;
 
       /* It may have been set by OSABI initialization function.  */
       if (tdep->k0_regnum < 0)
@@ -8690,9 +8690,9 @@ i386_target_description (uint64_t xcr0)
 {
   switch (xcr0 & X86_XSTATE_ALL_MASK)
     {
-    case X86_XSTATE_MPX_AVX512_MASK:
-    case X86_XSTATE_AVX512_MASK:
-      return tdesc_i386_avx512;
+    case X86_XSTATE_AVX_MPX_AVX512_MASK:
+    case X86_XSTATE_AVX_AVX512_MASK:
+      return tdesc_i386_avx_mpx_avx512;
     case X86_XSTATE_AVX_MPX_MASK:
       return tdesc_i386_avx_mpx;
     case X86_XSTATE_MPX_MASK:
@@ -9034,7 +9034,7 @@ Show Intel Memory Protection Extensions specific variables."),
   initialize_tdesc_i386_avx ();
   initialize_tdesc_i386_mpx ();
   initialize_tdesc_i386_avx_mpx ();
-  initialize_tdesc_i386_avx512 ();
+  initialize_tdesc_i386_avx_mpx_avx512 ();
 
   /* Tell remote stub that we support XML target description.  */
   register_remote_support_xml ("i386");
diff --git a/gdb/regformats/i386/x32-avx512.dat b/gdb/regformats/i386/amd64-avx-mpx-avx512-linux.dat
similarity index 91%
rename from gdb/regformats/i386/x32-avx512.dat
rename to gdb/regformats/i386/amd64-avx-mpx-avx512-linux.dat
index 609ffe4..09884f8 100644
--- a/gdb/regformats/i386/x32-avx512.dat
+++ b/gdb/regformats/i386/amd64-avx-mpx-avx512-linux.dat
@@ -1,7 +1,7 @@
 # THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/x32-avx512.xml
-name:x32_avx512
-xmltarget:x32-avx512.xml
+# Generated from: i386/amd64-avx-mpx-avx512-linux.xml
+name:amd64_avx_mpx_avx512_linux
+xmltarget:amd64-avx-mpx-avx512-linux.xml
 expedite:rbp,rsp,rip
 64:rax
 64:rbx
@@ -60,6 +60,7 @@ expedite:rbp,rsp,rip
 128:xmm14
 128:xmm15
 32:mxcsr
+64:orig_rax
 128:ymm0h
 128:ymm1h
 128:ymm2h
diff --git a/gdb/regformats/i386/x32-avx512-linux.dat b/gdb/regformats/i386/amd64-avx-mpx-avx512.dat
similarity index 93%
rename from gdb/regformats/i386/x32-avx512-linux.dat
rename to gdb/regformats/i386/amd64-avx-mpx-avx512.dat
index 0f5b2ce..6fa5a58 100644
--- a/gdb/regformats/i386/x32-avx512-linux.dat
+++ b/gdb/regformats/i386/amd64-avx-mpx-avx512.dat
@@ -1,7 +1,7 @@
 # THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/x32-avx512-linux.xml
-name:x32_avx512_linux
-xmltarget:x32-avx512-linux.xml
+# Generated from: i386/amd64-avx-mpx-avx512.xml
+name:amd64_avx_mpx_avx512
+xmltarget:amd64-avx-mpx-avx512.xml
 expedite:rbp,rsp,rip
 64:rax
 64:rbx
@@ -60,7 +60,6 @@ expedite:rbp,rsp,rip
 128:xmm14
 128:xmm15
 32:mxcsr
-64:orig_rax
 128:ymm0h
 128:ymm1h
 128:ymm2h
diff --git a/gdb/regformats/i386/i386-avx512-linux.dat b/gdb/regformats/i386/i386-avx-mpx-avx512-linux.dat
similarity index 84%
rename from gdb/regformats/i386/i386-avx512-linux.dat
rename to gdb/regformats/i386/i386-avx-mpx-avx512-linux.dat
index 8fe70b9..2afffa3 100644
--- a/gdb/regformats/i386/i386-avx512-linux.dat
+++ b/gdb/regformats/i386/i386-avx-mpx-avx512-linux.dat
@@ -1,7 +1,7 @@
 # THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-avx512-linux.xml
-name:i386_avx512_linux
-xmltarget:i386-avx512-linux.xml
+# Generated from: i386/i386-avx-mpx-avx512-linux.xml
+name:i386_avx_mpx_avx512_linux
+xmltarget:i386-avx-mpx-avx512-linux.xml
 expedite:ebp,esp,eip
 32:eax
 32:ecx
diff --git a/gdb/regformats/i386/i386-avx512.dat b/gdb/regformats/i386/i386-avx-mpx-avx512.dat
similarity index 86%
rename from gdb/regformats/i386/i386-avx512.dat
rename to gdb/regformats/i386/i386-avx-mpx-avx512.dat
index 7e1fe93..a3c520c 100644
--- a/gdb/regformats/i386/i386-avx512.dat
+++ b/gdb/regformats/i386/i386-avx-mpx-avx512.dat
@@ -1,7 +1,7 @@
 # THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/i386-avx512.xml
-name:i386_avx512
-xmltarget:i386-avx512.xml
+# Generated from: i386/i386-avx-mpx-avx512.xml
+name:i386_avx_mpx_avx512
+xmltarget:i386-avx-mpx-avx512.xml
 expedite:ebp,esp,eip
 32:eax
 32:ecx
diff --git a/gdb/regformats/i386/amd64-avx512-linux.dat b/gdb/regformats/i386/x32-avx-mpx-avx512-linux.dat
similarity index 92%
rename from gdb/regformats/i386/amd64-avx512-linux.dat
rename to gdb/regformats/i386/x32-avx-mpx-avx512-linux.dat
index dfc41e2..45ef1e1 100644
--- a/gdb/regformats/i386/amd64-avx512-linux.dat
+++ b/gdb/regformats/i386/x32-avx-mpx-avx512-linux.dat
@@ -1,7 +1,7 @@
 # THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/amd64-avx512-linux.xml
-name:amd64_avx512_linux
-xmltarget:amd64-avx512-linux.xml
+# Generated from: i386/x32-avx-mpx-avx512-linux.xml
+name:x32_avx_mpx_avx512_linux
+xmltarget:x32-avx-mpx-avx512-linux.xml
 expedite:rbp,rsp,rip
 64:rax
 64:rbx
diff --git a/gdb/regformats/i386/amd64-avx512.dat b/gdb/regformats/i386/x32-avx-mpx-avx512.dat
similarity index 93%
rename from gdb/regformats/i386/amd64-avx512.dat
rename to gdb/regformats/i386/x32-avx-mpx-avx512.dat
index 1f6c458..e872082 100644
--- a/gdb/regformats/i386/amd64-avx512.dat
+++ b/gdb/regformats/i386/x32-avx-mpx-avx512.dat
@@ -1,7 +1,7 @@
 # THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi :set ro:
-# Generated from: i386/amd64-avx512.xml
-name:amd64_avx512
-xmltarget:amd64-avx512.xml
+# Generated from: i386/x32-avx-mpx-avx512.xml
+name:x32_avx_mpx_avx512
+xmltarget:x32-avx-mpx-avx512.xml
 expedite:rbp,rsp,rip
 64:rax
 64:rbx
diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
index fef36f7..1391d67 100644
--- a/gdb/x86-linux-nat.c
+++ b/gdb/x86-linux-nat.c
@@ -204,12 +204,12 @@ x86_linux_read_description (struct target_ops *ops)
 #ifdef __x86_64__
       switch (xcr0_features_bits)
 	{
-	case X86_XSTATE_MPX_AVX512_MASK:
-	case X86_XSTATE_AVX512_MASK:
+	case X86_XSTATE_AVX_MPX_AVX512_MASK:
+	case X86_XSTATE_AVX_AVX512_MASK:
 	  if (is_x32)
-	    return tdesc_x32_avx512_linux;
+	    return tdesc_x32_avx_mpx_avx512_linux;
 	  else
-	    return tdesc_amd64_avx512_linux;
+	    return tdesc_amd64_avx_mpx_avx512_linux;
 	case X86_XSTATE_MPX_MASK:
 	  if (is_x32)
 	    return tdesc_x32_avx_linux; /* No MPX on x32 using AVX.  */
@@ -237,9 +237,9 @@ x86_linux_read_description (struct target_ops *ops)
     {
       switch (xcr0_features_bits)
 	{
-	case X86_XSTATE_MPX_AVX512_MASK:
-	case X86_XSTATE_AVX512_MASK:
-	  return tdesc_i386_avx512_linux;
+	case X86_XSTATE_AVX_MPX_AVX512_MASK:
+	case X86_XSTATE_AVX_AVX512_MASK:
+	  return tdesc_i386_avx_mpx_avx512_linux;
 	case X86_XSTATE_MPX_MASK:
 	  return tdesc_i386_mpx_linux;
 	case X86_XSTATE_AVX_MPX_MASK:
-- 
1.8.4.2


  parent reply	other threads:[~2016-12-01 13:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-01 13:39 [PATCH v2 0/5] Add support for PKRU register to GDB and GDBServer Michael Sturm
2016-12-01 13:39 ` [PATCH v2 4/5] Add target description for avx-avx512 Michael Sturm
2016-12-01 13:39 ` [PATCH v2 5/5] Add support for Intel PKRU register to GDB and GDBserver Michael Sturm
2016-12-01 17:35   ` Eli Zaretskii
2016-12-02  2:00   ` Luis Machado
2016-12-06 10:54     ` Sturm, Michael
2016-12-09 17:16     ` Pedro Alves
2016-12-19  9:17       ` Sturm, Michael
2016-12-01 13:39 ` Michael Sturm [this message]
2016-12-01 13:39 ` [PATCH v2 2/5] Change xstate_bv handling to use 8 bytes of data Michael Sturm
2016-12-02  1:26   ` Luis Machado
2016-12-05 13:52     ` Sturm, Michael
2016-12-01 13:39 ` [PATCH v2 1/5] Sync up x86-gcc-cpuid.h with cpuid.h from gcc-6 branch Michael Sturm
2016-12-02  1:17   ` Luis Machado
2016-12-05 13:42     ` Sturm, Michael

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=1480599538-30543-4-git-send-email-michael.sturm@intel.com \
    --to=michael.sturm@intel.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=mark.kettenis@xs4all.nl \
    --cc=palves@redhat.com \
    /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