Fixed deciding and disasm of CALL in 64-bit mode (no 16-bit calls allowed)

This commit is contained in:
Stanislav Shwartsman 2007-03-28 21:20:09 +00:00
parent b1bf1a8bf5
commit 4bb19c2dc3
2 changed files with 14 additions and 3 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode64.cc,v 1.106 2007-03-23 14:35:50 sshwarts Exp $
// $Id: fetchdecode64.cc,v 1.107 2007-03-28 21:20:09 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -357,7 +357,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64G5w[8] = {
// attributes defined in main area
/* 0 */ { BxLockable, &BX_CPU_C::INC_Ew },
/* 1 */ { BxLockable, &BX_CPU_C::DEC_Ew },
/* 2 */ { 0, &BX_CPU_C::CALL_Ew },
/* 2 */ { 0, &BX_CPU_C::CALL_Eq },
/* 3 */ { 0, &BX_CPU_C::CALL16_Ep },
/* 4 */ { 0, &BX_CPU_C::JMP_Eq },
/* 5 */ { 0, &BX_CPU_C::JMP16_Ep },

View File

@ -1319,6 +1319,17 @@ static BxDisasmOpcodeTable_t BxDisasmGroupG5d[8] = {
/* 7 */ { 0, &Ia_Invalid }
};
static BxDisasmOpcodeTable_t BxDisasmGroup64G5w[8] = {
/* 0 */ { 0, &Ia_incw_Ew },
/* 1 */ { 0, &Ia_decw_Ew },
/* 2 */ { 0, &Ia_call_Eq },
/* 3 */ { 0, &Ia_lcall_Mp },
/* 4 */ { 0, &Ia_jmp_Eq },
/* 5 */ { 0, &Ia_ljmp_Mp },
/* 6 */ { 0, &Ia_pushw_Ew },
/* 7 */ { 0, &Ia_Invalid }
};
static BxDisasmOpcodeTable_t BxDisasmGroup64G5d[8] = {
/* 0 */ { 0, &Ia_incl_Ed },
/* 1 */ { 0, &Ia_decl_Ed },
@ -3853,7 +3864,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
/* FC */ { 0, &Ia_cld },
/* FD */ { 0, &Ia_std },
/* FE */ { GRPN(G4) },
/* FF */ { GRPN(G5w) },
/* FF */ { GRPN(64G5w) },
// 256 entries for two byte opcodes
/* 0F 00 */ { GRPN(G6) },