Here add FPU test case and verify FPU register get and set APIs, the
FPU width supports 64/128/256 bits. It is important for VM migration.
---
v1 ... v2:
1. Replace hardcode value with CSR_EUEN_XXX when enable FPU access.
2. Add attribute __aligned(64) with kvm_fpureg variable with better FPU
save and restore.
3. Add clobber $f0 register with inline assemble language with
fld.d/vld/xvld instruction.
4. Add fallthrough between UCALL_DONE and UCALL_SYNC switch case
sentences.
5. Remove sync_global_from_guest() between vcpu_fpu_get() ioctl test
case, since the buffer is not modified with such instructions
fld.d/vld/xvld.
6. Modify FPU register with random value rather than plus 0x10, and
random() is replaced with value 0x10.
---
Bibo Mao (2):
KVM: LoongArch: selftests: Enable LASX feature by auto detect method
KVM: LoongArch: selftests: Add FPU test case
tools/testing/selftests/kvm/Makefile.kvm | 1 +
.../kvm/include/loongarch/processor.h | 18 +++
.../selftests/kvm/lib/loongarch/processor.c | 12 +-
.../selftests/kvm/loongarch/fpu_test.c | 145 ++++++++++++++++++
4 files changed, 175 insertions(+), 1 deletion(-)
create mode 100644 tools/testing/selftests/kvm/loongarch/fpu_test.c
base-commit: 2d3090a8aeb596a26935db0955d46c9a5db5c6ce
--
2.39.3