summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraliguori2008-10-29 15:16:31 +0100
committeraliguori2008-10-29 15:16:31 +0100
commite5ceb24447ff66e3b472299eac8203439bd0ae4a (patch)
tree604986d3b48caf6b9dc6c7ba1be368fd03f74b5c
parentUse locally defined structure. (diff)
downloadqemu-e5ceb24447ff66e3b472299eac8203439bd0ae4a.tar.gz
qemu-e5ceb24447ff66e3b472299eac8203439bd0ae4a.tar.xz
qemu-e5ceb24447ff66e3b472299eac8203439bd0ae4a.zip
Fix restore of older snapshots for target-i386 on big endian hosts
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
-rw-r--r--target-i386/machine.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/target-i386/machine.c b/target-i386/machine.c
index 9d440fb346..7f78b0da9d 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -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]);