Add target description for avx-avx512.

Add a dedicated target description for the feature combination
avx-avx512 as implemented by certain IA CPU models.

The corresponding X86_XSTATE_AVX_AVX512_MASK already exists, but shared
the tdesc with X86_XSTATE_AVX_MPX_AVX512_MASK. This caused MPX registers
displayed as undefined on CPUs that only implemented
X86_XSTATE_AVX_AVX512_MASK, which is undesired. This patch solves this issue.

This patch also corrects the wrong usage of x32-avx-mpx-avx512, which is
replaced by x32-avx-avx512. The MPX feature is not implemented in x32 mode.

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

     * amd64-linux-tdep.c (features/i386/amd64-avx-avx512-linux.c):
     New include.
     (features/i386/x32-avx-mpx-avx512-linux.c): Rename to...
     (features/i386/x32-avx-avx512-linux.c): ...this.
     (amd64_linux_core_read_description): Add dedicated cases for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_amd64_linux_tdep): Add calls to
     initialize_tdesc_amd64_avx_avx512_linux and
     initialize_tdesc_x32_avx_avx512_linux.
     * amd64-linux.tdep.h (tdesc_amd64_avx_avx512_linux): New prototype.
     (tdesc_x32_avx_mpx_avx512_linux): Rename to...
     (tdesc_x32_avx_avx512_linu): ...this.
     * amd64-tdep.c (features/i386/amd64-avx-avx512.c): New include.
     (features/i386/x32-avx-mpx-avx512.c): Rename to...
     (features/i386/x32-avx-avx512.c): ...this.
     (amd64_target_description): Add dedicated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_amd64_tdep): Add call to
     initialize_tdesc_amd64_avx_avx512.
     (initialize_tdesc_x32_avx_mpx_avx512): Rename to...
     (initialize_tdesc_x32_avx_avx512): ...this.
     * features/Makefile (WHICH): New tdescs i386/i386-avx-avx512,
     i386/i386-avx-avx512-linux, i386/amd64-avx-avx512,
     i386/amd64-avx-avx512-linux.
     (i386/x32-avx-mpx-avx512): Rename to...
     (i386/x32-avx-avx512): ...this.
     (i386/x32-avx-mpx-avx512-linux): Rename to...
     (i386/x32-avx-avx512-linux): ...this.
     (i386/i386-avx-avx512-expedite, i386/i386-avx-avx512-linux-expedite,
     i386/amd64-avx-avx512-expedite, i386/amd64-avx-avx512-linux-expedite):
     New expedites.
     (i386/x32-avx-mpx-avx512-expedite): Rename to...
     (i386/x32-avx-avx512-expedite): ...this.
     (i386/x32-avx-mpx-avx512-linux-expedite): Rename to...
     (i386/x32-avx-avx512-linux-expedite): ...this.
     (XMLTOC): New XML files i386/amd64-avx-avx512-linux.xml,
     i386/amd64-avx-avx512.xml, i386/i386-avx-avx512-linux.xml,
     i386/i386-avx-avx512.xml.
     (i386/x32-avx-mpx-avx512-linux.xml): Rename to...
     (i386/x32-avx-avx512-linux.xml): ...this.
     (i386/x32-avx-mpx-avx512.xml): Rename to...
     (i386/x32-avx-avx512.xml): ...this.
     ($(outdir)/i386/i386-avx-avx512.dat): New rule.
     ($(outdir)/i386/i386-avx-avx512-linux.dat): Likewise.
     ($(outdir)/i386/amd64-avx-avx512.dat): Likewise.
     ($(outdir)/i386/amd64-avx-avx512-linux.dat): Likewise.
     ($(outdir)/i386/x32-avx-mpx-avx512.dat):  Rename to...
     ($(outdir)/i386/x32-avx-avx512.dat): ...this.
     ($(outdir)/i386/x32-avx-mpx-avx512-linux.dat): Rename to...
     ($(outdir)/i386/x32-avx-avx512-linux.dat): ...this.
     * features/i386/amd64-avx-avx512-linux.c: New file.
     * features/i386/amd64-avx-avx512-linux.xml: Likewise.
     * features/i386/amd64-avx-avx512.c: Likewise.
     * features/i386/amd64-avx-avx512.xml: Likewise.
     * features/i386/i386-avx-avx512-linux.c: Likewise.
     * features/i386/i386-avx-avx512-linux.xml: Likewise.
     * features/i386/i386-avx-avx512.c: Likewise.
     * features/i386/i386-avx-avx512.xml: Likewise.
     * features/i386/x32-avx-mpx-avx512-linux.c: Deleted.
     * features/i386/x32-avx-avx512-linux.c: New file.
     * features/i386/x32-avx-mpx-avx512-linux.xml: Deleted.
     * features/i386/x32-avx-avx512-linux.xml: New file.
     * features/i386/x32-avx-mpx-avx512.c: Deleted.
     * features/i386/x32-avx-avx512.c: New file.
     * features/i386/x32-avx-mpx-avx512.xml: Deleted.
     * features/i386/x32-avx-avx512.xml: New file.
     * i386-linux-tdep.c (features/i386/i386-avx-avx512-linux.c): New include.
     (i386_linux_core_read_description): Add dedicated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_i386_linux_tdep): Add call to
     initialize_tdesc_i386_avx_avx512_linux.
     * i386-linux-tdep.h (tdesc_i386_avx_avx512_linux): New prototype.
     * i386-tdep.c (features/i386/i386-avx-avx512.c): New include.
     (i386_validate_tdesc_p): Correct XSTATE mask used for feature_avx512.
     (i386_target_description): Add dedicated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (_initialize_i386_tdep): Add call to initialize_tdesc_i386_avx_avx512.
     * regformats/i386/amd64-avx-avx512-linux.dat: New file
     * regformats/i386/amd64-avx-avx512.dat: Likewise.
     * regformats/i386/i386-avx-avx512-linux.dat: Likewise.
     * regformats/i386/i386-avx-avx512.dat: Likewise.
     * regformats/i386/x32-avx-mpx-avx512-linux.dat: Deleted.
     * regformats/i386/x32-avx-avx512-linux.dat: New file.
     * regformats/i386/x32-avx-mpx-avx512.dat: Deleted.
     * regformats/i386/x32-avx-avx512.dat: New file.
     * x86-linux-nat.c (x86_linux_read_description): Add dedidated case for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate description.

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

     * Makefile.in  (clean): Add handling of new source files
     i386-avx-avx512.c, i386-avx-avx512-linux.c, amd64-avx-avx512.c,
     amd64-avx-avx512-linux.c.
     (x32-avx-mpx-avx512.c): Rename to...
     (x32-avx-avx512.c): ...this.
     (x32-avx-mpx-avx512-linux.c): Rename to...
     (x32-avx-avx512-linux.c): ...this.
     (i386-avx-avx512-linux-ipa.o): New rule.
     (amd64-avx-avx512-linux-ipa.o): Likewise.
     (i386-avx-avx512.c): Likewise.
     (i386-avx-avx512-linux.c): Likewise.
     (amd64-avx-avx512.c): Likewise.
     (amd64-avx-avx512-linux.c): Likewise.
     (x32-avx-avx512.c): Rename rule, source files, dat files from
     x32-avx-mpx-avx512.*) to this.
     (x32-avx-avx512-linux.c): Rename rule, source files, dat files from
     x32-avx-mpx-avx512-linux.*) to this.
     * configure.srv (srv_i386_regobj): Add i386-avx-avx512.o.
     (srv_i386_linux_regobj): Add i386-avx-avx512-linux.o.
     (srv_amd64_regobj): Add amd64-avx-avx512.o, rename
     x32-avx-mpx-avx512.o to x32-avx-avx512.o.
     (srv_amd64_linux_regobj): Add amd64-avx-avx512-linux.o, rename
     x32-avx-mpx-avx512-linux.o to x32-avx-avx512-linux.o.
     (ipa_i386_linux_regobj): Add i386-avx-avx512-linux-ipa.o.
     (ipa_amd64_linux_regobj): Add amd64-avx-avx512-linux-ipa.o.
     (srv_i386_xmlfiles): Add i386/i386-avx-avx512.xml.
     (srv_amd64_xmlfiles): Add i386/amd64-avx-avx512.xml, rename
     x32-avx-mpx-avx512.xml to x32-avx-avx512.xml.
     (srv_i386_linux_xmlfiles): Add i386/i386-avx-avx512-linux.xml.
     (srv_amd64_linux_xmlfiles): Add i386/amd64-avx-avx512-linux.xml,
     rename x32-avx-mpx-avx512-linux.xml to x32-avx-avx512-linux.xml.
     * linux-amd64-ipa.c (get_ipa_tdesc): Add dedicated case for
     X86_TDESC_AVX_AVX512 and return appropriate tdesc.
     (initialize_low_tracepoint): Add init_registers_amd64_avx_avx512_linux.
     * linux-i386-ipa.c (get_ipa_tdesc): Add dedicated case for
     X86_TDESC_AVX_AVX512 and return appropriate tdesc.
     (initialize_low_tracepoint): Add init_registers_i386_avx_avx512_linux.
     * linux-x86-low.c (x86_linux_read_description): Add dedicated cases for
     X86_XSTATE_AVX_AVX512_MASK and return appropriate tdesc.
     (x86_get_ipa_tdesc_idx): Rename tdesc_x32_avx_mpx_avx512_linux to
     tdesc_x32_avx_avx512_linux, add dedicated if-clause for
     tdesc_amd64_avx_avx512_linux and return appropriate mask.
     Add dedicated clause for tdesc_i386_avx_avx512_linux
     and return appropriate mask.
     (initialize_low_arch): Add init_registers_amd64_avx_avx512_linux,
     rename init_registers_x32_avx_mpx_avx512_linux, add
     init_registers_i386_avx_avx512_linux.
     * linux-x86-tdesc.h (enum x86_linux_tdesc): Add new value for
     X86_TDESC_AVX_AVX512.
     (init_registers_amd64_avx_avx512_linux): New prototype.
     (tdesc_amd64_avx_avx512_linux): Likewise.
     (init_registers_x32_avx_mpx_avx512_linux): Rename to...
     (init_registers_x32_avx_avx512_linux): ...this.
     (tdesc_x32_avx_mpx_avx512_linux): Rename to...
     (tdesc_x32_avx_avx512_linux): ...this.
     (init_registers_i386_avx_avx512_linux): New prototype.
     (tdesc_i386_avx_avx512_linux): Likewise.

