On 10/28/26 12:25 PM, Philippe Mathieu-Daudé wrote:
Add R5900 system tests, code is covered, CPU can come back,
allowing to fix a bug on PCGT opcode.

Since [v1]:
- rebased
- added freestanding libc stubs
- o32/n32 tests

[v1]: 
https://lore.kernel.org/qemu-devel/[email protected]/

Philippe Mathieu-Daudé (9):
   target/mips: Re-introduce the R5900 CPU in system mode
   target/mips/tx79: Fix PCGT* (Parallel Compare for Greater Than)
   tests/guest-debug: Allow placing the binary within system QEMU args
   tests/tcg/mips64el: Add bare-metal harness for R5900 system tests
   tests/tcg/mips64el: Move R5900 tests to system mode and build with
     meson
   target/mips: Factor mips_gdb_read_value() out
   target/mips: Describe gdbstub registers with XML features
   target/mips: Expose R5900 registers to gdb
   tests/tcg/mips64el: Add a TX79 instruction test in system mode

  MAINTAINERS                                   |   1 +
  configs/targets/mips-linux-user.mak           |   1 +
  configs/targets/mips-softmmu.mak              |   1 +
  configs/targets/mips64-linux-user.mak         |   1 +
  configs/targets/mips64-softmmu.mak            |   1 +
  configs/targets/mips64el-linux-user.mak       |   1 +
  configs/targets/mips64el-softmmu.mak          |   1 +
  configs/targets/mipsel-linux-user.mak         |   1 +
  configs/targets/mipsel-softmmu.mak            |   1 +
  configs/targets/mipsn32-linux-user.mak        |   1 +
  configs/targets/mipsn32el-linux-user.mak      |   1 +
  target/mips/internal.h                        |   2 +
  tests/tcg/mips64el/system/include/assert.h    |  15 +
  tests/tcg/mips64el/system/include/inttypes.h  |   7 +
  tests/tcg/mips64el/system/include/stdio.h     |  17 +
  tests/tcg/mips64el/system/include/string.h    |  16 +
  target/mips/cpu.c                             |   4 +
  target/mips/gdbstub.c                         | 152 +++++-
  target/mips/tcg/tx79_translate.c              |  10 +-
  tests/tcg/mips64el/system/harness.c           |  66 +++
  .../system}/test_r5900_div1.c                 |   0
  .../system}/test_r5900_divu1.c                |   0
  .../system}/test_r5900_madd.c                 |   0
  .../system}/test_r5900_maddu.c                |   0
  .../system}/test_r5900_mflohi1.c              |   0
  .../system}/test_r5900_mtlohi1.c              |   0
  .../system}/test_r5900_mult.c                 |   0
  .../system}/test_r5900_multu.c                |   0
  tests/tcg/mips64el/system/test_r5900_tx79.c   | 477 ++++++++++++++++++
  target/mips/cpu-defs.c.inc                    |  45 ++
  gdbstub/gdb-xml/mips32-cp0.xml                |   9 +
  gdbstub/gdb-xml/mips32-cpu.xml                |  42 ++
  gdbstub/gdb-xml/mips32-fpu.xml                |  41 ++
  gdbstub/gdb-xml/mips64-cp0.xml                |   9 +
  gdbstub/gdb-xml/mips64-cpu.xml                |  42 ++
  gdbstub/gdb-xml/mips64-fpu.xml                |  41 ++
  gdbstub/gdb-xml/mips64-r5900.xml              |  47 ++
  tests/guest-debug/run-test.py                 |   9 +-
  tests/tcg/mips/user/isa/r5900/Makefile        |  32 --
  tests/tcg/mips/user/isa/r5900/README          |   6 -
  tests/tcg/mips64el/meson.build                |   2 +
  tests/tcg/mips64el/system/boot.S              |  23 +
  tests/tcg/mips64el/system/kernel.ld           |  43 ++
  tests/tcg/mips64el/system/meson.build         |  62 +++
  tests/tcg/mips64el/system/test-r5900.py       |  30 ++
  45 files changed, 1211 insertions(+), 49 deletions(-)
  create mode 100644 tests/tcg/mips64el/system/include/assert.h
  create mode 100644 tests/tcg/mips64el/system/include/inttypes.h
  create mode 100644 tests/tcg/mips64el/system/include/stdio.h
  create mode 100644 tests/tcg/mips64el/system/include/string.h
  create mode 100644 tests/tcg/mips64el/system/harness.c
  rename tests/tcg/{mips/user/isa/r5900 => mips64el/system}/test_r5900_div1.c 
(100%)
  rename tests/tcg/{mips/user/isa/r5900 => mips64el/system}/test_r5900_divu1.c 
(100%)
  rename tests/tcg/{mips/user/isa/r5900 => mips64el/system}/test_r5900_madd.c 
(100%)
  rename tests/tcg/{mips/user/isa/r5900 => mips64el/system}/test_r5900_maddu.c 
(100%)
  rename tests/tcg/{mips/user/isa/r5900 => 
mips64el/system}/test_r5900_mflohi1.c (100%)
  rename tests/tcg/{mips/user/isa/r5900 => 
mips64el/system}/test_r5900_mtlohi1.c (100%)
  rename tests/tcg/{mips/user/isa/r5900 => mips64el/system}/test_r5900_mult.c 
(100%)
  rename tests/tcg/{mips/user/isa/r5900 => mips64el/system}/test_r5900_multu.c 
(100%)
  create mode 100644 tests/tcg/mips64el/system/test_r5900_tx79.c
  create mode 100644 gdbstub/gdb-xml/mips32-cp0.xml
  create mode 100644 gdbstub/gdb-xml/mips32-cpu.xml
  create mode 100644 gdbstub/gdb-xml/mips32-fpu.xml
  create mode 100644 gdbstub/gdb-xml/mips64-cp0.xml
  create mode 100644 gdbstub/gdb-xml/mips64-cpu.xml
  create mode 100644 gdbstub/gdb-xml/mips64-fpu.xml
  create mode 100644 gdbstub/gdb-xml/mips64-r5900.xml
  delete mode 100644 tests/tcg/mips/user/isa/r5900/Makefile
  delete mode 100644 tests/tcg/mips/user/isa/r5900/README
  create mode 100644 tests/tcg/mips64el/system/boot.S
  create mode 100644 tests/tcg/mips64el/system/kernel.ld
  create mode 100644 tests/tcg/mips64el/system/meson.build
  create mode 100644 tests/tcg/mips64el/system/test-r5900.py


See some test failures, related to gdb:
https://github.com/p-b-o/qemu-ci/actions/runs/40776744817/job/123131480244

Regards,
Pierrick

Reply via email to