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 v2 0/4] Initial support for FreeBSD/riscv


Relative to the first version, this series drops patch to return a
default value for MISA and replaces it with a partly-reviewed patch to
rework riscv breakpoints to not require a valid MISA.

Patch 1 still needs review.  I've included my comments from the first
cover letter about patch 1 below:

Patch 1 tries to make it easier to write handlers for signal frame by
allowing the register map structures used with register caches to be
used with trad-frame to supply a block of registers at a starting
address.  It gets somewhat squishy when thinking about how to handle
registers whose size doesn't match the "slot" size in a register map.
I've attempted to make the trad-frame handling match the semantics
that regcache uses.  However, these semantics aren't documented
anywhere and we should perhaps document them.  Also, in this patch I
used 'void *' for the map only because it matches what the regcache
functions do.  I'm happy to make the map argument type-safe instead if
others prefer that.  Also, the comments for regcache_map_entry should
perhaps be made more generic to say it isn't specific to regcache but
is used to describe the layout of a register block.  Arguably the type
should even be renamed to something less regcache-specific
(register_map_entry?).  If we do adopt this patch I will probably make
use of it in some other FreeBSD architectures (aarch64 and arm at
least, possibly x86).



John Baldwin (4):
  Add helper functions to trad_frame to support register cache maps.
  Use the existing instruction to determine the RISC-V breakpoint kind.
  Add FreeBSD/riscv architecture.
  Add native target for FreeBSD/riscv.

 gdb/ChangeLog          |  38 ++++++++
 gdb/Makefile.in        |   4 +
 gdb/NEWS               |   2 +
 gdb/configure.host     |   1 +
 gdb/configure.nat      |   4 +
 gdb/configure.tgt      |   5 +
 gdb/disasm-selftests.c |   7 +-
 gdb/doc/ChangeLog      |   5 +
 gdb/doc/gdb.texinfo    |   6 ++
 gdb/riscv-fbsd-nat.c   | 135 +++++++++++++++++++++++++++
 gdb/riscv-fbsd-tdep.c  | 206 +++++++++++++++++++++++++++++++++++++++++
 gdb/riscv-fbsd-tdep.h  |  33 +++++++
 gdb/riscv-tdep.c       |  50 ++++++----
 gdb/trad-frame.c       |  69 ++++++++++++++
 gdb/trad-frame.h       |   8 ++
 15 files changed, 554 insertions(+), 19 deletions(-)
 create mode 100644 gdb/riscv-fbsd-nat.c
 create mode 100644 gdb/riscv-fbsd-tdep.c
 create mode 100644 gdb/riscv-fbsd-tdep.h

-- 
2.18.0


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