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.
SignKirigami (8):
target/loongarch: Define LVZ CSR fields
target/loongarch: Add LVZ CPU state definitions
target/loongarch: Add LVZ translation context flags
target/loongarch: Add LVZ guest CSR tables
target/loongarch: Dump host CSRs with LVZ state
target/loongarch: Add LVZ CPU runtime control
target/loongarch: Add LVZ MMU and PTW support
target/loongarch: Translate LVZ instructions
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