<br><br>On Sunday, May 15, 2016, Saul Wold &lt;<a href="mailto:sgw@linux.intel.com">sgw@linux.intel.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The current MPX target descriptions assume that MPX is always combined<br>
with AVX, however that&#39;s not correct.  We can have machines with MPX<br>
and without AVX; or machines with AVX and without MPX.<br>
<br>
This patch adds new target descriptions for machines that support<br>
both MPX and AVX, as duplicates of the existing MPX descriptions.<br>
<br>
The following commit will remove AVX from the MPX-only descriptions.<br>
<br>
This commit is backported from 7.12</blockquote><div><br></div><div>Master branch should need this fix too </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Signed-off-by: Saul Wold &lt;<a>sgw@linux.intel.com</a>&gt;<br>
---<br>
This is Jethro Only since it has a different version of GDB and this<br>
patch is version specific.<br>
<br>
 meta/recipes-devtools/gdb/gdb.inc                  |    2 +<br>
 .../0001-Add-target-descriptions-for-AVX-MPX.patch | 2153 ++++++++++++++++++++<br>
 2 files changed, 2155 insertions(+)<br>
 create mode 100644 meta/recipes-devtools/gdb/gdb/0001-Add-target-descriptions-for-AVX-MPX.patch<br>
<br>
diff --git a/meta/recipes-devtools/gdb/gdb.inc b/meta/recipes-devtools/gdb/gdb.inc<br>
index 88c0213..58326a3 100644<br>
--- a/meta/recipes-devtools/gdb/gdb.inc<br>
+++ b/meta/recipes-devtools/gdb/gdb.inc<br>
@@ -5,7 +5,9 @@ inherit gettext<br>
 SRC_URI += &quot;file://0002-Change-order-of-CFLAGS.patch \<br>
             file://0003-Add-support-for-Renesas-SH-sh4-architecture.patch \<br>
             file://fix-detection-of-64-bit-PPC-inferior-in-gdbserver.patch \<br>
+            file://0001-Add-target-descriptions-for-AVX-MPX.patch \<br>
            &quot;<br>
+<br>
 #LDFLAGS_append = &quot; -s&quot;<br>
 #export CFLAGS_append=&quot; -L${STAGING_LIBDIR}&quot;<br>