Change-Id: I01359fab56c961a39568df50af39714ec7b31706
Signed-off-by: Michael Sturm <michael.sturm@intel.com>
This commit is contained in:
Michael Sturm 2016-03-22 16:26:09 +01:00
parent 22049425ce
commit a1fa17ee15
32 changed files with 1711 additions and 300 deletions

View File

@ -44,11 +44,12 @@
#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-avx-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-avx-mpx-avx512-linux.c"
#include "features/i386/x32-avx-avx512-linux.c"
/* The syscall's XML filename for i386. */
#define XML_SYSCALL_FILENAME_AMD64 "syscalls/amd64-linux.xml"
@ -1586,19 +1587,26 @@ amd64_linux_core_read_description (struct gdbarch *gdbarch,
switch (xcr0 & X86_XSTATE_ALL_MASK)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_AVX512_MASK:
if (gdbarch_ptr_bit (gdbarch) == 32)
return tdesc_x32_avx_mpx_avx512_linux;
/* No MPX on x32, fallback to AVX-AVX512. */
return tdesc_x32_avx_avx512_linux;
else
return tdesc_amd64_avx_mpx_avx512_linux;
case X86_XSTATE_AVX_AVX512_MASK:
if (gdbarch_ptr_bit (gdbarch) == 32)
return tdesc_x32_avx_avx512_linux;
else
return tdesc_amd64_avx_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. */
/* No MPX on x32, fallback to AVX-AVX512. */
return tdesc_x32_avx_linux;
else
return tdesc_amd64_mpx_linux;
case X86_XSTATE_AVX_MPX_MASK:
if (gdbarch_ptr_bit (gdbarch) == 32)
return tdesc_x32_avx_linux; /* No x32 MPX falling back to AVX. */
/* No MPX on x32, fallback to AVX-AVX512. */
return tdesc_x32_avx_linux;
else
return tdesc_amd64_avx_mpx_linux;
case X86_XSTATE_AVX_MASK:
@ -2296,9 +2304,10 @@ _initialize_amd64_linux_tdep (void)
initialize_tdesc_amd64_avx_linux ();
initialize_tdesc_amd64_mpx_linux ();
initialize_tdesc_amd64_avx_mpx_linux ();
initialize_tdesc_amd64_avx_avx512_linux ();
initialize_tdesc_amd64_avx_mpx_avx512_linux ();
initialize_tdesc_x32_linux ();
initialize_tdesc_x32_avx_linux ();
initialize_tdesc_x32_avx_mpx_avx512_linux ();
initialize_tdesc_x32_avx_avx512_linux ();
}

View File

