On Sun, Dec 13, 2020 at 04:23:23PM +0100, Philippe Mathieu-Daudé wrote: > On 12/12/20 5:04 PM, Fredrik Noring wrote: > > I may be able to help on the TX79 that is an R5900, but unless commit > > 823f2897bdd7 ("target/mips: Disable R5900 support") is reverted, it > > remains shut off in QEMU. To obtain n32, in addition to o32, one may > > want to apply something similar to this: > > I added o32 because these are the only binaries I could find to test > the CPU you added. Are there n32 binaries easily available?
With a GNU C library patch: Yes. The only (small) changes needed for n32 are related to Glibc, since the R5900 does not implement DMULT etc. in hardware. The attached patch (see below) traps these instructions, but the Glibc patch proposal (not yet submitted) will instead emulate them, which is believed to be faster (with actual hardware; with QEMU it would most likely instead be significantly slower since QEMU would need to emulate this emulation). quoted from https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg00974.html having this GNU C library patch for n32 attached. > I noticed GCC merged your patch, Yes, GCC emits R5900 o32. > and Gentoo too. I suppose you mean https://github.com/frno7/gentoo.overlay/tree/master/app-emulation/qemu-mipsr5900el that is my QEMU overlay (having this patch in the "files" directory) for Gentoo? > It should be enough to respin the Docker image to cross-compile and test > the TCG tests you already added: Sounds good, although I'm not familiar with Docker myself. A person named TobiX has also made an image for R5900 cross-compilation: https://github.com/frno7/linux/issues/33#issuecomment-632284209 > 8e2e5e7daca tests/tcg: mips: Test R5900 three-operand MADDU > 84dc0712361 tests/tcg: mips: Test R5900 three-operand MADD1 > 50f299da629 tests/tcg: mips: Test R5900 three-operand MADD > 35eb9be6bb6 tests/tcg/mips: Add tests for R5900 DIVU1 > 990aa328be4 tests/tcg/mips: Add tests for R5900 DIV1 > 4d261a6a595 tests/tcg/mips: Add tests for R5900 MTLO1 and MTHI1 > 3303f017adb tests/tcg/mips: Add tests for R5900 MFLO1 and MFHI1 > bec4d66b248 tests/tcg/mips: Add tests for R5900 three-operand MULTU1 > cb56125eea7 tests/tcg/mips: Add tests for R5900 three-operand MULT1 > 667eded2702 tests/tcg/mips: Add tests for R5900 three-operand MULTU There are tests for the MMIs PCPYUD, PCPYLD, LQ and SQ as well https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg02514.html https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg02516.html https://lists.gnu.org/archive/html/qemu-devel/2019-01/msg02517.html although, as previously suggested, I'm happy to postpone the MMIs. Fredrik