Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Walfred Tedeschi <walfred.tedeschi@intel.com>
To: tromey@redhat.com, jan.kratochvil@redhat.com, mark.kettenis@xs4all.nl
Cc: gdb-patches@sourceware.org,
	Walfred Tedeschi <walfred.tedeschi@intel.com>
Subject: [PATCH 0/7] Intel(R) MPX registers support.
Date: Wed, 21 Aug 2013 12:46:00 -0000	[thread overview]
Message-ID: <1377089148-11844-1-git-send-email-walfred.tedeschi@intel.com> (raw)

This patch series adds support for the Intel(R) Memory Protection Extension
MPX registers. Native and remote debugging are covered by this patch.

New registers are bound registers known as bnd register (bnd0...bnd3), a
config register bndcfgu and a status register bndstatus.  Bound registers
store pointer bounds, i.e. bound limits of a pointer.  Bndstatus and bndcfgu
store information of the current status and configuration of other MPX 
counterparts.  For more information [1][2].

Design notes:
Bound register are represented in hardware as two fields of 64bits each,
both in 64bit and 32bit mode. The fields are lower bound and upper bound.
Upper bound value is a complement of one value of the upper limiting
address. To take this into account the bnd0...bnd3 are created as 
pseudo registers while the hardware values are stored on bnd0raw...bnd3raw.

Ok to commit?

References:
[1] Intel(R) Architecture Instruction Set Extensions Programming Reference.
http://download-software.intel.com/sites/default/files/319433-015.pdf.
[2] http://software.intel.com/en-us/intel-isa-extensions. 

Walfred Tedeschi (7):
  Fix conditions in creating a bitfield.
  Add MPX registers XML files.
  Add MPX support for i386
  MPX for amd64
  Add MPX support to gdbserver.
  Add pretty-printer for MPX bnd registers.
  Add MPX registers tests.

 gdb/amd64-linux-nat.c                         |   43 +++--
 gdb/amd64-linux-tdep.c                        |   16 +-
 gdb/amd64-linux-tdep.h                        |    4 +-
 gdb/amd64-tdep.c                              |   18 +++
 gdb/amd64-tdep.h                              |    9 +-
 gdb/common/i386-gcc-cpuid.h                   |    3 +
 gdb/common/i386-xstate.h                      |   21 ++-
 gdb/data-directory/Makefile.in                |    1 +
 gdb/features/Makefile                         |   38 ++++-
 gdb/features/i386/32bit-mpx.xml               |   43 +++++
 gdb/features/i386/64bit-mpx.xml               |   43 +++++
 gdb/features/i386/amd64-mpx-linux.c           |  211 ++++++++++++++++++++++++
 gdb/features/i386/amd64-mpx-linux.xml         |   19 +++
 gdb/features/i386/amd64-mpx.c                 |  206 +++++++++++++++++++++++
 gdb/features/i386/amd64-mpx.xml               |   17 ++
 gdb/features/i386/i386-mpx-linux.c            |  187 +++++++++++++++++++++
 gdb/features/i386/i386-mpx-linux.xml          |   19 +++
 gdb/features/i386/i386-mpx.c                  |  182 +++++++++++++++++++++
 gdb/features/i386/i386-mpx.xml                |   17 ++
 gdb/features/i386/x32-mpx-linux.c             |  211 ++++++++++++++++++++++++
 gdb/features/i386/x32-mpx-linux.xml           |   19 +++
 gdb/features/i386/x32-mpx.c                   |  206 +++++++++++++++++++++++
 gdb/features/i386/x32-mpx.xml                 |   17 ++
 gdb/gdbserver/Makefile.in                     |   15 ++
 gdb/gdbserver/configure.srv                   |   20 +--
 gdb/gdbserver/i387-fp.c                       |   90 +++++++++++
 gdb/gdbserver/linux-x86-low.c                 |   87 ++++++++--
 gdb/i386-linux-nat.c                          |   17 +-
 gdb/i386-linux-tdep.c                         |   11 +-
 gdb/i386-linux-tdep.h                         |    4 +-
 gdb/i386-tdep.c                               |  216 ++++++++++++++++++++++++-
 gdb/i386-tdep.h                               |   30 +++-
 gdb/i387-tdep.c                               |  130 ++++++++++++++-
 gdb/i387-tdep.h                               |    7 +
 gdb/python/lib/gdb/command/bound_registers.py |   45 ++++++
 gdb/regformats/i386/amd64-mpx-linux.dat       |   84 ++++++++++
 gdb/regformats/i386/amd64-mpx.dat             |   83 ++++++++++
 gdb/regformats/i386/i386-mpx-linux.dat        |   60 +++++++
 gdb/regformats/i386/i386-mpx.dat              |   59 +++++++
 gdb/regformats/i386/x32-mpx-linux.dat         |   84 ++++++++++
 gdb/regformats/i386/x32-mpx.dat               |   83 ++++++++++
 gdb/target-descriptions.c                     |    2 +-
 gdb/testsuite/gdb.arch/i386-mpx.c             |   85 ++++++++++
 gdb/testsuite/gdb.arch/i386-mpx.exp           |  142 ++++++++++++++++
 gdb/testsuite/gdb.python/py-pp-maint.exp      |    8 +-
 gdb/testsuite/gdb.xml/maint_print_struct.xml  |    1 +
 46 files changed, 2841 insertions(+), 72 deletions(-)
 create mode 100644 gdb/features/i386/32bit-mpx.xml
 create mode 100644 gdb/features/i386/64bit-mpx.xml
 create mode 100644 gdb/features/i386/amd64-mpx-linux.c
 create mode 100644 gdb/features/i386/amd64-mpx-linux.xml
 create mode 100644 gdb/features/i386/amd64-mpx.c
 create mode 100644 gdb/features/i386/amd64-mpx.xml
 create mode 100644 gdb/features/i386/i386-mpx-linux.c
 create mode 100644 gdb/features/i386/i386-mpx-linux.xml
 create mode 100644 gdb/features/i386/i386-mpx.c
 create mode 100644 gdb/features/i386/i386-mpx.xml
 create mode 100644 gdb/features/i386/x32-mpx-linux.c
 create mode 100644 gdb/features/i386/x32-mpx-linux.xml
 create mode 100644 gdb/features/i386/x32-mpx.c
 create mode 100644 gdb/features/i386/x32-mpx.xml
 create mode 100644 gdb/python/lib/gdb/command/bound_registers.py
 create mode 100644 gdb/regformats/i386/amd64-mpx-linux.dat
 create mode 100644 gdb/regformats/i386/amd64-mpx.dat
 create mode 100644 gdb/regformats/i386/i386-mpx-linux.dat
 create mode 100644 gdb/regformats/i386/i386-mpx.dat
 create mode 100644 gdb/regformats/i386/x32-mpx-linux.dat
 create mode 100644 gdb/regformats/i386/x32-mpx.dat
 create mode 100644 gdb/testsuite/gdb.arch/i386-mpx.c
 create mode 100644 gdb/testsuite/gdb.arch/i386-mpx.exp

