[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.2-testing] x86_emulate: INS/OUTS need Mov attribute to force writeback (since
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1204734029 0 # Node ID e5e4d92cd8e501f9b894ee047d1d6d799408bb09 # Parent 5b81e69b28f1b853c56b10c31f98b281c859258e x86_emulate: INS/OUTS need Mov attribute to force writeback (since dst.orig_val is not initialised). Also, Mov attribute on cmpxchg is not necessary -- when destination is memory (i.e., successful cmpxchg) then dst.orig_val is already correctly filled in. In case that dst.orig_val == dst.val then the instruction linearises at the point we first read the destination (and initialised dst.orig_val). Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx> xen-unstable changeset: 17174:c89f6ed5635179695c92810a9c9eec205e5d0d78 xen-unstable date: Mon Mar 03 11:47:40 2008 +0000 --- xen/arch/x86/x86_emulate.c | 4 +--- 1 files changed, 1 insertion(+), 3 deletions(-) diff -r 5b81e69b28f1 -r e5e4d92cd8e5 xen/arch/x86/x86_emulate.c --- a/xen/arch/x86/x86_emulate.c Wed Mar 05 16:19:52 2008 +0000 +++ b/xen/arch/x86/x86_emulate.c Wed Mar 05 16:20:29 2008 +0000 @@ -105,7 +105,7 @@ static uint8_t opcode_table[256] = { /* 0x68 - 0x6F */ ImplicitOps|Mov, DstReg|SrcImm|ModRM|Mov, ImplicitOps|Mov, DstReg|SrcImmByte|ModRM|Mov, - ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, + ImplicitOps|Mov, ImplicitOps|Mov, ImplicitOps|Mov, ImplicitOps|Mov, /* 0x70 - 0x77 */ ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, ImplicitOps, @@ -2861,8 +2861,6 @@ x86_emulate( src.orig_val = src.val; src.val = _regs.eax; emulate_2op_SrcV("cmp", src, dst, _regs.eflags); - /* Always write back. The question is: where to? */ - d |= Mov; if ( _regs.eflags & EFLG_ZF ) { /* Success: write back to memory. */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |