Skip to content

Commit

Permalink
Split shift opcodes | optimize SAR opcode
Browse files Browse the repository at this point in the history
  • Loading branch information
sshwarts committed May 18, 2010
1 parent 8cc4d77 commit a9626b9
Show file tree
Hide file tree
Showing 12 changed files with 692 additions and 476 deletions.
48 changes: 32 additions & 16 deletions cpu/cpu.h
@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: cpu.h,v 1.676 2010/05/12 21:33:04 sshwarts Exp $
// $Id: cpu.h,v 1.677 2010/05/18 07:28:04 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001-2010 The Bochs Project
Expand Down Expand Up @@ -1645,21 +1645,37 @@ class BOCHSAPI BX_CPU_C : public logfunctions {
BX_SMF void NEG_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void NEG_EdR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);

BX_SMF void ROL_Eb(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROR_Eb(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCL_Eb(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCR_Eb(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHL_Eb(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHR_Eb(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SAR_Eb(bxInstruction_c *) BX_CPP_AttrRegparmN(1);

BX_SMF void ROL_Ew(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROR_Ew(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCL_Ew(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCR_Ew(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHL_Ew(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHR_Ew(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SAR_Ew(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROL_EbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROR_EbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCL_EbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCR_EbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHL_EbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHR_EbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SAR_EbR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);

BX_SMF void ROL_EbM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROR_EbM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCL_EbM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCR_EbM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHL_EbM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHR_EbM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SAR_EbM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);

BX_SMF void ROL_EwM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROR_EwM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCL_EwM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCR_EwM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHL_EwM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHR_EwM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SAR_EwM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);

BX_SMF void ROL_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROR_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCL_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void RCR_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHL_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SHR_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void SAR_EwR(bxInstruction_c *) BX_CPP_AttrRegparmN(1);

BX_SMF void ROL_EdM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
BX_SMF void ROR_EdM(bxInstruction_c *) BX_CPP_AttrRegparmN(1);
Expand Down
40 changes: 20 additions & 20 deletions cpu/fetchdecode.cc
@@ -1,8 +1,8 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode.cc,v 1.268 2010/05/13 05:38:24 sshwarts Exp $
// $Id: fetchdecode.cc,v 1.269 2010/05/18 07:28:04 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001-2009 The Bochs Project
// Copyright (C) 2001-2010 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
Expand Down Expand Up @@ -564,10 +564,10 @@ static const BxOpcodeInfo_t BxOpcodeInfo32[512*2*2] = {
/* BE /wm */ { BxImmediate_Iw, BX_IA_MOV_RXIw },
/* BF /wr */ { BxImmediate_Iw, BX_IA_MOV_RXIw },
/* BF /wm */ { BxImmediate_Iw, BX_IA_MOV_RXIw },
/* C0 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C1 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* C1 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* C0 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* C0 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* C1 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EwR },
/* C1 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EwM },
/* C2 /wr */ { BxImmediate_Iw | BxTraceEnd, BX_IA_RETnear16_Iw },
/* C2 /wm */ { BxImmediate_Iw | BxTraceEnd, BX_IA_RETnear16_Iw },
/* C3 /wr */ { BxTraceEnd, BX_IA_RETnear16 },
Expand Down Expand Up @@ -596,14 +596,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo32[512*2*2] = {
/* CE /wm */ { BxTraceEnd, BX_IA_INTO },
/* CF /wr */ { BxTraceEnd, BX_IA_IRET16 },
/* CF /wm */ { BxTraceEnd, BX_IA_IRET16 },
/* D0 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D1 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D1 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D2 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D3 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D3 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D0 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D0 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D1 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EwR },
/* D1 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EwM },
/* D2 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D2 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D3 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EwR },
/* D3 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EwM },
/* D4 /wr */ { BxImmediate_Ib, BX_IA_AAM },
/* D4 /wm */ { BxImmediate_Ib, BX_IA_AAM },
/* D5 /wr */ { BxImmediate_Ib, BX_IA_AAD },
Expand Down Expand Up @@ -1647,8 +1647,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo32[512*2*2] = {
/* BE /dm */ { BxImmediate_Id, BX_IA_MOV_ERXId },
/* BF /dr */ { BxImmediate_Id, BX_IA_MOV_ERXId },
/* BF /dm */ { BxImmediate_Id, BX_IA_MOV_ERXId },
/* C0 /dr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /dm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /dr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* C0 /dm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* C1 /dr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EdR },
/* C1 /dm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EdM },
/* C2 /dr */ { BxImmediate_Iw | BxTraceEnd, BX_IA_RETnear32_Iw },
Expand Down Expand Up @@ -1679,12 +1679,12 @@ static const BxOpcodeInfo_t BxOpcodeInfo32[512*2*2] = {
/* CE /dm */ { BxTraceEnd, BX_IA_INTO },
/* CF /dr */ { BxTraceEnd, BX_IA_IRET32 },
/* CF /dm */ { BxTraceEnd, BX_IA_IRET32 },
/* D0 /dr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /dm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /dr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D0 /dm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D1 /dr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EdR },
/* D1 /dm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EdM },
/* D2 /dr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /dm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /dr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D2 /dm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D3 /dr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EdR },
/* D3 /dm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EdM },
/* D4 /dr */ { BxImmediate_Ib, BX_IA_AAM },
Expand Down
62 changes: 43 additions & 19 deletions cpu/fetchdecode.h
@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode.h,v 1.102 2010/04/18 09:21:24 sshwarts Exp $
// $Id: fetchdecode.h,v 1.103 2010/05/18 07:28:04 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2005-2010 Stanislav Shwartsman
Expand Down Expand Up @@ -252,28 +252,52 @@ static const BxOpcodeInfo_t BxOpcodeInfo64G1AEqM[8] = {
/* Group 2 */
/* ******* */

static const BxOpcodeInfo_t BxOpcodeInfoG2Eb[8] = {
static const BxOpcodeInfo_t BxOpcodeInfoG2EbR[8] = {
// attributes defined in main area
/* 0 */ { 0, BX_IA_ROL_Eb },
/* 1 */ { 0, BX_IA_ROR_Eb },
/* 2 */ { 0, BX_IA_RCL_Eb },
/* 3 */ { 0, BX_IA_RCR_Eb },
/* 4 */ { 0, BX_IA_SHL_Eb },
/* 5 */ { 0, BX_IA_SHR_Eb },
/* 6 */ { 0, BX_IA_SHL_Eb },
/* 7 */ { 0, BX_IA_SAR_Eb }
/* 0 */ { 0, BX_IA_ROL_EbR },
/* 1 */ { 0, BX_IA_ROR_EbR },
/* 2 */ { 0, BX_IA_RCL_EbR },
/* 3 */ { 0, BX_IA_RCR_EbR },
/* 4 */ { 0, BX_IA_SHL_EbR },
/* 5 */ { 0, BX_IA_SHR_EbR },
/* 6 */ { 0, BX_IA_SHL_EbR },
/* 7 */ { 0, BX_IA_SAR_EbR }
};

static const BxOpcodeInfo_t BxOpcodeInfoG2Ew[8] = {
static const BxOpcodeInfo_t BxOpcodeInfoG2EbM[8] = {
// attributes defined in main area
/* 0 */ { 0, BX_IA_ROL_Ew },
/* 1 */ { 0, BX_IA_ROR_Ew },
/* 2 */ { 0, BX_IA_RCL_Ew },
/* 3 */ { 0, BX_IA_RCR_Ew },
/* 4 */ { 0, BX_IA_SHL_Ew },
/* 5 */ { 0, BX_IA_SHR_Ew },
/* 6 */ { 0, BX_IA_SHL_Ew },
/* 7 */ { 0, BX_IA_SAR_Ew }
/* 0 */ { 0, BX_IA_ROL_EbM },
/* 1 */ { 0, BX_IA_ROR_EbM },
/* 2 */ { 0, BX_IA_RCL_EbM },
/* 3 */ { 0, BX_IA_RCR_EbM },
/* 4 */ { 0, BX_IA_SHL_EbM },
/* 5 */ { 0, BX_IA_SHR_EbM },
/* 6 */ { 0, BX_IA_SHL_EbM },
/* 7 */ { 0, BX_IA_SAR_EbM }
};

static const BxOpcodeInfo_t BxOpcodeInfoG2EwR[8] = {
// attributes defined in main area
/* 0 */ { 0, BX_IA_ROL_EwR },
/* 1 */ { 0, BX_IA_ROR_EwR },
/* 2 */ { 0, BX_IA_RCL_EwR },
/* 3 */ { 0, BX_IA_RCR_EwR },
/* 4 */ { 0, BX_IA_SHL_EwR },
/* 5 */ { 0, BX_IA_SHR_EwR },
/* 6 */ { 0, BX_IA_SHL_EwR },
/* 7 */ { 0, BX_IA_SAR_EwR }
};

static const BxOpcodeInfo_t BxOpcodeInfoG2EwM[8] = {
// attributes defined in main area
/* 0 */ { 0, BX_IA_ROL_EwM },
/* 1 */ { 0, BX_IA_ROR_EwM },
/* 2 */ { 0, BX_IA_RCL_EwM },
/* 3 */ { 0, BX_IA_RCR_EwM },
/* 4 */ { 0, BX_IA_SHL_EwM },
/* 5 */ { 0, BX_IA_SHR_EwM },
/* 6 */ { 0, BX_IA_SHL_EwM },
/* 7 */ { 0, BX_IA_SAR_EwM }
};

static const BxOpcodeInfo_t BxOpcodeInfoG2EdM[8] = {
Expand Down
52 changes: 26 additions & 26 deletions cpu/fetchdecode64.cc
@@ -1,8 +1,8 @@
/////////////////////////////////////////////////////////////////////////
// $Id: fetchdecode64.cc,v 1.263 2010/05/13 05:38:24 sshwarts Exp $
// $Id: fetchdecode64.cc,v 1.264 2010/05/18 07:28:04 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001-2009 The Bochs Project
// Copyright (C) 2001-2010 The Bochs Project
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
Expand Down Expand Up @@ -540,10 +540,10 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3*2] = {
/* BE /wm */ { BxImmediate_Iw, BX_IA_MOV_RXIw },
/* BF /wr */ { BxImmediate_Iw, BX_IA_MOV_RXIw },
/* BF /wm */ { BxImmediate_Iw, BX_IA_MOV_RXIw },
/* C0 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C1 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* C1 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* C0 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* C0 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* C1 /wr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EwR },
/* C1 /wm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EwM },
/* C2 /wr */ { BxImmediate_Iw | BxTraceEnd, BX_IA_RETnear64_Iw },
/* C2 /wm */ { BxImmediate_Iw | BxTraceEnd, BX_IA_RETnear64_Iw },
/* C3 /wr */ { BxTraceEnd, BX_IA_RETnear64 },
Expand Down Expand Up @@ -572,14 +572,14 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3*2] = {
/* CE /wm */ { 0, BX_IA_ERROR },
/* CF /wr */ { BxTraceEnd, BX_IA_IRET64 },
/* CF /wm */ { BxTraceEnd, BX_IA_IRET64 },
/* D0 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D1 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D1 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D2 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D3 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D3 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Ew },
/* D0 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D0 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D1 /wr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EwR },
/* D1 /wm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EwM },
/* D2 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D2 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D3 /wr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EwR },
/* D3 /wm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EwM },
/* D4 /wr */ { 0, BX_IA_ERROR },
/* D4 /wm */ { 0, BX_IA_ERROR },
/* D5 /wr */ { 0, BX_IA_ERROR },
Expand Down Expand Up @@ -1572,8 +1572,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3*2] = {
/* BE /dm */ { BxImmediate_Id, BX_IA_MOV_ERXId },
/* BF /dr */ { BxImmediate_Id, BX_IA_MOV_ERXId },
/* BF /dm */ { BxImmediate_Id, BX_IA_MOV_ERXId },
/* C0 /dr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /dm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /dr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* C0 /dm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* C1 /dr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EdR },
/* C1 /dm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EdM },
/* C2 /dr */ { BxImmediate_Iw | BxTraceEnd, BX_IA_RETnear64_Iw },
Expand Down Expand Up @@ -1604,12 +1604,12 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3*2] = {
/* CE /dm */ { 0, BX_IA_ERROR },
/* CF /dr */ { BxTraceEnd, BX_IA_IRET64 },
/* CF /dm */ { BxTraceEnd, BX_IA_IRET64 },
/* D0 /dr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /dm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /dr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D0 /dm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D1 /dr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EdR },
/* D1 /dm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EdM },
/* D2 /dr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /dm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /dr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D2 /dm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D3 /dr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EdR },
/* D3 /dm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EdM },
/* D4 /dr */ { 0, BX_IA_ERROR },
Expand Down Expand Up @@ -2604,8 +2604,8 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3*2] = {
/* BE /qm */ { BxImmediate_Iq, BX_IA_MOV_RRXIq },
/* BF /qr */ { BxImmediate_Iq, BX_IA_MOV_RRXIq },
/* BF /qm */ { BxImmediate_Iq, BX_IA_MOV_RRXIq },
/* C0 /qr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /qm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* C0 /qr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* C0 /qm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* C1 /qr */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfo64G2EqR },
/* C1 /qm */ { BxGroup2 | BxImmediate_Ib, BX_IA_ERROR, BxOpcodeInfo64G2EqM },
/* C2 /qr */ { BxImmediate_Iw | BxTraceEnd, BX_IA_RETnear64_Iw },
Expand Down Expand Up @@ -2636,12 +2636,12 @@ static const BxOpcodeInfo_t BxOpcodeInfo64[512*3*2] = {
/* CE /qm */ { 0, BX_IA_ERROR },
/* CF /qr */ { BxTraceEnd, BX_IA_IRET64 },
/* CF /qm */ { BxTraceEnd, BX_IA_IRET64 },
/* D0 /qr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /qm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D0 /qr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D0 /qm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D1 /qr */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfo64G2EqR },
/* D1 /qm */ { BxGroup2 | BxImmediate_I1, BX_IA_ERROR, BxOpcodeInfo64G2EqM },
/* D2 /qr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /qm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2Eb },
/* D2 /qr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbR },
/* D2 /qm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfoG2EbM },
/* D3 /qr */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfo64G2EqR },
/* D3 /qm */ { BxGroup2, BX_IA_ERROR, BxOpcodeInfo64G2EqM },
/* D4 /qr */ { 0, BX_IA_ERROR },
Expand Down

0 comments on commit a9626b9

Please sign in to comment.