在 2020/12/8 上午8:36, Philippe Mathieu-Daudé 写道:
Finally, we use decodetree with the MIPS target. Starting easy with the MSA ASE. 2700+ lines extracted from helper.h and translate.c, now built as an new object: mod-msa_translate.o. While the diff stat is positive by 86 lines, we actually (re)moved code, but added (C) notices. The most interesting patches are the 2 last ones. Please review, Phil. Based-on: <20201207224335.4030582-1-f4bug@xxxxxxxxx> (linux-user: Rework get_elf_hwcap() and support MIPS Loongson 2F/3A) Based-on: <20201207235539.4070364-1-f4bug@xxxxxxxxx> (target/mips: Add translate.h and fpu_translate.h headers)
Great work! For the whole series: Tested-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>
Philippe Mathieu-Daudé (17): target/mips: Introduce ase_msa_available() helper target/mips: Simplify msa_reset() target/mips: Use CP0_Config3 to set MIPS_HFLAG_MSA target/mips: Simplify MSA TCG logic target/mips: Remove now unused ASE_MSA definition target/mips: Alias MSA vector registers on FPU scalar registers target/mips: Extract msa_translate_init() from mips_tcg_init() target/mips: Remove CPUMIPSState* argument from gen_msa*() methods target/mips: Explode gen_msa_branch() as gen_msa_BxZ_V/BxZ() target/mips: Rename msa_helper.c as mod-msa_helper.c target/mips: Move msa_reset() to mod-msa_helper.c target/mips: Extract MSA helpers from op_helper.c target/mips: Extract MSA helper definitions target/mips: Declare gen_msa/_branch() in 'translate.h' target/mips: Extract MSA translation routines target/mips: Introduce decode tree bindings for MSA opcodes target/mips: Use decode_msa32() generated from decodetree target/mips/cpu.h | 6 + target/mips/fpu_translate.h | 10 - target/mips/helper.h | 436 +--- target/mips/internal.h | 4 +- target/mips/mips-defs.h | 1 - target/mips/translate.h | 4 + target/mips/mod-msa32.decode | 24 + target/mips/kvm.c | 12 +- .../mips/{msa_helper.c => mod-msa_helper.c} | 429 ++++ target/mips/mod-msa_translate.c | 2270 +++++++++++++++++ target/mips/op_helper.c | 394 --- target/mips/translate.c | 2264 +--------------- target/mips/meson.build | 9 +- target/mips/mod-msa_helper.h.inc | 443 ++++ target/mips/translate_init.c.inc | 38 +- 15 files changed, 3215 insertions(+), 3129 deletions(-) create mode 100644 target/mips/mod-msa32.decode rename target/mips/{msa_helper.c => mod-msa_helper.c} (93%) create mode 100644 target/mips/mod-msa_translate.c create mode 100644 target/mips/mod-msa_helper.h.inc