@ -36,11 +36,12 @@ 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_avx_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_avx_mpx_avx512_linux;
extern struct target_desc *tdesc_x32_avx_avx512_linux;
/* Enum that defines the syscall identifiers for amd64 linux.
Used for process record/replay, these will be translated into

View File

@ -46,11 +46,12 @@
#include "features/i386/amd64-avx.c"
#include "features/i386/amd64-mpx.c"
#include "features/i386/amd64-avx-mpx.c"
#include "features/i386/amd64-avx-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-avx-mpx-avx512.c"
#include "features/i386/x32-avx-avx512.c"
#include "ax.h"
#include "ax-gdb.h"
@ -3203,8 +3204,9 @@ amd64_target_description (uint64_t xcr0)
switch (xcr0 & X86_XSTATE_ALL_MASK)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_amd64_avx_mpx_avx512;
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_amd64_avx_avx512;
case X86_XSTATE_MPX_MASK:
return tdesc_amd64_mpx;
case X86_XSTATE_AVX_MPX_MASK:
@ -3226,11 +3228,12 @@ _initialize_amd64_tdep (void)
initialize_tdesc_amd64_avx ();
initialize_tdesc_amd64_mpx ();
initialize_tdesc_amd64_avx_mpx ();
initialize_tdesc_amd64_avx_avx512 ();
initialize_tdesc_amd64_avx_mpx_avx512 ();
initialize_tdesc_x32 ();
initialize_tdesc_x32_avx ();
initialize_tdesc_x32_avx_mpx_avx512 ();
initialize_tdesc_x32_avx_avx512 ();
}

View File

@ -52,14 +52,16 @@ 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-avx-avx512 i386/i386-avx-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-avx-avx512 i386/amd64-avx-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-avx-mpx-avx512 i386/x32-avx-mpx-avx512-linux \
i386/x32-avx-avx512 i386/x32-avx-avx512-linux \
mips-linux mips-dsp-linux \
microblaze-with-stack-protect \
mips64-linux mips64-dsp-linux \
@ -138,6 +140,8 @@ XMLTOC = \
arm/arm-with-vfpv3.xml \
i386/amd64-avx-linux.xml \
i386/amd64-avx.xml \
i386/amd64-avx-avx512-linux.xml \
i386/amd64-avx-avx512.xml \
i386/amd64-avx-mpx-avx512-linux.xml \
i386/amd64-avx-mpx-avx512.xml \
i386/amd64-linux.xml \
@ -148,6 +152,8 @@ XMLTOC = \
i386/amd64.xml \
i386/i386-avx-linux.xml \
i386/i386-avx.xml \
i386/i386-avx-avx512-linux.xml \
i386/i386-avx-avx512.xml \
i386/i386-avx-mpx-avx512-linux.xml \
i386/i386-avx-mpx-avx512.xml \
i386/i386-linux.xml \
@ -160,8 +166,8 @@ XMLTOC = \
i386/i386.xml \
i386/x32-avx-linux.xml \
i386/x32-avx.xml \
i386/x32-avx-mpx-avx512-linux.xml \
i386/x32-avx-mpx-avx512.xml \
i386/x32-avx-avx512-linux.xml \
i386/x32-avx-avx512.xml \
i386/x32-linux.xml \
i386/x32.xml \
microblaze-with-stack-protect.xml \
@ -271,6 +277,10 @@ $(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-avx-avx512.dat: i386/32bit-core.xml i386/32bit-avx.xml \
i386/32bit-avx512.xml
$(outdir)/i386/i386-avx-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
i386/32bit-linux.xml i386/32bit-avx512.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-avx-mpx-avx512-linux.dat: i386/32bit-core.xml i386/32bit-avx.xml \
@ -288,6 +298,10 @@ $(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-avx-avx512.dat: i386/64bit-core.xml i386/64bit-avx.xml \
i386/64bit-avx512.xml
$(outdir)/i386/amd64-avx-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
i386/64bit-avx512.xml i386/64bit-linux.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-avx-mpx-avx512-linux.dat: i386/64bit-core.xml i386/64bit-avx.xml \
@ -299,10 +313,10 @@ $(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 i386/64bit-segments.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-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 \
$(outdir)/i386/x32-avx-avx512.dat: i386/x32-core.xml i386/64bit-avx.xml \
i386/64bit-avx512.xml
$(outdir)/i386/x32-avx-avx512-linux.dat: i386/x32-core.xml i386/64bit-avx.xml \
i386/64bit-avx512.xml i386/64bit-linux.xml \
i386/64bit-segments.xml
# 'all' doesn't build the C files, so don't delete them in 'clean'

View File

@ -0,0 +1,288 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: amd64-avx-avx512-linux.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_amd64_avx_avx512_linux;
static void
initialize_tdesc_amd64_avx_avx512_linux (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
type = tdesc_create_flags (feature, "i386_eflags", 4);
tdesc_add_flag (type, 0, "CF");
tdesc_add_flag (type, 1, "");
tdesc_add_flag (type, 2, "PF");
tdesc_add_flag (type, 4, "AF");
tdesc_add_flag (type, 6, "ZF");
tdesc_add_flag (type, 7, "SF");
tdesc_add_flag (type, 8, "TF");
tdesc_add_flag (type, 9, "IF");
tdesc_add_flag (type, 10, "DF");
tdesc_add_flag (type, 11, "OF");
tdesc_add_flag (type, 14, "NT");
tdesc_add_flag (type, 16, "RF");
tdesc_add_flag (type, 17, "VM");
tdesc_add_flag (type, 18, "AC");
tdesc_add_flag (type, 19, "VIF");
tdesc_add_flag (type, 20, "VIP");
tdesc_add_flag (type, 21, "ID");
tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
type = tdesc_create_flags (feature, "i386_mxcsr", 4);
tdesc_add_flag (type, 0, "IE");
tdesc_add_flag (type, 1, "DE");
tdesc_add_flag (type, 2, "ZE");
tdesc_add_flag (type, 3, "OE");
tdesc_add_flag (type, 4, "UE");
tdesc_add_flag (type, 5, "PE");
tdesc_add_flag (type, 6, "DAZ");
tdesc_add_flag (type, 7, "IM");
tdesc_add_flag (type, 8, "DM");
tdesc_add_flag (type, 9, "ZM");
tdesc_add_flag (type, 10, "OM");
tdesc_add_flag (type, 11, "UM");
tdesc_add_flag (type, 12, "PM");
tdesc_add_flag (type, 15, "FZ");
tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
tdesc_create_reg (feature, "orig_rax", 57, 1, NULL, 64, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.segments");
tdesc_create_reg (feature, "fs_base", 58, 1, NULL, 64, "int");
tdesc_create_reg (feature, "gs_base", 59, 1, NULL, 64, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
tdesc_create_reg (feature, "ymm0h", 60, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm1h", 61, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm2h", 62, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm3h", 63, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm4h", 64, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm5h", 65, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm6h", 66, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm7h", 67, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm8h", 68, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm9h", 69, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm10h", 70, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm11h", 71, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm12h", 72, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm13h", 73, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_create_vector (feature, "v2ui128", field_type, 2);
tdesc_create_reg (feature, "xmm16", 76, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm17", 77, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm18", 78, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm19", 79, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm20", 80, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm21", 81, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm22", 82, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm23", 83, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm24", 84, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm25", 85, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm26", 86, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm27", 87, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm28", 88, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm29", 89, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm30", 90, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm31", 91, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "ymm16h", 92, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm17h", 93, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm18h", 94, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm19h", 95, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm20h", 96, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm21h", 97, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm22h", 98, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm23h", 99, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm24h", 100, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm25h", 101, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm26h", 102, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm27h", 103, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm28h", 104, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm29h", 105, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm30h", 106, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm31h", 107, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "k0", 108, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 109, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 110, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 111, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 112, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 113, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 114, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 115, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 116, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 117, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 118, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 119, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 120, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 121, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 122, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 123, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm8h", 124, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm9h", 125, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm10h", 126, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm11h", 127, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm12h", 128, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm13h", 129, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm14h", 130, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm15h", 131, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm16h", 132, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm17h", 133, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm18h", 134, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm19h", 135, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm20h", 136, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm21h", 137, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm22h", 138, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm23h", 139, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm24h", 140, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm25h", 141, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm26h", 142, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm27h", 143, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm28h", 144, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm29h", 145, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm30h", 146, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm31h", 146, 1, NULL, 256, "v2ui128");
tdesc_amd64_avx_avx512_linux = result;
}

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- AMD64 with AVX, AVX512 - Includes Linux-only special "register". -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>i386:x86-64</architecture>
<osabi>GNU/Linux</osabi>
<xi:include href="64bit-core.xml"/>
<xi:include href="64bit-sse.xml"/>
<xi:include href="64bit-linux.xml"/>
<xi:include href="64bit-segments.xml"/>
<xi:include href="64bit-avx.xml"/>
<xi:include href="64bit-avx512.xml"/>
</target>

View File

@ -0,0 +1,279 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: amd64-avx-avx512.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_amd64_avx_avx512;
static void
initialize_tdesc_amd64_avx_avx512 (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("i386:x86-64"));
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
type = tdesc_create_flags (feature, "i386_eflags", 4);
tdesc_add_flag (type, 0, "CF");
tdesc_add_flag (type, 1, "");
tdesc_add_flag (type, 2, "PF");
tdesc_add_flag (type, 4, "AF");
tdesc_add_flag (type, 6, "ZF");
tdesc_add_flag (type, 7, "SF");
tdesc_add_flag (type, 8, "TF");
tdesc_add_flag (type, 9, "IF");
tdesc_add_flag (type, 10, "DF");
tdesc_add_flag (type, 11, "OF");
tdesc_add_flag (type, 14, "NT");
tdesc_add_flag (type, 16, "RF");
tdesc_add_flag (type, 17, "VM");
tdesc_add_flag (type, 18, "AC");
tdesc_add_flag (type, 19, "VIF");
tdesc_add_flag (type, 20, "VIP");
tdesc_add_flag (type, 21, "ID");
tdesc_create_reg (feature, "rax", 0, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rbx", 1, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rcx", 2, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rdx", 3, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rsi", 4, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rdi", 5, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rbp", 6, 1, NULL, 64, "data_ptr");
tdesc_create_reg (feature, "rsp", 7, 1, NULL, 64, "data_ptr");
tdesc_create_reg (feature, "r8", 8, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r9", 9, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r10", 10, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r11", 11, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r12", 12, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r13", 13, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r14", 14, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "r15", 15, 1, NULL, 64, "int64");
tdesc_create_reg (feature, "rip", 16, 1, NULL, 64, "code_ptr");
tdesc_create_reg (feature, "eflags", 17, 1, NULL, 32, "i386_eflags");
tdesc_create_reg (feature, "cs", 18, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ss", 19, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ds", 20, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "es", 21, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "fs", 22, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "gs", 23, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "st0", 24, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st1", 25, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st2", 26, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st3", 27, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st4", 28, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st5", 29, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st6", 30, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st7", 31, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "fctrl", 32, 1, "float", 32, "int");
tdesc_create_reg (feature, "fstat", 33, 1, "float", 32, "int");
tdesc_create_reg (feature, "ftag", 34, 1, "float", 32, "int");
tdesc_create_reg (feature, "fiseg", 35, 1, "float", 32, "int");
tdesc_create_reg (feature, "fioff", 36, 1, "float", 32, "int");
tdesc_create_reg (feature, "foseg", 37, 1, "float", 32, "int");
tdesc_create_reg (feature, "fooff", 38, 1, "float", 32, "int");
tdesc_create_reg (feature, "fop", 39, 1, "float", 32, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
type = tdesc_create_flags (feature, "i386_mxcsr", 4);
tdesc_add_flag (type, 0, "IE");
tdesc_add_flag (type, 1, "DE");
tdesc_add_flag (type, 2, "ZE");
tdesc_add_flag (type, 3, "OE");
tdesc_add_flag (type, 4, "UE");
tdesc_add_flag (type, 5, "PE");
tdesc_add_flag (type, 6, "DAZ");
tdesc_add_flag (type, 7, "IM");
tdesc_add_flag (type, 8, "DM");
tdesc_add_flag (type, 9, "ZM");
tdesc_add_flag (type, 10, "OM");
tdesc_add_flag (type, 11, "UM");
tdesc_add_flag (type, 12, "PM");
tdesc_add_flag (type, 15, "FZ");
tdesc_create_reg (feature, "xmm0", 40, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm1", 41, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm2", 42, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm3", 43, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm4", 44, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm5", 45, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm6", 46, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm7", 47, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm8", 48, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm9", 49, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm10", 50, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm11", 51, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm12", 52, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm13", 53, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm14", 54, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm15", 55, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "mxcsr", 56, 1, "vector", 32, "i386_mxcsr");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
tdesc_create_reg (feature, "ymm0h", 57, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm1h", 58, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm2h", 59, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm3h", 60, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm4h", 61, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm5h", 62, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm6h", 63, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm7h", 64, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm8h", 65, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm9h", 66, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm10h", 67, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm11h", 68, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm12h", 69, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm13h", 70, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_create_vector (feature, "v2ui128", field_type, 2);
tdesc_create_reg (feature, "xmm16", 73, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm17", 74, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm18", 75, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm19", 76, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm20", 77, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm21", 78, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm22", 79, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm23", 80, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm24", 81, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm25", 82, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm26", 83, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm27", 84, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm28", 85, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm29", 86, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm30", 87, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm31", 88, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "ymm16h", 89, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm17h", 90, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm18h", 91, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm19h", 92, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm20h", 93, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm21h", 94, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm22h", 95, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm23h", 96, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm24h", 97, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm25h", 98, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm26h", 99, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm27h", 100, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm28h", 101, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm29h", 102, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm30h", 103, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm31h", 104, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "k0", 105, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 106, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 107, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 108, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 109, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 110, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 111, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 112, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 113, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 114, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 115, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 116, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 117, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 118, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 119, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 120, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm8h", 121, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm9h", 122, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm10h", 123, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm11h", 124, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm12h", 125, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm13h", 126, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm14h", 127, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm15h", 128, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm16h", 129, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm17h", 130, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm18h", 131, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm19h", 132, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm20h", 133, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm21h", 134, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm22h", 135, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm23h", 136, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm24h", 137, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm25h", 138, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm26h", 139, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm27h", 140, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm28h", 141, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm29h", 142, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm30h", 143, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm31h", 144, 1, NULL, 256, "v2ui128");
tdesc_amd64_avx_avx512 = result;
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- AMD64 with AVX, AVX512 -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>i386:x86-64</architecture>
<xi:include href="64bit-core.xml"/>
<xi:include href="64bit-sse.xml"/>
<xi:include href="64bit-avx.xml"/>
<xi:include href="64bit-avx512.xml"/>
</target>

View File

@ -0,0 +1,170 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: i386-avx-avx512-linux.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_i386_avx_avx512_linux;
static void
initialize_tdesc_i386_avx_avx512_linux (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
set_tdesc_osabi (result, osabi_from_tdesc_string ("GNU/Linux"));
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
type = tdesc_create_flags (feature, "i386_eflags", 4);
tdesc_add_flag (type, 0, "CF");
tdesc_add_flag (type, 1, "");
tdesc_add_flag (type, 2, "PF");
tdesc_add_flag (type, 4, "AF");
tdesc_add_flag (type, 6, "ZF");
tdesc_add_flag (type, 7, "SF");
tdesc_add_flag (type, 8, "TF");
tdesc_add_flag (type, 9, "IF");
tdesc_add_flag (type, 10, "DF");
tdesc_add_flag (type, 11, "OF");
tdesc_add_flag (type, 14, "NT");
tdesc_add_flag (type, 16, "RF");
tdesc_add_flag (type, 17, "VM");
tdesc_add_flag (type, 18, "AC");
tdesc_add_flag (type, 19, "VIF");
tdesc_add_flag (type, 20, "VIP");
tdesc_add_flag (type, 21, "ID");
tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
type = tdesc_create_flags (feature, "i386_mxcsr", 4);
tdesc_add_flag (type, 0, "IE");
tdesc_add_flag (type, 1, "DE");
tdesc_add_flag (type, 2, "ZE");
tdesc_add_flag (type, 3, "OE");
tdesc_add_flag (type, 4, "UE");
tdesc_add_flag (type, 5, "PE");
tdesc_add_flag (type, 6, "DAZ");
tdesc_add_flag (type, 7, "IM");
tdesc_add_flag (type, 8, "DM");
tdesc_add_flag (type, 9, "ZM");
tdesc_add_flag (type, 10, "OM");
tdesc_add_flag (type, 11, "UM");
tdesc_add_flag (type, 12, "PM");
tdesc_add_flag (type, 15, "FZ");
tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.linux");
tdesc_create_reg (feature, "orig_eax", 41, 1, NULL, 32, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
tdesc_create_reg (feature, "ymm0h", 42, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm1h", 43, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm2h", 44, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm3h", 45, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm4h", 46, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm5h", 47, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm6h", 48, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm7h", 49, 1, NULL, 128, "uint128");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
field_type = tdesc_named_type (feature, "uint128");
tdesc_create_vector (feature, "v2ui128", field_type, 2);
tdesc_create_reg (feature, "k0", 50, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 51, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 52, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 53, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 54, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 55, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 56, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 57, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 58, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 59, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 60, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 61, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 62, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 63, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 64, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 65, 1, NULL, 256, "v2ui128");
tdesc_i386_avx_avx512_linux = result;
}

View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- I386 with AVX, AVX512 - Includes Linux-only special "register". -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>i386</architecture>
<osabi>GNU/Linux</osabi>
<xi:include href="32bit-core.xml"/>
<xi:include href="32bit-sse.xml"/>
<xi:include href="32bit-linux.xml"/>
<xi:include href="32bit-avx.xml"/>
<xi:include href="32bit-avx512.xml"/>
</target>

View File

@ -0,0 +1,165 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: i386-avx-avx512.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_i386_avx_avx512;
static void
initialize_tdesc_i386_avx_avx512 (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
struct tdesc_type *field_type;
struct tdesc_type *type;
set_tdesc_architecture (result, bfd_scan_arch ("i386"));
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.core");
type = tdesc_create_flags (feature, "i386_eflags", 4);
tdesc_add_flag (type, 0, "CF");
tdesc_add_flag (type, 1, "");
tdesc_add_flag (type, 2, "PF");
tdesc_add_flag (type, 4, "AF");
tdesc_add_flag (type, 6, "ZF");
tdesc_add_flag (type, 7, "SF");
tdesc_add_flag (type, 8, "TF");
tdesc_add_flag (type, 9, "IF");
tdesc_add_flag (type, 10, "DF");
tdesc_add_flag (type, 11, "OF");
tdesc_add_flag (type, 14, "NT");
tdesc_add_flag (type, 16, "RF");
tdesc_add_flag (type, 17, "VM");
tdesc_add_flag (type, 18, "AC");
tdesc_add_flag (type, 19, "VIF");
tdesc_add_flag (type, 20, "VIP");
tdesc_add_flag (type, 21, "ID");
tdesc_create_reg (feature, "eax", 0, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ecx", 1, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "edx", 2, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ebx", 3, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "esp", 4, 1, NULL, 32, "data_ptr");
tdesc_create_reg (feature, "ebp", 5, 1, NULL, 32, "data_ptr");
tdesc_create_reg (feature, "esi", 6, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "edi", 7, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "eip", 8, 1, NULL, 32, "code_ptr");
tdesc_create_reg (feature, "eflags", 9, 1, NULL, 32, "i386_eflags");
tdesc_create_reg (feature, "cs", 10, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ss", 11, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "ds", 12, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "es", 13, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "fs", 14, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "gs", 15, 1, NULL, 32, "int32");
tdesc_create_reg (feature, "st0", 16, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st1", 17, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st2", 18, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st3", 19, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st4", 20, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st5", 21, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st6", 22, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "st7", 23, 1, NULL, 80, "i387_ext");
tdesc_create_reg (feature, "fctrl", 24, 1, "float", 32, "int");
tdesc_create_reg (feature, "fstat", 25, 1, "float", 32, "int");
tdesc_create_reg (feature, "ftag", 26, 1, "float", 32, "int");
tdesc_create_reg (feature, "fiseg", 27, 1, "float", 32, "int");
tdesc_create_reg (feature, "fioff", 28, 1, "float", 32, "int");
tdesc_create_reg (feature, "foseg", 29, 1, "float", 32, "int");
tdesc_create_reg (feature, "fooff", 30, 1, "float", 32, "int");
tdesc_create_reg (feature, "fop", 31, 1, "float", 32, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.sse");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
field_type = tdesc_named_type (feature, "ieee_double");
tdesc_create_vector (feature, "v2d", field_type, 2);
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v16i8", field_type, 16);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v8i16", field_type, 8);
field_type = tdesc_named_type (feature, "int32");
tdesc_create_vector (feature, "v4i32", field_type, 4);
field_type = tdesc_named_type (feature, "int64");
tdesc_create_vector (feature, "v2i64", field_type, 2);
type = tdesc_create_union (feature, "vec128");
field_type = tdesc_named_type (feature, "v4f");
tdesc_add_field (type, "v4_float", field_type);
field_type = tdesc_named_type (feature, "v2d");
tdesc_add_field (type, "v2_double", field_type);
field_type = tdesc_named_type (feature, "v16i8");
tdesc_add_field (type, "v16_int8", field_type);
field_type = tdesc_named_type (feature, "v8i16");
tdesc_add_field (type, "v8_int16", field_type);
field_type = tdesc_named_type (feature, "v4i32");
tdesc_add_field (type, "v4_int32", field_type);
field_type = tdesc_named_type (feature, "v2i64");
tdesc_add_field (type, "v2_int64", field_type);
field_type = tdesc_named_type (feature, "uint128");
tdesc_add_field (type, "uint128", field_type);
type = tdesc_create_flags (feature, "i386_mxcsr", 4);
tdesc_add_flag (type, 0, "IE");
tdesc_add_flag (type, 1, "DE");
tdesc_add_flag (type, 2, "ZE");
tdesc_add_flag (type, 3, "OE");
tdesc_add_flag (type, 4, "UE");
tdesc_add_flag (type, 5, "PE");
tdesc_add_flag (type, 6, "DAZ");
tdesc_add_flag (type, 7, "IM");
tdesc_add_flag (type, 8, "DM");
tdesc_add_flag (type, 9, "ZM");
tdesc_add_flag (type, 10, "OM");
tdesc_add_flag (type, 11, "UM");
tdesc_add_flag (type, 12, "PM");
tdesc_add_flag (type, 15, "FZ");
tdesc_create_reg (feature, "xmm0", 32, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm1", 33, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm2", 34, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm3", 35, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm4", 36, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm5", 37, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm6", 38, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm7", 39, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "mxcsr", 40, 1, "vector", 32, "i386_mxcsr");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx");
tdesc_create_reg (feature, "ymm0h", 41, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm1h", 42, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm2h", 43, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm3h", 44, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm4h", 45, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm5h", 46, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm6h", 47, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm7h", 48, 1, NULL, 128, "uint128");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
field_type = tdesc_named_type (feature, "uint128");
tdesc_create_vector (feature, "v2ui128", field_type, 2);
tdesc_create_reg (feature, "k0", 49, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 50, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 51, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 52, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 53, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 54, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 55, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 56, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 57, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 58, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 59, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 60, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 61, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 62, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 63, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 64, 1, NULL, 256, "v2ui128");
tdesc_i386_avx_avx512 = result;
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2014-2017 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- I386 with AVX, AVX512 -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
<architecture>i386</architecture>
<xi:include href="32bit-core.xml"/>
<xi:include href="32bit-sse.xml"/>
<xi:include href="32bit-avx.xml"/>
<xi:include href="32bit-avx512.xml"/>
</target>

View File

@ -1,13 +1,13 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: x32-avx-mpx-avx512-linux.xml */
Original: x32-avx-avx512-linux.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_x32_avx_mpx_avx512_linux;
struct target_desc *tdesc_x32_avx_avx512_linux;
static void
initialize_tdesc_x32_avx_mpx_avx512_linux (void)
initialize_tdesc_x32_avx_avx512_linux (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
@ -173,44 +173,6 @@ initialize_tdesc_x32_avx_mpx_avx512_linux (void)
tdesc_create_reg (feature, "ymm14h", 74, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm15h", 75, 1, NULL, 128, "uint128");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
type = tdesc_create_struct (feature, "br128");
field_type = tdesc_named_type (feature, "uint64");
tdesc_add_field (type, "lbound", field_type);
field_type = tdesc_named_type (feature, "uint64");
tdesc_add_field (type, "ubound_raw", field_type);
type = tdesc_create_struct (feature, "_bndstatus");
tdesc_set_struct_size (type, 8);
tdesc_add_bitfield (type, "bde", 2, 63);
tdesc_add_bitfield (type, "error", 0, 1);
type = tdesc_create_union (feature, "status");
field_type = tdesc_named_type (feature, "data_ptr");
tdesc_add_field (type, "raw", field_type);
field_type = tdesc_named_type (feature, "_bndstatus");
tdesc_add_field (type, "status", field_type);
type = tdesc_create_struct (feature, "_bndcfgu");
tdesc_set_struct_size (type, 8);
tdesc_add_bitfield (type, "base", 12, 63);
tdesc_add_bitfield (type, "reserved", 2, 11);
tdesc_add_bitfield (type, "preserved", 1, 1);
tdesc_add_bitfield (type, "enabled", 0, 0);
type = tdesc_create_union (feature, "cfgu");
field_type = tdesc_named_type (feature, "data_ptr");
tdesc_add_field (type, "raw", field_type);
field_type = tdesc_named_type (feature, "_bndcfgu");
tdesc_add_field (type, "config", field_type);
tdesc_create_reg (feature, "bnd0raw", 76, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bnd1raw", 77, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bnd2raw", 78, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bnd3raw", 79, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bndcfgu", 80, 1, NULL, 64, "cfgu");
tdesc_create_reg (feature, "bndstatus", 81, 1, NULL, 64, "status");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
@ -249,78 +211,78 @@ initialize_tdesc_x32_avx_mpx_avx512_linux (void)
field_type = tdesc_named_type (feature, "uint128");
tdesc_create_vector (feature, "v2ui128", field_type, 2);
tdesc_create_reg (feature, "xmm16", 82, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm17", 83, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm18", 84, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm19", 85, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm20", 86, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm21", 87, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm22", 88, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm23", 89, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm24", 90, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm25", 91, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm26", 92, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm27", 93, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm28", 94, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm29", 95, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm30", 96, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm31", 97, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "ymm16h", 98, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm17h", 99, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm18h", 100, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm19h", 101, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm20h", 102, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm21h", 103, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm22h", 104, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm23h", 105, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm24h", 106, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm25h", 107, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm26h", 108, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm27h", 109, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm28h", 110, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm29h", 111, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm30h", 112, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm31h", 113, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "k0", 114, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 115, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 116, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 117, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 118, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 119, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 120, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 121, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 122, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 123, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 124, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 125, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 126, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 127, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 128, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 129, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm8h", 130, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm9h", 131, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm10h", 132, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm11h", 133, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm12h", 134, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm13h", 135, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm14h", 136, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm15h", 137, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm16h", 138, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm17h", 139, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm18h", 140, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm19h", 141, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm20h", 142, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm21h", 143, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm22h", 144, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm23h", 145, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm24h", 146, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm25h", 147, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm26h", 148, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm27h", 149, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm28h", 150, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm29h", 151, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm30h", 152, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm31h", 153, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "xmm16", 76, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm17", 77, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm18", 78, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm19", 79, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm20", 80, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm21", 81, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm22", 82, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm23", 83, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm24", 84, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm25", 85, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm26", 86, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm27", 87, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm28", 88, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm29", 89, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm30", 90, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm31", 91, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "ymm16h", 92, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm17h", 93, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm18h", 94, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm19h", 95, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm20h", 96, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm21h", 97, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm22h", 98, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm23h", 99, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm24h", 100, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm25h", 101, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm26h", 102, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm27h", 103, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm28h", 104, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm29h", 105, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm30h", 106, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm31h", 107, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "k0", 108, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 109, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 110, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 111, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 112, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 113, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 114, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 115, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 116, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 117, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 118, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 119, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 120, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 121, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 122, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 123, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm8h", 124, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm9h", 125, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm10h", 126, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm11h", 127, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm12h", 128, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm13h", 129, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm14h", 130, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm15h", 131, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm16h", 132, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm17h", 133, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm18h", 134, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm19h", 135, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm20h", 136, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm21h", 137, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm22h", 138, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm23h", 139, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm24h", 140, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm25h", 141, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm26h", 142, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm27h", 143, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm28h", 144, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm29h", 145, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm30h", 146, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm31h", 147, 1, NULL, 256, "v2ui128");
tdesc_x32_avx_mpx_avx512_linux = result;
tdesc_x32_avx_avx512_linux = result;
}

View File

@ -5,7 +5,7 @@
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- X32 with AVX, MPX, AVX512 - Includes Linux-only special "register". -->
<!-- X32 with AVX, AVX512 - Includes Linux-only special "register". -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
@ -16,6 +16,5 @@
<xi:include href="64bit-linux.xml"/>
<xi:include href="64bit-segments.xml"/>
<xi:include href="64bit-avx.xml"/>
<xi:include href="64bit-mpx.xml"/>
<xi:include href="64bit-avx512.xml"/>
</target>

View File

@ -1,13 +1,13 @@
/* THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi:set ro:
Original: x32-avx-mpx-avx512.xml */
Original: x32-avx-avx512.xml */
#include "defs.h"
#include "osabi.h"
#include "target-descriptions.h"
struct target_desc *tdesc_x32_avx_mpx_avx512;
struct target_desc *tdesc_x32_avx_avx512;
static void
initialize_tdesc_x32_avx_mpx_avx512 (void)
initialize_tdesc_x32_avx_avx512 (void)
{
struct target_desc *result = allocate_target_description ();
struct tdesc_feature *feature;
@ -164,44 +164,6 @@ initialize_tdesc_x32_avx_mpx_avx512 (void)
tdesc_create_reg (feature, "ymm14h", 71, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm15h", 72, 1, NULL, 128, "uint128");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.mpx");
type = tdesc_create_struct (feature, "br128");
field_type = tdesc_named_type (feature, "uint64");
tdesc_add_field (type, "lbound", field_type);
field_type = tdesc_named_type (feature, "uint64");
tdesc_add_field (type, "ubound_raw", field_type);
type = tdesc_create_struct (feature, "_bndstatus");
tdesc_set_struct_size (type, 8);
tdesc_add_bitfield (type, "bde", 2, 63);
tdesc_add_bitfield (type, "error", 0, 1);
type = tdesc_create_union (feature, "status");
field_type = tdesc_named_type (feature, "data_ptr");
tdesc_add_field (type, "raw", field_type);
field_type = tdesc_named_type (feature, "_bndstatus");
tdesc_add_field (type, "status", field_type);
type = tdesc_create_struct (feature, "_bndcfgu");
tdesc_set_struct_size (type, 8);
tdesc_add_bitfield (type, "base", 12, 63);
tdesc_add_bitfield (type, "reserved", 2, 11);
tdesc_add_bitfield (type, "preserved", 1, 1);
tdesc_add_bitfield (type, "enabled", 0, 0);
type = tdesc_create_union (feature, "cfgu");
field_type = tdesc_named_type (feature, "data_ptr");
tdesc_add_field (type, "raw", field_type);
field_type = tdesc_named_type (feature, "_bndcfgu");
tdesc_add_field (type, "config", field_type);
tdesc_create_reg (feature, "bnd0raw", 73, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bnd1raw", 74, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bnd2raw", 75, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bnd3raw", 76, 1, NULL, 128, "br128");
tdesc_create_reg (feature, "bndcfgu", 77, 1, NULL, 64, "cfgu");
tdesc_create_reg (feature, "bndstatus", 78, 1, NULL, 64, "status");
feature = tdesc_create_feature (result, "org.gnu.gdb.i386.avx512");
field_type = tdesc_named_type (feature, "ieee_single");
tdesc_create_vector (feature, "v4f", field_type, 4);
@ -240,78 +202,78 @@ initialize_tdesc_x32_avx_mpx_avx512 (void)
field_type = tdesc_named_type (feature, "uint128");
tdesc_create_vector (feature, "v2ui128", field_type, 2);
tdesc_create_reg (feature, "xmm16", 79, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm17", 80, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm18", 81, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm19", 82, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm20", 83, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm21", 84, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm22", 85, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm23", 86, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm24", 87, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm25", 88, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm26", 89, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm27", 90, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm28", 91, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm29", 92, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm30", 93, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm31", 94, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "ymm16h", 95, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm17h", 96, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm18h", 97, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm19h", 98, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm20h", 99, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm21h", 100, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm22h", 101, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm23h", 102, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm24h", 103, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm25h", 104, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm26h", 105, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm27h", 106, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm28h", 107, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm29h", 108, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm30h", 109, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm31h", 110, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "k0", 111, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 112, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 113, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 114, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 115, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 116, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 117, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 118, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 119, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 120, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 121, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 122, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 123, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 124, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 125, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 126, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm8h", 127, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm9h", 128, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm10h", 129, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm11h", 130, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm12h", 131, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm13h", 132, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm14h", 133, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm15h", 134, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm16h", 135, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm17h", 136, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm18h", 137, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm19h", 138, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm20h", 139, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm21h", 140, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm22h", 141, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm23h", 142, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm24h", 143, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm25h", 144, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm26h", 145, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm27h", 146, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm28h", 147, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm29h", 148, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm30h", 149, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm31h", 150, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "xmm16", 73, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm17", 74, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm18", 75, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm19", 76, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm20", 77, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm21", 78, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm22", 79, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm23", 80, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm24", 81, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm25", 82, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm26", 83, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm27", 84, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm28", 85, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm29", 86, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm30", 87, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "xmm31", 88, 1, NULL, 128, "vec128");
tdesc_create_reg (feature, "ymm16h", 89, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm17h", 90, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm18h", 91, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm19h", 92, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm20h", 93, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm21h", 94, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm22h", 95, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm23h", 96, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm24h", 97, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm25h", 98, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm26h", 99, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm27h", 100, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm28h", 101, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm29h", 102, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm30h", 103, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "ymm31h", 104, 1, NULL, 128, "uint128");
tdesc_create_reg (feature, "k0", 105, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k1", 106, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k2", 107, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k3", 108, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k4", 109, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k5", 110, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k6", 111, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "k7", 112, 1, NULL, 64, "uint64");
tdesc_create_reg (feature, "zmm0h", 113, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm1h", 114, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm2h", 115, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm3h", 116, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm4h", 117, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm5h", 118, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm6h", 119, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm7h", 120, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm8h", 121, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm9h", 122, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm10h", 123, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm11h", 124, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm12h", 125, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm13h", 126, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm14h", 127, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm15h", 128, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm16h", 129, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm17h", 130, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm18h", 131, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm19h", 132, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm20h", 133, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm21h", 134, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm22h", 135, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm23h", 136, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm24h", 137, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm25h", 138, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm26h", 139, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm27h", 140, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm28h", 141, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm29h", 142, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm30h", 143, 1, NULL, 256, "v2ui128");
tdesc_create_reg (feature, "zmm31h", 144, 1, NULL, 256, "v2ui128");
tdesc_x32_avx_mpx_avx512 = result;
tdesc_x32_avx_avx512 = result;
}

View File

@ -5,7 +5,7 @@
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!-- X32 with AVX, MPX, AVX512 -->
<!-- X32 with AVX, AVX512 -->
<!DOCTYPE target SYSTEM "gdb-target.dtd">
<target>
@ -13,6 +13,5 @@
<xi:include href="x32-core.xml"/>
<xi:include href="64bit-sse.xml"/>
<xi:include href="64bit-avx.xml"/>
<xi:include href="64bit-mpx.xml"/>
<xi:include href="64bit-avx512.xml"/>
</target>

View File

@ -445,15 +445,17 @@ 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-avx-avx512.c i386-avx-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-avx-avx512.c amd64-avx-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-avx-mpx-avx512.c x32-avx-mpx-avx512-linux.c
rm -f x32-avx-avx512.c x32-avx-avx512-linux.c
@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(SUBDIRS)" subdir_do
maintainer-clean realclean distclean: clean
@ -577,6 +579,9 @@ i386-mpx-linux-ipa.o: i386-mpx-linux.c
i386-avx-mpx-linux-ipa.o: i386-avx-mpx-linux.c
$(IPAGENT_COMPILE) $<
$(POSTCOMPILE)
i386-avx-avx512-linux-ipa.o: i386-avx-avx512-linux.c
$(IPAGENT_COMPILE) $<
$(POSTCOMPILE)
i386-avx-mpx-avx512-linux-ipa.o: i386-avx-mpx-avx512-linux.c
$(IPAGENT_COMPILE) $<
$(POSTCOMPILE)
@ -598,6 +603,9 @@ amd64-mpx-linux-ipa.o: amd64-mpx-linux.c
amd64-avx-mpx-linux-ipa.o: amd64-avx-mpx-linux.c
$(IPAGENT_COMPILE) $<
$(POSTCOMPILE)
amd64-avx-avx512-linux-ipa.o: amd64-avx-avx512-linux.c
$(IPAGENT_COMPILE) $<
$(POSTCOMPILE)
amd64-avx-mpx-avx512-linux-ipa.o: amd64-avx-mpx-avx512-linux.c
$(IPAGENT_COMPILE) $<
$(POSTCOMPILE)
@ -894,6 +902,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-avx-avx512.c : $(srcdir)/../regformats/i386/i386-avx-avx512.dat $(regdat_sh)
$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-avx512.dat i386-avx-avx512.c
i386-avx-avx512-linux.c : $(srcdir)/../regformats/i386/i386-avx-avx512-linux.dat $(regdat_sh)
$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/i386-avx-avx512-linux.dat i386-avx-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)
@ -1012,6 +1024,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-avx-avx512.c : $(srcdir)/../regformats/i386/amd64-avx-avx512.dat $(regdat_sh)
$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-avx512.dat amd64-avx-avx512.c
amd64-avx-avx512-linux.c : $(srcdir)/../regformats/i386/amd64-avx-avx512-linux.dat $(regdat_sh)
$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/amd64-avx-avx512-linux.dat amd64-avx-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)
@ -1032,10 +1048,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-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
x32-avx-avx512.c : $(srcdir)/../regformats/i386/x32-avx-avx512.dat $(regdat_sh)
$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-avx512.dat x32-avx-avx512.c
x32-avx-avx512-linux.c : $(srcdir)/../regformats/i386/x32-avx-avx512-linux.dat $(regdat_sh)
$(SHELL) $(regdat_sh) $(srcdir)/../regformats/i386/x32-avx-avx512-linux.dat x32-avx-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)

