Booted OpenBSD/i386 to test the PUSH/POP emulation.
Boot FreeBSD/i386 and overflow the kernel stack to trigger a double fault
and test the task switch emulation.
https://people.freebsd.org/~neel/bhyve/tests/kstackovf.tar.gz
Boot FreeBSD/i386 and install NMI handler that is invoked via task switching.
Verify that entry and exit from the NMI handler works as expected.
https://people.freebsd.org/~neel/bhyve/tests/task_switch_nmi.tar.gz
Boot FreeBSD/amd64 and execute the 'ins_test' to test the inout_str handling.
https://people.freebsd.org/~neel/bhyve/tests/inout_str.tar.gz
Boot FreeBSD/amd64 with the "dummy" device and use that to test MOVS:
- 'dd' memory pattern to dummy device BAR1.
- 'dd' from dummy device BAR1 and BAR2.
- 'dd' from dummy device BAR2 to memory and verify it matches original pattern.
Boot Centos and Ubuntu guests.
Verify that this patch works on both AMD and Intel processors.