Fix restore of older snapshots for target-i386 on big endian hosts
authoraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 29 Oct 2008 14:16:31 +0000 (14:16 +0000)
committeraliguori <aliguori@c046a42c-6fe2-441c-8c8c-71466251a162>
Wed, 29 Oct 2008 14:16:31 +0000 (14:16 +0000)
A target_ulong may be 64-bit.  Passing it to a function expecting a 32-bit
pointer is wrong and unfortunately happens to work for x86.  It won't work on
big endian hosts though.  Change the code to work properly on all hosts.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5570 c046a42c-6fe2-441c-8c8c-71466251a162

target-i386/machine.c

index 9d440fb..7f78b0d 100644 (file)
@@ -248,8 +248,8 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
         qemu_get_betls(f, &env->sysenter_esp);
         qemu_get_betls(f, &env->sysenter_eip);
     } else {
-        qemu_get_be32s(f, &env->sysenter_esp);
-        qemu_get_be32s(f, &env->sysenter_eip);
+        env->sysenter_esp = qemu_get_be32(f);
+        env->sysenter_eip = qemu_get_be32(f);
     }
 
     qemu_get_betls(f, &env->cr[0]);