ia64/xen-unstable

changeset 6737:a8f01a0a9559

One more instruction for the VMX MMIO decoder.
This patch is to handle the instruction with opcode 0x80.
Without this patch, the 64-bit VMX guest can't boot.

Signed-off-by: Chengyuan Li <chengyuan.li@intel.com>
author kaf24@firebug.cl.cam.ac.uk
date Sat Sep 10 14:19:09 2005 +0000 (2005-09-10)
parents 4b2c87242ad3
children 8fc210e6a588
files xen/arch/x86/vmx_platform.c
line diff
     1.1 --- a/xen/arch/x86/vmx_platform.c	Sat Sep 10 14:17:02 2005 +0000
     1.2 +++ b/xen/arch/x86/vmx_platform.c	Sat Sep 10 14:19:09 2005 +0000
     1.3 @@ -425,10 +425,15 @@ static int vmx_decode(unsigned char *opc
     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 0x80:
     1.8      case 0x81:
     1.9  	if (((opcode[1] >> 3) & 7) == 7) { /* cmp $imm, m32/16 */
    1.10  	    instr->instr = INSTR_CMP;
    1.11 -	    GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);
    1.12 +
    1.13 +        if (opcode[0] == 0x80)
    1.14 +            GET_OP_SIZE_FOR_BYTE(instr->op_size);
    1.15 +        else
    1.16 +            GET_OP_SIZE_FOR_NONEBYTE(instr->op_size);
    1.17  
    1.18  	    instr->operand[0] = mk_operand(instr->op_size, 0, 0, IMMEDIATE);
    1.19  	    instr->immediate = get_immediate(vm86, opcode+1, BYTE);