mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-09 00:07:57 -06:00
target-i386: Add PKU and and OSPKE support
Add PKU and OSPKE CPUID features, including xsave state and migration support. Signed-off-by: Huaitong Han <huaitong.han@intel.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> [ehabkost: squashed 3 patches together, edited patch description] Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
36f96c4b6b
commit
f74eefe0b9
4 changed files with 56 additions and 1 deletions
|
@ -1299,6 +1299,7 @@ static int kvm_put_fpu(X86CPU *cpu)
|
|||
#define XSAVE_OPMASK 272
|
||||
#define XSAVE_ZMM_Hi256 288
|
||||
#define XSAVE_Hi16_ZMM 416
|
||||
#define XSAVE_PKRU 672
|
||||
|
||||
static int kvm_put_xsave(X86CPU *cpu)
|
||||
{
|
||||
|
@ -1352,6 +1353,7 @@ static int kvm_put_xsave(X86CPU *cpu)
|
|||
#ifdef TARGET_X86_64
|
||||
memcpy(&xsave->region[XSAVE_Hi16_ZMM], &env->xmm_regs[16],
|
||||
16 * sizeof env->xmm_regs[16]);
|
||||
memcpy(&xsave->region[XSAVE_PKRU], &env->pkru, sizeof env->pkru);
|
||||
#endif
|
||||
r = kvm_vcpu_ioctl(CPU(cpu), KVM_SET_XSAVE, xsave);
|
||||
return r;
|
||||
|
@ -1770,6 +1772,7 @@ static int kvm_get_xsave(X86CPU *cpu)
|
|||
#ifdef TARGET_X86_64
|
||||
memcpy(&env->xmm_regs[16], &xsave->region[XSAVE_Hi16_ZMM],
|
||||
16 * sizeof env->xmm_regs[16]);
|
||||
memcpy(&env->pkru, &xsave->region[XSAVE_PKRU], sizeof env->pkru);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue