nvmm: Improve FPU support and reduce diff against NetBSD

Operating Systems / DragonFlyBSD - Aaron LI [aaronly.me] - 20 July 2021 23:28 UTC

I was using 'struct savexmm64' to translate NetBSD's 'struct xsave_header'. This works but isn't good enough, because 'savexmm64' can't deal with xstate, so I disabled the xstate header related code in the old code.

This commit changes to use 'struct saveymm64' instead. It contains the XSAVE header and YMM xstate component, allowing us to enable the originally disabled xstate header code in NVMM.

In addition, define some compat macros to adapt NetBSD's FPU structures to ours, reducing the NVMM code difference against NetBSD.

Will later work on AVX support in guest VM.

e809d73312 nvmm: Improve FPU support and reduce diff against NetBSD
sys/dev/virtual/nvmm/nvmm_compat.h | 11 +++++++++++
sys/dev/virtual/nvmm/x86/nvmm_x86.c | 12 ++++++------
sys/dev/virtual/nvmm/x86/nvmm_x86_svm.c | 21 +++++++++------------
sys/dev/virtual/nvmm/x86/nvmm_x86_vmx.c | 20 +++++++++-----------
4 files changed, 35 insertions(+), 29 deletions(-)

Upstream: gitweb.dragonflybsd.org


  • Share