]> xenbits.xensource.com Git - xen.git/commitdiff
x86_emulate: Fix SHLD/SHRD emulation -- cannot rely on dst.orig_val
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 4 Dec 2007 11:23:05 +0000 (11:23 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 4 Dec 2007 11:23:05 +0000 (11:23 +0000)
being already initialised.
From: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/x86/x86_emulate.c

index f6b2215cfdebcf513276d236fb8067f426d5ebdf..20f6cec5b5654b7f125cbeb89970dd31111d277e 100644 (file)
@@ -2624,7 +2624,7 @@ x86_emulate(
         shift = (b & 1) ? (uint8_t)_regs.ecx : insn_fetch_type(uint8_t);
         if ( (shift &= width - 1) == 0 )
             break;
-        dst.orig_val = truncate_word(dst.orig_val, dst.bytes);
+        dst.orig_val = truncate_word(dst.val, dst.bytes);
         dst.val = ((shift == width) ? src.val :
                    (b & 8) ?
                    /* shrd */