kvm: FPU synchronization support on x86
authorAndreas Sandberg <andreas@sandberg.pp.se>
Mon, 30 Sep 2013 07:43:43 +0000 (09:43 +0200)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Mon, 30 Sep 2013 07:43:43 +0000 (09:43 +0200)
commit86bade714e86fa87f8a210cdf0ec799f965f90a4
treec966a6b5177510b4d58d21be6db47f1a094c2bde
parentcccca70149d585d03ea5613c672ceebf00ec36f7
kvm: FPU synchronization support on x86

This changeset adds support for synchronizing the FPU and SIMD state
of a virtual x86 CPU with gem5. It supports both the XSave API and the
KVM_(GET|SET)_FPU kernel API. The XSave interface can be disabled
using the useXSave parameter (in case of kernel
issues). Unfortunately, KVM_(GET|SET)_FPU interface seems to be buggy
in some kernels (specifically, the MXCSR register isn't always
synchronized), which means that it might not be possible to
synchronize MXCSR on old kernels without the XSave interface.

This changeset depends on the __float80 type in gcc and might not
build using llvm.
src/cpu/kvm/X86KvmCPU.py
src/cpu/kvm/x86_cpu.cc
src/cpu/kvm/x86_cpu.hh