mirror of https://github.com/bochs-emu/Bochs
optimized decode tables
This commit is contained in:
parent
9b40d6fe47
commit
eae084920a
|
@ -23,15 +23,20 @@ Changes after 2.4.2:
|
|||
- USB HP DeskJet 920C printer device emulation (Ben Lunt)
|
||||
|
||||
- BIOS
|
||||
- Fix MSR_MTRRdefType configuration (prevented boot of modern Linux kernels)
|
||||
- Fix MTRR configuration (prevented boot of modern Linux kernels)
|
||||
- Fix interrupt vectors for INT 60h-66h (reserved for user interrupt) by
|
||||
setting them to zero
|
||||
|
||||
- SF patches applied
|
||||
[2938273] allow instrumentation to change execute by Konrad Grochowski
|
||||
[2926072] Indirection operators in expressions by Derek Peschel
|
||||
[2914433] makesym.perl misses symbols by John R. Jackson
|
||||
[2908481] USB Printer by Ben Lunt
|
||||
|
||||
- these S.F. bugs were closed/fixed
|
||||
[1921294] extended memory less than 1M wrong size
|
||||
[1947249] BX_USE_EBDA_TABLES and MP table placement
|
||||
[1933859] BX_USE_EBDA_TABLES and memory overlapping
|
||||
[2923680] "help dregs" is a syntax error
|
||||
[2919661] CPU may fail to do 16bit near call
|
||||
[2790768] Memory corruption with SMP > 32, Panic BIOS Keyboard Error
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode.cc,v 1.241 2010-01-29 10:16:28 sshwarts Exp $
|
||||
// $Id: fetchdecode.cc,v 1.242 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001-2009 The Bochs Project
|
||||
|
@ -2937,7 +2937,7 @@ modrm_done:
|
|||
|
||||
#if BX_SUPPORT_3DNOW
|
||||
if(b1 == 0x10f)
|
||||
ia_opcode = Bx3DNowOpcodeInfo[i->modRMForm.Ib].IA;
|
||||
ia_opcode = Bx3DNowOpcode[i->modRMForm.Ib];
|
||||
#endif
|
||||
|
||||
if (! BX_NULL_SEG_REG(seg_override))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode.h,v 1.95 2010-01-29 10:16:28 sshwarts Exp $
|
||||
// $Id: fetchdecode.h,v 1.96 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005-2009 Stanislav Shwartsman
|
||||
|
@ -726,264 +726,264 @@ static const BxOpcodeInfo_t BxOpcodeInfo_FloatingPointDF[64] = {
|
|||
|
||||
#if BX_SUPPORT_3DNOW
|
||||
|
||||
static const BxOpcodeInfo_t Bx3DNowOpcodeInfo[256] = {
|
||||
static Bit16u Bx3DNowOpcode[256] = {
|
||||
// 256 entries for 3DNow opcodes, by suffix
|
||||
/* 00 */ { 0, BX_IA_ERROR },
|
||||
/* 01 */ { 0, BX_IA_ERROR },
|
||||
/* 02 */ { 0, BX_IA_ERROR },
|
||||
/* 03 */ { 0, BX_IA_ERROR },
|
||||
/* 04 */ { 0, BX_IA_ERROR },
|
||||
/* 05 */ { 0, BX_IA_ERROR },
|
||||
/* 06 */ { 0, BX_IA_ERROR },
|
||||
/* 07 */ { 0, BX_IA_ERROR },
|
||||
/* 08 */ { 0, BX_IA_ERROR },
|
||||
/* 09 */ { 0, BX_IA_ERROR },
|
||||
/* 0A */ { 0, BX_IA_ERROR },
|
||||
/* 0B */ { 0, BX_IA_ERROR },
|
||||
/* 0C */ { 0, BX_IA_PI2FW_PqQq },
|
||||
/* 0D */ { 0, BX_IA_PI2FD_PqQq },
|
||||
/* 0E */ { 0, BX_IA_ERROR },
|
||||
/* 0F */ { 0, BX_IA_ERROR },
|
||||
/* 10 */ { 0, BX_IA_ERROR },
|
||||
/* 11 */ { 0, BX_IA_ERROR },
|
||||
/* 12 */ { 0, BX_IA_ERROR },
|
||||
/* 13 */ { 0, BX_IA_ERROR },
|
||||
/* 14 */ { 0, BX_IA_ERROR },
|
||||
/* 15 */ { 0, BX_IA_ERROR },
|
||||
/* 16 */ { 0, BX_IA_ERROR },
|
||||
/* 17 */ { 0, BX_IA_ERROR },
|
||||
/* 18 */ { 0, BX_IA_ERROR },
|
||||
/* 19 */ { 0, BX_IA_ERROR },
|
||||
/* 1A */ { 0, BX_IA_ERROR },
|
||||
/* 1B */ { 0, BX_IA_ERROR },
|
||||
/* 1C */ { 0, BX_IA_PF2IW_PqQq },
|
||||
/* 1D */ { 0, BX_IA_PF2ID_PqQq },
|
||||
/* 1E */ { 0, BX_IA_ERROR },
|
||||
/* 1F */ { 0, BX_IA_ERROR },
|
||||
/* 20 */ { 0, BX_IA_ERROR },
|
||||
/* 21 */ { 0, BX_IA_ERROR },
|
||||
/* 22 */ { 0, BX_IA_ERROR },
|
||||
/* 23 */ { 0, BX_IA_ERROR },
|
||||
/* 24 */ { 0, BX_IA_ERROR },
|
||||
/* 25 */ { 0, BX_IA_ERROR },
|
||||
/* 26 */ { 0, BX_IA_ERROR },
|
||||
/* 27 */ { 0, BX_IA_ERROR },
|
||||
/* 28 */ { 0, BX_IA_ERROR },
|
||||
/* 29 */ { 0, BX_IA_ERROR },
|
||||
/* 2A */ { 0, BX_IA_ERROR },
|
||||
/* 2B */ { 0, BX_IA_ERROR },
|
||||
/* 2C */ { 0, BX_IA_ERROR },
|
||||
/* 2D */ { 0, BX_IA_ERROR },
|
||||
/* 2E */ { 0, BX_IA_ERROR },
|
||||
/* 2F */ { 0, BX_IA_ERROR },
|
||||
/* 30 */ { 0, BX_IA_ERROR },
|
||||
/* 31 */ { 0, BX_IA_ERROR },
|
||||
/* 32 */ { 0, BX_IA_ERROR },
|
||||
/* 33 */ { 0, BX_IA_ERROR },
|
||||
/* 34 */ { 0, BX_IA_ERROR },
|
||||
/* 35 */ { 0, BX_IA_ERROR },
|
||||
/* 36 */ { 0, BX_IA_ERROR },
|
||||
/* 37 */ { 0, BX_IA_ERROR },
|
||||
/* 38 */ { 0, BX_IA_ERROR },
|
||||
/* 39 */ { 0, BX_IA_ERROR },
|
||||
/* 3A */ { 0, BX_IA_ERROR },
|
||||
/* 3B */ { 0, BX_IA_ERROR },
|
||||
/* 3C */ { 0, BX_IA_ERROR },
|
||||
/* 3D */ { 0, BX_IA_ERROR },
|
||||
/* 3E */ { 0, BX_IA_ERROR },
|
||||
/* 3F */ { 0, BX_IA_ERROR },
|
||||
/* 40 */ { 0, BX_IA_ERROR },
|
||||
/* 41 */ { 0, BX_IA_ERROR },
|
||||
/* 42 */ { 0, BX_IA_ERROR },
|
||||
/* 43 */ { 0, BX_IA_ERROR },
|
||||
/* 44 */ { 0, BX_IA_ERROR },
|
||||
/* 45 */ { 0, BX_IA_ERROR },
|
||||
/* 46 */ { 0, BX_IA_ERROR },
|
||||
/* 47 */ { 0, BX_IA_ERROR },
|
||||
/* 48 */ { 0, BX_IA_ERROR },
|
||||
/* 49 */ { 0, BX_IA_ERROR },
|
||||
/* 4A */ { 0, BX_IA_ERROR },
|
||||
/* 4B */ { 0, BX_IA_ERROR },
|
||||
/* 4C */ { 0, BX_IA_ERROR },
|
||||
/* 4D */ { 0, BX_IA_ERROR },
|
||||
/* 4E */ { 0, BX_IA_ERROR },
|
||||
/* 4F */ { 0, BX_IA_ERROR },
|
||||
/* 50 */ { 0, BX_IA_ERROR },
|
||||
/* 51 */ { 0, BX_IA_ERROR },
|
||||
/* 52 */ { 0, BX_IA_ERROR },
|
||||
/* 53 */ { 0, BX_IA_ERROR },
|
||||
/* 54 */ { 0, BX_IA_ERROR },
|
||||
/* 55 */ { 0, BX_IA_ERROR },
|
||||
/* 56 */ { 0, BX_IA_ERROR },
|
||||
/* 57 */ { 0, BX_IA_ERROR },
|
||||
/* 58 */ { 0, BX_IA_ERROR },
|
||||
/* 59 */ { 0, BX_IA_ERROR },
|
||||
/* 5A */ { 0, BX_IA_ERROR },
|
||||
/* 5B */ { 0, BX_IA_ERROR },
|
||||
/* 5C */ { 0, BX_IA_ERROR },
|
||||
/* 5D */ { 0, BX_IA_ERROR },
|
||||
/* 5E */ { 0, BX_IA_ERROR },
|
||||
/* 5F */ { 0, BX_IA_ERROR },
|
||||
/* 60 */ { 0, BX_IA_ERROR },
|
||||
/* 61 */ { 0, BX_IA_ERROR },
|
||||
/* 62 */ { 0, BX_IA_ERROR },
|
||||
/* 63 */ { 0, BX_IA_ERROR },
|
||||
/* 64 */ { 0, BX_IA_ERROR },
|
||||
/* 65 */ { 0, BX_IA_ERROR },
|
||||
/* 66 */ { 0, BX_IA_ERROR },
|
||||
/* 67 */ { 0, BX_IA_ERROR },
|
||||
/* 68 */ { 0, BX_IA_ERROR },
|
||||
/* 69 */ { 0, BX_IA_ERROR },
|
||||
/* 6A */ { 0, BX_IA_ERROR },
|
||||
/* 6B */ { 0, BX_IA_ERROR },
|
||||
/* 6C */ { 0, BX_IA_ERROR },
|
||||
/* 6D */ { 0, BX_IA_ERROR },
|
||||
/* 6E */ { 0, BX_IA_ERROR },
|
||||
/* 6F */ { 0, BX_IA_ERROR },
|
||||
/* 70 */ { 0, BX_IA_ERROR },
|
||||
/* 71 */ { 0, BX_IA_ERROR },
|
||||
/* 72 */ { 0, BX_IA_ERROR },
|
||||
/* 73 */ { 0, BX_IA_ERROR },
|
||||
/* 74 */ { 0, BX_IA_ERROR },
|
||||
/* 75 */ { 0, BX_IA_ERROR },
|
||||
/* 76 */ { 0, BX_IA_ERROR },
|
||||
/* 77 */ { 0, BX_IA_ERROR },
|
||||
/* 78 */ { 0, BX_IA_ERROR },
|
||||
/* 79 */ { 0, BX_IA_ERROR },
|
||||
/* 7A */ { 0, BX_IA_ERROR },
|
||||
/* 7B */ { 0, BX_IA_ERROR },
|
||||
/* 7C */ { 0, BX_IA_ERROR },
|
||||
/* 7D */ { 0, BX_IA_ERROR },
|
||||
/* 7E */ { 0, BX_IA_ERROR },
|
||||
/* 7F */ { 0, BX_IA_ERROR },
|
||||
/* 80 */ { 0, BX_IA_ERROR },
|
||||
/* 81 */ { 0, BX_IA_ERROR },
|
||||
/* 82 */ { 0, BX_IA_ERROR },
|
||||
/* 83 */ { 0, BX_IA_ERROR },
|
||||
/* 84 */ { 0, BX_IA_ERROR },
|
||||
/* 85 */ { 0, BX_IA_ERROR },
|
||||
/* 86 */ { 0, BX_IA_ERROR },
|
||||
/* 87 */ { 0, BX_IA_ERROR },
|
||||
/* 88 */ { 0, BX_IA_ERROR },
|
||||
/* 89 */ { 0, BX_IA_ERROR },
|
||||
/* 8A */ { 0, BX_IA_PFNACC_PqQq },
|
||||
/* 8B */ { 0, BX_IA_ERROR },
|
||||
/* 8C */ { 0, BX_IA_ERROR },
|
||||
/* 8D */ { 0, BX_IA_ERROR },
|
||||
/* 8E */ { 0, BX_IA_PFPNACC_PqQq },
|
||||
/* 8F */ { 0, BX_IA_ERROR },
|
||||
/* 90 */ { 0, BX_IA_PFCMPGE_PqQq },
|
||||
/* 91 */ { 0, BX_IA_ERROR },
|
||||
/* 92 */ { 0, BX_IA_ERROR },
|
||||
/* 93 */ { 0, BX_IA_ERROR },
|
||||
/* 94 */ { 0, BX_IA_PFMIN_PqQq },
|
||||
/* 95 */ { 0, BX_IA_ERROR },
|
||||
/* 96 */ { 0, BX_IA_PFRCP_PqQq },
|
||||
/* 97 */ { 0, BX_IA_PFRSQRT_PqQq },
|
||||
/* 98 */ { 0, BX_IA_ERROR },
|
||||
/* 99 */ { 0, BX_IA_ERROR },
|
||||
/* 9A */ { 0, BX_IA_PFSUB_PqQq },
|
||||
/* 9B */ { 0, BX_IA_ERROR },
|
||||
/* 9C */ { 0, BX_IA_ERROR },
|
||||
/* 9D */ { 0, BX_IA_ERROR },
|
||||
/* 9E */ { 0, BX_IA_PFADD_PqQq },
|
||||
/* 9F */ { 0, BX_IA_ERROR },
|
||||
/* A0 */ { 0, BX_IA_PFCMPGT_PqQq },
|
||||
/* A1 */ { 0, BX_IA_ERROR },
|
||||
/* A2 */ { 0, BX_IA_ERROR },
|
||||
/* A3 */ { 0, BX_IA_ERROR },
|
||||
/* A4 */ { 0, BX_IA_PFMAX_PqQq },
|
||||
/* A5 */ { 0, BX_IA_ERROR },
|
||||
/* A6 */ { 0, BX_IA_PFRCPIT1_PqQq },
|
||||
/* A7 */ { 0, BX_IA_PFRSQIT1_PqQq },
|
||||
/* A8 */ { 0, BX_IA_ERROR },
|
||||
/* A9 */ { 0, BX_IA_ERROR },
|
||||
/* AA */ { 0, BX_IA_PFSUBR_PqQq },
|
||||
/* AB */ { 0, BX_IA_ERROR },
|
||||
/* AC */ { 0, BX_IA_ERROR },
|
||||
/* AD */ { 0, BX_IA_ERROR },
|
||||
/* AE */ { 0, BX_IA_PFACC_PqQq },
|
||||
/* AF */ { 0, BX_IA_ERROR },
|
||||
/* B0 */ { 0, BX_IA_PFCMPEQ_PqQq },
|
||||
/* B1 */ { 0, BX_IA_ERROR },
|
||||
/* B2 */ { 0, BX_IA_ERROR },
|
||||
/* B3 */ { 0, BX_IA_ERROR },
|
||||
/* B4 */ { 0, BX_IA_PFMUL_PqQq },
|
||||
/* B5 */ { 0, BX_IA_ERROR },
|
||||
/* B6 */ { 0, BX_IA_PFRCPIT2_PqQq },
|
||||
/* B7 */ { 0, BX_IA_PMULHRW_PqQq },
|
||||
/* B8 */ { 0, BX_IA_ERROR },
|
||||
/* B9 */ { 0, BX_IA_ERROR },
|
||||
/* BA */ { 0, BX_IA_ERROR },
|
||||
/* BB */ { 0, BX_IA_PSWAPD_PqQq },
|
||||
/* BC */ { 0, BX_IA_ERROR },
|
||||
/* BD */ { 0, BX_IA_ERROR },
|
||||
/* BE */ { 0, BX_IA_ERROR },
|
||||
/* BF */ { 0, BX_IA_PAVGB_PqQq },
|
||||
/* C0 */ { 0, BX_IA_ERROR },
|
||||
/* C1 */ { 0, BX_IA_ERROR },
|
||||
/* C2 */ { 0, BX_IA_ERROR },
|
||||
/* C3 */ { 0, BX_IA_ERROR },
|
||||
/* C4 */ { 0, BX_IA_ERROR },
|
||||
/* C5 */ { 0, BX_IA_ERROR },
|
||||
/* C6 */ { 0, BX_IA_ERROR },
|
||||
/* C7 */ { 0, BX_IA_ERROR },
|
||||
/* C8 */ { 0, BX_IA_ERROR },
|
||||
/* C9 */ { 0, BX_IA_ERROR },
|
||||
/* CA */ { 0, BX_IA_ERROR },
|
||||
/* CB */ { 0, BX_IA_ERROR },
|
||||
/* CC */ { 0, BX_IA_ERROR },
|
||||
/* CD */ { 0, BX_IA_ERROR },
|
||||
/* CE */ { 0, BX_IA_ERROR },
|
||||
/* CF */ { 0, BX_IA_ERROR },
|
||||
/* D0 */ { 0, BX_IA_ERROR },
|
||||
/* D1 */ { 0, BX_IA_ERROR },
|
||||
/* D2 */ { 0, BX_IA_ERROR },
|
||||
/* D3 */ { 0, BX_IA_ERROR },
|
||||
/* D4 */ { 0, BX_IA_ERROR },
|
||||
/* D5 */ { 0, BX_IA_ERROR },
|
||||
/* D6 */ { 0, BX_IA_ERROR },
|
||||
/* D7 */ { 0, BX_IA_ERROR },
|
||||
/* D8 */ { 0, BX_IA_ERROR },
|
||||
/* D9 */ { 0, BX_IA_ERROR },
|
||||
/* DA */ { 0, BX_IA_ERROR },
|
||||
/* DB */ { 0, BX_IA_ERROR },
|
||||
/* DC */ { 0, BX_IA_ERROR },
|
||||
/* DD */ { 0, BX_IA_ERROR },
|
||||
/* DE */ { 0, BX_IA_ERROR },
|
||||
/* DF */ { 0, BX_IA_ERROR },
|
||||
/* E0 */ { 0, BX_IA_ERROR },
|
||||
/* E1 */ { 0, BX_IA_ERROR },
|
||||
/* E2 */ { 0, BX_IA_ERROR },
|
||||
/* E3 */ { 0, BX_IA_ERROR },
|
||||
/* E4 */ { 0, BX_IA_ERROR },
|
||||
/* E5 */ { 0, BX_IA_ERROR },
|
||||
/* E6 */ { 0, BX_IA_ERROR },
|
||||
/* E7 */ { 0, BX_IA_ERROR },
|
||||
/* E8 */ { 0, BX_IA_ERROR },
|
||||
/* E9 */ { 0, BX_IA_ERROR },
|
||||
/* EA */ { 0, BX_IA_ERROR },
|
||||
/* EB */ { 0, BX_IA_ERROR },
|
||||
/* EC */ { 0, BX_IA_ERROR },
|
||||
/* ED */ { 0, BX_IA_ERROR },
|
||||
/* EE */ { 0, BX_IA_ERROR },
|
||||
/* EF */ { 0, BX_IA_ERROR },
|
||||
/* F0 */ { 0, BX_IA_ERROR },
|
||||
/* F1 */ { 0, BX_IA_ERROR },
|
||||
/* F2 */ { 0, BX_IA_ERROR },
|
||||
/* F3 */ { 0, BX_IA_ERROR },
|
||||
/* F4 */ { 0, BX_IA_ERROR },
|
||||
/* F5 */ { 0, BX_IA_ERROR },
|
||||
/* F6 */ { 0, BX_IA_ERROR },
|
||||
/* F7 */ { 0, BX_IA_ERROR },
|
||||
/* F8 */ { 0, BX_IA_ERROR },
|
||||
/* F9 */ { 0, BX_IA_ERROR },
|
||||
/* FA */ { 0, BX_IA_ERROR },
|
||||
/* FB */ { 0, BX_IA_ERROR },
|
||||
/* FC */ { 0, BX_IA_ERROR },
|
||||
/* FD */ { 0, BX_IA_ERROR },
|
||||
/* FE */ { 0, BX_IA_ERROR },
|
||||
/* FF */ { 0, BX_IA_ERROR }
|
||||
/* 00 */ BX_IA_ERROR,
|
||||
/* 01 */ BX_IA_ERROR,
|
||||
/* 02 */ BX_IA_ERROR,
|
||||
/* 03 */ BX_IA_ERROR,
|
||||
/* 04 */ BX_IA_ERROR,
|
||||
/* 05 */ BX_IA_ERROR,
|
||||
/* 06 */ BX_IA_ERROR,
|
||||
/* 07 */ BX_IA_ERROR,
|
||||
/* 08 */ BX_IA_ERROR,
|
||||
/* 09 */ BX_IA_ERROR,
|
||||
/* 0A */ BX_IA_ERROR,
|
||||
/* 0B */ BX_IA_ERROR,
|
||||
/* 0C */ BX_IA_PI2FW_PqQq,
|
||||
/* 0D */ BX_IA_PI2FD_PqQq,
|
||||
/* 0E */ BX_IA_ERROR,
|
||||
/* 0F */ BX_IA_ERROR,
|
||||
/* 10 */ BX_IA_ERROR,
|
||||
/* 11 */ BX_IA_ERROR,
|
||||
/* 12 */ BX_IA_ERROR,
|
||||
/* 13 */ BX_IA_ERROR,
|
||||
/* 14 */ BX_IA_ERROR,
|
||||
/* 15 */ BX_IA_ERROR,
|
||||
/* 16 */ BX_IA_ERROR,
|
||||
/* 17 */ BX_IA_ERROR,
|
||||
/* 18 */ BX_IA_ERROR,
|
||||
/* 19 */ BX_IA_ERROR,
|
||||
/* 1A */ BX_IA_ERROR,
|
||||
/* 1B */ BX_IA_ERROR,
|
||||
/* 1C */ BX_IA_PF2IW_PqQq,
|
||||
/* 1D */ BX_IA_PF2ID_PqQq,
|
||||
/* 1E */ BX_IA_ERROR,
|
||||
/* 1F */ BX_IA_ERROR,
|
||||
/* 20 */ BX_IA_ERROR,
|
||||
/* 21 */ BX_IA_ERROR,
|
||||
/* 22 */ BX_IA_ERROR,
|
||||
/* 23 */ BX_IA_ERROR,
|
||||
/* 24 */ BX_IA_ERROR,
|
||||
/* 25 */ BX_IA_ERROR,
|
||||
/* 26 */ BX_IA_ERROR,
|
||||
/* 27 */ BX_IA_ERROR,
|
||||
/* 28 */ BX_IA_ERROR,
|
||||
/* 29 */ BX_IA_ERROR,
|
||||
/* 2A */ BX_IA_ERROR,
|
||||
/* 2B */ BX_IA_ERROR,
|
||||
/* 2C */ BX_IA_ERROR,
|
||||
/* 2D */ BX_IA_ERROR,
|
||||
/* 2E */ BX_IA_ERROR,
|
||||
/* 2F */ BX_IA_ERROR,
|
||||
/* 30 */ BX_IA_ERROR,
|
||||
/* 31 */ BX_IA_ERROR,
|
||||
/* 32 */ BX_IA_ERROR,
|
||||
/* 33 */ BX_IA_ERROR,
|
||||
/* 34 */ BX_IA_ERROR,
|
||||
/* 35 */ BX_IA_ERROR,
|
||||
/* 36 */ BX_IA_ERROR,
|
||||
/* 37 */ BX_IA_ERROR,
|
||||
/* 38 */ BX_IA_ERROR,
|
||||
/* 39 */ BX_IA_ERROR,
|
||||
/* 3A */ BX_IA_ERROR,
|
||||
/* 3B */ BX_IA_ERROR,
|
||||
/* 3C */ BX_IA_ERROR,
|
||||
/* 3D */ BX_IA_ERROR,
|
||||
/* 3E */ BX_IA_ERROR,
|
||||
/* 3F */ BX_IA_ERROR,
|
||||
/* 40 */ BX_IA_ERROR,
|
||||
/* 41 */ BX_IA_ERROR,
|
||||
/* 42 */ BX_IA_ERROR,
|
||||
/* 43 */ BX_IA_ERROR,
|
||||
/* 44 */ BX_IA_ERROR,
|
||||
/* 45 */ BX_IA_ERROR,
|
||||
/* 46 */ BX_IA_ERROR,
|
||||
/* 47 */ BX_IA_ERROR,
|
||||
/* 48 */ BX_IA_ERROR,
|
||||
/* 49 */ BX_IA_ERROR,
|
||||
/* 4A */ BX_IA_ERROR,
|
||||
/* 4B */ BX_IA_ERROR,
|
||||
/* 4C */ BX_IA_ERROR,
|
||||
/* 4D */ BX_IA_ERROR,
|
||||
/* 4E */ BX_IA_ERROR,
|
||||
/* 4F */ BX_IA_ERROR,
|
||||
/* 50 */ BX_IA_ERROR,
|
||||
/* 51 */ BX_IA_ERROR,
|
||||
/* 52 */ BX_IA_ERROR,
|
||||
/* 53 */ BX_IA_ERROR,
|
||||
/* 54 */ BX_IA_ERROR,
|
||||
/* 55 */ BX_IA_ERROR,
|
||||
/* 56 */ BX_IA_ERROR,
|
||||
/* 57 */ BX_IA_ERROR,
|
||||
/* 58 */ BX_IA_ERROR,
|
||||
/* 59 */ BX_IA_ERROR,
|
||||
/* 5A */ BX_IA_ERROR,
|
||||
/* 5B */ BX_IA_ERROR,
|
||||
/* 5C */ BX_IA_ERROR,
|
||||
/* 5D */ BX_IA_ERROR,
|
||||
/* 5E */ BX_IA_ERROR,
|
||||
/* 5F */ BX_IA_ERROR,
|
||||
/* 60 */ BX_IA_ERROR,
|
||||
/* 61 */ BX_IA_ERROR,
|
||||
/* 62 */ BX_IA_ERROR,
|
||||
/* 63 */ BX_IA_ERROR,
|
||||
/* 64 */ BX_IA_ERROR,
|
||||
/* 65 */ BX_IA_ERROR,
|
||||
/* 66 */ BX_IA_ERROR,
|
||||
/* 67 */ BX_IA_ERROR,
|
||||
/* 68 */ BX_IA_ERROR,
|
||||
/* 69 */ BX_IA_ERROR,
|
||||
/* 6A */ BX_IA_ERROR,
|
||||
/* 6B */ BX_IA_ERROR,
|
||||
/* 6C */ BX_IA_ERROR,
|
||||
/* 6D */ BX_IA_ERROR,
|
||||
/* 6E */ BX_IA_ERROR,
|
||||
/* 6F */ BX_IA_ERROR,
|
||||
/* 70 */ BX_IA_ERROR,
|
||||
/* 71 */ BX_IA_ERROR,
|
||||
/* 72 */ BX_IA_ERROR,
|
||||
/* 73 */ BX_IA_ERROR,
|
||||
/* 74 */ BX_IA_ERROR,
|
||||
/* 75 */ BX_IA_ERROR,
|
||||
/* 76 */ BX_IA_ERROR,
|
||||
/* 77 */ BX_IA_ERROR,
|
||||
/* 78 */ BX_IA_ERROR,
|
||||
/* 79 */ BX_IA_ERROR,
|
||||
/* 7A */ BX_IA_ERROR,
|
||||
/* 7B */ BX_IA_ERROR,
|
||||
/* 7C */ BX_IA_ERROR,
|
||||
/* 7D */ BX_IA_ERROR,
|
||||
/* 7E */ BX_IA_ERROR,
|
||||
/* 7F */ BX_IA_ERROR,
|
||||
/* 80 */ BX_IA_ERROR,
|
||||
/* 81 */ BX_IA_ERROR,
|
||||
/* 82 */ BX_IA_ERROR,
|
||||
/* 83 */ BX_IA_ERROR,
|
||||
/* 84 */ BX_IA_ERROR,
|
||||
/* 85 */ BX_IA_ERROR,
|
||||
/* 86 */ BX_IA_ERROR,
|
||||
/* 87 */ BX_IA_ERROR,
|
||||
/* 88 */ BX_IA_ERROR,
|
||||
/* 89 */ BX_IA_ERROR,
|
||||
/* 8A */ BX_IA_PFNACC_PqQq,
|
||||
/* 8B */ BX_IA_ERROR,
|
||||
/* 8C */ BX_IA_ERROR,
|
||||
/* 8D */ BX_IA_ERROR,
|
||||
/* 8E */ BX_IA_PFPNACC_PqQq,
|
||||
/* 8F */ BX_IA_ERROR,
|
||||
/* 90 */ BX_IA_PFCMPGE_PqQq,
|
||||
/* 91 */ BX_IA_ERROR,
|
||||
/* 92 */ BX_IA_ERROR,
|
||||
/* 93 */ BX_IA_ERROR,
|
||||
/* 94 */ BX_IA_PFMIN_PqQq,
|
||||
/* 95 */ BX_IA_ERROR,
|
||||
/* 96 */ BX_IA_PFRCP_PqQq,
|
||||
/* 97 */ BX_IA_PFRSQRT_PqQq,
|
||||
/* 98 */ BX_IA_ERROR,
|
||||
/* 99 */ BX_IA_ERROR,
|
||||
/* 9A */ BX_IA_PFSUB_PqQq,
|
||||
/* 9B */ BX_IA_ERROR,
|
||||
/* 9C */ BX_IA_ERROR,
|
||||
/* 9D */ BX_IA_ERROR,
|
||||
/* 9E */ BX_IA_PFADD_PqQq,
|
||||
/* 9F */ BX_IA_ERROR,
|
||||
/* A0 */ BX_IA_PFCMPGT_PqQq,
|
||||
/* A1 */ BX_IA_ERROR,
|
||||
/* A2 */ BX_IA_ERROR,
|
||||
/* A3 */ BX_IA_ERROR,
|
||||
/* A4 */ BX_IA_PFMAX_PqQq,
|
||||
/* A5 */ BX_IA_ERROR,
|
||||
/* A6 */ BX_IA_PFRCPIT1_PqQq,
|
||||
/* A7 */ BX_IA_PFRSQIT1_PqQq,
|
||||
/* A8 */ BX_IA_ERROR,
|
||||
/* A9 */ BX_IA_ERROR,
|
||||
/* AA */ BX_IA_PFSUBR_PqQq,
|
||||
/* AB */ BX_IA_ERROR,
|
||||
/* AC */ BX_IA_ERROR,
|
||||
/* AD */ BX_IA_ERROR,
|
||||
/* AE */ BX_IA_PFACC_PqQq,
|
||||
/* AF */ BX_IA_ERROR,
|
||||
/* B0 */ BX_IA_PFCMPEQ_PqQq,
|
||||
/* B1 */ BX_IA_ERROR,
|
||||
/* B2 */ BX_IA_ERROR,
|
||||
/* B3 */ BX_IA_ERROR,
|
||||
/* B4 */ BX_IA_PFMUL_PqQq,
|
||||
/* B5 */ BX_IA_ERROR,
|
||||
/* B6 */ BX_IA_PFRCPIT2_PqQq,
|
||||
/* B7 */ BX_IA_PMULHRW_PqQq,
|
||||
/* B8 */ BX_IA_ERROR,
|
||||
/* B9 */ BX_IA_ERROR,
|
||||
/* BA */ BX_IA_ERROR,
|
||||
/* BB */ BX_IA_PSWAPD_PqQq,
|
||||
/* BC */ BX_IA_ERROR,
|
||||
/* BD */ BX_IA_ERROR,
|
||||
/* BE */ BX_IA_ERROR,
|
||||
/* BF */ BX_IA_PAVGB_PqQq,
|
||||
/* C0 */ BX_IA_ERROR,
|
||||
/* C1 */ BX_IA_ERROR,
|
||||
/* C2 */ BX_IA_ERROR,
|
||||
/* C3 */ BX_IA_ERROR,
|
||||
/* C4 */ BX_IA_ERROR,
|
||||
/* C5 */ BX_IA_ERROR,
|
||||
/* C6 */ BX_IA_ERROR,
|
||||
/* C7 */ BX_IA_ERROR,
|
||||
/* C8 */ BX_IA_ERROR,
|
||||
/* C9 */ BX_IA_ERROR,
|
||||
/* CA */ BX_IA_ERROR,
|
||||
/* CB */ BX_IA_ERROR,
|
||||
/* CC */ BX_IA_ERROR,
|
||||
/* CD */ BX_IA_ERROR,
|
||||
/* CE */ BX_IA_ERROR,
|
||||
/* CF */ BX_IA_ERROR,
|
||||
/* D0 */ BX_IA_ERROR,
|
||||
/* D1 */ BX_IA_ERROR,
|
||||
/* D2 */ BX_IA_ERROR,
|
||||
/* D3 */ BX_IA_ERROR,
|
||||
/* D4 */ BX_IA_ERROR,
|
||||
/* D5 */ BX_IA_ERROR,
|
||||
/* D6 */ BX_IA_ERROR,
|
||||
/* D7 */ BX_IA_ERROR,
|
||||
/* D8 */ BX_IA_ERROR,
|
||||
/* D9 */ BX_IA_ERROR,
|
||||
/* DA */ BX_IA_ERROR,
|
||||
/* DB */ BX_IA_ERROR,
|
||||
/* DC */ BX_IA_ERROR,
|
||||
/* DD */ BX_IA_ERROR,
|
||||
/* DE */ BX_IA_ERROR,
|
||||
/* DF */ BX_IA_ERROR,
|
||||
/* E0 */ BX_IA_ERROR,
|
||||
/* E1 */ BX_IA_ERROR,
|
||||
/* E2 */ BX_IA_ERROR,
|
||||
/* E3 */ BX_IA_ERROR,
|
||||
/* E4 */ BX_IA_ERROR,
|
||||
/* E5 */ BX_IA_ERROR,
|
||||
/* E6 */ BX_IA_ERROR,
|
||||
/* E7 */ BX_IA_ERROR,
|
||||
/* E8 */ BX_IA_ERROR,
|
||||
/* E9 */ BX_IA_ERROR,
|
||||
/* EA */ BX_IA_ERROR,
|
||||
/* EB */ BX_IA_ERROR,
|
||||
/* EC */ BX_IA_ERROR,
|
||||
/* ED */ BX_IA_ERROR,
|
||||
/* EE */ BX_IA_ERROR,
|
||||
/* EF */ BX_IA_ERROR,
|
||||
/* F0 */ BX_IA_ERROR,
|
||||
/* F1 */ BX_IA_ERROR,
|
||||
/* F2 */ BX_IA_ERROR,
|
||||
/* F3 */ BX_IA_ERROR,
|
||||
/* F4 */ BX_IA_ERROR,
|
||||
/* F5 */ BX_IA_ERROR,
|
||||
/* F6 */ BX_IA_ERROR,
|
||||
/* F7 */ BX_IA_ERROR,
|
||||
/* F8 */ BX_IA_ERROR,
|
||||
/* F9 */ BX_IA_ERROR,
|
||||
/* FA */ BX_IA_ERROR,
|
||||
/* FB */ BX_IA_ERROR,
|
||||
/* FC */ BX_IA_ERROR,
|
||||
/* FD */ BX_IA_ERROR,
|
||||
/* FE */ BX_IA_ERROR,
|
||||
/* FF */ BX_IA_ERROR
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: fetchdecode64.cc,v 1.243 2010-01-29 10:16:28 sshwarts Exp $
|
||||
// $Id: fetchdecode64.cc,v 1.244 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (C) 2001-2009 The Bochs Project
|
||||
|
@ -3841,7 +3841,7 @@ modrm_done:
|
|||
|
||||
#if BX_SUPPORT_3DNOW
|
||||
if(b1 == 0x10f)
|
||||
ia_opcode = Bx3DNowOpcodeInfo[i->modRMForm.Ib].IA;
|
||||
ia_opcode = Bx3DNowOpcode[i->modRMForm.Ib];
|
||||
#endif
|
||||
|
||||
if (! BX_NULL_SEG_REG(seg_override))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: dis_decode.cc,v 1.52 2009-10-14 20:45:29 sshwarts Exp $
|
||||
// $Id: dis_decode.cc,v 1.53 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005-2009 Stanislav Shwartsman
|
||||
|
@ -221,6 +221,20 @@ x86_insn disassembler::decode(bx_bool is_32, bx_bool is_64, bx_address base, bx_
|
|||
entry = &(OPCODE_TABLE(entry)[insn.nnn & 7]);
|
||||
break;
|
||||
|
||||
case _GRPSSE66:
|
||||
/* SSE opcode group with only prefix 0x66 allowed */
|
||||
sse_opcode = 1;
|
||||
if (sse_prefix != SSE_PREFIX_66)
|
||||
entry = &(OPCODE_TABLE(entry)[sse_prefix]);
|
||||
break;
|
||||
|
||||
case _GRPSSEF2:
|
||||
/* SSE opcode group with only prefix 0xF2 allowed */
|
||||
sse_opcode = 1;
|
||||
if (sse_prefix != SSE_PREFIX_F2)
|
||||
entry = &(OPCODE_TABLE(entry)[sse_prefix]);
|
||||
break;
|
||||
|
||||
case _GRPSSE:
|
||||
sse_opcode = 1;
|
||||
/* For SSE opcodes, look into another 4 entries table
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: dis_tables.h,v 1.37 2009-10-14 20:45:29 sshwarts Exp $
|
||||
// $Id: dis_tables.h,v 1.38 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005-2009 Stanislav Shwartsman
|
||||
|
@ -28,12 +28,16 @@
|
|||
#define _GRPFP 3
|
||||
#define _GRP3DNOW 4
|
||||
#define _GRPSSE 5
|
||||
#define _GRPRM 6
|
||||
#define _GRP3BOP 7
|
||||
#define _GRP64B 8
|
||||
#define _GRPSSE66 6
|
||||
#define _GRPSSEF2 7
|
||||
#define _GRPRM 8
|
||||
#define _GRP3BOP 9
|
||||
#define _GRP64B 10
|
||||
|
||||
/* ************************************************************************ */
|
||||
#define GRPSSE(n) _GRPSSE, BxDisasmGroupSSE_##n
|
||||
#define GRPSSE66(n) _GRPSSE66, BxDisasmGroupSSE_ERR
|
||||
#define GRPSSEF2(n) _GRPSSEF2, BxDisasmGroupSSE_ERR
|
||||
#define GRPN(n) _GROUPN, BxDisasmGroup##n
|
||||
#define GRPRM(n) _GRPRM, BxDisasmGroupRm##n
|
||||
#define GRPMOD(n) _SPLIT11B, BxDisasmGroupMod##n
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: dis_tables.inc,v 1.29 2010-01-11 21:27:59 sshwarts Exp $
|
||||
// $Id: dis_tables.inc,v 1.30 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005-2009 Stanislav Shwartsman
|
||||
|
@ -24,6 +24,13 @@
|
|||
/* ************************************************************************ */
|
||||
/* SSE opcodes */
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_ERR[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_Invalid },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f10[4] = {
|
||||
/* -- */ { 0, &Ia_movups_Vps_Wps },
|
||||
/* 66 */ { 0, &Ia_movupd_Vpd_Wpd },
|
||||
|
@ -261,34 +268,6 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f380b[4] = {
|
|||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3810[4] = {
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pblendvb_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3814[4] = {
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_blendvps_Vps_Wps }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3815[4] = {
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_blendvpd_Vpd_Wpd }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3817[4] = {
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_ptest_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381c[4] = {
|
||||
/* -- */ { 0, &Ia_pabsb_Pq_Qq }, // SSE3E
|
||||
/* 66 */ { 0, &Ia_pabsb_Vdq_Wdq },
|
||||
|
@ -310,231 +289,6 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f381e[4] = {
|
|||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3820[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovsxbw_Vdq_Wq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3821[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovsxbd_Vdq_Wd }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3822[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovsxbq_Vdq_Ww }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3823[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovsxwd_Vdq_Wq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3824[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovsxwq_Vdq_Wd }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3825[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovsxdq_Vdq_Wq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3828[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmuldq_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3829[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pcmpeqq_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f382a[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_movntdqa_Vdq_Mdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f382b[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_packusdw_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3830[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovzxbw_Vdq_Wq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3831[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovzxbd_Vdq_Wd }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3832[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovzxbq_Vdq_Ww }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3833[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovzxwd_Vdq_Wq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3834[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovzxwq_Vdq_Wd }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3835[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmovzxdq_Vdq_Wq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3837[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pcmpgtq_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3838[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pminsb_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3839[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pminsd_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f383a[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pminuw_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f383b[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pminud_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f383c[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmaxsb_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f383d[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmaxsd_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f383e[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmaxuw_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f383f[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmaxud_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3840[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pmulld_Vdq_Wdq }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3841[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_phminposuw_Vdq_Wdq },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38db[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_aesimc_Vdq_Wdq }, // AES
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38dc[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_aesenc_Vdq_Wdq }, // AES
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38dd[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // AES
|
||||
/* 66 */ { 0, &Ia_aesenclast_Vdq_Wdq },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38de[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_aesdec_Vdq_Wdq }, // AES
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38df[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // AES
|
||||
/* 66 */ { 0, &Ia_aesdeclast_Vdq_Wdq },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_movbe_GvEv[3] = {
|
||||
/* 16 */ { 0, &Ia_movbe_Gw_Ew },
|
||||
/* 32 */ { 0, &Ia_movbe_Gd_Ed },
|
||||
|
@ -567,55 +321,6 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f38f1[4] = {
|
|||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a08[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_roundps_Vps_Wps_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a09[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_roundpd_Vpd_Wpd_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0a[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_roundss_Vss_Wss_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0b[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_roundsd_Vsd_Wsd_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0c[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_blendps_Vps_Wps_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0d[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_blendpd_Vpd_Wpd_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0e[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_pblendw_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0f[4] = {
|
||||
/* -- */ { 0, &Ia_palignr_Pq_Qq_Ib }, // SSE3E
|
||||
/* 66 */ { 0, &Ia_palignr_Vdq_Wdq_Ib },
|
||||
|
@ -623,20 +328,6 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a0f[4] = {
|
|||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a14[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_pextrb_Hbd_Udq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a15[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_pextrw_Hwd_Udq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pextr[3] = {
|
||||
/* 16 */ { 0, &Ia_pextrd_Hd_Udq_Ib },
|
||||
/* 32 */ { 0, &Ia_pextrd_Hd_Udq_Ib },
|
||||
|
@ -650,27 +341,6 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a16[4] = {
|
|||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a17[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_extractps_Hd_Udq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a20[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_pinsrb_Vdq_Ed_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a21[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_insertps_Vps_Wss_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGrpOs64B_pinsr[3] = {
|
||||
/* 16 */ { 0, &Ia_pinsrd_Vdq_Ed_Ib },
|
||||
/* 32 */ { 0, &Ia_pinsrd_Vdq_Ed_Ib },
|
||||
|
@ -684,69 +354,6 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a22[4] = {
|
|||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a40[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_dpps_Vps_Wps_Ib }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a41[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_dppd_Vpd_Wpd_Ib }, // SSE4
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a42[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4
|
||||
/* 66 */ { 0, &Ia_mpsadbw_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a44[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_pclmulqdq_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a60[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4.2
|
||||
/* 66 */ { 0, &Ia_pcmpestrm_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a61[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4.2
|
||||
/* 66 */ { 0, &Ia_pcmpestri_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a62[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4.2
|
||||
/* 66 */ { 0, &Ia_pcmpistrm_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3a63[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // SSE4.2
|
||||
/* 66 */ { 0, &Ia_pcmpistri_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f3adf[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid }, // AES
|
||||
/* 66 */ { 0, &Ia_aeskeygenassist_Vdq_Wdq_Ib },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_Invalid }
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f50[4] = {
|
||||
/* -- */ { 0, &Ia_movmskps_Gd_Vps },
|
||||
/* 66 */ { 0, &Ia_movmskpd_Gd_Vpd },
|
||||
|
@ -1080,27 +687,6 @@ static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0f7f[4] = {
|
|||
/* F3 */ { 0, &Ia_movdqu_Wdq_Vdq },
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fb8w[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_Invalid },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_popcnt_Gw_Ew } // SSE4.2
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fb8d[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_Invalid },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_popcnt_Gd_Ed } // SSE4.2
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fb8q[4] = {
|
||||
/* -- */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_Invalid },
|
||||
/* F2 */ { 0, &Ia_Invalid },
|
||||
/* F3 */ { 0, &Ia_popcnt_Gq_Eq } // SSE4.2
|
||||
};
|
||||
|
||||
static BxDisasmOpcodeTable_t BxDisasmGroupSSE_0fc2[4] = {
|
||||
/* -- */ { 0, &Ia_cmpps_Vps_Wps_Ib },
|
||||
/* 66 */ { 0, &Ia_cmppd_Vpd_Wpd_Ib },
|
||||
|
@ -3076,14 +2662,14 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f38[256] = {
|
|||
/* 0D */ { 0, &Ia_Invalid },
|
||||
/* 0E */ { 0, &Ia_Invalid },
|
||||
/* 0F */ { 0, &Ia_Invalid },
|
||||
/* 10 */ { GRPSSE(0f3810) },
|
||||
/* 10 */ { GRPSSE66(Ia_pblendvb_Vdq_Wdq) },
|
||||
/* 11 */ { 0, &Ia_Invalid },
|
||||
/* 12 */ { 0, &Ia_Invalid },
|
||||
/* 13 */ { 0, &Ia_Invalid },
|
||||
/* 14 */ { GRPSSE(0f3814) },
|
||||
/* 15 */ { GRPSSE(0f3815) },
|
||||
/* 14 */ { GRPSSE66(Ia_blendvps_Vps_Wps) },
|
||||
/* 15 */ { GRPSSE66(Ia_blendvpd_Vpd_Wpd) },
|
||||
/* 16 */ { 0, &Ia_Invalid },
|
||||
/* 17 */ { GRPSSE(0f3817) },
|
||||
/* 17 */ { GRPSSE66(Ia_ptest_Vdq_Wdq) },
|
||||
/* 18 */ { 0, &Ia_Invalid },
|
||||
/* 19 */ { 0, &Ia_Invalid },
|
||||
/* 1A */ { 0, &Ia_Invalid },
|
||||
|
@ -3092,40 +2678,40 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f38[256] = {
|
|||
/* 1D */ { GRPSSE(0f381d) },
|
||||
/* 1E */ { GRPSSE(0f381e) },
|
||||
/* 1F */ { 0, &Ia_Invalid },
|
||||
/* 20 */ { GRPSSE(0f3820) },
|
||||
/* 21 */ { GRPSSE(0f3821) },
|
||||
/* 22 */ { GRPSSE(0f3822) },
|
||||
/* 23 */ { GRPSSE(0f3823) },
|
||||
/* 24 */ { GRPSSE(0f3824) },
|
||||
/* 25 */ { GRPSSE(0f3825) },
|
||||
/* 20 */ { GRPSSE66(Ia_pmovsxbw_Vdq_Wq) },
|
||||
/* 21 */ { GRPSSE66(Ia_pmovsxbd_Vdq_Wd) },
|
||||
/* 22 */ { GRPSSE66(Ia_pmovsxbq_Vdq_Ww) },
|
||||
/* 23 */ { GRPSSE66(Ia_pmovsxwd_Vdq_Wq) },
|
||||
/* 24 */ { GRPSSE66(Ia_pmovsxwq_Vdq_Wd) },
|
||||
/* 25 */ { GRPSSE66(Ia_pmovsxdq_Vdq_Wq) },
|
||||
/* 26 */ { 0, &Ia_Invalid },
|
||||
/* 27 */ { 0, &Ia_Invalid },
|
||||
/* 28 */ { GRPSSE(0f3828) },
|
||||
/* 29 */ { GRPSSE(0f3829) },
|
||||
/* 2A */ { GRPSSE(0f382a) },
|
||||
/* 2B */ { GRPSSE(0f382b) },
|
||||
/* 28 */ { GRPSSE66(Ia_pmuldq_Vdq_Wdq) },
|
||||
/* 29 */ { GRPSSE66(Ia_pcmpeqq_Vdq_Wdq) },
|
||||
/* 2A */ { GRPSSE66(Ia_movntdqa_Vdq_Mdq) },
|
||||
/* 2B */ { GRPSSE66(Ia_packusdw_Vdq_Wdq) },
|
||||
/* 2C */ { 0, &Ia_Invalid },
|
||||
/* 2D */ { 0, &Ia_Invalid },
|
||||
/* 2E */ { 0, &Ia_Invalid },
|
||||
/* 2F */ { 0, &Ia_Invalid },
|
||||
/* 30 */ { GRPSSE(0f3830) },
|
||||
/* 31 */ { GRPSSE(0f3831) },
|
||||
/* 32 */ { GRPSSE(0f3832) },
|
||||
/* 33 */ { GRPSSE(0f3833) },
|
||||
/* 34 */ { GRPSSE(0f3834) },
|
||||
/* 35 */ { GRPSSE(0f3835) },
|
||||
/* 30 */ { GRPSSE66(Ia_pmovzxbw_Vdq_Wq) },
|
||||
/* 31 */ { GRPSSE66(Ia_pmovzxbd_Vdq_Wd) },
|
||||
/* 32 */ { GRPSSE66(Ia_pmovzxbq_Vdq_Ww) },
|
||||
/* 33 */ { GRPSSE66(Ia_pmovzxwd_Vdq_Wq) },
|
||||
/* 34 */ { GRPSSE66(Ia_pmovzxwq_Vdq_Wd) },
|
||||
/* 35 */ { GRPSSE66(Ia_pmovzxdq_Vdq_Wq) },
|
||||
/* 36 */ { 0, &Ia_Invalid },
|
||||
/* 37 */ { GRPSSE(0f3837) },
|
||||
/* 38 */ { GRPSSE(0f3838) },
|
||||
/* 39 */ { GRPSSE(0f3839) },
|
||||
/* 3A */ { GRPSSE(0f383a) },
|
||||
/* 3B */ { GRPSSE(0f383b) },
|
||||
/* 3C */ { GRPSSE(0f383c) },
|
||||
/* 3D */ { GRPSSE(0f383d) },
|
||||
/* 3E */ { GRPSSE(0f383e) },
|
||||
/* 3F */ { GRPSSE(0f383f) },
|
||||
/* 40 */ { GRPSSE(0f3840) },
|
||||
/* 41 */ { GRPSSE(0f3841) },
|
||||
/* 37 */ { GRPSSE66(Ia_pcmpgtq_Vdq_Wdq) },
|
||||
/* 38 */ { GRPSSE66(Ia_pminsb_Vdq_Wdq) },
|
||||
/* 39 */ { GRPSSE66(Ia_pminsd_Vdq_Wdq) },
|
||||
/* 3A */ { GRPSSE66(Ia_pminuw_Vdq_Wdq) },
|
||||
/* 3B */ { GRPSSE66(Ia_pminud_Vdq_Wdq) },
|
||||
/* 3C */ { GRPSSE66(Ia_pmaxsb_Vdq_Wdq) },
|
||||
/* 3D */ { GRPSSE66(Ia_pmaxsd_Vdq_Wdq) },
|
||||
/* 3E */ { GRPSSE66(Ia_pmaxuw_Vdq_Wdq) },
|
||||
/* 3F */ { GRPSSE66(Ia_pmaxud_Vdq_Wdq) },
|
||||
/* 40 */ { GRPSSE66(Ia_pmulld_Vdq_Wdq) },
|
||||
/* 41 */ { GRPSSE66(Ia_phminposuw_Vdq_Wdq) },
|
||||
/* 42 */ { 0, &Ia_Invalid },
|
||||
/* 43 */ { 0, &Ia_Invalid },
|
||||
/* 44 */ { 0, &Ia_Invalid },
|
||||
|
@ -3279,11 +2865,11 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f38[256] = {
|
|||
/* D8 */ { 0, &Ia_Invalid },
|
||||
/* D9 */ { 0, &Ia_Invalid },
|
||||
/* DA */ { 0, &Ia_Invalid },
|
||||
/* DB */ { GRPSSE(0f38db) },
|
||||
/* DC */ { GRPSSE(0f38dc) },
|
||||
/* DD */ { GRPSSE(0f38dd) },
|
||||
/* DE */ { GRPSSE(0f38de) },
|
||||
/* DF */ { GRPSSE(0f38df) },
|
||||
/* DB */ { GRPSSE66(Ia_aesimc_Vdq_Wdq) },
|
||||
/* DC */ { GRPSSE66(Ia_aesenc_Vdq_Wdq) },
|
||||
/* DD */ { GRPSSE66(Ia_aesenclast_Vdq_Wdq) },
|
||||
/* DE */ { GRPSSE66(Ia_aesdec_Vdq_Wdq) },
|
||||
/* DF */ { GRPSSE66(Ia_aesdeclast_Vdq_Wdq) },
|
||||
/* E0 */ { 0, &Ia_Invalid },
|
||||
/* E1 */ { 0, &Ia_Invalid },
|
||||
/* E2 */ { 0, &Ia_Invalid },
|
||||
|
@ -3329,22 +2915,22 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
|
|||
/* 05 */ { 0, &Ia_Invalid },
|
||||
/* 06 */ { 0, &Ia_Invalid },
|
||||
/* 07 */ { 0, &Ia_Invalid },
|
||||
/* 08 */ { GRPSSE(0f3a08) },
|
||||
/* 09 */ { GRPSSE(0f3a09) },
|
||||
/* 0A */ { GRPSSE(0f3a0a) },
|
||||
/* 0B */ { GRPSSE(0f3a0b) },
|
||||
/* 0C */ { GRPSSE(0f3a0c) },
|
||||
/* 0D */ { GRPSSE(0f3a0d) },
|
||||
/* 0E */ { GRPSSE(0f3a0e) },
|
||||
/* 08 */ { GRPSSE66(Ia_roundps_Vps_Wps_Ib) },
|
||||
/* 09 */ { GRPSSE66(Ia_roundpd_Vpd_Wpd_Ib) },
|
||||
/* 0A */ { GRPSSE66(Ia_roundss_Vss_Wss_Ib) },
|
||||
/* 0B */ { GRPSSE66(Ia_roundsd_Vsd_Wsd_Ib) },
|
||||
/* 0C */ { GRPSSE66(Ia_blendps_Vps_Wps_Ib) },
|
||||
/* 0D */ { GRPSSE66(Ia_blendpd_Vpd_Wpd_Ib) },
|
||||
/* 0E */ { GRPSSE66(Ia_pblendw_Vdq_Wdq_Ib) },
|
||||
/* 0F */ { GRPSSE(0f3a0f) },
|
||||
/* 10 */ { 0, &Ia_Invalid },
|
||||
/* 11 */ { 0, &Ia_Invalid },
|
||||
/* 12 */ { 0, &Ia_Invalid },
|
||||
/* 13 */ { 0, &Ia_Invalid },
|
||||
/* 14 */ { GRPSSE(0f3a14) },
|
||||
/* 15 */ { GRPSSE(0f3a15) },
|
||||
/* 14 */ { GRPSSE66(Ia_pextrb_Hbd_Udq_Ib) },
|
||||
/* 15 */ { GRPSSE66(Ia_pextrw_Hwd_Udq_Ib) },
|
||||
/* 16 */ { GRPSSE(0f3a16) },
|
||||
/* 17 */ { GRPSSE(0f3a17) },
|
||||
/* 17 */ { GRPSSE66(Ia_extractps_Hd_Udq_Ib) },
|
||||
/* 18 */ { 0, &Ia_Invalid },
|
||||
/* 19 */ { 0, &Ia_Invalid },
|
||||
/* 1A */ { 0, &Ia_Invalid },
|
||||
|
@ -3353,8 +2939,8 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
|
|||
/* 1D */ { 0, &Ia_Invalid },
|
||||
/* 1E */ { 0, &Ia_Invalid },
|
||||
/* 1F */ { 0, &Ia_Invalid },
|
||||
/* 20 */ { GRPSSE(0f3a20) },
|
||||
/* 21 */ { GRPSSE(0f3a21) },
|
||||
/* 20 */ { GRPSSE66(Ia_pinsrb_Vdq_Ed_Ib) },
|
||||
/* 21 */ { GRPSSE66(Ia_insertps_Vps_Wss_Ib) },
|
||||
/* 22 */ { GRPSSE(0f3a22) },
|
||||
/* 23 */ { 0, &Ia_Invalid },
|
||||
/* 24 */ { 0, &Ia_Invalid },
|
||||
|
@ -3385,11 +2971,11 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
|
|||
/* 3D */ { 0, &Ia_Invalid },
|
||||
/* 3E */ { 0, &Ia_Invalid },
|
||||
/* 3F */ { 0, &Ia_Invalid },
|
||||
/* 40 */ { GRPSSE(0f3a40) },
|
||||
/* 41 */ { GRPSSE(0f3a41) },
|
||||
/* 42 */ { GRPSSE(0f3a42) },
|
||||
/* 40 */ { GRPSSE66(Ia_dpps_Vps_Wps_Ib) },
|
||||
/* 41 */ { GRPSSE66(Ia_dppd_Vpd_Wpd_Ib) },
|
||||
/* 42 */ { GRPSSE66(Ia_mpsadbw_Vdq_Wdq_Ib) },
|
||||
/* 43 */ { 0, &Ia_Invalid },
|
||||
/* 44 */ { GRPSSE(0f3a44) },
|
||||
/* 44 */ { GRPSSE66(Ia_pclmulqdq_Vdq_Wdq_Ib) },
|
||||
/* 45 */ { 0, &Ia_Invalid },
|
||||
/* 46 */ { 0, &Ia_Invalid },
|
||||
/* 47 */ { 0, &Ia_Invalid },
|
||||
|
@ -3417,10 +3003,10 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
|
|||
/* 5D */ { 0, &Ia_Invalid },
|
||||
/* 5E */ { 0, &Ia_Invalid },
|
||||
/* 5F */ { 0, &Ia_Invalid },
|
||||
/* 60 */ { GRPSSE(0f3a60) },
|
||||
/* 61 */ { GRPSSE(0f3a61) },
|
||||
/* 62 */ { GRPSSE(0f3a62) },
|
||||
/* 63 */ { GRPSSE(0f3a63) },
|
||||
/* 60 */ { GRPSSE66(Ia_pcmpestrm_Vdq_Wdq_Ib) },
|
||||
/* 61 */ { GRPSSE66(Ia_pcmpestri_Vdq_Wdq_Ib) },
|
||||
/* 62 */ { GRPSSE66(Ia_pcmpistrm_Vdq_Wdq_Ib) },
|
||||
/* 63 */ { GRPSSE66(Ia_pcmpistri_Vdq_Wdq_Ib) },
|
||||
/* 64 */ { 0, &Ia_Invalid },
|
||||
/* 65 */ { 0, &Ia_Invalid },
|
||||
/* 66 */ { 0, &Ia_Invalid },
|
||||
|
@ -3544,7 +3130,7 @@ static BxDisasmOpcodeTable_t BxDisasm3ByteOpTable0f3a[256] = {
|
|||
/* DC */ { 0, &Ia_Invalid },
|
||||
/* DD */ { 0, &Ia_Invalid },
|
||||
/* DE */ { 0, &Ia_Invalid },
|
||||
/* DF */ { GRPSSE(0f3adf) },
|
||||
/* DF */ { GRPSSE66(Ia_aeskeygenassist_Vdq_Wdq_Ib) },
|
||||
/* E0 */ { 0, &Ia_Invalid },
|
||||
/* E1 */ { 0, &Ia_Invalid },
|
||||
/* E2 */ { 0, &Ia_Invalid },
|
||||
|
@ -4025,7 +3611,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes16[256*2] = {
|
|||
/* 0F B5 */ { 0, &Ia_lgsw_Gw_Mp },
|
||||
/* 0F B6 */ { 0, &Ia_movzbw_Gw_Eb },
|
||||
/* 0F B7 */ { 0, &Ia_movw_Gw_Ew },
|
||||
/* 0F B8 */ { GRPSSE(0fb8w) },
|
||||
/* 0F B8 */ { GRPSSEF2(Ia_popcnt_Gw_Ew) },
|
||||
/* 0F B9 */ { 0, &Ia_ud2b },
|
||||
/* 0F BA */ { GRPN(G8EwIb) },
|
||||
/* 0F BB */ { 0, &Ia_btcw_Ew_Gw },
|
||||
|
@ -4546,7 +4132,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes32[256*2] = {
|
|||
/* 0F B5 */ { 0, &Ia_lgsl_Gd_Mp },
|
||||
/* 0F B6 */ { 0, &Ia_movzbl_Gd_Eb },
|
||||
/* 0F B7 */ { 0, &Ia_movzwl_Gd_Ew },
|
||||
/* 0F B8 */ { GRPSSE(0fb8d) },
|
||||
/* 0F B8 */ { GRPSSEF2(Ia_popcnt_Gd_Ed) },
|
||||
/* 0F B9 */ { 0, &Ia_ud2b },
|
||||
/* 0F BA */ { GRPN(G8EdIb) },
|
||||
/* 0F BB */ { 0, &Ia_btcl_Ed_Gd },
|
||||
|
@ -5067,7 +4653,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64w[256*2] = {
|
|||
/* 0F B5 */ { 0, &Ia_lgsw_Gw_Mp },
|
||||
/* 0F B6 */ { 0, &Ia_movzbw_Gw_Eb },
|
||||
/* 0F B7 */ { 0, &Ia_movw_Gw_Ew },
|
||||
/* 0F B8 */ { GRPSSE(0fb8w) },
|
||||
/* 0F B8 */ { GRPSSEF2(Ia_popcnt_Gw_Ew) },
|
||||
/* 0F B9 */ { 0, &Ia_ud2b },
|
||||
/* 0F BA */ { GRPN(G8EwIb) },
|
||||
/* 0F BB */ { 0, &Ia_btcw_Ew_Gw },
|
||||
|
@ -5585,7 +5171,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64d[256*2] = {
|
|||
/* 0F B5 */ { 0, &Ia_lgsl_Gd_Mp },
|
||||
/* 0F B6 */ { 0, &Ia_movzbl_Gd_Eb },
|
||||
/* 0F B7 */ { 0, &Ia_movzwl_Gd_Ew },
|
||||
/* 0F B8 */ { GRPSSE(0fb8d) },
|
||||
/* 0F B8 */ { GRPSSEF2(Ia_popcnt_Gd_Ed) },
|
||||
/* 0F B9 */ { 0, &Ia_ud2b },
|
||||
/* 0F BA */ { GRPN(G8EdIb) },
|
||||
/* 0F BB */ { 0, &Ia_btcl_Ed_Gd },
|
||||
|
@ -6103,7 +5689,7 @@ static BxDisasmOpcodeTable_t BxDisasmOpcodes64q[256*2] = {
|
|||
/* 0F B5 */ { 0, &Ia_lgsq_Gq_Mp },
|
||||
/* 0F B6 */ { 0, &Ia_movzbq_Gq_Eb },
|
||||
/* 0F B7 */ { 0, &Ia_movzwq_Gq_Ew },
|
||||
/* 0F B8 */ { GRPSSE(0fb8q) },
|
||||
/* 0F B8 */ { GRPSSEF2(Ia_popcnt_Gq_Eq) },
|
||||
/* 0F B9 */ { 0, &Ia_ud2b },
|
||||
/* 0F BA */ { GRPN(G8EqIb) },
|
||||
/* 0F BB */ { 0, &Ia_btcq_Eq_Gq },
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: disasm.h,v 1.53 2009-12-28 13:52:40 sshwarts Exp $
|
||||
// $Id: disasm.h,v 1.54 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005-2009 Stanislav Shwartsman
|
||||
|
@ -66,7 +66,6 @@
|
|||
#define IA_PCLMULQDQ 0x01000000 /* PCLMULQDQ instruction */
|
||||
#define IA_MOVBE 0x02000000 /* MOVBE Intel Atom(R) instruction */
|
||||
#define IA_AVX 0x04000000 /* AVX instruction */
|
||||
#define IA_LEGACY 0x80000000 /* legacy instruction */
|
||||
|
||||
/* general purpose bit register */
|
||||
enum {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/////////////////////////////////////////////////////////////////////////
|
||||
// $Id: opcodes.inc,v 1.30 2010-01-11 21:27:59 sshwarts Exp $
|
||||
// $Id: opcodes.inc,v 1.31 2010-01-31 09:45:27 sshwarts Exp $
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Copyright (c) 2005-2009 Stanislav Shwartsman
|
||||
|
@ -323,7 +323,7 @@ Ia_fcomps_Md = { "fcomp", "fcomps", Md, XX, XX, XX, IA_X87 },
|
|||
Ia_fcoms_Md = { "fcom", "fcoms", Md, XX, XX, XX, IA_X87 },
|
||||
Ia_fcos = { "fcos", "fcos", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_fdecstp = { "fdecstp", "fdecstp", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_fdisi = { "fdisi (287 legacy)", "fdisi (287 legacy)", XX, XX, XX, XX, IA_X87 | IA_LEGACY },
|
||||
Ia_fdisi = { "fdisi (287 legacy)", "fdisi (287 legacy)", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_fdiv_ST0_STi = { "fdiv", "fdiv", ST0, STi, XX, XX, IA_X87 },
|
||||
Ia_fdiv_STi_ST0 = { "fdiv", "fdiv", STi, ST0, XX, XX, IA_X87 },
|
||||
Ia_fdivl_Mq = { "fdiv", "fdivl", Mq, XX, XX, XX, IA_X87 },
|
||||
|
@ -335,7 +335,7 @@ Ia_fdivrp_STi_ST0 = { "fdivrp", "fdivrp", STi, ST0, XX, XX, IA_X87 },
|
|||
Ia_fdivrs_Md = { "fdivr", "fdivrs", Md, XX, XX, XX, IA_X87 },
|
||||
Ia_fdivs_Md = { "fdiv", "fdivs", Md, XX, XX, XX, IA_X87 },
|
||||
Ia_femms = { "femms", "femms", XX, XX, XX, XX, IA_3DNOW },
|
||||
Ia_feni = { "feni (287 legacy)", "feni(287 legacy)", XX, XX, XX, XX, IA_X87 | IA_LEGACY },
|
||||
Ia_feni = { "feni (287 legacy)", "feni(287 legacy)", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_ffree_STi = { "ffree", "ffree", STi, XX, XX, XX, IA_X87 },
|
||||
Ia_ffreep_STi = { "ffreep", "ffreep", STi, XX, XX, XX, IA_X87 },
|
||||
Ia_fiaddl_Md = { "fiadd", "fiaddl", Md, XX, XX, XX, IA_X87 },
|
||||
|
@ -399,7 +399,7 @@ Ia_fptan = { "fptan", "fptan", XX, XX, XX, XX, IA_X87 },
|
|||
Ia_frndint = { "frndint", "frndint", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_frstor = { "frstor", "frstor", Mx, XX, XX, XX, IA_X87 },
|
||||
Ia_fscale = { "fscale", "fscale", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_fsetpm = { "fsetpm (287 legacy)", "fsetpm (287 legacy)", XX, XX, XX, XX, IA_X87 | IA_LEGACY },
|
||||
Ia_fsetpm = { "fsetpm (287 legacy)", "fsetpm (287 legacy)", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_fsin = { "fsin", "fsin", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_fsincos = { "fsincos", "fsincos", XX, XX, XX, XX, IA_X87 },
|
||||
Ia_fsqrt = { "fsqrt", "fsqrt", XX, XX, XX, XX, IA_X87 },
|
||||
|
|
Loading…
Reference in New Issue