View File

@ -24,21 +24,21 @@
# Default hostio_last_error implementation
srv_hostio_err_objs="hostio-errno.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"
srv_i386_regobj="i386.o i386-avx.o i386-avx-avx512.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-avx512-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-avx512.o amd64-avx-mpx-avx512.o amd64-mpx.o amd64-avx-mpx.o x32.o x32-avx.o x32-avx-avx512.o"
srv_amd64_linux_regobj="amd64-linux.o amd64-avx-linux.o amd64-avx-avx512-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-avx512-linux.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_i386_linux_regobj="i386-linux-ipa.o i386-avx-linux-ipa.o i386-avx-mpx-linux-ipa.o i386-avx-avx512-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-avx512-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-segments.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-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"
srv_i386_xmlfiles="i386/i386.xml i386/i386-avx.xml i386/i386-avx-avx512.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-avx512.xml i386/amd64-avx-mpx-avx512.xml i386/x32.xml i386/x32-avx.xml i386/x32-avx-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-avx512-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-avx512.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-avx512-linux.xml $srv_i386_64bit_xmlfiles"
# Linux object files. This is so we don't have to repeat

View File

@ -199,6 +199,8 @@ get_ipa_tdesc (int idx)
return tdesc_amd64_avx_mpx_linux;
case X86_TDESC_AVX_MPX_AVX512:
return tdesc_amd64_avx_mpx_avx512_linux;
case X86_TDESC_AVX_AVX512:
return tdesc_amd64_avx_avx512_linux;
default:
internal_error (__FILE__, __LINE__,
"unknown ipa tdesc index: %d", idx);
@ -281,7 +283,8 @@ initialize_low_tracepoint (void)
#else
init_registers_amd64_linux ();
init_registers_amd64_avx_linux ();
init_registers_amd64_mpx_linux ();
init_registers_amd64_avx_mpx_linux ();
init_registers_amd64_avx_mpx_avx512_linux ();
init_registers_amd64_avx_avx512_linux ();
#endif
}

