ia64/xen-unstable

changeset 11583:d4b99e615af2

Add mmio emulation of opcodes 0x3A and 0x85 for SMP W2K3 installation.

Signed-off-by: Qing He <qing.he@intel.com>
Signed-off-by: Steven Hand <steven@xensource.com>
author Steven Hand <steven@xensource.com>
date Fri Sep 22 14:57:19 2006 +0100 (2006-09-22)
parents a2549eb49482
children a49f9c33aa93
files xen/arch/x86/hvm/platform.c
line diff
     1.1 --- a/xen/arch/x86/hvm/platform.c	Fri Sep 22 14:55:11 2006 +0100
     1.2 +++ b/xen/arch/x86/hvm/platform.c	Fri Sep 22 14:57:19 2006 +0100
     1.3 @@ -416,6 +416,11 @@ static int hvm_decode(int realmode, unsi
     1.4          GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);
     1.5          return reg_mem(instr->op_size, opcode, instr, rex);
     1.6  
     1.7 +    case 0x3A: /* cmp r8, r8/m8 */
     1.8 +        instr->instr = INSTR_CMP;
     1.9 +        GET_OP_SIZE_FOR_BYTE(instr->op_size);
    1.10 +        return reg_mem(instr->op_size, opcode, instr, rex);
    1.11 +
    1.12      case 0x3B: /* cmp m32/16, r32/16 */
    1.13          instr->instr = INSTR_CMP;
    1.14          GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);
    1.15 @@ -471,6 +476,11 @@ static int hvm_decode(int realmode, unsi
    1.16          GET_OP_SIZE_FOR_BYTE(size_reg);
    1.17          return mem_reg(size_reg, opcode, instr, rex);
    1.18  
    1.19 +    case 0x85: /* text m16/32, r16/32 */
    1.20 +        instr->instr = INSTR_TEST;
    1.21 +        GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);
    1.22 +        return mem_reg(instr->op_size, opcode, instr, rex);
    1.23 +
    1.24      case 0x87:  /* xchg {r/m16|r/m32}, {m/r16|m/r32} */
    1.25          instr->instr = INSTR_XCHG;
    1.26          GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);