This patch implements Loongson VirtualiZation (LVZ) extension support for LoongArch's TCG target. With this patch, it is now possible to start a nested KVM-accelerated virtual machine on a TCG-emulated virtual machine.
Signed-off-by: SignKirigami <[email protected]> Signed-off-by: Hengyu Yu <[email protected]> SignKirigami (4): target/loongarch: Add LVZ feature definitions and CPU structures target/loongarch: Add guest CSR table and VM-level CSR infrastructure target/loongarch: Add LVZ MMU, TCG infrastructure and guest support target/loongarch: Add LVZ instruction decode, translation and disassembly target/loongarch/arch_dump.c | 6 +- target/loongarch/cpu-csr.h | 42 ++ target/loongarch/cpu-mmu.h | 39 +- target/loongarch/cpu.c | 279 ++++++--- target/loongarch/cpu.h | 62 +- target/loongarch/cpu_helper.c | 87 ++- target/loongarch/csr.c | 124 +++- target/loongarch/csr.h | 12 +- target/loongarch/disas.c | 16 + target/loongarch/insns.decode | 14 + target/loongarch/internals.h | 8 +- target/loongarch/machine.c | 125 +++- target/loongarch/tcg/constant_timer.c | 74 ++- target/loongarch/tcg/csr_helper.c | 136 ++++- target/loongarch/tcg/helper.h | 30 +- .../tcg/insn_trans/trans_extra.c.inc | 2 +- .../tcg/insn_trans/trans_privileged.c.inc | 353 ++++++++++- target/loongarch/tcg/op_helper.c | 45 +- target/loongarch/tcg/tcg_cpu.c | 65 +- target/loongarch/tcg/tcg_loongarch.h | 3 +- target/loongarch/tcg/tlb_helper.c | 577 +++++++++++++----- target/loongarch/tcg/translate.c | 6 +- target/loongarch/translate.h | 2 + 23 files changed, 1747 insertions(+), 360 deletions(-) -- 2.52.0