View File

@ -262,6 +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_AVX_AVX512:
return tdesc_i386_avx_avx512_linux;
case X86_TDESC_AVX_MPX_AVX512:
return tdesc_i386_avx_mpx_avx512_linux;
default:
@ -293,6 +295,8 @@ initialize_low_tracepoint (void)
init_registers_i386_linux ();
init_registers_i386_avx_linux ();
init_registers_i386_mpx_linux ();
init_registers_i386_avx_avx512_linux ();
init_registers_i386_avx_mpx_avx512_linux ();
initialize_fast_tracepoint_trampoline_buffer ();
}

View File

@ -823,9 +823,11 @@ x86_linux_read_description (void)
switch (xcr0 & X86_XSTATE_ALL_MASK)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_amd64_avx_mpx_avx512_linux;
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_amd64_avx_avx512_linux;
case X86_XSTATE_AVX_MPX_MASK:
return tdesc_amd64_avx_mpx_linux;
@ -848,9 +850,9 @@ x86_linux_read_description (void)
{
switch (xcr0 & X86_XSTATE_ALL_MASK)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_MPX_AVX512_MASK: /* No MPX on x32. */
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_x32_avx_mpx_avx512_linux;
return tdesc_x32_avx_avx512_linux;
case X86_XSTATE_MPX_MASK: /* No MPX on x32. */
case X86_XSTATE_AVX_MASK:
@ -871,10 +873,12 @@ x86_linux_read_description (void)
{
switch (xcr0 & X86_XSTATE_ALL_MASK)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case (X86_XSTATE_AVX_AVX512_MASK):
case (X86_XSTATE_AVX_MPX_AVX512_MASK):
return tdesc_i386_avx_mpx_avx512_linux;
case (X86_XSTATE_AVX_AVX512_MASK):
return tdesc_i386_avx_avx512_linux;
case (X86_XSTATE_MPX_MASK):
return tdesc_i386_mpx_linux;
@ -2898,8 +2902,10 @@ 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_avx_mpx_avx512_linux || tdesc == tdesc_x32_avx_mpx_avx512_linux)
if (tdesc == tdesc_amd64_avx_mpx_avx512_linux || tdesc == tdesc_x32_avx_avx512_linux)
return X86_TDESC_AVX_MPX_AVX512;
if (tdesc == tdesc_amd64_avx_avx512_linux)
return X86_TDESC_AVX_AVX512;
#endif
if (tdesc == tdesc_i386_mmx_linux)
@ -2914,6 +2920,8 @@ x86_get_ipa_tdesc_idx (void)
return X86_TDESC_AVX_MPX;
if (tdesc == tdesc_i386_avx_mpx_avx512_linux)
return X86_TDESC_AVX_MPX_AVX512;
if (tdesc == tdesc_i386_avx_avx512_linux)
return X86_TDESC_AVX_AVX512;
return 0;
}
@ -2973,11 +2981,12 @@ initialize_low_arch (void)
init_registers_amd64_avx_linux ();
init_registers_amd64_mpx_linux ();
init_registers_amd64_avx_mpx_linux ();
init_registers_amd64_avx_avx512_linux ();
init_registers_amd64_avx_mpx_avx512_linux ();
init_registers_x32_linux ();
init_registers_x32_avx_linux ();
init_registers_x32_avx_mpx_avx512_linux ();
init_registers_x32_avx_avx512_linux ();
tdesc_amd64_linux_no_xml = XNEW (struct target_desc);
copy_target_description (tdesc_amd64_linux_no_xml, tdesc_amd64_linux);
@ -2988,6 +2997,7 @@ initialize_low_arch (void)
init_registers_i386_avx_linux ();
init_registers_i386_mpx_linux ();
init_registers_i386_avx_mpx_linux ();
init_registers_i386_avx_avx512_linux ();
init_registers_i386_avx_mpx_avx512_linux ();
tdesc_i386_linux_no_xml = XNEW (struct target_desc);

