On 29/10/26 06:33, Pierrick Bouvier wrote:
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/20210214175912.732946-1-
[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
Ah hmm I had similar failures due to too old gdb, I might have
missed to check the version in that container image. IIRC
Gustavo had similar problem with ARM I'll see how he fixed
that (I suppose check gdb version and skip the tests).
Thanks!