Hi, The main change for the last iteration is the re-introduction of the VG pseudo register. I've also applied review tags from the last post. All that really needs looking over is the tests.
Please note that if your local GDB doesn't work the test will skip if it fails to connect. I have to build --with-gdb pointing at a relatively recent multiarch build. This series is available from: github.com:stsquad/qemu.git gdbstub/sve-registers-v6 and is currently based of the in-flight testing PR. The following patches need review 08 - target i386 use gdb_get_reg helpers 10 - target arm prepare for multiple dynamic XMLs (1 ack) 13 - target arm generate xml description of our SVE re (1 ack) 18 - tests tcg aarch64 add a gdbstub testcase for SVE 19 - tests tcg aarch64 add SVE iotcl test 20 - tests tcg aarch64 add test sve ioctl guest debug Alex Bennée (20): gdbstub: make GDBState static and have common init function gdbstub: stop passing GDBState * around and use global gdbstub: move str_buf to GDBState and use GString gdbstub: move mem_buf to GDBState and use GByteArray gdbstub: add helper for 128 bit registers target/arm: use gdb_get_reg helpers target/m68k: use gdb_get_reg helpers target/i386: use gdb_get_reg helpers gdbstub: extend GByteArray to read register helpers target/arm: prepare for multiple dynamic XMLs target/arm: explicitly encode regnum in our XML target/arm: default SVE length to 64 bytes for linux-user target/arm: generate xml description of our SVE registers target/arm: don't bother with id_aa64pfr0_read for USER_ONLY tests/tcg/aarch64: userspace system register test configure: allow user to specify what gdb to use tests/guest-debug: add a simple test runner tests/tcg/aarch64: add a gdbstub testcase for SVE registers tests/tcg/aarch64: add SVE iotcl test tests/tcg/aarch64: add test-sve-ioctl guest-debug test Damien Hedde (2): gdbstub: change GDBState.last_packet to GByteArray gdbstub: do not split gdb_monitor_write payload configure | 9 + include/exec/gdbstub.h | 62 +- include/hw/core/cpu.h | 2 +- target/alpha/cpu.h | 2 +- target/arm/cpu.h | 31 +- target/cris/cpu.h | 4 +- target/hppa/cpu.h | 2 +- target/i386/cpu.h | 2 +- target/lm32/cpu.h | 2 +- target/m68k/cpu.h | 2 +- target/microblaze/cpu.h | 2 +- target/mips/internal.h | 2 +- target/openrisc/cpu.h | 2 +- target/ppc/cpu.h | 4 +- target/riscv/cpu.h | 2 +- target/s390x/internal.h | 2 +- target/sh4/cpu.h | 2 +- target/sparc/cpu.h | 2 +- target/xtensa/cpu.h | 2 +- gdbstub.c | 936 ++++++++++---------- hw/core/cpu.c | 2 +- target/alpha/gdbstub.c | 2 +- target/arm/cpu.c | 4 +- target/arm/gdbstub.c | 173 +++- target/arm/gdbstub64.c | 2 +- target/arm/helper.c | 180 +++- target/cris/gdbstub.c | 4 +- target/hppa/gdbstub.c | 2 +- target/i386/gdbstub.c | 24 +- target/lm32/gdbstub.c | 2 +- target/m68k/gdbstub.c | 2 +- target/m68k/helper.c | 33 +- target/microblaze/gdbstub.c | 2 +- target/mips/gdbstub.c | 2 +- target/nios2/cpu.c | 2 +- target/openrisc/gdbstub.c | 2 +- target/ppc/gdbstub.c | 48 +- target/ppc/translate_init.inc.c | 54 +- target/riscv/gdbstub.c | 18 +- target/s390x/gdbstub.c | 30 +- target/sh4/gdbstub.c | 2 +- target/sparc/gdbstub.c | 2 +- target/xtensa/gdbstub.c | 2 +- tests/tcg/aarch64/sve-ioctls.c | 70 ++ tests/tcg/aarch64/sysregs.c | 172 ++++ tests/.gitignore | 1 + tests/guest-debug/run-test.py | 57 ++ tests/tcg/aarch64/Makefile.target | 32 + tests/tcg/aarch64/gdbstub/test-sve-ioctl.py | 79 ++ tests/tcg/aarch64/gdbstub/test-sve.py | 81 ++ 50 files changed, 1466 insertions(+), 694 deletions(-) create mode 100644 tests/tcg/aarch64/sve-ioctls.c create mode 100644 tests/tcg/aarch64/sysregs.c create mode 100755 tests/guest-debug/run-test.py create mode 100644 tests/tcg/aarch64/gdbstub/test-sve-ioctl.py create mode 100644 tests/tcg/aarch64/gdbstub/test-sve.py -- 2.20.1