Currently only MIPS I to MIPS Release 5 arithmatic functions are converted. Old decoding functions are perserved in codebase for now due to dependencies from microMIPS/nanoMIPS translation code. Will remove them after dealing with release 6.
Both instruction encoding and test cases are generated form MIPS's internal architecture validation tools so they are gureented to be correct. Note: There are some checkpatch warning/error on test cases but I'm not going to touch them as they are generated code. Thanks. RFC->v1: - Tidy up test cases - Convert TX79 as well - Jiaxun Jiaxun Yang (6): target/mips: Introduce register access helper functions target/mips: Convert legacy arithmatic instructions to decodetree tests/tcg/mips: Add mips32 arithmatic instruction test cases target/mips: Split Loongson extention translation into standalone file target/mips: Move all tx79 instructions to decodetree target/mips: Make MXU decoder standalone target/mips/tcg/insn_trans/trans_arith.c.inc | 352 +++ target/mips/tcg/legacy.decode | 62 + target/mips/tcg/loongson_translate.c | 1290 +++++++++++ target/mips/tcg/meson.build | 2 + target/mips/tcg/mxu_translate.c | 98 +- target/mips/tcg/translate.c | 1917 ++--------------- target/mips/tcg/translate.h | 60 + target/mips/tcg/tx79.decode | 14 + target/mips/tcg/tx79_translate.c | 205 +- tests/tcg/mips/include/test_utils_32.h | 75 + .../tcg/mips/user/isa/mips32/arithmatic/add.c | 99 + .../mips/user/isa/mips32/arithmatic/addi.c | 70 + .../mips/user/isa/mips32/arithmatic/addiu.c | 90 + .../mips/user/isa/mips32/arithmatic/addu.c | 125 ++ .../tcg/mips/user/isa/mips32/arithmatic/div.c | 81 + .../mips/user/isa/mips32/arithmatic/divu.c | 78 + .../mips/user/isa/mips32/arithmatic/madd.c | 79 + .../mips/user/isa/mips32/arithmatic/maddu.c | 78 + .../mips/user/isa/mips32/arithmatic/msub.c | 78 + .../mips/user/isa/mips32/arithmatic/msubu.c | 78 + .../tcg/mips/user/isa/mips32/arithmatic/mul.c | 78 + .../mips/user/isa/mips32/arithmatic/mult.c | 78 + .../mips/user/isa/mips32/arithmatic/multu.c | 78 + .../tcg/mips/user/isa/mips32/arithmatic/slt.c | 61 + .../mips/user/isa/mips32/arithmatic/slti.c | 48 + .../mips/user/isa/mips32/arithmatic/sltiu.c | 48 + .../mips/user/isa/mips32/arithmatic/sltu.c | 61 + .../tcg/mips/user/isa/mips32/arithmatic/sub.c | 104 + .../mips/user/isa/mips32/arithmatic/subu.c | 108 + 29 files changed, 3865 insertions(+), 1730 deletions(-) create mode 100644 target/mips/tcg/insn_trans/trans_arith.c.inc create mode 100644 target/mips/tcg/legacy.decode create mode 100644 target/mips/tcg/loongson_translate.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/add.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/addi.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/addiu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/addu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/div.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/divu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/madd.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/maddu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/msub.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/msubu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/mul.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/mult.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/multu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/slt.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/slti.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/sltiu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/sltu.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/sub.c create mode 100644 tests/tcg/mips/user/isa/mips32/arithmatic/subu.c -- 2.34.1