x86: don't forget to initialise guest %es from the host %es when
constructing the initial guest register state. Fixes #291253.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12394 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_initimg/initimg-linux.c b/coregrind/m_initimg/initimg-linux.c
index eccdd2b..1e1338e 100644
--- a/coregrind/m_initimg/initimg-linux.c
+++ b/coregrind/m_initimg/initimg-linux.c
@@ -986,10 +986,11 @@
arch->vex.guest_EIP = iifii.initial_client_IP;
/* initialise %cs, %ds and %ss to point at the operating systems
- default code, data and stack segments */
+ default code, data and stack segments. Also %es (see #291253). */
asm volatile("movw %%cs, %0" : : "m" (arch->vex.guest_CS));
asm volatile("movw %%ds, %0" : : "m" (arch->vex.guest_DS));
asm volatile("movw %%ss, %0" : : "m" (arch->vex.guest_SS));
+ asm volatile("movw %%es, %0" : : "m" (arch->vex.guest_ES));
# elif defined(VGP_amd64_linux)
vg_assert(0 == sizeof(VexGuestAMD64State) % 16);