This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH V3 0/3] Intel(R) AVX-512 register support


All,

I've added the changes requested by Mark and he indicated this version of 
the patch is pre-approved by him. 
Eli already gave his Ok in V1 of the patch series.

When preparing V3 of the patch I noticed that the changes between V1 and V2
called out below were not actually inlcuded in the updated diff.
Please accept my apologies for this mistake!

Pedro,

in your initial feedback you said that you just skimmed the patch. I'd 
appreciate it if you could have another look and let me know if it is Ok 
to commit? 

Thanks and Regards,
Michael


This patch series adds support for the Intel(R) Advanced Vector Extensions 512
(Intel(R) AVX-512) registers. Native and remote debugging are covered by this
patch series.

Intel(R) AVX-512 is an extension to AVX to support 512-bit wide SIMD registers
in 64-bit mode (XMM0-XMM31, YMM0-YMM31, ZMM0-ZMM31). The number of available
registers in 32-bit mode is still 8 (XMM0-7, YMM0-7, ZMM0-7). The lower
256-bits of the ZMM registers are aliased to the respective 256-bit YMM
registers. The lower 128-bits are aliased to the respective 128-bit XMM
registers.

There are also 8 new, dedicated mask registers (K0-K7) in both 32-bit mode
and 64-bit mode.

For more information please see
Intel(R) Developer Zone: Intel(R) AVX
http://software.intel.com/en-us/intel-isa-extensions#pid-16007-1495

Intel(R) Architecture Instruction Set Extensions Programming Reference:
http://software.intel.com/en-us/file/319433-017pdf

Changes between V2 and V3:
	* Following feeback by Mark Kettenis, the follwing changes were made
	in i386-tdep.c:
	Changed a reference to "amd64" to "in 64-bit mode" in the comment 
	explaining the need for a constant. Also, refactored is_AVX512, 
	is_AVX, is_SSE in i386_register_reggroup_p to avx512_p, avx_p, sse_p.

Changes between V1 and V2:
        * Following feedback by Pedro Alves, i386-avx512.exp now using
        gdb_test_multiple when checking if AVX512 is supported by the
        CPU. If CPU does not support AVX512, return unsupported.
        Simplified test as timeout is handled by framework. Added newline
        at the end of file. 

Note:
        * Documentation patch V1 already approved by Eli.
	* AVX512 register patch for GDB V3 pre-approved by Mark.


Michael Sturm (3):
  Add AVX512 registers support to GDB.
  Add AVX512 register support to gdbserver.
  Add AVX512 feature description to GDB manual

 gdb/NEWS                                   |   5 +
 gdb/amd64-linux-nat.c                      |  19 +-
 gdb/amd64-linux-tdep.c                     |  23 +-
 gdb/amd64-linux-tdep.h                     |   5 +-
 gdb/amd64-tdep.c                           |  80 +++++
 gdb/amd64-tdep.h                           |  12 +-
 gdb/common/i386-xstate.h                   |  20 +-
 gdb/doc/gdb.texinfo                        |  34 ++
 gdb/features/Makefile                      |  22 ++
 gdb/features/i386/32bit-avx512.xml         |  30 ++
 gdb/features/i386/64bit-avx512.xml         | 102 ++++++
 gdb/features/i386/amd64-avx512-linux.c     | 321 +++++++++++++++++++
 gdb/features/i386/amd64-avx512-linux.xml   |  20 ++
 gdb/features/i386/amd64-avx512.c           | 316 +++++++++++++++++++
 gdb/features/i386/amd64-avx512.xml         |  18 ++
 gdb/features/i386/i386-avx512-linux.c      | 208 ++++++++++++
 gdb/features/i386/i386-avx512-linux.xml    |  20 ++
 gdb/features/i386/i386-avx512.c            | 203 ++++++++++++
 gdb/features/i386/i386-avx512.xml          |  18 ++
 gdb/features/i386/x32-avx512-linux.c       | 321 +++++++++++++++++++
 gdb/features/i386/x32-avx512-linux.xml     |  20 ++
 gdb/features/i386/x32-avx512.c             | 316 +++++++++++++++++++
 gdb/features/i386/x32-avx512.xml           |  18 ++
 gdb/gdbserver/Makefile.in                  |  19 +-
 gdb/gdbserver/configure.srv                |  20 +-
 gdb/gdbserver/i387-fp.c                    | 182 ++++++++++-
 gdb/gdbserver/linux-x86-low.c              |  35 ++-
 gdb/i386-linux-nat.c                       |   5 +-
 gdb/i386-linux-tdep.c                      |  16 +-
 gdb/i386-linux-tdep.h                      |   7 +-
 gdb/i386-tdep.c                            | 466 +++++++++++++++++++++++++--
 gdb/i386-tdep.h                            |  64 +++-
 gdb/i387-tdep.c                            | 384 +++++++++++++++++++++-
 gdb/i387-tdep.h                            |  21 ++
 gdb/regformats/i386/amd64-avx512-linux.dat | 156 +++++++++
 gdb/regformats/i386/amd64-avx512.dat       | 155 +++++++++
 gdb/regformats/i386/i386-avx512-linux.dat  |  76 +++++
 gdb/regformats/i386/i386-avx512.dat        |  75 +++++
 gdb/regformats/i386/x32-avx512-linux.dat   | 156 +++++++++
 gdb/regformats/i386/x32-avx512.dat         | 155 +++++++++
 gdb/testsuite/gdb.arch/Makefile.in         |   2 +-
 gdb/testsuite/gdb.arch/i386-avx512.c       | 489 +++++++++++++++++++++++++++++
 gdb/testsuite/gdb.arch/i386-avx512.exp     | 170 ++++++++++
 43 files changed, 4743 insertions(+), 61 deletions(-)
 create mode 100644 gdb/features/i386/32bit-avx512.xml
 create mode 100644 gdb/features/i386/64bit-avx512.xml
 create mode 100644 gdb/features/i386/amd64-avx512-linux.c
 create mode 100644 gdb/features/i386/amd64-avx512-linux.xml
 create mode 100644 gdb/features/i386/amd64-avx512.c
 create mode 100644 gdb/features/i386/amd64-avx512.xml
 create mode 100644 gdb/features/i386/i386-avx512-linux.c
 create mode 100644 gdb/features/i386/i386-avx512-linux.xml
 create mode 100644 gdb/features/i386/i386-avx512.c
 create mode 100644 gdb/features/i386/i386-avx512.xml
 create mode 100644 gdb/features/i386/x32-avx512-linux.c
 create mode 100644 gdb/features/i386/x32-avx512-linux.xml
 create mode 100644 gdb/features/i386/x32-avx512.c
 create mode 100644 gdb/features/i386/x32-avx512.xml
 create mode 100644 gdb/regformats/i386/amd64-avx512-linux.dat
 create mode 100644 gdb/regformats/i386/amd64-avx512.dat
 create mode 100644 gdb/regformats/i386/i386-avx512-linux.dat
 create mode 100644 gdb/regformats/i386/i386-avx512.dat
 create mode 100644 gdb/regformats/i386/x32-avx512-linux.dat
 create mode 100644 gdb/regformats/i386/x32-avx512.dat
 create mode 100644 gdb/testsuite/gdb.arch/i386-avx512.c
 create mode 100644 gdb/testsuite/gdb.arch/i386-avx512.exp

-- 
1.8.4.2


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]