Loongson Binary Translation (LBT) is used to accelerate binary translation. LBT feature is added in kvm mode, not supported in TCG mode since it is not emulated.
Here lbt=on/off property is added to parse command line to enable/disable lbt feature. Also fix registers relative lbt are saved and restored during migration. --- v4 ... v5: 1. Define structure element eflags in structure LoongArchBT as uint32_t; in kernel eflags is defined as u64, however with ptrace and gdb interface it is defined u32, here defined as uint32_t to keep consistent from user view. 2. sync patch with latest qemu version. v3 ... v4: 1. Verify and enable LBT feature in function kvm_arch_init_vcpu() rather than loongarch_cpu_post_init(), since LBT feature is only effective in kvm mode and function kvm_feature_supported() can be defined as static. 2. Define structure element ftop in structure LoongArchBT as uint32_t to keep consist with kernel and real HW. v2 ... v3: 1. Property lbt is added only if kvm is enabled 2. Use feature variable lbt with OnOffAuto type, rather than feature bitmap flags default_features and forced_features v1 ... v2: 1. Add LBT register saving and restoring in vmstate 2. Add two pseudo feature flags: default_features and forced_features --- Bibo Mao (2): target/loongarch: Add loongson binary translation feature target/loongarch: Implement lbt registers save/restore function target/loongarch/cpu.c | 24 ++++++ target/loongarch/cpu.h | 18 ++++ target/loongarch/kvm/kvm.c | 119 +++++++++++++++++++++++++- target/loongarch/loongarch-qmp-cmds.c | 2 +- target/loongarch/machine.c | 24 ++++++ 5 files changed, 185 insertions(+), 2 deletions(-) base-commit: 3b14a767eaca3df5534a162851f04787b363670e -- 2.39.3