summaryrefslogtreecommitdiff
path: root/src/cpu/kvm/X86KvmCPU.py
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas@sandberg.pp.se>2013-09-30 09:43:43 +0200
committerAndreas Sandberg <andreas@sandberg.pp.se>2013-09-30 09:43:43 +0200
commit86bade714e86fa87f8a210cdf0ec799f965f90a4 (patch)
treec966a6b5177510b4d58d21be6db47f1a094c2bde /src/cpu/kvm/X86KvmCPU.py
parentcccca70149d585d03ea5613c672ceebf00ec36f7 (diff)
downloadgem5-86bade714e86fa87f8a210cdf0ec799f965f90a4.tar.xz
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.
Diffstat (limited to 'src/cpu/kvm/X86KvmCPU.py')
-rw-r--r--src/cpu/kvm/X86KvmCPU.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cpu/kvm/X86KvmCPU.py b/src/cpu/kvm/X86KvmCPU.py
index 0b12da676..18a4d3d6f 100644
--- a/src/cpu/kvm/X86KvmCPU.py
+++ b/src/cpu/kvm/X86KvmCPU.py
@@ -43,3 +43,5 @@ class X86KvmCPU(BaseKvmCPU):
void dumpXSave();
void dumpVCpuEvents();
''')
+
+ useXSave = Param.Bool(True, "Use XSave to synchronize FPU/SIMD registers")