-- 
1.7.10.4


             reply	other threads:[~2013-08-21 12:46 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-21 12:46 Walfred Tedeschi [this message]
2013-08-21 12:46 ` [PATCH 6/7] Add pretty-printer for MPX bnd registers Walfred Tedeschi
2013-08-21 12:46 ` [PATCH 4/7] MPX for amd64 Walfred Tedeschi
2013-08-21 12:46 ` [PATCH 3/7] Add MPX support for i386 Walfred Tedeschi
2013-08-21 12:46 ` [PATCH 2/7] Add MPX registers XML files Walfred Tedeschi
2013-08-21 12:46 ` [PATCH 5/7] Add MPX support to gdbserver Walfred Tedeschi
2013-08-21 12:46 ` [PATCH 7/7] Add MPX registers tests Walfred Tedeschi
2013-08-21 12:46 ` [PATCH 1/7] Fix conditions in creating a bitfield Walfred Tedeschi
2013-08-21 14:33 ` [PATCH 0/7] Intel(R) MPX registers support Mark Kettenis
2013-08-21 16:25   ` Tedeschi, Walfred
2013-08-22  9:42     ` Tedeschi, Walfred
2013-08-23 13:30       ` Mark Kettenis
2013-08-23 13:40         ` Tedeschi, Walfred

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1377089148-11844-1-git-send-email-walfred.tedeschi@intel.com \
    --to=walfred.tedeschi@intel.com \
    --cc=gdb-patches@sourceware.org \
    --cc=jan.kratochvil@redhat.com \
    --cc=mark.kettenis@xs4all.nl \
    --cc=tromey@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox