This series introduces limited support for R5900 multimedia instructions (MMIs) by implementing and testing PCPYLD, PCPYUD, LQ and SQ.
32 128-bit multimedia registers (MMRs) are introduced. They are split into two 64-bit halves: the lower halves are the GPRs and the upper halves are accessible by the R5900-specific multimedia instructions. The MMIs are only available with TARGET_MIPS64 since 64-bit GPRs are required. The relation between SQ and RDHWR may need to be revisited. I'm hoping to discuss the details with Maciej. This series has been successfully built with the 10 different build configurations {gcc,clang} x -m64 x mips{,64}el-{linux-user,softmmu} {gcc,clang} x -m64 x mipsn32el-linux-user in addition successfully completing the R5900 test suite cd tests/tcg/mips/mipsr5900 && make check cd tests/tcg/mips/mipsn32r5900 && make check Fredrik Noring (9): target/mips: Require TARGET_MIPS64 for R5900 multimedia instructions target/mips: Introduce 32 R5900 128-bit multimedia registers target/mips: Support the R5900 PCPYLD multimedia instruction target/mips: Support the R5900 PCPYUD multimedia instruction target/mips: Support the R5900 LQ multimedia instruction target/mips: Support the R5900 SQ multimedia instruction tests/tcg/mips: Test R5900 multimedia instructions PCPYUD and PCPYLD tests/tcg/mips: Test R5900 multimedia instruction LQ tests/tcg/mips: Test R5900 multimedia instruction SQ target/mips/cpu.h | 2 + target/mips/translate.c | 180 +++++++++++++++++++++++--- tests/tcg/mips/mipsn32r5900/Makefile | 27 ++++ tests/tcg/mips/mipsn32r5900/lq.c | 111 ++++++++++++++++ tests/tcg/mips/mipsn32r5900/pcpyuld.c | 46 +++++++ tests/tcg/mips/mipsn32r5900/sq.c | 105 +++++++++++++++ 6 files changed, 452 insertions(+), 19 deletions(-) create mode 100644 tests/tcg/mips/mipsn32r5900/Makefile create mode 100644 tests/tcg/mips/mipsn32r5900/lq.c create mode 100644 tests/tcg/mips/mipsn32r5900/pcpyuld.c create mode 100644 tests/tcg/mips/mipsn32r5900/sq.c -- 2.19.2