implement prefetch hint opcodes
This commit is contained in:
parent
8f00ef6907
commit
b64fc08c54
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode.cc,v 1.107 2007-08-18 13:51:15 sshwarts Exp $
|
||||
// $Id: fetchdecode.cc,v 1.108 2007-08-23 16:47:51 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -400,18 +400,6 @@ static const BxOpcodeInfo_t BxOpcodeInfoG15[8] = {
|
||||
/* 7 */ { 0, &BX_CPU_C::CLFLUSH } /* SFENCE/CFLUSH */
|
||||
};
|
||||
|
||||
static const BxOpcodeInfo_t BxOpcodeInfoG16[8] = {
|
||||
/* 0 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_NTA */
|
||||
/* 1 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_T0 */
|
||||
/* 2 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_T1 */
|
||||
/* 3 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_T2 */
|
||||
/* 4 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 5 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 6 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 7 */ { 0, &BX_CPU_C::BxError }
|
||||
};
|
||||
|
||||
|
||||
/* ************************** */
|
||||
/* 512 entries for 16bit mode */
|
||||
/* 512 entries for 32bit mode */
|
||||
@ -731,7 +719,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo[512*2] = {
|
||||
/* 0F 15 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f15 },
|
||||
/* 0F 16 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f16 },
|
||||
/* 0F 17 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f17 },
|
||||
/* 0F 18 */ { BxAnother | BxGroup16, NULL, BxOpcodeInfoG16 },
|
||||
/* 0F 18 */ { BxAnother, &BX_CPU_C::PREFETCH }, // opcode group G16, PREFETCH hints
|
||||
/* 0F 19 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1A */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1B */ { 0, &BX_CPU_C::BxError },
|
||||
@ -1289,7 +1277,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo[512*2] = {
|
||||
/* 0F 15 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f15 },
|
||||
/* 0F 16 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f16 },
|
||||
/* 0F 17 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f17 },
|
||||
/* 0F 18 */ { BxAnother | BxGroup16, NULL, BxOpcodeInfoG16 },
|
||||
/* 0F 18 */ { BxAnother, &BX_CPU_C::PREFETCH }, // opcode group G16, PREFETCH hints
|
||||
/* 0F 19 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1A */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1B */ { 0, &BX_CPU_C::BxError },
|
||||
|
@ -1,5 +1,5 @@
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode64.cc,v 1.112 2007-08-18 13:51:16 sshwarts Exp $
|
||||
// $Id: fetchdecode64.cc,v 1.113 2007-08-23 16:47:51 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001 MandrakeSoft S.A.
|
||||
@ -550,17 +550,6 @@ static const BxOpcodeInfo_t BxOpcodeInfo64G15[8] = {
|
||||
/* 7 */ { 0, &BX_CPU_C::CLFLUSH } /* SFENCE/CFLUSH */
|
||||
};
|
||||
|
||||
static const BxOpcodeInfo_t BxOpcodeInfo64G16[8] = {
|
||||
/* 0 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_NTA */
|
||||
/* 1 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_T0 */
|
||||
/* 2 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_T1 */
|
||||
/* 3 */ { 0, &BX_CPU_C::PREFETCH }, /* PREFETCH_T2 */
|
||||
/* 4 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 5 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 6 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 7 */ { 0, &BX_CPU_C::BxError }
|
||||
};
|
||||
|
||||
// 512 entries for 16bit operand size
|
||||
// 512 entries for 32bit operand size
|
||||
// 512 entries for 64bit operand size
|
||||
@ -854,7 +843,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
|
||||
/* 0F 15 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f15 },
|
||||
/* 0F 16 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f16 },
|
||||
/* 0F 17 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f17 },
|
||||
/* 0F 18 */ { BxAnother | BxGroup16, NULL, BxOpcodeInfo64G16 },
|
||||
/* 0F 18 */ { BxAnother, &BX_CPU_C::PREFETCH }, // opcode group G16, PREFETCH hints
|
||||
/* 0F 19 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1A */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1B */ { 0, &BX_CPU_C::BxError },
|
||||
@ -1383,7 +1372,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
|
||||
/* 0F 15 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f15 },
|
||||
/* 0F 16 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f16 },
|
||||
/* 0F 17 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f17 },
|
||||
/* 0F 18 */ { BxAnother | BxGroup16, NULL, BxOpcodeInfo64G16 },
|
||||
/* 0F 18 */ { BxAnother, &BX_CPU_C::PREFETCH }, // opcode group G16, PREFETCH hints
|
||||
/* 0F 19 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1A */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1B */ { 0, &BX_CPU_C::BxError },
|
||||
@ -1912,7 +1901,7 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3] = {
|
||||
/* 0F 15 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f15 },
|
||||
/* 0F 16 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f16 },
|
||||
/* 0F 17 */ { BxAnother | BxPrefixSSE, NULL, BxOpcodeGroupSSE_0f17 },
|
||||
/* 0F 18 */ { BxAnother | BxGroup16, NULL, BxOpcodeInfo64G16 },
|
||||
/* 0F 18 */ { BxAnother, &BX_CPU_C::PREFETCH }, // opcode group G16, PREFETCH hints
|
||||
/* 0F 19 */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1A */ { 0, &BX_CPU_C::BxError },
|
||||
/* 0F 1B */ { 0, &BX_CPU_C::BxError },
|
||||
|
@ -1897,10 +1897,10 @@ static BxDisasmOpcodeTable_t BxDisasmGroupG16[8] =
|
||||
/* 1 */ { 0, &Ia_prefetcht0 },
|
||||
/* 2 */ { 0, &Ia_prefetcht1 },
|
||||
/* 3 */ { 0, &Ia_prefetcht2 },
|
||||
/* 4 */ { 0, &Ia_Invalid },
|
||||
/* 5 */ { 0, &Ia_Invalid },
|
||||
/* 6 */ { 0, &Ia_Invalid },
|
||||
/* 7 */ { 0, &Ia_Invalid }
|
||||
/* 4 */ { 0, &Ia_prefetch_hint },
|
||||
/* 5 */ { 0, &Ia_prefetch_hint },
|
||||
/* 6 */ { 0, &Ia_prefetch_hint },
|
||||
/* 7 */ { 0, &Ia_prefetch_hint }
|
||||
};
|
||||
|
||||
/* ************************************************************************ */
|
||||
|
@ -37,6 +37,7 @@
|
||||
#define IA_SYSCALL_SYSRET 0x00020000 /* SYSCALL/SYSRET instruction */
|
||||
#define IA_SYSENTER_SYSEXIT 0x00040000 /* SYSENTER/SYSEXIT instruction */
|
||||
#define IA_VMX 0x00080000 /* VMX instruction */
|
||||
#define IA_UNDOCUMENTED 0x80000000 /* instruction undocumented */
|
||||
|
||||
/* general purpose bit register */
|
||||
enum {
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user