debuggers.hg

changeset 22828:fe8a177ae9cb

x86_emulate: set the operand size for SMSW/reg writeback.
Otherwise it defaults to 0 bytes.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Signed-off-by: Keir Fraser <keir@xen.org>
author Keir Fraser <keir@xen.org>
date Wed Jan 19 15:29:04 2011 +0000 (2011-01-19)
parents 3decd02e0b18
children 051a1b1b8f8a
files xen/arch/x86/x86_emulate/x86_emulate.c
line diff
     1.1 --- a/xen/arch/x86/x86_emulate/x86_emulate.c	Mon Jan 17 14:29:01 2011 +0000
     1.2 +++ b/xen/arch/x86/x86_emulate/x86_emulate.c	Wed Jan 19 15:29:04 2011 +0000
     1.3 @@ -3555,8 +3555,7 @@ x86_emulate(
     1.4                  goto done;
     1.5              break;
     1.6          case 4: /* smsw */
     1.7 -            if ( ea.type == OP_MEM )
     1.8 -                ea.bytes = 2;
     1.9 +            ea.bytes = (ea.type == OP_MEM) ? 2 : op_bytes;
    1.10              dst = ea;
    1.11              fail_if(ops->read_cr == NULL);
    1.12              if ( (rc = ops->read_cr(0, &dst.val, ctxt)) )