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>
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);