View File

@ -28,7 +28,8 @@ enum x86_linux_tdesc {
X86_TDESC_AVX = 2,
X86_TDESC_MPX = 3,
X86_TDESC_AVX_MPX = 4,
X86_TDESC_AVX_MPX_AVX512 = 5,
X86_TDESC_AVX_AVX512 = 5,
X86_TDESC_AVX_MPX_AVX512 = 6,
};
#ifdef __x86_64__
@ -42,6 +43,10 @@ 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-avx-avx512-linux.c. */
void init_registers_amd64_avx_avx512_linux (void);
extern const struct target_desc *tdesc_amd64_avx_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;
@ -64,9 +69,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-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;
/* Defined in auto-generated file x32-avx-avx512-linux.c. */
void init_registers_x32_avx_avx512_linux (void);
extern const struct target_desc *tdesc_x32_avx_avx512_linux;
#endif
#endif
@ -88,6 +93,10 @@ 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-avx-avx512-linux.c. */
void init_registers_i386_avx_avx512_linux (void);
extern const struct target_desc *tdesc_i386_avx_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;

View File

@ -50,6 +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-avx-avx512-linux.c"
#include "features/i386/i386-avx-mpx-avx512-linux.c"
/* Return non-zero, when the register is in the corresponding register
@ -689,8 +690,9 @@ i386_linux_core_read_description (struct gdbarch *gdbarch,
switch ((xcr0 & X86_XSTATE_ALL_MASK))
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_i386_avx_mpx_avx512_linux;
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_i386_avx_avx512_linux;
case X86_XSTATE_MPX_MASK:
return tdesc_i386_mpx_linux;
case X86_XSTATE_AVX_MPX_MASK:
@ -1086,5 +1088,6 @@ _initialize_i386_linux_tdep (void)
initialize_tdesc_i386_avx_linux ();
initialize_tdesc_i386_mpx_linux ();
initialize_tdesc_i386_avx_mpx_linux ();
initialize_tdesc_i386_avx_avx512_linux ();
initialize_tdesc_i386_avx_mpx_avx512_linux ();
}

View File

@ -48,6 +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_avx_avx512_linux;
extern struct target_desc *tdesc_i386_avx_mpx_avx512_linux;
/* Format of XSAVE extended state is:

View File

@ -54,6 +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-avx-avx512.c"
#include "features/i386/i386-avx-mpx-avx512.c"
#include "features/i386/i386-mmx.c"
@ -8232,7 +8233,7 @@ i386_validate_tdesc_p (struct gdbarch_tdep *tdep,
if (!feature_avx)
return 0;
tdep->xcr0 = X86_XSTATE_AVX_MPX_AVX512_MASK;
tdep->xcr0 = X86_XSTATE_AVX_AVX512_MASK;
/* It may have been set by OSABI initialization function. */
if (tdep->k0_regnum < 0)
@ -8708,8 +8709,9 @@ i386_target_description (uint64_t xcr0)
switch (xcr0 & X86_XSTATE_ALL_MASK)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_i386_avx_mpx_avx512;
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_i386_avx_avx512;
case X86_XSTATE_AVX_MPX_MASK:
return tdesc_i386_avx_mpx;
case X86_XSTATE_MPX_MASK:
@ -9051,6 +9053,7 @@ Show Intel Memory Protection Extensions specific variables."),
initialize_tdesc_i386_avx ();
initialize_tdesc_i386_mpx ();
initialize_tdesc_i386_avx_mpx ();
initialize_tdesc_i386_avx_avx512 ();
initialize_tdesc_i386_avx_mpx_avx512 ();
/* Tell remote stub that we support XML target description. */

