bhyve cpuid should heed runtime state
With the integration of #14485, bhyve kernel VMM has two different means of calculating CPUID values for a guest. The "legacy" method is largely based on masking values from the host CPU. The newly-added "custom" method simply walks a set of tables provided by userspace, looking for a match.
The latter mechanism requires some extra logic to set CPUID bits which depend on runtime state:
- leaf 0x1, edx bit 9 - based on whether the LAPIC is enabled via the APICBASE MSR
- leaf 0x1, edx bit 27 - based on if OSXSAVE is set in
- leaf 0xD (ecx = 0),ebx - calculated xsave size, based on
No data to display