According to AMD docs opcodes 0f 19...0f 1f are multibyte NOP

This commit is contained in:
Stanislav Shwartsman 2007-11-17 16:19:14 +00:00
parent d9e58bd598
commit 033150c7e6
2 changed files with 32 additions and 32 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: dis_decode.cc,v 1.41 2007-10-20 10:56:44 sshwarts Exp $
// $Id: dis_decode.cc,v 1.42 2007-11-17 16:19:14 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
#include <stdio.h>
@ -34,7 +34,7 @@ static const unsigned char instruction_has_modrm[512] = {
/* 0 1 2 3 4 5 6 7 8 9 a b c d e f */
/* ------------------------------- */
1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,1, /* 0F 00 */
1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1, /* 0F 10 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F 10 */
1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1, /* 0F 20 */
0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, /* 0F 30 */
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* 0F 40 */

View File

@ -3430,12 +3430,12 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = {
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
/* 0F 19 */ { 0, &Ia_Invalid },
/* 0F 1A */ { 0, &Ia_Invalid },
/* 0F 1B */ { 0, &Ia_Invalid },
/* 0F 1C */ { 0, &Ia_Invalid },
/* 0F 1D */ { 0, &Ia_Invalid },
/* 0F 1E */ { 0, &Ia_Invalid },
/* 0F 19 */ { 0, &Ia_multibyte_nop },
/* 0F 1A */ { 0, &Ia_multibyte_nop },
/* 0F 1B */ { 0, &Ia_multibyte_nop },
/* 0F 1C */ { 0, &Ia_multibyte_nop },
/* 0F 1D */ { 0, &Ia_multibyte_nop },
/* 0F 1E */ { 0, &Ia_multibyte_nop },
/* 0F 1F */ { 0, &Ia_multibyte_nop },
/* 0F 20 */ { 0, &Ia_movl_Rd_Cd },
/* 0F 21 */ { 0, &Ia_movl_Rd_Dd },
@ -3951,12 +3951,12 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = {
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
/* 0F 19 */ { 0, &Ia_Invalid },
/* 0F 1A */ { 0, &Ia_Invalid },
/* 0F 1B */ { 0, &Ia_Invalid },
/* 0F 1C */ { 0, &Ia_Invalid },
/* 0F 1D */ { 0, &Ia_Invalid },
/* 0F 1E */ { 0, &Ia_Invalid },
/* 0F 19 */ { 0, &Ia_multibyte_nop },
/* 0F 1A */ { 0, &Ia_multibyte_nop },
/* 0F 1B */ { 0, &Ia_multibyte_nop },
/* 0F 1C */ { 0, &Ia_multibyte_nop },
/* 0F 1D */ { 0, &Ia_multibyte_nop },
/* 0F 1E */ { 0, &Ia_multibyte_nop },
/* 0F 1F */ { 0, &Ia_multibyte_nop },
/* 0F 20 */ { 0, &Ia_movl_Rd_Cd },
/* 0F 21 */ { 0, &Ia_movl_Rd_Dd },
@ -4472,12 +4472,12 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
/* 0F 19 */ { 0, &Ia_Invalid },
/* 0F 1A */ { 0, &Ia_Invalid },
/* 0F 1B */ { 0, &Ia_Invalid },
/* 0F 1C */ { 0, &Ia_Invalid },
/* 0F 1D */ { 0, &Ia_Invalid },
/* 0F 1E */ { 0, &Ia_Invalid },
/* 0F 19 */ { 0, &Ia_multibyte_nop },
/* 0F 1A */ { 0, &Ia_multibyte_nop },
/* 0F 1B */ { 0, &Ia_multibyte_nop },
/* 0F 1C */ { 0, &Ia_multibyte_nop },
/* 0F 1D */ { 0, &Ia_multibyte_nop },
/* 0F 1E */ { 0, &Ia_multibyte_nop },
/* 0F 1F */ { 0, &Ia_multibyte_nop },
/* 0F 20 */ { 0, &Ia_movq_Rq_Cq },
/* 0F 21 */ { 0, &Ia_movq_Rq_Dq },
@ -4990,12 +4990,12 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = {
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
/* 0F 19 */ { 0, &Ia_Invalid },
/* 0F 1A */ { 0, &Ia_Invalid },
/* 0F 1B */ { 0, &Ia_Invalid },
/* 0F 1C */ { 0, &Ia_Invalid },
/* 0F 1D */ { 0, &Ia_Invalid },
/* 0F 1E */ { 0, &Ia_Invalid },
/* 0F 19 */ { 0, &Ia_multibyte_nop },
/* 0F 1A */ { 0, &Ia_multibyte_nop },
/* 0F 1B */ { 0, &Ia_multibyte_nop },
/* 0F 1C */ { 0, &Ia_multibyte_nop },
/* 0F 1D */ { 0, &Ia_multibyte_nop },
/* 0F 1E */ { 0, &Ia_multibyte_nop },
/* 0F 1F */ { 0, &Ia_multibyte_nop },
/* 0F 20 */ { 0, &Ia_movq_Rq_Cq },
/* 0F 21 */ { 0, &Ia_movq_Rq_Dq },
@ -5508,12 +5508,12 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = {
/* 0F 16 */ { GRPSSE(0f16) },
/* 0F 17 */ { GRPSSE(0f17) },
/* 0F 18 */ { GRPN(G16) },
/* 0F 19 */ { 0, &Ia_Invalid },
/* 0F 1A */ { 0, &Ia_Invalid },
/* 0F 1B */ { 0, &Ia_Invalid },
/* 0F 1C */ { 0, &Ia_Invalid },
/* 0F 1D */ { 0, &Ia_Invalid },
/* 0F 1E */ { 0, &Ia_Invalid },
/* 0F 19 */ { 0, &Ia_multibyte_nop },
/* 0F 1A */ { 0, &Ia_multibyte_nop },
/* 0F 1B */ { 0, &Ia_multibyte_nop },
/* 0F 1C */ { 0, &Ia_multibyte_nop },
/* 0F 1D */ { 0, &Ia_multibyte_nop },
/* 0F 1E */ { 0, &Ia_multibyte_nop },
/* 0F 1F */ { 0, &Ia_multibyte_nop },
/* 0F 20 */ { 0, &Ia_movq_Rq_Cq },
/* 0F 21 */ { 0, &Ia_movq_Rq_Dq },