View File

@ -1,7 +1,7 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: i386/x32-avx-mpx-avx512.xml
name:x32_avx_mpx_avx512
xmltarget:x32-avx-mpx-avx512.xml
# Generated from: i386/amd64-avx-avx512-linux.xml
name:amd64_avx_avx512_linux
xmltarget:amd64-avx-avx512-linux.xml
expedite:rbp,rsp,rip
64:rax
64:rbx
@ -60,6 +60,9 @@ expedite:rbp,rsp,rip
128:xmm14
128:xmm15
32:mxcsr
64:orig_rax
64:fs_base
64:gs_base
128:ymm0h
128:ymm1h
128:ymm2h
@ -76,12 +79,6 @@ expedite:rbp,rsp,rip
128:ymm13h
128:ymm14h
128:ymm15h
128:bnd0raw
128:bnd1raw
128:bnd2raw
128:bnd3raw
64:bndcfgu
64:bndstatus
128:xmm16
128:xmm17
128:xmm18

View File

@ -0,0 +1,150 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: i386/amd64-avx-avx512.xml
name:amd64_avx_avx512
xmltarget:amd64-avx-avx512.xml
expedite:rbp,rsp,rip
64:rax
64:rbx
64:rcx
64:rdx
64:rsi
64:rdi
64:rbp
64:rsp
64:r8
64:r9
64:r10
64:r11
64:r12
64:r13
64:r14
64:r15
64:rip
32:eflags
32:cs
32:ss
32:ds
32:es
32:fs
32:gs
80:st0
80:st1
80:st2
80:st3
80:st4
80:st5
80:st6
80:st7
32:fctrl
32:fstat
32:ftag
32:fiseg
32:fioff
32:foseg
32:fooff
32:fop
128:xmm0
128:xmm1
128:xmm2
128:xmm3
128:xmm4
128:xmm5
128:xmm6
128:xmm7
128:xmm8
128:xmm9
128:xmm10
128:xmm11
128:xmm12
128:xmm13
128:xmm14
128:xmm15
32:mxcsr
128:ymm0h
128:ymm1h
128:ymm2h
128:ymm3h
128:ymm4h
128:ymm5h
128:ymm6h
128:ymm7h
128:ymm8h
128:ymm9h
128:ymm10h
128:ymm11h
128:ymm12h
128:ymm13h
128:ymm14h
128:ymm15h
128:xmm16
128:xmm17
128:xmm18
128:xmm19
128:xmm20
128:xmm21
128:xmm22
128:xmm23
128:xmm24
128:xmm25
128:xmm26
128:xmm27
128:xmm28
128:xmm29
128:xmm30
128:xmm31
128:ymm16h
128:ymm17h
128:ymm18h
128:ymm19h
128:ymm20h
128:ymm21h
128:ymm22h
128:ymm23h
128:ymm24h
128:ymm25h
128:ymm26h
128:ymm27h
128:ymm28h
128:ymm29h
128:ymm30h
128:ymm31h
64:k0
64:k1
64:k2
64:k3
64:k4
64:k5
64:k6
64:k7
256:zmm0h
256:zmm1h
256:zmm2h
256:zmm3h
256:zmm4h
256:zmm5h
256:zmm6h
256:zmm7h
256:zmm8h
256:zmm9h
256:zmm10h
256:zmm11h
256:zmm12h
256:zmm13h
256:zmm14h
256:zmm15h
256:zmm16h
256:zmm17h
256:zmm18h
256:zmm19h
256:zmm20h
256:zmm21h
256:zmm22h
256:zmm23h
256:zmm24h
256:zmm25h
256:zmm26h
256:zmm27h
256:zmm28h
256:zmm29h
256:zmm30h
256:zmm31h