<br>
diff --git a/meta/recipes-devtools/gdb/gdb/0001-Add-target-descriptions-for-AVX-MPX.patch b/meta/recipes-devtools/gdb/gdb/0001-Add-target-descriptions-for-AVX-MPX.patch<br>
new file mode 100644<br>
index 0000000..043ff45<br>
--- /dev/null<br>
+++ b/meta/recipes-devtools/gdb/gdb/0001-Add-target-descriptions-for-AVX-MPX.patch<br>
@@ -0,0 +1,2153 @@<br>
+From 15c429945dc4674b62e6b956c0ba9059206055ed Mon Sep 17 00:00:00 2001<br>
+From: Walfred Tedeschi &lt;<a>walfred.tedeschi@intel.com</a>&gt;<br>
+Date: Fri, 13 May 2016 15:36:43 +0200<br>
+Subject: [PATCH 1/1] Add target descriptions for AVX + MPX<br>
+<br>
+The current MPX target descriptions assume that MPX is always combined<br>
+with AVX, however that&#39;s not correct.  We can have machines with MPX<br>
+and without AVX; or machines with AVX and without MPX.<br>
+<br>
+This patch adds new target descriptions for machines that support<br>
+both MPX and AVX, as duplicates of the existing MPX descriptions.<br>
+<br>
+The following commit will remove AVX from the MPX-only descriptions.<br>
+<br>
+2016-04-16  Walfred Tedeschi  &lt;<a>walfred.tedeschi@intel.com</a>&gt;<br>
+<br>
+gdb/ChangeLog:<br>
+<br>
+       * amd64-linux-tdep.c (features/i386/amd64-avx-mpx-linux.c):<br>
+       New include.<br>
+       (amd64_linux_core_read_description): Add case for<br>
+        X86_XSTATE_AVX_MPX_MASK.<br>
+       (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_mpx_linux.<br>
+       * amd64-linux-tdep.h (tdesc_amd64_avx_mpx_linux): New definition.<br>
+       * amd64-tdep.c (features/i386/amd64-avx-mpx.c): New include.<br>
+       (amd64_target_description): Add case for  X86_XSTATE_AVX_MPX_MASK.<br>
+       (_initialize_amd64_tdep): Call initialize_tdesc_amd64_avx_mpx.<br>
+       * common/x86-xstate.h (X86_XSTATE_MPX_MASK): Remove AVX bits.<br>
+       (X86_XSTATE_AVX_MPX_MASK): New case.<br>
+       * features/Makefile (i386/i386-avx-mpx, i386/i386-avx-mpx-linux)<br>
+       (i386/amd64-avx-mpx, i386/amd64-avx-mpx-linux): New rules.<br>
+       (i386/i386-avx-mpx-expedite, i386/i386-avx-mpx-linux-expedite)<br>
+       (i386/amd64-avx-mpx-expedite, i386/amd64-avx-mpx-linux-expedite):<br>
+       New expedites.<br>
+       * i386-linux-tdep.c (features/i386/i386-avx-mpx-linux.c): New<br>
+       include.<br>
+       (i386_linux_core_read_description): Add case<br>
+       X86_XSTATE_AVX_MPX_MASK.<br>
+       (_initialize_i386_linux_tdep): Call<br>
+       initialize_tdesc_i386_avx_mpx_linux.<br>
+       * i386-linux-tdep.h (tdesc_i386_avx_mpx_linux): New include.<br>
+       * i386-tdep.c (features/i386/i386-avx-mpx.c): New include.<br>
+       (i386_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.<br>
+       * x86-linux-nat.c (x86_linux_read_description): Add case for<br>
+       X86_XSTATE_AVX_MPX_MASK.<br>
+       * features/i386/amd64-avx-mpx-linux.xml: New file.<br>
+       * features/i386/i386-avx-mpx-linux.xml: New file.<br>
+       * features/i386/i386-avx-mpx.xml: New file.<br>
+       * features/i386/amd64-avx-mpx.xml: New file.<br>
+       * features/i386/amd64-avx-mpx-linux.c: Generated.<br>
+       * features/i386/amd64-avx-mpx.c: Generated.<br>
+       * features/i386/i386-avx-mpx-linux.c: Generated.<br>
+       * features/i386/i386-avx-mpx.c: Generated.<br>
+       * regformats/i386/amd64-avx-mpx-linux.dat: Generated.<br>
+       * regformats/i386/amd64-avx-mpx.dat: Generated.<br>
+       * regformats/i386/i386-avx-mpx-linux.dat: Generated.<br>
+       * regformats/i386/i386-avx-mpx.dat: Generated.<br>
+<br>
+gdb/gdbserver/ChangeLog:<br>
+<br>
+       * Makefile.in (clean): Add removal for i386-avx-mpx.c,<br>
+       i386-avx-mpx-linux.c, amd64-avx-mpx.c and amd64-avx-mpx-linux.c.<br>
+       (i386-avx-mpx.c, i386-avx-mpx-linux.c, amd64-avx-mpx.c)<br>
+       (amd64-avx-mpx-linux.c): New rules.<br>
+       (amd64-avx-mpx-linux-ipa.o, i386-avx-mpx-linux-ipa.o): New rule.<br>
+       * configure.srv (srv_i386_regobj): Add i386-avx-mpx.o.<br>
+       (srv_i386_linux_regobj): Add i386-avx-mpx-linux.o.<br>
+       (srv_amd64_regobj): Add amd64-avx-mpx.o.<br>
+       (srv_amd64_linux_regobj): Add amd64-avx-mpx-linux.o.<br>
+       (srv_i386_xmlfiles): Add i386/i386-avx-mpx.xml.<br>
+       (srv_amd64_xmlfiles): Add i386/amd64-avx-mpx.xml.<br>
+       (srv_i386_linux_xmlfiles): Add i386/i386-avx-mpx-linux.xml.<br>
+       (srv_amd64_linux_xmlfiles): Add i386/amd64-avx-mpx-linux.xml.<br>
+       (ipa_i386_linux_regobj): Add i386-avx-mpx-linux-ipa.o.<br>
+       (ipa_amd64_linux_regobj): Add amd64-avx-mpx-linux-ipa.o.<br>
+       * linux-x86-low.c (x86_linux_read_description): Add case for<br>
+       X86_XSTATE_AVX_MPX_MASK.<br>
+       (x86_get_ipa_tdesc_idx): Add cases for avx_mpx.<br>
+       (initialize_low_arch): Call init_registers_amd64_avx_mpx_linux and<br>
+       init_registers_i386_avx_mpx_linux.<br>
+       * linux-i386-ipa.c (get_ipa_tdesc): Add case for avx_mpx.<br>
+       (initialize_low_tracepoint): Call<br>
+       init_registers_i386_avx_mpx_linux.<br>
+       * linux-amd64-ipa.c (get_ipa_tdesc):  Add case for avx_mpx.<br>
+       (initialize_low_tracepoint): Call<br>
+       init_registers_amd64_avx_mpx_linux.<br>
+       * linux-x86-tdesc.h (X86_TDESC_AVX_MPX): New enum value.<br>
+       (init_registers_amd64_avx_mpx_linux, tdesc_amd64_avx_mpx_linux)<br>
+       (init_registers_i386_avx_mpx_linux, tdesc_i386_avx_mpx_linux): New<br>
+       declarations.<br>
+<br>
+Change-Id: I7b0642263cfa3e47b626022796e5dd3627b92ba8<br>
+<br>
+# Conflicts:<br>
+#      gdb/amd64-tdep.c<br>
+#      gdb/i386-tdep.c<br>
+---<br>
+ gdb/ChangeLog                               |  57 ++++++++<br>
+ gdb/amd64-linux-tdep.c                      |   7 +<br>
+ gdb/amd64-linux-tdep.h                      |   1 +<br>
+ gdb/amd64-tdep.c                            |   2 +<br>
+ gdb/common/x86-xstate.h                     |   5 +-<br>
+ gdb/features/Makefile                       |  18 +++<br>
+ gdb/features/i386/amd64-avx-mpx-linux.c     | 211 ++++++++++++++++++++++++++++<br>
+ gdb/features/i386/amd64-avx-mpx-linux.xml   |  19 +++<br>
+ gdb/features/i386/amd64-avx-mpx.c           | 206 +++++++++++++++++++++++++++<br>
+ gdb/features/i386/amd64-avx-mpx.xml         |  17 +++<br>
+ gdb/features/i386/amd64-mpx-linux.c         |  30 +---<br>
+ gdb/features/i386/amd64-mpx-linux.xml       |   1 -<br>
+ gdb/features/i386/amd64-mpx.c               |  30 +---<br>
+ gdb/features/i386/amd64-mpx.xml             |   1 -<br>
+ gdb/features/i386/i386-avx-mpx-linux.c      | 187 ++++++++++++++++++++++++<br>
+ gdb/features/i386/i386-avx-mpx-linux.xml    |  19 +++<br>
+ gdb/features/i386/i386-avx-mpx.c            | 182 ++++++++++++++++++++++++<br>
+ gdb/features/i386/i386-avx-mpx.xml          |  17 +++<br>
+ gdb/features/i386/i386-mpx-linux.c          |  22 +--<br>
+ gdb/features/i386/i386-mpx-linux.xml        |   1 -<br>
+ gdb/features/i386/i386-mpx.c                |  22 +--<br>
+ gdb/features/i386/i386-mpx.xml              |   1 -<br>
+ gdb/gdbserver/ChangeLog                     |  33 +++++<br>
+ gdb/gdbserver/Makefile.in                   |  10 ++<br>
+ gdb/gdbserver/configure.srv                 |  17 +--<br>
+ gdb/gdbserver/linux-x86-low.c               |  16 +++<br>
+ gdb/i386-linux-tdep.c                       |   4 +<br>
+ gdb/i386-linux-tdep.h                       |   1 +<br>
+ gdb/i386-tdep.c                             |   2 +<br>
+ gdb/regformats/i386/amd64-avx-mpx-linux.dat |  85 +++++++++++<br>
+ gdb/regformats/i386/amd64-avx-mpx.dat       |  84 +++++++++++<br>
+ gdb/regformats/i386/amd64-mpx-linux.dat     |  16 ---<br>
+ gdb/regformats/i386/amd64-mpx.dat           |  16 ---<br>
+ gdb/regformats/i386/i386-avx-mpx-linux.dat  |  61 ++++++++<br>
+ gdb/regformats/i386/i386-avx-mpx.dat        |  60 ++++++++<br>
+ gdb/regformats/i386/i386-mpx-linux.dat      |   8 --<br>
+ gdb/regformats/i386/i386-mpx.dat            |   8 --<br>
+ gdb/x86-linux-nat.c                         |   7 +<br>
+ 38 files changed, 1342 insertions(+), 142 deletions(-)<br>
+ create mode 100644 gdb/features/i386/amd64-avx-mpx-linux.c<br>
+ create mode 100644 gdb/features/i386/amd64-avx-mpx-linux.xml<br>
+ create mode 100644 gdb/features/i386/amd64-avx-mpx.c<br>
+ create mode 100644 gdb/features/i386/amd64-avx-mpx.xml<br>
+ create mode 100644 gdb/features/i386/i386-avx-mpx-linux.c<br>
+ create mode 100644 gdb/features/i386/i386-avx-mpx-linux.xml<br>
+ create mode 100644 gdb/features/i386/i386-avx-mpx.c<br>
+ create mode 100644 gdb/features/i386/i386-avx-mpx.xml<br>
+ create mode 100644 gdb/regformats/i386/amd64-avx-mpx-linux.dat<br>
+ create mode 100644 gdb/regformats/i386/amd64-avx-mpx.dat<br>
+ create mode 100644 gdb/regformats/i386/i386-avx-mpx-linux.dat<br>
+ create mode 100644 gdb/regformats/i386/i386-avx-mpx.dat<br>
+<br>
+Index: gdb-7.9.1/gdb/ChangeLog<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/ChangeLog<br>
++++ gdb-7.9.1/gdb/ChangeLog<br>
+@@ -1,3 +1,60 @@<br>
++2016-04-14  Walfred Tedeschi  &lt;<a>walfred.tedeschi@intel.com</a>&gt;<br>
++<br>
++      * features/i386/amd64-mpx-linux.xml: Remove AVX feature.<br>
++      * features/i386/amd64-mpx.xml: Remove AVX feature.<br>
++      * features/i386/i386-mpx-linux.xml: Remove AVX feature.<br>
++      * features/i386/i386-mpx.xml: Remove AVX feature.<br>
++      * features/i386/amd64-mpx-linux.c: Regenerate.<br>
++      * features/i386/amd64-mpx.c: Regenerate.<br>
++      * features/i386/i386-mpx-linux.c: Regenerate.<br>
++      * features/i386/i386-mpx.c: Regenerate.<br>
++      * regformats/i386/amd64-mpx-linux.dat: Regenerate.<br>
++      * regformats/i386/amd64-mpx.dat: Regenerate.<br>
++      * regformats/i386/i386-mpx-linux.dat: Regenerate.<br>
++      * regformats/i386/i386-mpx.dat: Regenerate.<br>
++<br>
++2016-04-16  Walfred Tedeschi  &lt;<a>walfred.tedeschi@intel.com</a>&gt;<br>
++<br>
++      * amd64-linux-tdep.c (features/i386/amd64-avx-mpx-linux.c):<br>
++      New include.<br>
++      (amd64_linux_core_read_description): Add case for<br>
++       X86_XSTATE_AVX_MPX_MASK.<br>
++      (_initialize_amd64_linux_tdep): Call initialize_tdesc_amd64_avx_mpx_linux.<br>
++      * amd64-linux-tdep.h (tdesc_amd64_avx_mpx_linux): New definition.<br>
++      * amd64-tdep.c (features/i386/amd64-avx-mpx.c): New include.<br>
++      (amd64_target_description): Add case for  X86_XSTATE_AVX_MPX_MASK.<br>
++      (_initialize_amd64_tdep): Call initialize_tdesc_amd64_avx_mpx.<br>
++      * common/x86-xstate.h (X86_XSTATE_MPX_MASK): Remove AVX bits.<br>
++      (X86_XSTATE_AVX_MPX_MASK): New case.<br>
++      * features/Makefile (i386/i386-avx-mpx, i386/i386-avx-mpx-linux)<br>
++      (i386/amd64-avx-mpx, i386/amd64-avx-mpx-linux): New rules.<br>
++      (i386/i386-avx-mpx-expedite, i386/i386-avx-mpx-linux-expedite)<br>
++      (i386/amd64-avx-mpx-expedite, i386/amd64-avx-mpx-linux-expedite):<br>
++      New expedites.<br>
++      * i386-linux-tdep.c (features/i386/i386-avx-mpx-linux.c): New<br>
++      include.<br>
++      (i386_linux_core_read_description): Add case<br>
++      X86_XSTATE_AVX_MPX_MASK.<br>
++      (_initialize_i386_linux_tdep): Call<br>
++      initialize_tdesc_i386_avx_mpx_linux.<br>
++      * i386-linux-tdep.h (tdesc_i386_avx_mpx_linux): New include.<br>
++      * i386-tdep.c (features/i386/i386-avx-mpx.c): New include.<br>
++      (i386_target_description): Add case for X86_XSTATE_AVX_MPX_MASK.<br>
++      * x86-linux-nat.c (x86_linux_read_description): Add case for<br>
++      X86_XSTATE_AVX_MPX_MASK.<br>
++      * features/i386/amd64-avx-mpx-linux.xml: New file.<br>
++      * features/i386/i386-avx-mpx-linux.xml: New file.<br>
++      * features/i386/i386-avx-mpx.xml: New file.<br>
++      * features/i386/amd64-avx-mpx.xml: New file.<br>
++      * features/i386/amd64-avx-mpx-linux.c: Generated.<br>
++      * features/i386/amd64-avx-mpx.c: Generated.<br>
++      * features/i386/i386-avx-mpx-linux.c: Generated.<br>
++      * features/i386/i386-avx-mpx.c: Generated.<br>
++      * regformats/i386/amd64-avx-mpx-linux.dat: Generated.<br>
++      * regformats/i386/amd64-avx-mpx.dat: Generated.<br>
++      * regformats/i386/i386-avx-mpx-linux.dat: Generated.<br>
++      * regformats/i386/i386-avx-mpx.dat: Generated.<br>
++<br>
+ 2015-05-13  Joel Brobecker  &lt;<a>brobecker@adacore.com</a>&gt;<br>
+<br>
+       * <a href="http://version.in" target="_blank">version.in</a>: Set GDB version number to 7.9.1.<br>
+Index: gdb-7.9.1/gdb/amd64-linux-tdep.c<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/amd64-linux-tdep.c<br>
++++ gdb-7.9.1/gdb/amd64-linux-tdep.c<br>
+@@ -41,6 +41,7 @@<br>
+ #include &quot;features/i386/amd64-linux.c&quot;<br>
+ #include &quot;features/i386/amd64-avx-linux.c&quot;<br>
+ #include &quot;features/i386/amd64-mpx-linux.c&quot;<br>
++#include &quot;features/i386/amd64-avx-mpx-linux.c&quot;<br>
+ #include &quot;features/i386/amd64-avx512-linux.c&quot;<br>
+<br>
+ #include &quot;features/i386/x32-linux.c&quot;<br>
+@@ -1587,6 +1588,11 @@ amd64_linux_core_read_description (struc<br>
+       return tdesc_x32_avx_linux;  /* No x32 MPX falling back to AVX.  */<br>
+       else<br>
+       return tdesc_amd64_mpx_linux;<br>
++    case X86_XSTATE_AVX_MPX_MASK:<br>
++      if (gdbarch_ptr_bit (gdbarch) == 32)<br>
++      return tdesc_x32_avx_linux;  /* No x32 MPX falling back to AVX.  */<br>
++      else<br>
++      return tdesc_amd64_avx_mpx_linux;<br>
+     case X86_XSTATE_AVX_MASK:<br>
+       if (gdbarch_ptr_bit (gdbarch) == 32)<br>
+       return tdesc_x32_avx_linux;<br>
+@@ -2134,6 +2140,7 @@ _initialize_amd64_linux_tdep (void)<br>
+   initialize_tdesc_amd64_linux ();<br>
+   initialize_tdesc_amd64_avx_linux ();<br>
+   initialize_tdesc_amd64_mpx_linux ();<br>
++  initialize_tdesc_amd64_avx_mpx_linux ();<br>
+   initialize_tdesc_amd64_avx512_linux ();<br>
+<br>
+   initialize_tdesc_x32_linux ();<br>
+Index: gdb-7.9.1/gdb/amd64-linux-tdep.h<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/amd64-linux-tdep.h<br>
++++ gdb-7.9.1/gdb/amd64-linux-tdep.h<br>
+@@ -35,6 +35,7 @@<br>
+ extern struct target_desc *tdesc_amd64_linux;<br>
+ extern struct target_desc *tdesc_amd64_avx_linux;<br>
+ extern struct target_desc *tdesc_amd64_mpx_linux;<br>
++extern struct target_desc *tdesc_amd64_avx_mpx_linux;<br>
+ extern struct target_desc *tdesc_amd64_avx512_linux;<br>
+<br>
+ extern struct target_desc *tdesc_x32_linux;<br>
+Index: gdb-7.9.1/gdb/amd64-tdep.c<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/amd64-tdep.c<br>
++++ gdb-7.9.1/gdb/amd64-tdep.c<br>
+@@ -43,6 +43,7 @@<br>
+ #include &quot;features/i386/amd64.c&quot;<br>
+ #include &quot;features/i386/amd64-avx.c&quot;<br>
+ #include &quot;features/i386/amd64-mpx.c&quot;<br>
++#include &quot;features/i386/amd64-avx-mpx.c&quot;<br>
+ #include &quot;features/i386/amd64-avx512.c&quot;<br>
+<br>
+ #include &quot;features/i386/x32.c&quot;<br>
+@@ -3119,6 +3120,7 @@ _initialize_amd64_tdep (void)<br>
+   initialize_tdesc_amd64 ();<br>
+   initialize_tdesc_amd64_avx ();<br>
+   initialize_tdesc_amd64_mpx ();<br>
++  initialize_tdesc_amd64_avx_mpx ();<br>
+   initialize_tdesc_amd64_avx512 ();<br>
+<br>
+   initialize_tdesc_x32 ();<br>
+Index: gdb-7.9.1/gdb/common/x86-xstate.h<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/common/x86-xstate.h<br>
++++ gdb-7.9.1/gdb/common/x86-xstate.h<br>
+@@ -39,9 +39,10 @@<br>
+ #define X86_XSTATE_X87_MASK   X86_XSTATE_X87<br>
+ #define X86_XSTATE_SSE_MASK   (X86_XSTATE_X87 | X86_XSTATE_SSE)<br>
+ #define X86_XSTATE_AVX_MASK   (X86_XSTATE_SSE_MASK | X86_XSTATE_AVX)<br>
+-#define X86_XSTATE_MPX_MASK   (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)<br>
++#define X86_XSTATE_MPX_MASK   (X86_XSTATE_SSE_MASK | X86_XSTATE_MPX)<br>
++#define X86_XSTATE_AVX_MPX_MASK       (X86_XSTATE_AVX_MASK | X86_XSTATE_MPX)<br>
+ #define X86_XSTATE_AVX512_MASK        (X86_XSTATE_AVX_MASK | X86_XSTATE_AVX512)<br>
+-#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_MPX_MASK | X86_XSTATE_AVX512)<br>
++#define X86_XSTATE_MPX_AVX512_MASK (X86_XSTATE_AVX_MPX_MASK | X86_XSTATE_AVX512)<br>
+<br>
+ #define X86_XSTATE_ALL_MASK   (X86_XSTATE_MPX_AVX512_MASK)<br>
+<br>
+Index: gdb-7.9.1/gdb/features/Makefile<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/features/Makefile<br>
++++ gdb-7.9.1/gdb/features/Makefile<br>
+@@ -50,9 +50,11 @@ WHICH = aarch64 \<br>
+       i386/amd64 i386/amd64-linux \<br>
+       i386/i386-avx i386/i386-avx-linux \<br>
+       i386/i386-mpx i386/i386-mpx-linux \<br>
++      i386/i386-avx-mpx i386/i386-avx-mpx-linux \<br>
+       i386/i386-avx512 i386/i386-avx512-linux \<br>
+       i386/amd64-avx i386/amd64-avx-linux \<br>
+       i386/amd64-mpx i386/amd64-mpx-linux \<br>
++      i386/amd64-avx-mpx i386/amd64-avx-mpx-linux \<br>
+       i386/amd64-avx512 i386/amd64-avx512-linux \<br>
+       i386/x32 i386/x32-linux \<br>
+       i386/x32-avx i386/x32-avx-linux \<br>
+@@ -82,7 +84,9 @@ i386/amd64-linux-expedite = rbp,rsp,rip<br>
+ i386/i386-avx-expedite = ebp,esp,eip<br>
+ i386/i386-avx-linux-expedite = ebp,esp,eip<br>
+ i386/i386-mpx-expedite = ebp,esp,eip<br>
++i386/i386-avx-mpx-expedite = ebp,esp,eip<br>
+ i386/i386-mpx-linux-expedite = ebp,esp,eip<br>
++i386/i386-avx-mpx-linux-expedite = ebp,esp,eip<br>
+ i386/i386-avx512-expedite = ebp,esp,eip<br>
+ i386/i386-avx512-linux-expedite = ebp,esp,eip<br>
+ i386/i386-mmx-expedite = ebp,esp,eip<br>
+@@ -90,7 +94,9 @@ i386/i386-mmx-linux-expedite = ebp,esp,e<br>
+ i386/amd64-avx-expedite = rbp,rsp,rip<br>
+ i386/amd64-avx-linux-expedite = rbp,rsp,rip<br>
+ i386/amd64-mpx-expedite = rbp,rsp,rip<br>
++i386/amd64-avx-mpx-expedite = rbp,rsp,rip<br>
+ i386/amd64-mpx-linux-expedite = rbp,rsp,rip<br>
++i386/amd64-avx-mpx-linux-expedite = rbp,rsp,rip<br>
+ i386/amd64-avx512-expedite = rbp,rsp,rip<br>
+ i386/amd64-avx512-linux-expedite = rbp,rsp,rip<br>
+ i386/x32-expedite = rbp,rsp,rip<br>
+@@ -151,6 +157,8 @@ XMLTOC = \<br>
+       i386/amd64-linux.xml \<br>
+       i386/amd64-mpx-linux.xml \<br>
+       i386/amd64-mpx.xml \<br>
++      i386/amd64-avx-mpx-linux.xml \<br>
++      i386/amd64-avx-mpx.xml \<br>
+       i386/amd64.xml \<br>
+       i386/i386-avx-linux.xml \<br>
+       i386/i386-avx.xml \<br>
+@@ -161,6 +169,8 @@ XMLTOC = \<br>
+       i386/i386-mmx.xml \<br>
+       i386/i386-mpx-linux.xml \<br>
+       i386/i386-mpx.xml \<br>
++      i386/i386-avx-mpx-linux.xml \<br>
++      i386/i386-avx-mpx.xml \<br>
+       i386/i386.xml \<br>
+       i386/x32-avx-linux.xml \<br>
+       i386/x32-avx.xml \<br>
+@@ -266,6 +276,10 @@ $(outdir)/i386/i386-mpx.dat: i386/32bit-<br>
+                              i386/32bit-mpx.xml<br>
+ $(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml        i386/32bit-avx.xml \<br>
+                              i386/32bit-linux.xml i386/32bit-mpx.xml<br>
++$(outdir)/i386/i386-mpx-linux.dat: i386/32bit-core.xml \<br>
++                             i386/32bit-linux.xml i386/32bit-mpx.xml<br>
++$(outdir)/i386/i386-avx-mpx-linux.dat: i386/32bit-core.xml \<br>
++                             i386/32bit-linux.xml i386/32bit-mpx.xml<br>
+ $(outdir)/i386/i386-avx512.dat: i386/32bit-core.xml i386/32bit-avx.xml \<br>
+                              i386/32bit-mpx.xml i386/32bit-avx512.xml<br>
+ $(outdir)/i386/i386-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \<br>
+@@ -277,8 +291,12 @@ $(outdir)/i386/amd64-avx-linux.dat: i386<br>
+                                   i386/64bit-linux.xml<br>
+ $(outdir)/i386/amd64-mpx-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \<br>
+                              i386/64bit-linux.xml i386/64bit-mpx.xml<br>
++$(outdir)/i386/amd64-avx-mpx-linux.dat: i386/64bit-core.xml \<br>
++                             i386/64bit-linux.xml i386/64bit-mpx.xml<br>
+ $(outdir)/i386/amd64-mpx.dat: i386/64bit-core.xml i386/64bit-avx.xml \<br>
+                              i386/64bit-mpx.xml<br>
++$(outdir)/i386/amd64-avx-mpx.dat: i386/64bit-core.xml \<br>
++                             i386/64bit-mpx.xml<br>
+ $(outdir)/i386/amd64-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \<br>
+                              i386/64bit-mpx.xml i386/64bit-avx512.xml<br>
+ $(outdir)/i386/amd64-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-avx-mpx-linux.c<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-avx-mpx-linux.c<br>
+@@ -0,0 +1,211 @@<br>
++/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:<br>
++  Original: amd64-avx-mpx-linux.xml */<br>
++<br>
++#include &quot;defs.h&quot;<br>
++#include &quot;osabi.h&quot;<br>
++#include &quot;target-descriptions.h&quot;<br>
++<br>
++struct target_desc *tdesc_amd64_avx_mpx_linux;<br>
++static void<br>
++initialize_tdesc_amd64_avx_mpx_linux (void)<br>
++{<br>
++  struct target_desc *result = allocate_target_description ();<br>
++  struct tdesc_feature *feature;<br>
++  struct tdesc_type *field_type;<br>
++  struct tdesc_type *type;<br>
++<br>
++  set_tdesc_architecture (result, bfd_scan_arch (&quot;i386:x86-64&quot;));<br>
++<br>
++  set_tdesc_osabi (result, osabi_from_tdesc_string (&quot;GNU/Linux&quot;));<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.core&quot;);<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_eflags&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;CF&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;PF&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;AF&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;ZF&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;SF&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;TF&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;IF&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;DF&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;OF&quot;);<br>
++  tdesc_add_flag (field_type, 14, &quot;NT&quot;);<br>
++  tdesc_add_flag (field_type, 16, &quot;RF&quot;);<br>
++  tdesc_add_flag (field_type, 17, &quot;VM&quot;);<br>
++  tdesc_add_flag (field_type, 18, &quot;AC&quot;);<br>
++  tdesc_add_flag (field_type, 19, &quot;VIF&quot;);<br>
++  tdesc_add_flag (field_type, 20, &quot;VIP&quot;);<br>
++  tdesc_add_flag (field_type, 21, &quot;ID&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;rax&quot;, 0, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rbx&quot;, 1, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rcx&quot;, 2, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rdx&quot;, 3, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rsi&quot;, 4, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rdi&quot;, 5, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rbp&quot;, 6, 1, NULL, 64, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;rsp&quot;, 7, 1, NULL, 64, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;r8&quot;, 8, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r9&quot;, 9, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r10&quot;, 10, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r11&quot;, 11, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r12&quot;, 12, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r13&quot;, 13, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r14&quot;, 14, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r15&quot;, 15, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rip&quot;, 16, 1, NULL, 64, &quot;code_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;eflags&quot;, 17, 1, NULL, 32, &quot;i386_eflags&quot;);<br>
++  tdesc_create_reg (feature, &quot;cs&quot;, 18, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ss&quot;, 19, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ds&quot;, 20, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;es&quot;, 21, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;fs&quot;, 22, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;gs&quot;, 23, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;st0&quot;, 24, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st1&quot;, 25, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st2&quot;, 26, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st3&quot;, 27, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st4&quot;, 28, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st5&quot;, 29, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st6&quot;, 30, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st7&quot;, 31, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;fctrl&quot;, 32, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fstat&quot;, 33, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;ftag&quot;, 34, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fiseg&quot;, 35, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fioff&quot;, 36, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;foseg&quot;, 37, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fooff&quot;, 38, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fop&quot;, 39, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.sse&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_single&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4f&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_double&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2d&quot;, field_type, 2);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int8&quot;);<br>
++  tdesc_create_vector (feature, &quot;v16i8&quot;, field_type, 16);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int16&quot;);<br>
++  tdesc_create_vector (feature, &quot;v8i16&quot;, field_type, 8);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int32&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4i32&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int64&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2i64&quot;, field_type, 2);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;vec128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;v4f&quot;);<br>
++  tdesc_add_field (type, &quot;v4_float&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2d&quot;);<br>
++  tdesc_add_field (type, &quot;v2_double&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v16i8&quot;);<br>
++  tdesc_add_field (type, &quot;v16_int8&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v8i16&quot;);<br>
++  tdesc_add_field (type, &quot;v8_int16&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v4i32&quot;);<br>
++  tdesc_add_field (type, &quot;v4_int32&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2i64&quot;);<br>
++  tdesc_add_field (type, &quot;v2_int64&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint128&quot;);<br>
++  tdesc_add_field (type, &quot;uint128&quot;, field_type);<br>
++<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_mxcsr&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;IE&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;DE&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;ZE&quot;);<br>
++  tdesc_add_flag (field_type, 3, &quot;OE&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;UE&quot;);<br>
++  tdesc_add_flag (field_type, 5, &quot;PE&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;DAZ&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;IM&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;DM&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;ZM&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;OM&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;UM&quot;);<br>
++  tdesc_add_flag (field_type, 12, &quot;PM&quot;);<br>
++  tdesc_add_flag (field_type, 15, &quot;FZ&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;xmm0&quot;, 40, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm1&quot;, 41, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm2&quot;, 42, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm3&quot;, 43, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm4&quot;, 44, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm5&quot;, 45, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm6&quot;, 46, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm7&quot;, 47, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm8&quot;, 48, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm9&quot;, 49, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm10&quot;, 50, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm11&quot;, 51, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm12&quot;, 52, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm13&quot;, 53, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm14&quot;, 54, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm15&quot;, 55, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;mxcsr&quot;, 56, 1, &quot;vector&quot;, 32, &quot;i386_mxcsr&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.linux&quot;);<br>
++  tdesc_create_reg (feature, &quot;orig_rax&quot;, 57, 1, NULL, 64, &quot;int&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.avx&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm0h&quot;, 58, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm1h&quot;, 59, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm2h&quot;, 60, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm3h&quot;, 61, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm4h&quot;, 62, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm5h&quot;, 63, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm6h&quot;, 64, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm7h&quot;, 65, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm8h&quot;, 66, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm9h&quot;, 67, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm10h&quot;, 68, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm11h&quot;, 69, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm12h&quot;, 70, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm13h&quot;, 71, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm14h&quot;, 72, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm15h&quot;, 73, 1, NULL, 128, &quot;uint128&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.mpx&quot;);<br>
++  type = tdesc_create_struct (feature, &quot;br128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;lbound&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;ubound_raw&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;bde&quot;, 2, 63);<br>
++  tdesc_add_bitfield (type, &quot;error&quot;, 0, 1);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;status&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_add_field (type, &quot;status&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;base&quot;, 12, 63);<br>
++  tdesc_add_bitfield (type, &quot;reserved&quot;, 2, 11);<br>
++  tdesc_add_bitfield (type, &quot;preserved&quot;, 1, 1);<br>
++  tdesc_add_bitfield (type, &quot;enabled&quot;, 0, 0);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;cfgu&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_add_field (type, &quot;config&quot;, field_type);<br>
++<br>
++  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 74, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 75, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 76, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 77, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 78, 1, NULL, 64, &quot;cfgu&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndstatus&quot;, 79, 1, NULL, 64, &quot;status&quot;);<br>
++<br>
++  tdesc_amd64_avx_mpx_linux = result;<br>
++}<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-avx-mpx-linux.xml<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-avx-mpx-linux.xml<br>
+@@ -0,0 +1,19 @@<br>
++&lt;?xml version=&quot;1.0&quot;?&gt;<br>
++&lt;!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.<br>
++<br>
++     Copying and distribution of this file, with or without modification,<br>
++     are permitted in any medium without royalty provided the copyright<br>
++     notice and this notice are preserved.  --&gt;<br>
++<br>
++&lt;!-- AMD64 with AVX and MPX - Includes Linux-only special &quot;register&quot;.  --&gt;<br>
++<br>
++&lt;!DOCTYPE target SYSTEM &quot;gdb-target.dtd&quot;&gt;<br>
++&lt;target&gt;<br>
++  &lt;architecture&gt;i386:x86-64&lt;/architecture&gt;<br>
++  &lt;osabi&gt;GNU/Linux&lt;/osabi&gt;<br>
++  &lt;xi:include href=&quot;64bit-core.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;64bit-sse.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;64bit-linux.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;64bit-avx.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;64bit-mpx.xml&quot;/&gt;<br>
++&lt;/target&gt;<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-avx-mpx.c<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-avx-mpx.c<br>
+@@ -0,0 +1,206 @@<br>
++/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:<br>
++  Original: amd64-avx-mpx.xml */<br>
++<br>
++#include &quot;defs.h&quot;<br>
++#include &quot;osabi.h&quot;<br>
++#include &quot;target-descriptions.h&quot;<br>
++<br>
++struct target_desc *tdesc_amd64_avx_mpx;<br>
++static void<br>
++initialize_tdesc_amd64_avx_mpx (void)<br>
++{<br>
++  struct target_desc *result = allocate_target_description ();<br>
++  struct tdesc_feature *feature;<br>
++  struct tdesc_type *field_type;<br>
++  struct tdesc_type *type;<br>
++<br>
++  set_tdesc_architecture (result, bfd_scan_arch (&quot;i386:x86-64&quot;));<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.core&quot;);<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_eflags&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;CF&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;PF&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;AF&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;ZF&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;SF&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;TF&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;IF&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;DF&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;OF&quot;);<br>
++  tdesc_add_flag (field_type, 14, &quot;NT&quot;);<br>
++  tdesc_add_flag (field_type, 16, &quot;RF&quot;);<br>
++  tdesc_add_flag (field_type, 17, &quot;VM&quot;);<br>
++  tdesc_add_flag (field_type, 18, &quot;AC&quot;);<br>
++  tdesc_add_flag (field_type, 19, &quot;VIF&quot;);<br>
++  tdesc_add_flag (field_type, 20, &quot;VIP&quot;);<br>
++  tdesc_add_flag (field_type, 21, &quot;ID&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;rax&quot;, 0, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rbx&quot;, 1, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rcx&quot;, 2, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rdx&quot;, 3, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rsi&quot;, 4, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rdi&quot;, 5, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rbp&quot;, 6, 1, NULL, 64, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;rsp&quot;, 7, 1, NULL, 64, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;r8&quot;, 8, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r9&quot;, 9, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r10&quot;, 10, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r11&quot;, 11, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r12&quot;, 12, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r13&quot;, 13, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r14&quot;, 14, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;r15&quot;, 15, 1, NULL, 64, &quot;int64&quot;);<br>
++  tdesc_create_reg (feature, &quot;rip&quot;, 16, 1, NULL, 64, &quot;code_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;eflags&quot;, 17, 1, NULL, 32, &quot;i386_eflags&quot;);<br>
++  tdesc_create_reg (feature, &quot;cs&quot;, 18, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ss&quot;, 19, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ds&quot;, 20, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;es&quot;, 21, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;fs&quot;, 22, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;gs&quot;, 23, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;st0&quot;, 24, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st1&quot;, 25, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st2&quot;, 26, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st3&quot;, 27, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st4&quot;, 28, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st5&quot;, 29, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st6&quot;, 30, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st7&quot;, 31, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;fctrl&quot;, 32, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fstat&quot;, 33, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;ftag&quot;, 34, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fiseg&quot;, 35, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fioff&quot;, 36, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;foseg&quot;, 37, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fooff&quot;, 38, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fop&quot;, 39, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.sse&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_single&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4f&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_double&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2d&quot;, field_type, 2);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int8&quot;);<br>
++  tdesc_create_vector (feature, &quot;v16i8&quot;, field_type, 16);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int16&quot;);<br>
++  tdesc_create_vector (feature, &quot;v8i16&quot;, field_type, 8);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int32&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4i32&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int64&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2i64&quot;, field_type, 2);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;vec128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;v4f&quot;);<br>
++  tdesc_add_field (type, &quot;v4_float&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2d&quot;);<br>
++  tdesc_add_field (type, &quot;v2_double&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v16i8&quot;);<br>
++  tdesc_add_field (type, &quot;v16_int8&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v8i16&quot;);<br>
++  tdesc_add_field (type, &quot;v8_int16&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v4i32&quot;);<br>
++  tdesc_add_field (type, &quot;v4_int32&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2i64&quot;);<br>
++  tdesc_add_field (type, &quot;v2_int64&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint128&quot;);<br>
++  tdesc_add_field (type, &quot;uint128&quot;, field_type);<br>
++<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_mxcsr&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;IE&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;DE&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;ZE&quot;);<br>
++  tdesc_add_flag (field_type, 3, &quot;OE&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;UE&quot;);<br>
++  tdesc_add_flag (field_type, 5, &quot;PE&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;DAZ&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;IM&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;DM&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;ZM&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;OM&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;UM&quot;);<br>
++  tdesc_add_flag (field_type, 12, &quot;PM&quot;);<br>
++  tdesc_add_flag (field_type, 15, &quot;FZ&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;xmm0&quot;, 40, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm1&quot;, 41, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm2&quot;, 42, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm3&quot;, 43, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm4&quot;, 44, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm5&quot;, 45, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm6&quot;, 46, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm7&quot;, 47, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm8&quot;, 48, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm9&quot;, 49, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm10&quot;, 50, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm11&quot;, 51, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm12&quot;, 52, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm13&quot;, 53, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm14&quot;, 54, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm15&quot;, 55, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;mxcsr&quot;, 56, 1, &quot;vector&quot;, 32, &quot;i386_mxcsr&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.avx&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm0h&quot;, 57, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm1h&quot;, 58, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm2h&quot;, 59, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm3h&quot;, 60, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm4h&quot;, 61, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm5h&quot;, 62, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm6h&quot;, 63, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm7h&quot;, 64, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm8h&quot;, 65, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm9h&quot;, 66, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm10h&quot;, 67, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm11h&quot;, 68, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm12h&quot;, 69, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm13h&quot;, 70, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm14h&quot;, 71, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm15h&quot;, 72, 1, NULL, 128, &quot;uint128&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.mpx&quot;);<br>
++  type = tdesc_create_struct (feature, &quot;br128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;lbound&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;ubound_raw&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;bde&quot;, 2, 63);<br>
++  tdesc_add_bitfield (type, &quot;error&quot;, 0, 1);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;status&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_add_field (type, &quot;status&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;base&quot;, 12, 63);<br>
++  tdesc_add_bitfield (type, &quot;reserved&quot;, 2, 11);<br>
++  tdesc_add_bitfield (type, &quot;preserved&quot;, 1, 1);<br>
++  tdesc_add_bitfield (type, &quot;enabled&quot;, 0, 0);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;cfgu&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_add_field (type, &quot;config&quot;, field_type);<br>
++<br>
++  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 73, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 74, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 75, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 76, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 77, 1, NULL, 64, &quot;cfgu&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndstatus&quot;, 78, 1, NULL, 64, &quot;status&quot;);<br>
++<br>
++  tdesc_amd64_avx_mpx = result;<br>
++}<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-avx-mpx.xml<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-avx-mpx.xml<br>
+@@ -0,0 +1,17 @@<br>
++&lt;?xml version=&quot;1.0&quot;?&gt;<br>
++&lt;!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.<br>
++<br>
++     Copying and distribution of this file, with or without modification,<br>
++     are permitted in any medium without royalty provided the copyright<br>
++     notice and this notice are preserved.  --&gt;<br>
++<br>
++&lt;!-- AMD64 with AVX and MPX --&gt;<br>
++<br>
++&lt;!DOCTYPE target SYSTEM &quot;gdb-target.dtd&quot;&gt;<br>
++&lt;target&gt;<br>
++  &lt;architecture&gt;i386:x86-64&lt;/architecture&gt;<br>
++  &lt;xi:include href=&quot;64bit-core.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;64bit-sse.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;64bit-avx.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;64bit-mpx.xml&quot;/&gt;<br>
++&lt;/target&gt;<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-mpx-linux.c<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/features/i386/amd64-mpx-linux.c<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-mpx-linux.c<br>
+@@ -151,24 +151,6 @@ initialize_tdesc_amd64_mpx_linux (void)<br>
+   feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.linux&quot;);<br>
+   tdesc_create_reg (feature, &quot;orig_rax&quot;, 57, 1, NULL, 64, &quot;int&quot;);<br>
+<br>
+-  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.avx&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm0h&quot;, 58, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm1h&quot;, 59, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm2h&quot;, 60, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm3h&quot;, 61, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm4h&quot;, 62, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm5h&quot;, 63, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm6h&quot;, 64, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm7h&quot;, 65, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm8h&quot;, 66, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm9h&quot;, 67, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm10h&quot;, 68, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm11h&quot;, 69, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm12h&quot;, 70, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm13h&quot;, 71, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm14h&quot;, 72, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm15h&quot;, 73, 1, NULL, 128, &quot;uint128&quot;);<br>
+-<br>
+   feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.mpx&quot;);<br>
+   type = tdesc_create_struct (feature, &quot;br128&quot;);<br>
+   field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
+@@ -200,12 +182,12 @@ initialize_tdesc_amd64_mpx_linux (void)<br>
+   field_type = tdesc_named_type (feature, &quot;_bndcfgu&quot;);<br>
+   tdesc_add_field (type, &quot;config&quot;, field_type);<br>
+<br>
+-  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 74, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 75, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 76, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 77, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 78, 1, NULL, 64, &quot;cfgu&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bndstatus&quot;, 79, 1, NULL, 64, &quot;status&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 58, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 59, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 60, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 61, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 62, 1, NULL, 64, &quot;cfgu&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndstatus&quot;, 63, 1, NULL, 64, &quot;status&quot;);<br>
+<br>
+   tdesc_amd64_mpx_linux = result;<br>
+ }<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-mpx-linux.xml<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/features/i386/amd64-mpx-linux.xml<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-mpx-linux.xml<br>
+@@ -14,6 +14,5 @@<br>
+   &lt;xi:include href=&quot;64bit-core.xml&quot;/&gt;<br>
+   &lt;xi:include href=&quot;64bit-sse.xml&quot;/&gt;<br>
+   &lt;xi:include href=&quot;64bit-linux.xml&quot;/&gt;<br>
+-  &lt;xi:include href=&quot;64bit-avx.xml&quot;/&gt;<br>
+   &lt;xi:include href=&quot;64bit-mpx.xml&quot;/&gt;<br>
+ &lt;/target&gt;<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-mpx.c<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/features/i386/amd64-mpx.c<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-mpx.c<br>
+@@ -146,24 +146,6 @@ initialize_tdesc_amd64_mpx (void)<br>
+   tdesc_create_reg (feature, &quot;xmm15&quot;, 55, 1, NULL, 128, &quot;vec128&quot;);<br>
+   tdesc_create_reg (feature, &quot;mxcsr&quot;, 56, 1, &quot;vector&quot;, 32, &quot;i386_mxcsr&quot;);<br>
+<br>
+-  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.avx&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm0h&quot;, 57, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm1h&quot;, 58, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm2h&quot;, 59, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm3h&quot;, 60, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm4h&quot;, 61, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm5h&quot;, 62, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm6h&quot;, 63, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm7h&quot;, 64, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm8h&quot;, 65, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm9h&quot;, 66, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm10h&quot;, 67, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm11h&quot;, 68, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm12h&quot;, 69, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm13h&quot;, 70, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm14h&quot;, 71, 1, NULL, 128, &quot;uint128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;ymm15h&quot;, 72, 1, NULL, 128, &quot;uint128&quot;);<br>
+-<br>
+   feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.mpx&quot;);<br>
+   type = tdesc_create_struct (feature, &quot;br128&quot;);<br>
+   field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
+@@ -195,12 +177,12 @@ initialize_tdesc_amd64_mpx (void)<br>
+   field_type = tdesc_named_type (feature, &quot;_bndcfgu&quot;);<br>
+   tdesc_add_field (type, &quot;config&quot;, field_type);<br>
+<br>
+-  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 73, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 74, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 75, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 76, 1, NULL, 128, &quot;br128&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 77, 1, NULL, 64, &quot;cfgu&quot;);<br>
+-  tdesc_create_reg (feature, &quot;bndstatus&quot;, 78, 1, NULL, 64, &quot;status&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 57, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 58, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 59, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 60, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 61, 1, NULL, 64, &quot;cfgu&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndstatus&quot;, 62, 1, NULL, 64, &quot;status&quot;);<br>
+<br>
+   tdesc_amd64_mpx = result;<br>
+ }<br>
+Index: gdb-7.9.1/gdb/features/i386/amd64-mpx.xml<br>
+===================================================================<br>
+--- gdb-7.9.1.orig/gdb/features/i386/amd64-mpx.xml<br>
++++ gdb-7.9.1/gdb/features/i386/amd64-mpx.xml<br>
+@@ -12,6 +12,5 @@<br>
+   &lt;architecture&gt;i386:x86-64&lt;/architecture&gt;<br>
+   &lt;xi:include href=&quot;64bit-core.xml&quot;/&gt;<br>
+   &lt;xi:include href=&quot;64bit-sse.xml&quot;/&gt;<br>
+-  &lt;xi:include href=&quot;64bit-avx.xml&quot;/&gt;<br>
+   &lt;xi:include href=&quot;64bit-mpx.xml&quot;/&gt;<br>
+ &lt;/target&gt;<br>
+Index: gdb-7.9.1/gdb/features/i386/i386-avx-mpx-linux.c<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/i386-avx-mpx-linux.c<br>
+@@ -0,0 +1,187 @@<br>
++/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:<br>
++  Original: i386-avx-mpx-linux.xml */<br>
++<br>
++#include &quot;defs.h&quot;<br>
++#include &quot;osabi.h&quot;<br>
++#include &quot;target-descriptions.h&quot;<br>
++<br>
++struct target_desc *tdesc_i386_avx_mpx_linux;<br>
++static void<br>
++initialize_tdesc_i386_avx_mpx_linux (void)<br>
++{<br>
++  struct target_desc *result = allocate_target_description ();<br>
++  struct tdesc_feature *feature;<br>
++  struct tdesc_type *field_type;<br>
++  struct tdesc_type *type;<br>
++<br>
++  set_tdesc_architecture (result, bfd_scan_arch (&quot;i386&quot;));<br>
++<br>
++  set_tdesc_osabi (result, osabi_from_tdesc_string (&quot;GNU/Linux&quot;));<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.core&quot;);<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_eflags&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;CF&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;PF&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;AF&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;ZF&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;SF&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;TF&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;IF&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;DF&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;OF&quot;);<br>
++  tdesc_add_flag (field_type, 14, &quot;NT&quot;);<br>
++  tdesc_add_flag (field_type, 16, &quot;RF&quot;);<br>
++  tdesc_add_flag (field_type, 17, &quot;VM&quot;);<br>
++  tdesc_add_flag (field_type, 18, &quot;AC&quot;);<br>
++  tdesc_add_flag (field_type, 19, &quot;VIF&quot;);<br>
++  tdesc_add_flag (field_type, 20, &quot;VIP&quot;);<br>
++  tdesc_add_flag (field_type, 21, &quot;ID&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;eax&quot;, 0, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ecx&quot;, 1, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;edx&quot;, 2, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ebx&quot;, 3, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;esp&quot;, 4, 1, NULL, 32, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;ebp&quot;, 5, 1, NULL, 32, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;esi&quot;, 6, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;edi&quot;, 7, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;eip&quot;, 8, 1, NULL, 32, &quot;code_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;eflags&quot;, 9, 1, NULL, 32, &quot;i386_eflags&quot;);<br>
++  tdesc_create_reg (feature, &quot;cs&quot;, 10, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ss&quot;, 11, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ds&quot;, 12, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;es&quot;, 13, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;fs&quot;, 14, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;gs&quot;, 15, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;st0&quot;, 16, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st1&quot;, 17, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st2&quot;, 18, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st3&quot;, 19, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st4&quot;, 20, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st5&quot;, 21, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st6&quot;, 22, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st7&quot;, 23, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;fctrl&quot;, 24, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fstat&quot;, 25, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;ftag&quot;, 26, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fiseg&quot;, 27, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fioff&quot;, 28, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;foseg&quot;, 29, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fooff&quot;, 30, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fop&quot;, 31, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.sse&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_single&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4f&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_double&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2d&quot;, field_type, 2);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int8&quot;);<br>
++  tdesc_create_vector (feature, &quot;v16i8&quot;, field_type, 16);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int16&quot;);<br>
++  tdesc_create_vector (feature, &quot;v8i16&quot;, field_type, 8);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int32&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4i32&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int64&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2i64&quot;, field_type, 2);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;vec128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;v4f&quot;);<br>
++  tdesc_add_field (type, &quot;v4_float&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2d&quot;);<br>
++  tdesc_add_field (type, &quot;v2_double&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v16i8&quot;);<br>
++  tdesc_add_field (type, &quot;v16_int8&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v8i16&quot;);<br>
++  tdesc_add_field (type, &quot;v8_int16&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v4i32&quot;);<br>
++  tdesc_add_field (type, &quot;v4_int32&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2i64&quot;);<br>
++  tdesc_add_field (type, &quot;v2_int64&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint128&quot;);<br>
++  tdesc_add_field (type, &quot;uint128&quot;, field_type);<br>
++<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_mxcsr&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;IE&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;DE&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;ZE&quot;);<br>
++  tdesc_add_flag (field_type, 3, &quot;OE&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;UE&quot;);<br>
++  tdesc_add_flag (field_type, 5, &quot;PE&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;DAZ&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;IM&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;DM&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;ZM&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;OM&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;UM&quot;);<br>
++  tdesc_add_flag (field_type, 12, &quot;PM&quot;);<br>
++  tdesc_add_flag (field_type, 15, &quot;FZ&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;xmm0&quot;, 32, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm1&quot;, 33, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm2&quot;, 34, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm3&quot;, 35, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm4&quot;, 36, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm5&quot;, 37, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm6&quot;, 38, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm7&quot;, 39, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;mxcsr&quot;, 40, 1, &quot;vector&quot;, 32, &quot;i386_mxcsr&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.linux&quot;);<br>
++  tdesc_create_reg (feature, &quot;orig_eax&quot;, 41, 1, NULL, 32, &quot;int&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.avx&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm0h&quot;, 42, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm1h&quot;, 43, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm2h&quot;, 44, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm3h&quot;, 45, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm4h&quot;, 46, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm5h&quot;, 47, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm6h&quot;, 48, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm7h&quot;, 49, 1, NULL, 128, &quot;uint128&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.mpx&quot;);<br>
++  type = tdesc_create_struct (feature, &quot;br128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;lbound&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;ubound_raw&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;bde&quot;, 2, 31);<br>
++  tdesc_add_bitfield (type, &quot;error&quot;, 0, 1);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;status&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_add_field (type, &quot;status&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;base&quot;, 12, 31);<br>
++  tdesc_add_bitfield (type, &quot;reserved&quot;, 2, 11);<br>
++  tdesc_add_bitfield (type, &quot;preserved&quot;, 1, 1);<br>
++  tdesc_add_bitfield (type, &quot;enabled&quot;, 0, 1);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;cfgu&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_add_field (type, &quot;config&quot;, field_type);<br>
++<br>
++  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 50, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 51, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 52, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 53, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 54, 1, NULL, 64, &quot;cfgu&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndstatus&quot;, 55, 1, NULL, 64, &quot;status&quot;);<br>
++<br>
++  tdesc_i386_avx_mpx_linux = result;<br>
++}<br>
+Index: gdb-7.9.1/gdb/features/i386/i386-avx-mpx-linux.xml<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/i386-avx-mpx-linux.xml<br>
+@@ -0,0 +1,19 @@<br>
++&lt;?xml version=&quot;1.0&quot;?&gt;<br>
++&lt;!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.<br>
++<br>
++     Copying and distribution of this file, with or without modification,<br>
++     are permitted in any medium without royalty provided the copyright<br>
++     notice and this notice are preserved.  --&gt;<br>
++<br>
++&lt;!-- I386 with AVX and MPX- Includes Linux-only special &quot;register&quot;.  --&gt;<br>
++<br>
++&lt;!DOCTYPE target SYSTEM &quot;gdb-target.dtd&quot;&gt;<br>
++&lt;target&gt;<br>
++  &lt;architecture&gt;i386&lt;/architecture&gt;<br>
++  &lt;osabi&gt;GNU/Linux&lt;/osabi&gt;<br>
++  &lt;xi:include href=&quot;32bit-core.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;32bit-sse.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;32bit-linux.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;32bit-avx.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;32bit-mpx.xml&quot;/&gt;<br>
++&lt;/target&gt;<br>
+Index: gdb-7.9.1/gdb/features/i386/i386-avx-mpx.c<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/i386-avx-mpx.c<br>
+@@ -0,0 +1,182 @@<br>
++/* THIS FILE IS GENERATED.  -*- buffer-read-only: t -*- vi:set ro:<br>
++  Original: i386-avx-mpx.xml */<br>
++<br>
++#include &quot;defs.h&quot;<br>
++#include &quot;osabi.h&quot;<br>
++#include &quot;target-descriptions.h&quot;<br>
++<br>
++struct target_desc *tdesc_i386_avx_mpx;<br>
++static void<br>
++initialize_tdesc_i386_avx_mpx (void)<br>
++{<br>
++  struct target_desc *result = allocate_target_description ();<br>
++  struct tdesc_feature *feature;<br>
++  struct tdesc_type *field_type;<br>
++  struct tdesc_type *type;<br>
++<br>
++  set_tdesc_architecture (result, bfd_scan_arch (&quot;i386&quot;));<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.core&quot;);<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_eflags&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;CF&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;PF&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;AF&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;ZF&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;SF&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;TF&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;IF&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;DF&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;OF&quot;);<br>
++  tdesc_add_flag (field_type, 14, &quot;NT&quot;);<br>
++  tdesc_add_flag (field_type, 16, &quot;RF&quot;);<br>
++  tdesc_add_flag (field_type, 17, &quot;VM&quot;);<br>
++  tdesc_add_flag (field_type, 18, &quot;AC&quot;);<br>
++  tdesc_add_flag (field_type, 19, &quot;VIF&quot;);<br>
++  tdesc_add_flag (field_type, 20, &quot;VIP&quot;);<br>
++  tdesc_add_flag (field_type, 21, &quot;ID&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;eax&quot;, 0, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ecx&quot;, 1, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;edx&quot;, 2, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ebx&quot;, 3, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;esp&quot;, 4, 1, NULL, 32, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;ebp&quot;, 5, 1, NULL, 32, &quot;data_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;esi&quot;, 6, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;edi&quot;, 7, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;eip&quot;, 8, 1, NULL, 32, &quot;code_ptr&quot;);<br>
++  tdesc_create_reg (feature, &quot;eflags&quot;, 9, 1, NULL, 32, &quot;i386_eflags&quot;);<br>
++  tdesc_create_reg (feature, &quot;cs&quot;, 10, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ss&quot;, 11, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;ds&quot;, 12, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;es&quot;, 13, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;fs&quot;, 14, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;gs&quot;, 15, 1, NULL, 32, &quot;int32&quot;);<br>
++  tdesc_create_reg (feature, &quot;st0&quot;, 16, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st1&quot;, 17, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st2&quot;, 18, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st3&quot;, 19, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st4&quot;, 20, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st5&quot;, 21, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st6&quot;, 22, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;st7&quot;, 23, 1, NULL, 80, &quot;i387_ext&quot;);<br>
++  tdesc_create_reg (feature, &quot;fctrl&quot;, 24, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fstat&quot;, 25, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;ftag&quot;, 26, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fiseg&quot;, 27, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fioff&quot;, 28, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;foseg&quot;, 29, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fooff&quot;, 30, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++  tdesc_create_reg (feature, &quot;fop&quot;, 31, 1, &quot;float&quot;, 32, &quot;int&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.sse&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_single&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4f&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;ieee_double&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2d&quot;, field_type, 2);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int8&quot;);<br>
++  tdesc_create_vector (feature, &quot;v16i8&quot;, field_type, 16);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int16&quot;);<br>
++  tdesc_create_vector (feature, &quot;v8i16&quot;, field_type, 8);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int32&quot;);<br>
++  tdesc_create_vector (feature, &quot;v4i32&quot;, field_type, 4);<br>
++<br>
++  field_type = tdesc_named_type (feature, &quot;int64&quot;);<br>
++  tdesc_create_vector (feature, &quot;v2i64&quot;, field_type, 2);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;vec128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;v4f&quot;);<br>
++  tdesc_add_field (type, &quot;v4_float&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2d&quot;);<br>
++  tdesc_add_field (type, &quot;v2_double&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v16i8&quot;);<br>
++  tdesc_add_field (type, &quot;v16_int8&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v8i16&quot;);<br>
++  tdesc_add_field (type, &quot;v8_int16&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v4i32&quot;);<br>
++  tdesc_add_field (type, &quot;v4_int32&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;v2i64&quot;);<br>
++  tdesc_add_field (type, &quot;v2_int64&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint128&quot;);<br>
++  tdesc_add_field (type, &quot;uint128&quot;, field_type);<br>
++<br>
++  field_type = tdesc_create_flags (feature, &quot;i386_mxcsr&quot;, 4);<br>
++  tdesc_add_flag (field_type, 0, &quot;IE&quot;);<br>
++  tdesc_add_flag (field_type, 1, &quot;DE&quot;);<br>
++  tdesc_add_flag (field_type, 2, &quot;ZE&quot;);<br>
++  tdesc_add_flag (field_type, 3, &quot;OE&quot;);<br>
++  tdesc_add_flag (field_type, 4, &quot;UE&quot;);<br>
++  tdesc_add_flag (field_type, 5, &quot;PE&quot;);<br>
++  tdesc_add_flag (field_type, 6, &quot;DAZ&quot;);<br>
++  tdesc_add_flag (field_type, 7, &quot;IM&quot;);<br>
++  tdesc_add_flag (field_type, 8, &quot;DM&quot;);<br>
++  tdesc_add_flag (field_type, 9, &quot;ZM&quot;);<br>
++  tdesc_add_flag (field_type, 10, &quot;OM&quot;);<br>
++  tdesc_add_flag (field_type, 11, &quot;UM&quot;);<br>
++  tdesc_add_flag (field_type, 12, &quot;PM&quot;);<br>
++  tdesc_add_flag (field_type, 15, &quot;FZ&quot;);<br>
++<br>
++  tdesc_create_reg (feature, &quot;xmm0&quot;, 32, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm1&quot;, 33, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm2&quot;, 34, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm3&quot;, 35, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm4&quot;, 36, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm5&quot;, 37, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm6&quot;, 38, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;xmm7&quot;, 39, 1, NULL, 128, &quot;vec128&quot;);<br>
++  tdesc_create_reg (feature, &quot;mxcsr&quot;, 40, 1, &quot;vector&quot;, 32, &quot;i386_mxcsr&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.avx&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm0h&quot;, 41, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm1h&quot;, 42, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm2h&quot;, 43, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm3h&quot;, 44, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm4h&quot;, 45, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm5h&quot;, 46, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm6h&quot;, 47, 1, NULL, 128, &quot;uint128&quot;);<br>
++  tdesc_create_reg (feature, &quot;ymm7h&quot;, 48, 1, NULL, 128, &quot;uint128&quot;);<br>
++<br>
++  feature = tdesc_create_feature (result, &quot;org.gnu.gdb.i386.mpx&quot;);<br>
++  type = tdesc_create_struct (feature, &quot;br128&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;lbound&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;uint64&quot;);<br>
++  tdesc_add_field (type, &quot;ubound_raw&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;bde&quot;, 2, 31);<br>
++  tdesc_add_bitfield (type, &quot;error&quot;, 0, 1);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;status&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndstatus&quot;);<br>
++  tdesc_add_field (type, &quot;status&quot;, field_type);<br>
++<br>
++  type = tdesc_create_struct (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_set_struct_size (type, 8);<br>
++  tdesc_add_bitfield (type, &quot;base&quot;, 12, 31);<br>
++  tdesc_add_bitfield (type, &quot;reserved&quot;, 2, 11);<br>
++  tdesc_add_bitfield (type, &quot;preserved&quot;, 1, 1);<br>
++  tdesc_add_bitfield (type, &quot;enabled&quot;, 0, 1);<br>
++<br>
++  type = tdesc_create_union (feature, &quot;cfgu&quot;);<br>
++  field_type = tdesc_named_type (feature, &quot;data_ptr&quot;);<br>
++  tdesc_add_field (type, &quot;raw&quot;, field_type);<br>
++  field_type = tdesc_named_type (feature, &quot;_bndcfgu&quot;);<br>
++  tdesc_add_field (type, &quot;config&quot;, field_type);<br>
++<br>
++  tdesc_create_reg (feature, &quot;bnd0raw&quot;, 49, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd1raw&quot;, 50, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd2raw&quot;, 51, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bnd3raw&quot;, 52, 1, NULL, 128, &quot;br128&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndcfgu&quot;, 53, 1, NULL, 64, &quot;cfgu&quot;);<br>
++  tdesc_create_reg (feature, &quot;bndstatus&quot;, 54, 1, NULL, 64, &quot;status&quot;);<br>
++<br>
++  tdesc_i386_avx_mpx = result;<br>
++}<br>
+Index: gdb-7.9.1/gdb/features/i386/i386-avx-mpx.xml<br>
+===================================================================<br>
+--- /dev/null<br>
++++ gdb-7.9.1/gdb/features/i386/i386-avx-mpx.xml<br>
+@@ -0,0 +1,17 @@<br>
++&lt;?xml version=&quot;1.0&quot;?&gt;<br>
++&lt;!-- Copyright (C) 2013-2016 Free Software Foundation, Inc.<br>
++<br>
++     Copying and distribution of this file, with or without modification,<br>
++     are permitted in any medium without royalty provided the copyright<br>
++     notice and this notice are preserved.  --&gt;<br>
++<br>
++&lt;!-- I386 with AVX and MPX --&gt;<br>
++<br>
++&lt;!DOCTYPE target SYSTEM &quot;gdb-target.dtd&quot;&gt;<br>
++&lt;target&gt;<br>
++  &lt;architecture&gt;i386&lt;/architecture&gt;<br>
++  &lt;xi:include href=&quot;32bit-core.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;32bit-sse.xml&quot;/&gt;<br>
++  &lt;xi:include href=&quot;32bit-avx.xml&quot;/&gt;<br>
++  --<br>
2.5.0<br>
<br>
--<br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="javascript:;" onclick="_e(event, &#39;cvml&#39;, &#39;Openembedded-core@lists.openembedded.org&#39;)">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote>