},
};
+#ifdef TARGET_X86_64
+static bool apx_needed(void *opaque)
+{
+ X86CPU *cpu = opaque;
+ CPUX86State *env = &cpu->env;
+
+ return !!(env->features[FEAT_7_1_EDX] & CPUID_7_1_EDX_APXF);
+}
+
+static const VMStateDescription vmstate_apx = {
+ .name = "cpu/apx",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .needed = apx_needed,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINTTL_SUB_ARRAY(env.regs, X86CPU, CPU_NB_REGS,
+ CPU_NB_EREGS - CPU_NB_REGS),
+ VMSTATE_END_OF_LIST()
+ }
+};
+#endif
+
const VMStateDescription vmstate_x86_cpu = {
.name = "cpu",
.version_id = 12,
&vmstate_triple_fault,
&vmstate_pl0_ssp,
&vmstate_cet,
+#ifdef TARGET_X86_64
+ &vmstate_apx,
+#endif
NULL
}
};