The guest XFD_ERR value is saved in fpu_guest::xfd_err. There is
no need to save host XFD_ERR because it's always cleared to ZERO
by the host #NM handler (which cannot be preempted by a vCPU
thread to observe a non-zero value).
The lower two bits in fpu_guest::xfd_err is borrowed for special
purposes. The state components (FP and SSE) covered by the two
bits are not XSAVE-enabled feature, thus not XFD-enabled either.
It's impossible to see hardware setting them in XFD_ERR:
- XFD_ERR_GUEST_DISABLED (bit 0)
Indicate that XFD extension is not exposed to the guest thus
no need to save/restore it.
- XFD_ERR_GUEST_SAVED (bit 1)
Indicate fpu_guest::xfd_err already contains a saved value
thus no need for duplicated saving (e.g. when the vCPU thread
is preempted multiple times before re-enter the guest).