diff options
author | Michael Sturm <michael.sturm@intel.com> | 2016-03-22 16:26:09 +0100 |
---|---|---|
committer | Michael Sturm <michael.sturm@intel.com> | 2017-02-17 11:44:36 +0100 |
commit | a1fa17ee1556b0175afb081a7b8a13710246307a (patch) | |
tree | 4df2ba5935aaef36d9b009d4e8b1109ee401f385 /gdb/regformats | |
parent | 22049425ce40324139be82d9a6ec518c46b65815 (diff) | |
download | gdb-a1fa17ee1556b0175afb081a7b8a13710246307a.zip gdb-a1fa17ee1556b0175afb081a7b8a13710246307a.tar.gz gdb-a1fa17ee1556b0175afb081a7b8a13710246307a.tar.bz2 |
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>
Diffstat (limited to 'gdb/regformats')
-rw-r--r-- | gdb/regformats/i386/amd64-avx-avx512-linux.dat (renamed from gdb/regformats/i386/x32-avx-mpx-avx512.dat) | 15 | ||||
-rw-r--r-- | gdb/regformats/i386/amd64-avx-avx512.dat | 150 | ||||
-rw-r--r-- | gdb/regformats/i386/i386-avx-avx512-linux.dat | 71 | ||||
-rw-r--r-- | gdb/regformats/i386/i386-avx-avx512.dat | 70 | ||||
-rw-r--r-- | gdb/regformats/i386/x32-avx-avx512-linux.dat (renamed from gdb/regformats/i386/x32-avx-mpx-avx512-linux.dat) | 12 | ||||
-rw-r--r-- | gdb/regformats/i386/x32-avx-avx512.dat | 150 |
6 files changed, 450 insertions, 18 deletions
diff --git a/gdb/regformats/i386/x32-avx-mpx-avx512.dat b/gdb/regformats/i386/amd64-avx-avx512-linux.dat index e872082..0743693 100644 --- a/gdb/regformats/i386/x32-avx-mpx-avx512.dat +++ b/gdb/regformats/i386/amd64-avx-avx512-linux.dat @@ -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 diff --git a/gdb/regformats/i386/amd64-avx-avx512.dat b/gdb/regformats/i386/amd64-avx-avx512.dat new file mode 100644 index 0000000..b7938e6 --- /dev/null +++ b/gdb/regformats/i386/amd64-avx-avx512.dat @@ -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 diff --git a/gdb/regformats/i386/i386-avx-avx512-linux.dat b/gdb/regformats/i386/i386-avx-avx512-linux.dat new file mode 100644 index 0000000..4477133 --- /dev/null +++ b/gdb/regformats/i386/i386-avx-avx512-linux.dat @@ -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 diff --git a/gdb/regformats/i386/i386-avx-avx512.dat b/gdb/regformats/i386/i386-avx-avx512.dat new file mode 100644 index 0000000..45b6f6c --- /dev/null +++ b/gdb/regformats/i386/i386-avx-avx512.dat @@ -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 diff --git a/gdb/regformats/i386/x32-avx-mpx-avx512-linux.dat b/gdb/regformats/i386/x32-avx-avx512-linux.dat index b8b9d52..0078617 100644 --- a/gdb/regformats/i386/x32-avx-mpx-avx512-linux.dat +++ b/gdb/regformats/i386/x32-avx-avx512-linux.dat @@ -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 diff --git a/gdb/regformats/i386/x32-avx-avx512.dat b/gdb/regformats/i386/x32-avx-avx512.dat new file mode 100644 index 0000000..3f96035 --- /dev/null +++ b/gdb/regformats/i386/x32-avx-avx512.dat @@ -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 |