Commit 7caa33f7be98baa7d4ff6ceb280ef128c9c63bb2

Authored by aurel32
1 parent 0ecdffbb

Correctly save and restore env->a20_mask now that it is a 64-bit

variable. Noticed by Erik de Castro Lopo.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4334 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 6 additions and 2 deletions
target-i386/machine.c
@@ -32,6 +32,7 @@ void cpu_save(QEMUFile *f, void *opaque) @@ -32,6 +32,7 @@ void cpu_save(QEMUFile *f, void *opaque)
32 CPUState *env = opaque; 32 CPUState *env = opaque;
33 uint16_t fptag, fpus, fpuc, fpregs_format; 33 uint16_t fptag, fpus, fpuc, fpregs_format;
34 uint32_t hflags; 34 uint32_t hflags;
  35 + int32_t a20_mask;
35 int i; 36 int i;
36 37
37 for(i = 0; i < CPU_NB_REGS; i++) 38 for(i = 0; i < CPU_NB_REGS; i++)
@@ -100,7 +101,8 @@ void cpu_save(QEMUFile *f, void *opaque) @@ -100,7 +101,8 @@ void cpu_save(QEMUFile *f, void *opaque)
100 qemu_put_betls(f, &env->dr[i]); 101 qemu_put_betls(f, &env->dr[i]);
101 102
102 /* MMU */ 103 /* MMU */
103 - qemu_put_be32s(f, &env->a20_mask); 104 + a20_mask = (int32_t) env->a20_mask;
  105 + qemu_put_be32s(f, &a20_mask);
104 106
105 /* XMM */ 107 /* XMM */
106 qemu_put_be32s(f, &env->mxcsr); 108 qemu_put_be32s(f, &env->mxcsr);
@@ -150,6 +152,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id) @@ -150,6 +152,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
150 int i, guess_mmx; 152 int i, guess_mmx;
151 uint32_t hflags; 153 uint32_t hflags;
152 uint16_t fpus, fpuc, fptag, fpregs_format; 154 uint16_t fpus, fpuc, fptag, fpregs_format;
  155 + int32_t a20_mask;
153 156
154 if (version_id != 3 && version_id != 4) 157 if (version_id != 3 && version_id != 4)
155 return -EINVAL; 158 return -EINVAL;
@@ -238,7 +241,8 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id) @@ -238,7 +241,8 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
238 qemu_get_betls(f, &env->dr[i]); 241 qemu_get_betls(f, &env->dr[i]);
239 242
240 /* MMU */ 243 /* MMU */
241 - qemu_get_be32s(f, &env->a20_mask); 244 + qemu_get_be32s(f, &a20_mask);
  245 + env->a20_mask = a20_mask;
242 246
243 qemu_get_be32s(f, &env->mxcsr); 247 qemu_get_be32s(f, &env->mxcsr);
244 for(i = 0; i < CPU_NB_REGS; i++) { 248 for(i = 0; i < CPU_NB_REGS; i++) {