some fetchdecode fixes
This commit is contained in:
parent
423aa44ab1
commit
e5b6f90b62
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode.cc,v 1.185 2008-04-24 21:52:27 sshwarts Exp $
|
||||
// $Id: fetchdecode.cc,v 1.186 2008-04-30 21:07:12 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -688,7 +688,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = {
|
||||
/* 0F C2 /wr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /wr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group
|
||||
/* 0F C4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R },
|
||||
/* 0F C6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /wr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group
|
||||
/* 0F C8 /wr */ { 0, BX_IA_BSWAP_ERX },
|
||||
@ -1251,7 +1251,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo32R[512*2] = {
|
||||
/* 0F C2 /dr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /dr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group
|
||||
/* 0F C4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R },
|
||||
/* 0F C6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /dr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group
|
||||
/* 0F C8 /dr */ { 0, BX_IA_BSWAP_ERX },
|
||||
@ -1821,7 +1821,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = {
|
||||
/* 0F C2 /wm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M },
|
||||
/* 0F C4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /wm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group
|
||||
/* 0F C6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /wm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M },
|
||||
/* 0F C8 /wm */ { 0, BX_IA_BSWAP_ERX },
|
||||
@ -2384,7 +2384,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo32M[512*2] = {
|
||||
/* 0F C2 /dm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M },
|
||||
/* 0F C4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /dm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group
|
||||
/* 0F C6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /dm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M },
|
||||
/* 0F C8 /dm */ { 0, BX_IA_BSWAP_ERX },
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode.h,v 1.65 2008-04-28 18:18:08 sshwarts Exp $
|
||||
// $Id: fetchdecode.h,v 1.66 2008-04-30 21:07:12 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005 Stanislav Shwartsman
|
||||
@ -1444,7 +1444,7 @@ static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc4[4] = {
|
||||
/* F3 */ { 0, BX_IA_ERROR }
|
||||
};
|
||||
|
||||
static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc5[4] = {
|
||||
static const BxOpcodeInfo_t BxOpcodeGroupSSE_0fc5R[4] = {
|
||||
/* -- */ { BxImmediate_Ib, BX_IA_PEXTRW_GdPqIb },
|
||||
/* 66 */ { BxImmediate_Ib, BX_IA_PEXTRW_GdUdqIb },
|
||||
/* F2 */ { 0, BX_IA_ERROR },
|
||||
@ -3298,7 +3298,7 @@ static const BxOpcodeInfo_t BxOpcodeInfoG6[8] = {
|
||||
// ----------------------------------------------------
|
||||
// MOD <> 11 7 --- | INVLPG | INVLPG
|
||||
// MOD == 11 7 0 | #UD | SWAPGS
|
||||
// MOD == 11 7 1 | #UD | RDTSCP
|
||||
// MOD == 11 7 1 | RDTSCP | RDTSCP
|
||||
// MOD == 11 7 2-7 | #UD | #UD
|
||||
|
||||
static const BxOpcodeInfo_t opcodesGroupRmMONITOR[8] = {
|
||||
@ -3323,6 +3323,19 @@ static const BxOpcodeInfo_t opcodesGroupRmXGETSET[8] = {
|
||||
/* 7 */ { 0, BX_IA_ERROR }
|
||||
};
|
||||
|
||||
#if BX_SUPPORT_X86_64
|
||||
static const BxOpcodeInfo_t opcodesGroupRmINVLPG[8] = {
|
||||
/* 0 */ { 0, BX_IA_ERROR },
|
||||
/* 1 */ { 0, BX_IA_RDTSCP },
|
||||
/* 2 */ { 0, BX_IA_ERROR },
|
||||
/* 3 */ { 0, BX_IA_ERROR },
|
||||
/* 4 */ { 0, BX_IA_ERROR },
|
||||
/* 5 */ { 0, BX_IA_ERROR },
|
||||
/* 6 */ { 0, BX_IA_ERROR },
|
||||
/* 7 */ { 0, BX_IA_ERROR }
|
||||
};
|
||||
#endif
|
||||
|
||||
static const BxOpcodeInfo_t BxOpcodeInfoG7R[8] = {
|
||||
/* 0 */ { 0, BX_IA_ERROR },
|
||||
/* 1 */ { BxRMGroup, BX_IA_ERROR, opcodesGroupRmMONITOR },
|
||||
@ -3331,7 +3344,11 @@ static const BxOpcodeInfo_t BxOpcodeInfoG7R[8] = {
|
||||
/* 4 */ { 0, BX_IA_SMSW_EwR },
|
||||
/* 5 */ { 0, BX_IA_ERROR },
|
||||
/* 6 */ { BxTraceEnd, BX_IA_LMSW_Ew },
|
||||
#if BX_SUPPORT_X86_64
|
||||
/* 7 */ { BxRMGroup, BX_IA_ERROR, opcodesGroupRmINVLPG }
|
||||
#else
|
||||
/* 7 */ { 0, BX_IA_ERROR }
|
||||
#endif
|
||||
};
|
||||
|
||||
static const BxOpcodeInfo_t BxOpcodeInfoG7M[8] = {
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode64.cc,v 1.194 2008-04-24 21:52:27 sshwarts Exp $
|
||||
// $Id: fetchdecode64.cc,v 1.195 2008-04-30 21:07:12 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -647,7 +647,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = {
|
||||
/* 0F C2 /wr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /wr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group
|
||||
/* 0F C4 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R },
|
||||
/* 0F C6 /wr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /wr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group
|
||||
/* 0F C8 /wr */ { 0, BX_IA_BSWAP_ERX },
|
||||
@ -1174,7 +1174,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = {
|
||||
/* 0F C2 /dr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /dr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group
|
||||
/* 0F C4 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R },
|
||||
/* 0F C6 /dr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /dr */ { 0, BX_IA_ERROR }, // CMPXCHG8B G9 group
|
||||
/* 0F C8 /dr */ { 0, BX_IA_BSWAP_ERX },
|
||||
@ -1701,7 +1701,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64R[512*3] = {
|
||||
/* 0F C2 /qr */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /qr */ { 0, BX_IA_ERROR }, // MOVNTI SSE group
|
||||
/* 0F C4 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5R },
|
||||
/* 0F C6 /qr */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /qr */ { 0, BX_IA_ERROR }, // CMPXCHG16B G9 group
|
||||
/* 0F C8 /qr */ { 0, BX_IA_BSWAP_RRX },
|
||||
@ -2234,7 +2234,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = {
|
||||
/* 0F C2 /wm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M },
|
||||
/* 0F C4 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /wm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group
|
||||
/* 0F C6 /wm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /wm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M },
|
||||
/* 0F C8 /wm */ { 0, BX_IA_BSWAP_ERX },
|
||||
@ -2761,7 +2761,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = {
|
||||
/* 0F C2 /dm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3M },
|
||||
/* 0F C4 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /dm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group
|
||||
/* 0F C6 /dm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /dm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfoG9M },
|
||||
/* 0F C8 /dm */ { 0, BX_IA_BSWAP_ERX },
|
||||
@ -3288,7 +3288,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64M[512*3] = {
|
||||
/* 0F C2 /qm */ { BxImmediate_Ib | BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc2 },
|
||||
/* 0F C3 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc3qM },
|
||||
/* 0F C4 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc4 },
|
||||
/* 0F C5 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc5 },
|
||||
/* 0F C5 /qm */ { 0, BX_IA_ERROR }, // PEXTRW SSE group
|
||||
/* 0F C6 /qm */ { BxPrefixSSE, BX_IA_ERROR, BxOpcodeGroupSSE_0fc6 },
|
||||
/* 0F C7 /qm */ { BxGroup9, BX_IA_ERROR, BxOpcodeInfo64G9qM },
|
||||
/* 0F C8 /qm */ { 0, BX_IA_BSWAP_RRX },
|
||||
|
Loading…
Reference in New Issue
Block a user