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 (14):
target/loongarch: Define LVZ CSR fields
target/loongarch: Add LVZ CPU state definitions
target/loongarch: Add LVZ CSR metadata
target/loongarch: Add LVZ CPU model support
target/loongarch: Add LVZ guest interrupt state
target/loongarch: Add LVZ guest timer support
target/loongarch: Add LVZ VM entry and exception handling
target/loongarch: Add LVZ guest CSR helpers
target/loongarch: Add LVZ migration state
target/loongarch: Add LVZ MMU and PTW support
target/loongarch: Translate LVZ guest CSR instructions
target/loongarch: Translate LVZ guest TLB instructions
target/loongarch: Translate LVZ guest traps and HVC
fix(tcg/loongarch): strip flag bits in lddir/ldpte address calculation
target/loongarch/arch_dump.c | 6 +-
target/loongarch/cpu-csr.h | 38 ++
target/loongarch/cpu-mmu.h | 38 +-
target/loongarch/cpu.c | 247 ++++++---
target/loongarch/cpu.h | 64 ++-
target/loongarch/cpu_helper.c | 84 +--
target/loongarch/csr.c | 112 ++--
target/loongarch/csr.h | 6 +-
target/loongarch/disas.c | 15 +
target/loongarch/insns.decode | 14 +
target/loongarch/internals.h | 10 +-
target/loongarch/machine.c | 111 +++-
target/loongarch/tcg/constant_timer.c | 67 ++-
target/loongarch/tcg/csr_helper.c | 224 +++++++-
target/loongarch/tcg/helper.h | 36 +-
.../tcg/insn_trans/trans_extra.c.inc | 2 +-
.../tcg/insn_trans/trans_privileged.c.inc | 388 +++++++++++---
target/loongarch/tcg/op_helper.c | 22 +
target/loongarch/tcg/tcg_cpu.c | 82 ++-
target/loongarch/tcg/tcg_loongarch.h | 3 +-
target/loongarch/tcg/tlb_helper.c | 498 ++++++++++++------
target/loongarch/tcg/translate.c | 6 +-
target/loongarch/translate.h | 2 +
23 files changed, 1588 insertions(+), 487 deletions(-)
--
2.55.0