View File

@ -0,0 +1,71 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: i386/i386-avx-avx512-linux.xml
name:i386_avx_avx512_linux
xmltarget:i386-avx-avx512-linux.xml
expedite:ebp,esp,eip
32:eax
32:ecx
32:edx
32:ebx
32:esp
32:ebp
32:esi
32:edi
32:eip
32:eflags
32:cs
32:ss
32:ds
32:es
32:fs
32:gs
80:st0
80:st1
80:st2
80:st3
80:st4
80:st5
80:st6
80:st7
32:fctrl
32:fstat
32:ftag
32:fiseg
32:fioff
32:foseg
32:fooff
32:fop
128:xmm0
128:xmm1
128:xmm2
128:xmm3
128:xmm4
128:xmm5
128:xmm6
128:xmm7
32:mxcsr
32:orig_eax
128:ymm0h
128:ymm1h
128:ymm2h
128:ymm3h
128:ymm4h
128:ymm5h
128:ymm6h
128:ymm7h
64:k0
64:k1
64:k2
64:k3
64:k4
64:k5
64:k6
64:k7
256:zmm0h
256:zmm1h
256:zmm2h
256:zmm3h
256:zmm4h
256:zmm5h
256:zmm6h
256:zmm7h

View File

@ -0,0 +1,70 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: i386/i386-avx-avx512.xml
name:i386_avx_avx512
xmltarget:i386-avx-avx512.xml
expedite:ebp,esp,eip
32:eax
32:ecx
32:edx
32:ebx
32:esp
32:ebp
32:esi
32:edi
32:eip
32:eflags
32:cs
32:ss
32:ds
32:es
32:fs
32:gs
80:st0
80:st1
80:st2
80:st3
80:st4
80:st5
80:st6
80:st7
32:fctrl
32:fstat
32:ftag
32:fiseg
32:fioff
32:foseg
32:fooff
32:fop
128:xmm0
128:xmm1
128:xmm2
128:xmm3
128:xmm4
128:xmm5
128:xmm6
128:xmm7
32:mxcsr
128:ymm0h
128:ymm1h
128:ymm2h
128:ymm3h
128:ymm4h
128:ymm5h
128:ymm6h
128:ymm7h
64:k0
64:k1
64:k2
64:k3
64:k4
64:k5
64:k6
64:k7
256:zmm0h
256:zmm1h
256:zmm2h
256:zmm3h
256:zmm4h
256:zmm5h
256:zmm6h
256:zmm7h

View File

@ -1,7 +1,7 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: i386/x32-avx-mpx-avx512-linux.xml
name:x32_avx_mpx_avx512_linux
xmltarget:x32-avx-mpx-avx512-linux.xml
# Generated from: i386/x32-avx-avx512-linux.xml
name:x32_avx_avx512_linux
xmltarget:x32-avx-avx512-linux.xml
expedite:rbp,rsp,rip
64:rax
64:rbx
@ -79,12 +79,6 @@ expedite:rbp,rsp,rip
128:ymm13h
128:ymm14h
128:ymm15h
128:bnd0raw
128:bnd1raw
128:bnd2raw
128:bnd3raw
64:bndcfgu
64:bndstatus
128:xmm16
128:xmm17
128:xmm18

View File

@ -0,0 +1,150 @@
# THIS FILE IS GENERATED. -*- buffer-read-only: t -*- vi :set ro:
# Generated from: i386/x32-avx-avx512.xml
name:x32_avx_avx512
xmltarget:x32-avx-avx512.xml
expedite:rbp,rsp,rip
64:rax
64:rbx
64:rcx
64:rdx
64:rsi
64:rdi
64:rbp
64:rsp
64:r8
64:r9
64:r10
64:r11
64:r12
64:r13
64:r14
64:r15
64:rip
32:eflags
32:cs
32:ss
32:ds
32:es
32:fs
32:gs
80:st0
80:st1
80:st2
80:st3
80:st4
80:st5
80:st6
80:st7
32:fctrl
32:fstat
32:ftag
32:fiseg
32:fioff
32:foseg
32:fooff
32:fop
128:xmm0
128:xmm1
128:xmm2
128:xmm3
128:xmm4
128:xmm5
128:xmm6
128:xmm7
128:xmm8
128:xmm9
128:xmm10
128:xmm11
128:xmm12
128:xmm13
128:xmm14
128:xmm15
32:mxcsr
128:ymm0h
128:ymm1h
128:ymm2h
128:ymm3h
128:ymm4h
128:ymm5h
128:ymm6h
128:ymm7h
128:ymm8h
128:ymm9h
128:ymm10h
128:ymm11h
128:ymm12h
128:ymm13h
128:ymm14h
128:ymm15h
128:xmm16
128:xmm17
128:xmm18
128:xmm19
128:xmm20
128:xmm21
128:xmm22
128:xmm23
128:xmm24
128:xmm25
128:xmm26
128:xmm27
128:xmm28
128:xmm29
128:xmm30
128:xmm31
128:ymm16h
128:ymm17h
128:ymm18h
128:ymm19h
128:ymm20h
128:ymm21h
128:ymm22h
128:ymm23h
128:ymm24h
128:ymm25h
128:ymm26h
128:ymm27h
128:ymm28h
128:ymm29h
128:ymm30h
128:ymm31h
64:k0
64:k1
64:k2
64:k3
64:k4
64:k5
64:k6
64:k7
256:zmm0h
256:zmm1h
256:zmm2h
256:zmm3h
256:zmm4h
256:zmm5h
256:zmm6h
256:zmm7h
256:zmm8h
256:zmm9h
256:zmm10h
256:zmm11h
256:zmm12h
256:zmm13h
256:zmm14h
256:zmm15h
256:zmm16h
256:zmm17h
256:zmm18h
256:zmm19h
256:zmm20h
256:zmm21h
256:zmm22h
256:zmm23h
256:zmm24h
256:zmm25h
256:zmm26h
256:zmm27h
256:zmm28h
256:zmm29h
256:zmm30h
256:zmm31h

View File

@ -205,11 +205,16 @@ x86_linux_read_description (struct target_ops *ops)
switch (xcr0_features_bits)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_AVX512_MASK:
if (is_x32)
return tdesc_x32_avx_mpx_avx512_linux;
/* No MPX on x32, fallback to AVX-AVX512. */
return tdesc_x32_avx_avx512_linux;
else
return tdesc_amd64_avx_mpx_avx512_linux;
case X86_XSTATE_AVX_AVX512_MASK:
if (is_x32)
return tdesc_x32_avx_avx512_linux;
else
return tdesc_amd64_avx_avx512_linux;
case X86_XSTATE_MPX_MASK:
if (is_x32)
return tdesc_x32_avx_linux; /* No MPX on x32 using AVX. */
@ -238,8 +243,9 @@ x86_linux_read_description (struct target_ops *ops)
switch (xcr0_features_bits)
{
case X86_XSTATE_AVX_MPX_AVX512_MASK:
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_i386_avx_mpx_avx512_linux;
case X86_XSTATE_AVX_AVX512_MASK:
return tdesc_i386_avx_avx512_linux;
case X86_XSTATE_MPX_MASK:
return tdesc_i386_mpx_linux;
case X86_XSTATE_AVX_MPX_MASK: