[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [HVM][MMIO] Support decode of 0x83 opcode (or imm8, m32/64').
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 2049467adee349ad576e8afee5de77e23d8928d8 # Parent 7d37df6c324721647d5d6c930af09101f1165e23 [HVM][MMIO] Support decode of 0x83 opcode (or imm8,m32/64'). This instruction is used by both WinXP during an SMP installation and by Sun Solaris. With this patch Sun Solaris UP is able to boot. Windows SMP gets a bit further but still has issues. Signed-off-by: Tom Woller <thomas.woller@xxxxxxx> Signed-off-by: Travis Betak <tbetak.woller@xxxxxxx> --- xen/arch/x86/hvm/platform.c | 15 +++++++++++++-- 1 files changed, 13 insertions(+), 2 deletions(-) diff -r 7d37df6c3247 -r 2049467adee3 xen/arch/x86/hvm/platform.c --- a/xen/arch/x86/hvm/platform.c Wed Jun 07 14:20:29 2006 +0100 +++ b/xen/arch/x86/hvm/platform.c Wed Jun 07 14:21:49 2006 +0100 @@ -426,19 +426,30 @@ static int hvm_decode(int realmode, unsi case 0x80: case 0x81: + case 0x83: { unsigned char ins_subtype = (opcode[1] >> 3) & 7; if (opcode[0] == 0x80) { GET_OP_SIZE_FOR_BYTE(size_reg); instr->op_size = BYTE; - } else { + } else if (opcode[0] == 0x81) { GET_OP_SIZE_FOR_NONEBYTE(instr->op_size); size_reg = instr->op_size; + } else if (opcode[0] == 0x83) { + GET_OP_SIZE_FOR_NONEBYTE(size_reg); + instr->op_size = size_reg; } + + /* opcode 0x83 always has a single byte operand */ + if (opcode[0] == 0x83) + instr->immediate = + (signed char)get_immediate(realmode, opcode+1, BYTE); + else + instr->immediate = + get_immediate(realmode, opcode+1, instr->op_size); instr->operand[0] = mk_operand(size_reg, 0, 0, IMMEDIATE); - instr->immediate = get_immediate(realmode, opcode+1, instr->op_size); instr->operand[1] = mk_operand(size_reg, 0, 0, MEMORY); switch (ins_subtype) { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |