Commit 02536f8b1f94a701ac3ef8016741fe01cc68cff2
1 parent
06c2f506
x86_64 save/restore
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1200 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
28 additions
and
0 deletions
vl.c
... | ... | @@ -2138,6 +2138,20 @@ void cpu_save(QEMUFile *f, void *opaque) |
2138 | 2138 | |
2139 | 2139 | /* MMU */ |
2140 | 2140 | qemu_put_be32s(f, &env->a20_mask); |
2141 | + | |
2142 | +#ifdef TARGET_X86_64 | |
2143 | + for(i = 0; i < CPU_NB_REGS; i++) { | |
2144 | + qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(0)); | |
2145 | + qemu_put_be64s(f, &env->xmm_regs[i].XMM_Q(1)); | |
2146 | + } | |
2147 | + | |
2148 | + qemu_put_be64s(f, &env->efer); | |
2149 | + qemu_put_be64s(f, &env->star); | |
2150 | + qemu_put_be64s(f, &env->lstar); | |
2151 | + qemu_put_be64s(f, &env->cstar); | |
2152 | + qemu_put_be64s(f, &env->fmask); | |
2153 | + qemu_put_be64s(f, &env->kernelgsbase); | |
2154 | +#endif | |
2141 | 2155 | } |
2142 | 2156 | |
2143 | 2157 | int cpu_load(QEMUFile *f, void *opaque, int version_id) |
... | ... | @@ -2198,6 +2212,20 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id) |
2198 | 2212 | /* MMU */ |
2199 | 2213 | qemu_get_be32s(f, &env->a20_mask); |
2200 | 2214 | |
2215 | +#ifdef TARGET_X86_64 | |
2216 | + for(i = 0; i < CPU_NB_REGS; i++) { | |
2217 | + qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(0)); | |
2218 | + qemu_get_be64s(f, &env->xmm_regs[i].XMM_Q(1)); | |
2219 | + } | |
2220 | + | |
2221 | + qemu_get_be64s(f, &env->efer); | |
2222 | + qemu_get_be64s(f, &env->star); | |
2223 | + qemu_get_be64s(f, &env->lstar); | |
2224 | + qemu_get_be64s(f, &env->cstar); | |
2225 | + qemu_get_be64s(f, &env->fmask); | |
2226 | + qemu_get_be64s(f, &env->kernelgsbase); | |
2227 | +#endif | |
2228 | + | |
2201 | 2229 | /* XXX: compute hflags from scratch, except for CPL and IIF */ |
2202 | 2230 | env->hflags = hflags; |
2203 | 2231 | tlb_flush(env, 1); | ... | ... |