DOSBox-X
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
src/cpu/core_full/optable.h
00001 /*
00002  *  Copyright (C) 2002-2020  The DOSBox Team
00003  *
00004  *  This program is free software; you can redistribute it and/or modify
00005  *  it under the terms of the GNU General Public License as published by
00006  *  the Free Software Foundation; either version 2 of the License, or
00007  *  (at your option) any later version.
00008  *
00009  *  This program is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *  GNU General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU General Public License along
00015  *  with this program; if not, write to the Free Software Foundation, Inc.,
00016  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00017  */
00018 
00019 /* Big ass opcode table normal,double, 66 normal, 66 double */
00020 static OpCode OpCodeTable[1024]={
00021 /* 0x00 - 0x07 */
00022 {L_MODRM        ,t_ADDb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ADDw ,S_Ew   ,M_EwGw         },
00023 {L_MODRM        ,t_ADDb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ADDw ,S_Gw   ,M_GwEw         },
00024 {L_REGbIb       ,t_ADDb ,S_REGb ,REGI_AL        },{L_REGwIw     ,t_ADDw ,S_REGw ,REGI_AX        },
00025 {L_SEG          ,0              ,S_PUSHw,es                     },{D_POPSEGw,0          ,0              ,es                     },
00026 /* 0x08 - 0x0f */
00027 {L_MODRM        ,t_ORb  ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ORw  ,S_Ew   ,M_EwGw         },
00028 {L_MODRM        ,t_ORb  ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ORw  ,S_Gw   ,M_GwEw         },
00029 {L_REGbIb       ,t_ORb  ,S_REGb ,REGI_AL        },{L_REGwIw     ,t_ORw  ,S_REGw ,REGI_AX        },
00030 {L_SEG          ,0              ,S_PUSHw,cs                     },{L_DOUBLE     ,0              ,0              ,0                      },
00031 
00032 /* 0x10 - 0x17 */
00033 {L_MODRM        ,t_ADCb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ADCw ,S_Ew   ,M_EwGw         },
00034 {L_MODRM        ,t_ADCb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ADCw ,S_Gw   ,M_GwEw         },
00035 {L_REGbIb       ,t_ADCb ,S_REGb ,REGI_AL        },{L_REGwIw     ,t_ADCw ,S_REGw ,REGI_AX        },
00036 {L_SEG          ,0              ,S_PUSHw,ss                     },{D_POPSEGw,0          ,0              ,ss                     },
00037 /* 0x18 - 0x1f */
00038 {L_MODRM        ,t_SBBb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_SBBw ,S_Ew   ,M_EwGw         },
00039 {L_MODRM        ,t_SBBb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_SBBw ,S_Gw   ,M_GwEw         },
00040 {L_REGbIb       ,t_SBBb ,S_REGb ,REGI_AL        },{L_REGwIw     ,t_SBBw ,S_REGw ,REGI_AX        },
00041 {L_SEG          ,0              ,S_PUSHw,ds                     },{D_POPSEGw,0          ,0              ,ds                     },
00042 
00043 /* 0x20 - 0x27 */
00044 {L_MODRM        ,t_ANDb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ANDw ,S_Ew   ,M_EwGw         },
00045 {L_MODRM        ,t_ANDb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ANDw ,S_Gw   ,M_GwEw         },
00046 {L_REGbIb       ,t_ANDb ,S_REGb ,REGI_AL        },{L_REGwIw     ,t_ANDw ,S_REGw ,REGI_AX        },
00047 {L_PRESEG       ,0              ,0              ,es                     },{D_DAA        ,0              ,0              ,0                      },
00048 /* 0x28 - 0x2f */
00049 {L_MODRM        ,t_SUBb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_SUBw ,S_Ew   ,M_EwGw         },
00050 {L_MODRM        ,t_SUBb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_SUBw ,S_Gw   ,M_GwEw         },
00051 {L_REGbIb       ,t_SUBb ,S_REGb ,REGI_AL        },{L_REGwIw     ,t_SUBw ,S_REGw ,REGI_AX        },
00052 {L_PRESEG       ,0              ,0              ,cs                     },{D_DAS        ,0              ,0              ,0                      },
00053 
00054 /* 0x30 - 0x37 */
00055 {L_MODRM        ,t_XORb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_XORw ,S_Ew   ,M_EwGw         },
00056 {L_MODRM        ,t_XORb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_XORw ,S_Gw   ,M_GwEw         },
00057 {L_REGbIb       ,t_XORb ,S_REGb ,REGI_AL        },{L_REGwIw     ,t_XORw ,S_REGw ,REGI_AX        },
00058 {L_PRESEG       ,0              ,0              ,ss                     },{D_AAA        ,0              ,0              ,0                      },
00059 /* 0x38 - 0x3f */
00060 {L_MODRM        ,t_CMPb ,0              ,M_EbGb         },{L_MODRM      ,t_CMPw ,0              ,M_EwGw         },
00061 {L_MODRM        ,t_CMPb ,0              ,M_GbEb         },{L_MODRM      ,t_CMPw ,0              ,M_GwEw         },
00062 {L_REGbIb       ,t_CMPb ,0              ,REGI_AL        },{L_REGwIw     ,t_CMPw ,0              ,REGI_AX        },
00063 {L_PRESEG       ,0              ,0              ,ds                     },{D_AAS        ,0              ,0              ,0                      },
00064 
00065 /* 0x40 - 0x47 */
00066 {L_REGw         ,t_INCw ,S_REGw ,REGI_AX},{L_REGw       ,t_INCw ,S_REGw ,REGI_CX},
00067 {L_REGw         ,t_INCw ,S_REGw ,REGI_DX},{L_REGw       ,t_INCw ,S_REGw ,REGI_BX},
00068 {L_REGw         ,t_INCw ,S_REGw ,REGI_SP},{L_REGw       ,t_INCw ,S_REGw ,REGI_BP},
00069 {L_REGw         ,t_INCw ,S_REGw ,REGI_SI},{L_REGw       ,t_INCw ,S_REGw ,REGI_DI},
00070 /* 0x48 - 0x4f */
00071 {L_REGw         ,t_DECw ,S_REGw ,REGI_AX},{L_REGw       ,t_DECw ,S_REGw ,REGI_CX},
00072 {L_REGw         ,t_DECw ,S_REGw ,REGI_DX},{L_REGw       ,t_DECw ,S_REGw ,REGI_BX},
00073 {L_REGw         ,t_DECw ,S_REGw ,REGI_SP},{L_REGw       ,t_DECw ,S_REGw ,REGI_BP},
00074 {L_REGw         ,t_DECw ,S_REGw ,REGI_SI},{L_REGw       ,t_DECw ,S_REGw ,REGI_DI},
00075 
00076 /* 0x50 - 0x57 */
00077 {L_REGw         ,0              ,S_PUSHw,REGI_AX},{L_REGw       ,0              ,S_PUSHw,REGI_CX},
00078 {L_REGw         ,0              ,S_PUSHw,REGI_DX},{L_REGw       ,0              ,S_PUSHw,REGI_BX},
00079 {L_REGw         ,0              ,S_PUSHw,REGI_SP},{L_REGw       ,0              ,S_PUSHw,REGI_BP},
00080 {L_REGw         ,0              ,S_PUSHw,REGI_SI},{L_REGw       ,0              ,S_PUSHw,REGI_DI},
00081 /* 0x58 - 0x5f */
00082 {L_POPw         ,0              ,S_REGw ,REGI_AX},{L_POPw       ,0              ,S_REGw ,REGI_CX},
00083 {L_POPw         ,0              ,S_REGw ,REGI_DX},{L_POPw       ,0              ,S_REGw ,REGI_BX},
00084 {L_POPw         ,0              ,S_REGw ,REGI_SP},{L_POPw       ,0              ,S_REGw ,REGI_BP},
00085 {L_POPw         ,0              ,S_REGw ,REGI_SI},{L_POPw       ,0              ,S_REGw ,REGI_DI},
00086 
00087 
00088 /* 0x60 - 0x67 */
00089 {D_PUSHAw       ,0                      ,0              ,0              },{D_POPAw      ,0                      ,0              ,0              },
00090 {L_MODRM        ,O_BOUNDw       ,0              ,M_Gw   },{L_MODRM_NVM  ,O_ARPL         ,S_Ew   ,M_EwGw },
00091 {L_PRESEG       ,0                      ,0              ,fs             },{L_PRESEG     ,0                      ,0              ,gs             },
00092 {L_PREOP        ,0                      ,0              ,0              },{L_PREADD     ,0                      ,0              ,0              },
00093 /* 0x68 - 0x6f */
00094 {L_Iw           ,0                      ,S_PUSHw,0              },{L_MODRM      ,O_IMULRw       ,S_Gw   ,M_EwxIwx},
00095 {L_Ibx          ,0                      ,S_PUSHw,0              },{L_MODRM      ,O_IMULRw       ,S_Gw   ,M_EwxIbx},
00096 {L_STRING       ,R_INSB         ,0              ,0              },{L_STRING     ,R_INSW         ,0              ,0              },
00097 {L_STRING       ,R_OUTSB        ,0              ,0              },{L_STRING     ,R_OUTSW        ,0              ,0              },
00098 
00099 
00100 /* 0x70 - 0x77 */
00101 {L_Ibx          ,O_C_O          ,S_C_AIPw,0             },{L_Ibx        ,O_C_NO         ,S_C_AIPw,0             },
00102 {L_Ibx          ,O_C_B          ,S_C_AIPw,0             },{L_Ibx        ,O_C_NB         ,S_C_AIPw,0             },
00103 {L_Ibx          ,O_C_Z          ,S_C_AIPw,0             },{L_Ibx        ,O_C_NZ         ,S_C_AIPw,0             },
00104 {L_Ibx          ,O_C_BE         ,S_C_AIPw,0             },{L_Ibx        ,O_C_NBE        ,S_C_AIPw,0             },
00105 /* 0x78 - 0x7f */
00106 {L_Ibx          ,O_C_S          ,S_C_AIPw,0             },{L_Ibx        ,O_C_NS         ,S_C_AIPw,0             },
00107 {L_Ibx          ,O_C_P          ,S_C_AIPw,0             },{L_Ibx        ,O_C_NP         ,S_C_AIPw,0             },
00108 {L_Ibx          ,O_C_L          ,S_C_AIPw,0             },{L_Ibx        ,O_C_NL         ,S_C_AIPw,0             },
00109 {L_Ibx          ,O_C_LE         ,S_C_AIPw,0             },{L_Ibx        ,O_C_NLE        ,S_C_AIPw,0             },
00110 
00111 
00112 /* 0x80 - 0x87 */
00113 {L_MODRM        ,0                      ,0              ,M_GRP  },{L_MODRM      ,1                      ,0              ,M_GRP  },
00114 {L_MODRM        ,0                      ,0              ,M_GRP  },{L_MODRM      ,3                      ,0              ,M_GRP  },
00115 {L_MODRM        ,t_TESTb        ,0              ,M_EbGb },{L_MODRM      ,t_TESTw        ,0              ,M_EwGw },
00116 {L_MODRM        ,0                      ,S_EbGb ,M_GbEb },{L_MODRM      ,0                      ,S_EwGw ,M_GwEw },
00117 /* 0x88 - 0x8f */
00118 {L_MODRM                ,0              ,S_Eb   ,M_Gb   },{L_MODRM      ,0                      ,S_Ew   ,M_Gw   },
00119 {L_MODRM                ,0              ,S_Gb   ,M_Eb   },{L_MODRM      ,0                      ,S_Gw   ,M_Ew   },
00120 {L_MODRM                ,0              ,S_Ew   ,M_SEG  },{L_MODRM      ,0                      ,S_Gw   ,M_EA   },
00121 {L_MODRM                ,0              ,S_SEGm ,M_Ew   },{L_POPwRM     ,0                      ,S_Ew   ,M_None },
00122 
00123 /* 0x90 - 0x97 */
00124 {D_NOP          ,0                      ,0              ,0              },{L_REGw       ,O_XCHG_AX      ,S_REGw ,REGI_CX},
00125 {L_REGw         ,O_XCHG_AX      ,S_REGw ,REGI_DX},{L_REGw       ,O_XCHG_AX      ,S_REGw ,REGI_BX},
00126 {L_REGw         ,O_XCHG_AX      ,S_REGw ,REGI_SP},{L_REGw       ,O_XCHG_AX      ,S_REGw ,REGI_BP},
00127 {L_REGw         ,O_XCHG_AX      ,S_REGw ,REGI_SI},{L_REGw       ,O_XCHG_AX      ,S_REGw ,REGI_DI},
00128 /* 0x98 - 0x9f */
00129 {D_CBW          ,0                      ,0              ,0              },{D_CWD        ,0                      ,0              ,0              },
00130 {L_Ifw          ,O_CALLFw       ,0              ,0              },{D_WAIT       ,0                      ,0              ,0              },
00131 {D_PUSHF        ,0                      ,0              ,0              },{D_POPF       ,0                      ,0              ,0              },
00132 {D_SAHF         ,0                      ,0              ,0              },{D_LAHF       ,0                      ,0              ,0              },
00133 
00134 
00135 /* 0xa0 - 0xa7 */
00136 {L_OP           ,O_ALOP         ,0              ,0              },{L_OP         ,O_AXOP         ,0              ,0              },
00137 {L_OP           ,O_OPAL         ,0              ,0              },{L_OP         ,O_OPAX         ,0              ,0              },
00138 {L_STRING       ,R_MOVSB        ,0              ,0              },{L_STRING     ,R_MOVSW        ,0              ,0              },
00139 {L_STRING       ,R_CMPSB        ,0              ,0              },{L_STRING     ,R_CMPSW        ,0              ,0              },
00140 /* 0xa8 - 0xaf */
00141 {L_REGbIb       ,t_TESTb        ,0              ,REGI_AL},{L_REGwIw     ,t_TESTw        ,0              ,REGI_AX},
00142 {L_STRING       ,R_STOSB        ,0              ,0              },{L_STRING     ,R_STOSW        ,0              ,0              },
00143 {L_STRING       ,R_LODSB        ,0              ,0              },{L_STRING     ,R_LODSW        ,0              ,0              },
00144 {L_STRING       ,R_SCASB        ,0              ,0              },{L_STRING     ,R_SCASW        ,0              ,0              },
00145 
00146 /* 0xb0 - 0xb7 */
00147 {L_Ib           ,0                      ,S_REGb ,REGI_AL},{L_Ib ,0                      ,S_REGb ,REGI_CL},
00148 {L_Ib           ,0                      ,S_REGb ,REGI_DL},{L_Ib ,0                      ,S_REGb ,REGI_BL},
00149 {L_Ib           ,0                      ,S_REGb ,REGI_AH},{L_Ib ,0                      ,S_REGb ,REGI_CH},
00150 {L_Ib           ,0                      ,S_REGb ,REGI_DH},{L_Ib ,0                      ,S_REGb ,REGI_BH},
00151 /* 0xb8 - 0xbf */
00152 {L_Iw           ,0                      ,S_REGw ,REGI_AX},{L_Iw ,0                      ,S_REGw ,REGI_CX},
00153 {L_Iw           ,0                      ,S_REGw ,REGI_DX},{L_Iw ,0                      ,S_REGw ,REGI_BX},
00154 {L_Iw           ,0                      ,S_REGw ,REGI_SP},{L_Iw ,0                      ,S_REGw ,REGI_BP},
00155 {L_Iw           ,0                      ,S_REGw ,REGI_SI},{L_Iw ,0                      ,S_REGw ,REGI_DI},
00156 
00157 /* 0xc0 - 0xc7 */
00158 {L_MODRM        ,5                      ,0      ,M_SHIFT_Ib     },{L_MODRM      ,6                      ,0      ,M_SHIFT_Ib     },
00159 {L_POPw         ,0                      ,S_IPIw ,0              },{L_POPw       ,0                      ,S_IP   ,0              },
00160 {L_MODRM        ,O_SEGES        ,S_SEGGw,M_Efw  },{L_MODRM      ,O_SEGDS        ,S_SEGGw,M_Efw  },
00161 {L_MODRM        ,0                      ,S_Eb   ,M_Ib   },{L_MODRM      ,0                      ,S_Ew   ,M_Iw   },
00162 /* 0xc8 - 0xcf */
00163 {D_ENTERw       ,0                      ,0              ,0              },{D_LEAVEw     ,0                      ,0              ,0              },
00164 {D_RETFwIw      ,0                      ,0              ,0              },{D_RETFw      ,0                      ,0              ,0              },
00165 {L_VAL          ,O_INT          ,0              ,3              },{L_Ib         ,O_INT          ,0              ,0              },
00166 {L_INTO         ,O_INT          ,0              ,0              },{D_IRETw      ,0                      ,0              ,0              },
00167 
00168 /* 0xd0 - 0xd7 */
00169 {L_MODRM        ,5                      ,0      ,M_SHIFT_1      },{L_MODRM      ,6                      ,0      ,M_SHIFT_1      },
00170 {L_MODRM        ,5                      ,0      ,M_SHIFT_CL     },{L_MODRM      ,6                      ,0      ,M_SHIFT_CL     },
00171 {L_Ib           ,O_AAM          ,0              ,0              },{L_Ib         ,O_AAD          ,0              ,0              },
00172 {D_SETALC       ,0                      ,0              ,0              },{D_XLAT       ,0                      ,0              ,0              },
00173 //TODO FPU
00174 /* 0xd8 - 0xdf */
00175 {L_MODRM        ,O_FPU          ,0              ,0              },{L_MODRM      ,O_FPU          ,1              ,0              },
00176 {L_MODRM        ,O_FPU          ,2              ,0              },{L_MODRM      ,O_FPU          ,3              ,0              },
00177 {L_MODRM        ,O_FPU          ,4              ,0              },{L_MODRM      ,O_FPU          ,5              ,0              },
00178 {L_MODRM        ,O_FPU          ,6              ,0              },{L_MODRM      ,O_FPU          ,7              ,0              },
00179 
00180 /* 0xe0 - 0xe7 */
00181 {L_Ibx          ,O_LOOPNZ       ,S_AIPw ,0              },{L_Ibx        ,O_LOOPZ        ,S_AIPw ,0              },
00182 {L_Ibx          ,O_LOOP         ,S_AIPw ,0              },{L_Ibx        ,O_JCXZ         ,S_AIPw ,0              },
00183 {L_Ib           ,O_INb          ,0              ,0              },{L_Ib         ,O_INw          ,0              ,0              },
00184 {L_Ib           ,O_OUTb         ,0              ,0              },{L_Ib         ,O_OUTw         ,0              ,0              },
00185 /* 0xe8 - 0xef */
00186 {L_Iw           ,O_CALLNw       ,S_AIPw ,0              },{L_Iwx        ,0                      ,S_AIPw ,0              },
00187 {L_Ifw          ,O_JMPFw        ,0              ,0              },{L_Ibx        ,0                      ,S_AIPw ,0              },
00188 {L_REGw         ,O_INb          ,0              ,REGI_DX},{L_REGw       ,O_INw          ,0              ,REGI_DX},
00189 {L_REGw         ,O_OUTb         ,0              ,REGI_DX},{L_REGw       ,O_OUTw         ,0              ,REGI_DX},
00190 
00191 /* 0xf0 - 0xf7 */
00192 {D_LOCK         ,0                      ,0              ,0              },{D_ICEBP      ,0                      ,0              ,0              },
00193 {L_PREREPNE     ,0                      ,0              ,0              },{L_PREREP     ,0                      ,0              ,0              },
00194 {D_HLT          ,0                      ,0              ,0              },{D_CMC        ,0                      ,0              ,0              },
00195 {L_MODRM        ,8                      ,0              ,M_GRP  },{L_MODRM      ,9                      ,0              ,M_GRP  },
00196 /* 0xf8 - 0xff */
00197 {D_CLC          ,0                      ,0              ,0              },{D_STC        ,0                      ,0              ,0              },
00198 {D_CLI          ,0                      ,0              ,0              },{D_STI        ,0                      ,0              ,0              },
00199 {D_CLD          ,0                      ,0              ,0              },{D_STD        ,0                      ,0              ,0              },
00200 {L_MODRM        ,0xb            ,0              ,M_GRP  },{L_MODRM      ,0xc            ,0              ,M_GRP  },
00201 
00202 /* 0x100 - 0x107 */
00203 {L_MODRM        ,O_GRP6w        ,S_Ew   ,M_Ew   },{L_MODRM      ,O_GRP7w        ,S_Ew   ,M_Ew   },
00204 {L_MODRM_NVM    ,O_LAR          ,S_Gw   ,M_EwGw },{L_MODRM_NVM  ,O_LSL          ,S_Gw   ,M_EwGw },
00205 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00206 {D_CLTS         ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00207 /* 0x108 - 0x10f */
00208 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00209 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00210 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00211 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00212 
00213 /* 0x110 - 0x117 */
00214 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00215 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00216 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00217 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00218 /* 0x118 - 0x11f */
00219 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00220 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00221 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00222 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00223 
00224 /* 0x120 - 0x127 */
00225 {L_MODRM        ,O_M_Rd_CRx     ,S_Ed   ,0              },{L_MODRM      ,O_M_Rd_DRx     ,S_Ed   ,0              },
00226 {L_MODRM        ,O_M_CRx_Rd     ,0              ,M_Ed   },{L_MODRM      ,O_M_DRx_Rd     ,0              ,M_Ed   },
00227 {L_MODRM        ,O_M_Rd_TRx     ,S_Ed   ,0              },{0            ,0                      ,0              ,0              },
00228 {L_MODRM        ,O_M_TRx_Rd     ,0              ,M_Ed   },{0            ,0                      ,0              ,0              },
00229 
00230 /* 0x128 - 0x12f */
00231 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00232 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00233 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00234 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00235 
00236 /* 0x130 - 0x137 */
00237 {0                      ,0                      ,0              ,0              },{D_RDTSC      ,0                      ,0              ,0              },
00238 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00239 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00240 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00241 /* 0x138 - 0x13f */
00242 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00243 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00244 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00245 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00246 
00247 /* 0x140 - 0x147 */
00248 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00249 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00250 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00251 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00252 /* 0x148 - 0x14f */
00253 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00254 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00255 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00256 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00257 
00258 /* 0x150 - 0x157 */
00259 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00260 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00261 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00262 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00263 /* 0x158 - 0x15f */
00264 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00265 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00266 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00267 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00268 
00269 /* 0x160 - 0x167 */
00270 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00271 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00272 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00273 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00274 /* 0x168 - 0x16f */
00275 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00276 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00277 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00278 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00279 
00280 
00281 /* 0x170 - 0x177 */
00282 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00283 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00284 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00285 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00286 /* 0x178 - 0x17f */
00287 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00288 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00289 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00290 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00291 
00292 /* 0x180 - 0x187 */
00293 {L_Iwx          ,O_C_O          ,S_C_AIPw,0             },{L_Iwx        ,O_C_NO         ,S_C_AIPw,0             },
00294 {L_Iwx          ,O_C_B          ,S_C_AIPw,0             },{L_Iwx        ,O_C_NB         ,S_C_AIPw,0             },
00295 {L_Iwx          ,O_C_Z          ,S_C_AIPw,0             },{L_Iwx        ,O_C_NZ         ,S_C_AIPw,0             },
00296 {L_Iwx          ,O_C_BE         ,S_C_AIPw,0             },{L_Iwx        ,O_C_NBE        ,S_C_AIPw,0             },
00297 /* 0x188 - 0x18f */
00298 {L_Iwx          ,O_C_S          ,S_C_AIPw,0             },{L_Iwx        ,O_C_NS         ,S_C_AIPw,0             },
00299 {L_Iwx          ,O_C_P          ,S_C_AIPw,0             },{L_Iwx        ,O_C_NP         ,S_C_AIPw,0             },
00300 {L_Iwx          ,O_C_L          ,S_C_AIPw,0             },{L_Iwx        ,O_C_NL         ,S_C_AIPw,0             },
00301 {L_Iwx          ,O_C_LE         ,S_C_AIPw,0             },{L_Iwx        ,O_C_NLE        ,S_C_AIPw,0             },
00302 
00303 /* 0x190 - 0x197 */
00304 {L_MODRM        ,O_C_O          ,S_C_Eb,0               },{L_MODRM      ,O_C_NO         ,S_C_Eb,0               },
00305 {L_MODRM        ,O_C_B          ,S_C_Eb,0               },{L_MODRM      ,O_C_NB         ,S_C_Eb,0               },
00306 {L_MODRM        ,O_C_Z          ,S_C_Eb,0               },{L_MODRM      ,O_C_NZ         ,S_C_Eb,0               },
00307 {L_MODRM        ,O_C_BE         ,S_C_Eb,0               },{L_MODRM      ,O_C_NBE        ,S_C_Eb,0               },
00308 /* 0x198 - 0x19f */
00309 {L_MODRM        ,O_C_S          ,S_C_Eb,0               },{L_MODRM      ,O_C_NS         ,S_C_Eb,0               },
00310 {L_MODRM        ,O_C_P          ,S_C_Eb,0               },{L_MODRM      ,O_C_NP         ,S_C_Eb,0               },
00311 {L_MODRM        ,O_C_L          ,S_C_Eb,0               },{L_MODRM      ,O_C_NL         ,S_C_Eb,0               },
00312 {L_MODRM        ,O_C_LE         ,S_C_Eb,0               },{L_MODRM      ,O_C_NLE        ,S_C_Eb,0               },
00313 
00314 /* 0x1a0 - 0x1a7 */
00315 {L_SEG          ,0              ,S_PUSHw        ,fs             },{D_POPSEGw,0          ,0              ,fs                     },
00316 {D_CPUID        ,0                      ,0              ,0              },{L_MODRM      ,O_BTw          ,S_Ew   ,M_EwGwt        },
00317 {L_MODRM        ,O_DSHLw        ,S_Ew,M_EwGwIb  },{L_MODRM      ,O_DSHLw        ,S_Ew   ,M_EwGwCL       },
00318 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00319 /* 0x1a8 - 0x1af */
00320 {L_SEG          ,0              ,S_PUSHw        ,gs             },{D_POPSEGw,0          ,0              ,gs                     },
00321 {0                      ,0                      ,0              ,0              },{L_MODRM      ,O_BTSw         ,S_Ew   ,M_EwGwt        },
00322 {L_MODRM        ,O_DSHRw        ,S_Ew,M_EwGwIb  },{L_MODRM      ,O_DSHRw        ,S_Ew   ,M_EwGwCL       },
00323 {0                      ,0                      ,0              ,0              },{L_MODRM      ,O_IMULRw       ,S_Gw   ,M_EwxGwx       },
00324 
00325 /* 0x1b0 - 0x1b7 */
00326 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00327 {L_MODRM        ,O_SEGSS        ,S_SEGGw,M_Efw  },{L_MODRM      ,O_BTRw         ,S_Ew   ,M_EwGwt        },
00328 {L_MODRM        ,O_SEGFS        ,S_SEGGw,M_Efw  },{L_MODRM      ,O_SEGGS        ,S_SEGGw,M_Efw  },
00329 {L_MODRM        ,0                      ,S_Gw   ,M_Eb   },{L_MODRM      ,0                      ,S_Gw   ,M_Ew   },
00330 /* 0x1b8 - 0x1bf */
00331 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00332 {L_MODRM        ,0xe            ,0              ,M_GRP  },{L_MODRM      ,O_BTCw         ,S_Ew   ,M_EwGwt        },
00333 {L_MODRM        ,O_BSFw         ,S_Gw   ,M_Ew   },{L_MODRM      ,O_BSRw         ,S_Gw   ,M_Ew   },
00334 {L_MODRM        ,0                      ,S_Gw   ,M_Ebx  },{L_MODRM      ,0                      ,S_Gw   ,M_Ewx  },
00335 
00336 /* 0x1c0 - 0x1cc */
00337 {L_MODRM                ,t_ADDb                 ,S_EbGb         ,M_GbEb         },{L_MODRM              ,t_ADDw         ,S_EwGw         ,M_GwEw },
00338 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00339 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00340 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00341 /* 0x1c8 - 0x1cf */
00342 {L_REGw         ,O_BSWAPw       ,S_REGw ,REGI_AX},{L_REGw       ,O_BSWAPw       ,S_REGw ,REGI_CX},
00343 {L_REGw         ,O_BSWAPw       ,S_REGw ,REGI_DX},{L_REGw       ,O_BSWAPw       ,S_REGw ,REGI_BX},
00344 {L_REGw         ,O_BSWAPw       ,S_REGw ,REGI_SP},{L_REGw       ,O_BSWAPw       ,S_REGw ,REGI_BP},
00345 {L_REGw         ,O_BSWAPw       ,S_REGw ,REGI_SI},{L_REGw       ,O_BSWAPw       ,S_REGw ,REGI_DI},
00346 
00347 /* 0x1d0 - 0x1d7 */
00348 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00349 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00350 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00351 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00352 /* 0x1d8 - 0x1df */
00353 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00354 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00355 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00356 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00357 
00358 /* 0x1e0 - 0x1ee */
00359 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00360 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00361 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00362 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00363 /* 0x1e8 - 0x1ef */
00364 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00365 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00366 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00367 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00368 
00369 /* 0x1f0 - 0x1fc */
00370 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00371 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00372 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00373 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00374 /* 0x1f8 - 0x1ff */
00375 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00376 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00377 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00378 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00379 
00380 
00381 /* 0x200 - 0x207 */
00382 {L_MODRM        ,t_ADDb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ADDd ,S_Ed   ,M_EdGd         },
00383 {L_MODRM        ,t_ADDb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ADDd ,S_Gd   ,M_GdEd         },
00384 {L_REGbIb       ,t_ADDb ,S_REGb ,REGI_AL        },{L_REGdId     ,t_ADDd ,S_REGd ,REGI_AX        },
00385 {L_SEG          ,0              ,S_PUSHd,es                     },{D_POPSEGd,0          ,0              ,es                     },
00386 /* 0x208 - 0x20f */
00387 {L_MODRM        ,t_ORb  ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ORd  ,S_Ed   ,M_EdGd         },
00388 {L_MODRM        ,t_ORb  ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ORd  ,S_Gd   ,M_GdEd         },
00389 {L_REGbIb       ,t_ORb  ,S_REGb ,REGI_AL        },{L_REGdId     ,t_ORd  ,S_REGd ,REGI_AX        },
00390 {L_SEG          ,0              ,S_PUSHd,cs                     },{L_DOUBLE     ,0              ,0              ,0                      },
00391 
00392 /* 0x210 - 0x217 */
00393 {L_MODRM        ,t_ADCb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ADCd ,S_Ed   ,M_EdGd         },
00394 {L_MODRM        ,t_ADCb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ADCd ,S_Gd   ,M_GdEd         },
00395 {L_REGbIb       ,t_ADCb ,S_REGb ,REGI_AL        },{L_REGdId     ,t_ADCd ,S_REGd ,REGI_AX        },
00396 {L_SEG          ,0              ,S_PUSHd,ss                     },{D_POPSEGd,0          ,0              ,ss                     },
00397 /* 0x218 - 0x21f */
00398 {L_MODRM        ,t_SBBb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_SBBd ,S_Ed   ,M_EdGd         },
00399 {L_MODRM        ,t_SBBb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_SBBd ,S_Gd   ,M_GdEd         },
00400 {L_REGbIb       ,t_SBBb ,S_REGb ,REGI_AL        },{L_REGdId     ,t_SBBd ,S_REGd ,REGI_AX        },
00401 {L_SEG          ,0              ,S_PUSHd,ds                     },{D_POPSEGd,0          ,0              ,ds                     },
00402 
00403 /* 0x220 - 0x227 */
00404 {L_MODRM        ,t_ANDb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_ANDd ,S_Ed   ,M_EdGd         },
00405 {L_MODRM        ,t_ANDb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_ANDd ,S_Gd   ,M_GdEd         },
00406 {L_REGbIb       ,t_ANDb ,S_REGb ,REGI_AL        },{L_REGdId     ,t_ANDd ,S_REGd ,REGI_AX        },
00407 {L_PRESEG       ,0              ,0              ,es                     },{D_DAA        ,0              ,0              ,0                      },
00408 /* 0x228 - 0x22f */
00409 {L_MODRM        ,t_SUBb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_SUBd ,S_Ed   ,M_EdGd         },
00410 {L_MODRM        ,t_SUBb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_SUBd ,S_Gd   ,M_GdEd         },
00411 {L_REGbIb       ,t_SUBb ,S_REGb ,REGI_AL        },{L_REGdId     ,t_SUBd ,S_REGd ,REGI_AX        },
00412 {L_PRESEG       ,0              ,0              ,cs                     },{D_DAS        ,0              ,0              ,0                      },
00413 
00414 /* 0x230 - 0x237 */
00415 {L_MODRM        ,t_XORb ,S_Eb   ,M_EbGb         },{L_MODRM      ,t_XORd ,S_Ed   ,M_EdGd         },
00416 {L_MODRM        ,t_XORb ,S_Gb   ,M_GbEb         },{L_MODRM      ,t_XORd ,S_Gd   ,M_GdEd         },
00417 {L_REGbIb       ,t_XORb ,S_REGb ,REGI_AL        },{L_REGdId     ,t_XORd ,S_REGd ,REGI_AX        },
00418 {L_PRESEG       ,0              ,0              ,ss                     },{D_AAA        ,0              ,0              ,0                      },
00419 /* 0x238 - 0x23f */
00420 {L_MODRM        ,t_CMPb ,0              ,M_EbGb         },{L_MODRM      ,t_CMPd ,0              ,M_EdGd         },
00421 {L_MODRM        ,t_CMPb ,0              ,M_GbEb         },{L_MODRM      ,t_CMPd ,0              ,M_GdEd         },
00422 {L_REGbIb       ,t_CMPb ,0              ,REGI_AL        },{L_REGdId     ,t_CMPd ,0              ,REGI_AX        },
00423 {L_PRESEG       ,0              ,0              ,ds                     },{D_AAS        ,0              ,0              ,0                      },
00424 
00425 /* 0x240 - 0x247 */
00426 {L_REGd         ,t_INCd ,S_REGd ,REGI_AX},{L_REGd       ,t_INCd ,S_REGd ,REGI_CX},
00427 {L_REGd         ,t_INCd ,S_REGd ,REGI_DX},{L_REGd       ,t_INCd ,S_REGd ,REGI_BX},
00428 {L_REGd         ,t_INCd ,S_REGd ,REGI_SP},{L_REGd       ,t_INCd ,S_REGd ,REGI_BP},
00429 {L_REGd         ,t_INCd ,S_REGd ,REGI_SI},{L_REGd       ,t_INCd ,S_REGd ,REGI_DI},
00430 /* 0x248 - 0x24f */
00431 {L_REGd         ,t_DECd ,S_REGd ,REGI_AX},{L_REGd       ,t_DECd ,S_REGd ,REGI_CX},
00432 {L_REGd         ,t_DECd ,S_REGd ,REGI_DX},{L_REGd       ,t_DECd ,S_REGd ,REGI_BX},
00433 {L_REGd         ,t_DECd ,S_REGd ,REGI_SP},{L_REGd       ,t_DECd ,S_REGd ,REGI_BP},
00434 {L_REGd         ,t_DECd ,S_REGd ,REGI_SI},{L_REGd       ,t_DECd ,S_REGd ,REGI_DI},
00435 
00436 /* 0x250 - 0x257 */
00437 {L_REGd         ,0              ,S_PUSHd,REGI_AX},{L_REGd       ,0              ,S_PUSHd,REGI_CX},
00438 {L_REGd         ,0              ,S_PUSHd,REGI_DX},{L_REGd       ,0              ,S_PUSHd,REGI_BX},
00439 {L_REGd         ,0              ,S_PUSHd,REGI_SP},{L_REGd       ,0              ,S_PUSHd,REGI_BP},
00440 {L_REGd         ,0              ,S_PUSHd,REGI_SI},{L_REGd       ,0              ,S_PUSHd,REGI_DI},
00441 /* 0x258 - 0x25f */
00442 {L_POPd         ,0              ,S_REGd ,REGI_AX},{L_POPd       ,0              ,S_REGd ,REGI_CX},
00443 {L_POPd         ,0              ,S_REGd ,REGI_DX},{L_POPd       ,0              ,S_REGd ,REGI_BX},
00444 {L_POPd         ,0              ,S_REGd ,REGI_SP},{L_POPd       ,0              ,S_REGd ,REGI_BP},
00445 {L_POPd         ,0              ,S_REGd ,REGI_SI},{L_POPd       ,0              ,S_REGd ,REGI_DI},
00446 
00447 /* 0x260 - 0x267 */
00448 {D_PUSHAd       ,0                      ,0              ,0              },{D_POPAd      ,0                      ,0              ,0              },
00449 {L_MODRM        ,O_BOUNDd       ,0              ,0              },{0            ,0                      ,0              ,0              },
00450 {L_PRESEG       ,0                      ,0              ,fs             },{L_PRESEG     ,0                      ,0              ,gs             },
00451 {L_PREOP        ,0                      ,0              ,0              },{L_PREADD     ,0                      ,0              ,0              },
00452 /* 0x268 - 0x26f */
00453 {L_Id           ,0                      ,S_PUSHd,0              },{L_MODRM      ,O_IMULRd       ,S_Gd   ,M_EdId},
00454 {L_Ibx          ,0                      ,S_PUSHd,0              },{L_MODRM      ,O_IMULRd       ,S_Gd   ,M_EdIbx},
00455 {L_STRING       ,R_INSB         ,0              ,0              },{L_STRING     ,R_INSD         ,0              ,0              },
00456 {L_STRING       ,R_OUTSB        ,0              ,0              },{L_STRING     ,R_OUTSD        ,0              ,0              },
00457 
00458 /* 0x270 - 0x277 */
00459 {L_Ibx          ,O_C_O          ,S_C_AIPd,0             },{L_Ibx        ,O_C_NO         ,S_C_AIPd,0             },
00460 {L_Ibx          ,O_C_B          ,S_C_AIPd,0             },{L_Ibx        ,O_C_NB         ,S_C_AIPd,0             },
00461 {L_Ibx          ,O_C_Z          ,S_C_AIPd,0             },{L_Ibx        ,O_C_NZ         ,S_C_AIPd,0             },
00462 {L_Ibx          ,O_C_BE         ,S_C_AIPd,0             },{L_Ibx        ,O_C_NBE        ,S_C_AIPd,0             },
00463 /* 0x278 - 0x27f */
00464 {L_Ibx          ,O_C_S          ,S_C_AIPd,0             },{L_Ibx        ,O_C_NS         ,S_C_AIPd,0             },
00465 {L_Ibx          ,O_C_P          ,S_C_AIPd,0             },{L_Ibx        ,O_C_NP         ,S_C_AIPd,0             },
00466 {L_Ibx          ,O_C_L          ,S_C_AIPd,0             },{L_Ibx        ,O_C_NL         ,S_C_AIPd,0             },
00467 {L_Ibx          ,O_C_LE         ,S_C_AIPd,0             },{L_Ibx        ,O_C_NLE        ,S_C_AIPd,0             },
00468 
00469 /* 0x280 - 0x287 */
00470 {L_MODRM        ,0                      ,0              ,M_GRP  },{L_MODRM      ,2                      ,0              ,M_GRP  },
00471 {L_MODRM        ,0                      ,0              ,M_GRP  },{L_MODRM      ,4                      ,0              ,M_GRP  },
00472 {L_MODRM        ,t_TESTb        ,0              ,M_EbGb },{L_MODRM      ,t_TESTd        ,0              ,M_EdGd },
00473 {L_MODRM        ,0                      ,S_EbGb ,M_GbEb },{L_MODRM      ,0                      ,S_EdGd ,M_GdEd },
00474 /* 0x288 - 0x28f */
00475 {L_MODRM                ,0              ,S_Eb   ,M_Gb   },{L_MODRM      ,0                      ,S_Ed   ,M_Gd   },
00476 {L_MODRM                ,0              ,S_Gb   ,M_Eb   },{L_MODRM      ,0                      ,S_Gd   ,M_Ed   },
00477 {L_MODRM                ,0              ,S_EdMw ,M_SEG  },{L_MODRM      ,0                      ,S_Gd   ,M_EA   },
00478 {L_MODRM                ,0              ,S_SEGm ,M_Ew   },{L_POPdRM     ,0                      ,S_Ed   ,M_None },
00479 
00480 /* 0x290 - 0x297 */
00481 {D_NOP          ,0                      ,0              ,0              },{L_REGd       ,O_XCHG_EAX     ,S_REGd ,REGI_CX},
00482 {L_REGd         ,O_XCHG_EAX     ,S_REGd ,REGI_DX},{L_REGd       ,O_XCHG_EAX     ,S_REGd ,REGI_BX},
00483 {L_REGd         ,O_XCHG_EAX     ,S_REGd ,REGI_SP},{L_REGd       ,O_XCHG_EAX     ,S_REGd ,REGI_BP},
00484 {L_REGd         ,O_XCHG_EAX     ,S_REGd ,REGI_SI},{L_REGd       ,O_XCHG_EAX     ,S_REGd ,REGI_DI},
00485 /* 0x298 - 0x29f */
00486 {D_CWDE         ,0                      ,0              ,0              },{D_CDQ        ,0                      ,0              ,0              },
00487 {L_Ifd          ,O_CALLFd       ,0              ,0              },{D_WAIT       ,0                      ,0              ,0              },
00488 {D_PUSHF        ,0                      ,0              ,true   },{D_POPF       ,0                      ,0              ,true   },
00489 {D_SAHF         ,0                      ,0              ,0              },{D_LAHF       ,0                      ,0              ,0              },
00490 
00491 /* 0x2a0 - 0x2a7 */
00492 {L_OP           ,O_ALOP         ,0              ,0              },{L_OP         ,O_EAXOP        ,0              ,0              },
00493 {L_OP           ,O_OPAL         ,0              ,0              },{L_OP         ,O_OPEAX        ,0              ,0              },
00494 {L_STRING       ,R_MOVSB        ,0              ,0              },{L_STRING     ,R_MOVSD        ,0              ,0              },
00495 {L_STRING       ,R_CMPSB        ,0              ,0              },{L_STRING     ,R_CMPSD        ,0              ,0              },
00496 /* 0x2a8 - 0x2af */
00497 {L_REGbIb       ,t_TESTb        ,0              ,REGI_AL},{L_REGdId     ,t_TESTd        ,0              ,REGI_AX},
00498 {L_STRING       ,R_STOSB        ,0              ,0              },{L_STRING     ,R_STOSD        ,0              ,0              },
00499 {L_STRING       ,R_LODSB        ,0              ,0              },{L_STRING     ,R_LODSD        ,0              ,0              },
00500 {L_STRING       ,R_SCASB        ,0              ,0              },{L_STRING     ,R_SCASD        ,0              ,0              },
00501 
00502 /* 0x2b0        - 0x2b7 */
00503 {L_Ib           ,0                      ,S_REGb ,REGI_AL},{L_Ib ,0                      ,S_REGb ,REGI_CL},
00504 {L_Ib           ,0                      ,S_REGb ,REGI_DL},{L_Ib ,0                      ,S_REGb ,REGI_BL},
00505 {L_Ib           ,0                      ,S_REGb ,REGI_AH},{L_Ib ,0                      ,S_REGb ,REGI_CH},
00506 {L_Ib           ,0                      ,S_REGb ,REGI_DH},{L_Ib ,0                      ,S_REGb ,REGI_BH},
00507 /* 0x2b8 - 0x2bf */
00508 {L_Id           ,0                      ,S_REGd ,REGI_AX},{L_Id ,0                      ,S_REGd ,REGI_CX},
00509 {L_Id           ,0                      ,S_REGd ,REGI_DX},{L_Id ,0                      ,S_REGd ,REGI_BX},
00510 {L_Id           ,0                      ,S_REGd ,REGI_SP},{L_Id ,0                      ,S_REGd ,REGI_BP},
00511 {L_Id           ,0                      ,S_REGd ,REGI_SI},{L_Id ,0                      ,S_REGd ,REGI_DI},
00512 
00513 /* 0x2c0 - 0x2c7 */
00514 {L_MODRM        ,5                      ,0      ,M_SHIFT_Ib     },{L_MODRM      ,7                      ,0      ,M_SHIFT_Ib     },
00515 {L_POPd         ,0                      ,S_IPIw ,0              },{L_POPd       ,0                      ,S_IP   ,0              },
00516 {L_MODRM        ,O_SEGES        ,S_SEGGd,M_Efd  },{L_MODRM      ,O_SEGDS        ,S_SEGGd,M_Efd  },
00517 {L_MODRM        ,0                      ,S_Eb   ,M_Ib   },{L_MODRM      ,0                      ,S_Ed   ,M_Id   },
00518 /* 0x2c8 - 0x2cf */
00519 {D_ENTERd       ,0                      ,0              ,0              },{D_LEAVEd     ,0                      ,0              ,0              },
00520 {D_RETFdIw      ,0                      ,0              ,0              },{D_RETFd      ,0                      ,0              ,0              },
00521 {L_VAL          ,O_INT          ,0              ,3              },{L_Ib         ,O_INT          ,0              ,0              },
00522 {L_INTO         ,O_INT          ,0              ,0              },{D_IRETd      ,0                      ,0              ,0              },
00523 
00524 /* 0x2d0 - 0x2d7 */
00525 {L_MODRM        ,5                      ,0      ,M_SHIFT_1      },{L_MODRM      ,7                      ,0      ,M_SHIFT_1      },
00526 {L_MODRM        ,5                      ,0      ,M_SHIFT_CL     },{L_MODRM      ,7                      ,0      ,M_SHIFT_CL     },
00527 {L_Ib           ,O_AAM          ,0              ,0              },{L_Ib         ,O_AAD          ,0              ,0              },
00528 {D_SETALC       ,0                      ,0              ,0              },{D_XLAT       ,0                      ,0              ,0              },
00529 /* 0x2d8 - 0x2df */
00530 {L_MODRM        ,O_FPU          ,0              ,0              },{L_MODRM      ,O_FPU          ,1              ,0              },
00531 {L_MODRM        ,O_FPU          ,2              ,0              },{L_MODRM      ,O_FPU          ,3              ,0              },
00532 {L_MODRM        ,O_FPU          ,4              ,0              },{L_MODRM      ,O_FPU          ,5              ,0              },
00533 {L_MODRM        ,O_FPU          ,6              ,0              },{L_MODRM      ,O_FPU          ,7              ,0              },
00534 
00535 /* 0x2e0 - 0x2e7 */
00536 {L_Ibx          ,O_LOOPNZ       ,S_AIPd ,0              },{L_Ibx        ,O_LOOPZ        ,S_AIPd ,0              },
00537 {L_Ibx          ,O_LOOP         ,S_AIPd ,0              },{L_Ibx        ,O_JCXZ         ,S_AIPd ,0              },
00538 {L_Ib           ,O_INb          ,0              ,0              },{L_Ib         ,O_INd          ,0              ,0              },
00539 {L_Ib           ,O_OUTb         ,0              ,0              },{L_Ib         ,O_OUTd         ,0              ,0              },
00540 /* 0x2e8 - 0x2ef */
00541 {L_Id           ,O_CALLNd       ,S_AIPd ,0              },{L_Idx        ,0                      ,S_AIPd ,0              },
00542 {L_Ifd          ,O_JMPFd        ,0              ,0              },{L_Ibx        ,0                      ,S_AIPd ,0              },
00543 {L_REGw         ,O_INb          ,0              ,REGI_DX},{L_REGw       ,O_INd          ,0              ,REGI_DX},
00544 {L_REGw         ,O_OUTb         ,0              ,REGI_DX},{L_REGw       ,O_OUTd         ,0              ,REGI_DX},
00545 
00546 /* 0x2f0 - 0x2f7 */
00547 {D_LOCK         ,0                      ,0              ,0              },{D_ICEBP      ,0                      ,0              ,0              },
00548 {L_PREREPNE     ,0                      ,0              ,0              },{L_PREREP     ,0                      ,0              ,0              },
00549 {D_HLT          ,0                      ,0              ,0              },{D_CMC        ,0                      ,0              ,0              },
00550 {L_MODRM        ,8                      ,0              ,M_GRP  },{L_MODRM      ,0xa            ,0              ,M_GRP  },
00551 /* 0x2f8 - 0x2ff */
00552 {D_CLC          ,0                      ,0              ,0              },{D_STC        ,0                      ,0              ,0              },
00553 {D_CLI          ,0                      ,0              ,0              },{D_STI        ,0                      ,0              ,0              },
00554 {D_CLD          ,0                      ,0              ,0              },{D_STD        ,0                      ,0              ,0              },
00555 {L_MODRM        ,0xb            ,0              ,M_GRP  },{L_MODRM      ,0xd            ,0              ,M_GRP  },
00556 
00557 
00558 /* 0x300 - 0x307 */
00559 {L_MODRM        ,O_GRP6d        ,S_Ew   ,M_Ew   },{L_MODRM      ,O_GRP7d        ,S_Ew   ,M_Ew   },
00560 {L_MODRM_NVM    ,O_LAR          ,S_Gd   ,M_EdGd },{L_MODRM_NVM  ,O_LSL          ,S_Gd   ,M_EdGd },
00561 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00562 {D_CLTS         ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00563 /* 0x308 - 0x30f */
00564 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00565 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00566 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00567 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00568 
00569 /* 0x310 - 0x317 */
00570 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00571 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00572 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00573 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00574 /* 0x318 - 0x31f */
00575 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00576 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00577 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00578 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00579 
00580 /* 0x320 - 0x327 */
00581 {L_MODRM        ,O_M_Rd_CRx     ,S_Ed   ,0              },{L_MODRM      ,O_M_Rd_DRx     ,S_Ed   ,0              },
00582 {L_MODRM        ,O_M_CRx_Rd     ,0              ,M_Ed   },{L_MODRM      ,O_M_DRx_Rd     ,0              ,M_Ed   },
00583 {L_MODRM        ,O_M_Rd_TRx     ,S_Ed   ,0              },{0            ,0                      ,0              ,0              },
00584 {L_MODRM        ,O_M_TRx_Rd     ,0              ,M_Ed   },{0            ,0                      ,0              ,0              },
00585 
00586 /* 0x328 - 0x32f */
00587 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00588 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00589 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00590 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00591 
00592 /* 0x330 - 0x337 */
00593 {0                      ,0                      ,0              ,0              },{D_RDTSC      ,0                      ,0              ,0              },
00594 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00595 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00596 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00597 /* 0x338 - 0x33f */
00598 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00599 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00600 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00601 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00602 
00603 /* 0x340 - 0x347 */
00604 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00605 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00606 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00607 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00608 /* 0x348 - 0x34f */
00609 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00610 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00611 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00612 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00613 
00614 /* 0x350 - 0x357 */
00615 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00616 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00617 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00618 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00619 /* 0x358 - 0x35f */
00620 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00621 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00622 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00623 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00624 
00625 /* 0x360 - 0x367 */
00626 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00627 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00628 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00629 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00630 /* 0x368 - 0x36f */
00631 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00632 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00633 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00634 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00635 
00636 
00637 /* 0x370 - 0x377 */
00638 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00639 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00640 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00641 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00642 /* 0x378 - 0x37f */
00643 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00644 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00645 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00646 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00647 
00648 /* 0x380 - 0x387 */
00649 {L_Idx          ,O_C_O          ,S_C_AIPd,0             },{L_Idx        ,O_C_NO         ,S_C_AIPd,0             },
00650 {L_Idx          ,O_C_B          ,S_C_AIPd,0             },{L_Idx        ,O_C_NB         ,S_C_AIPd,0             },
00651 {L_Idx          ,O_C_Z          ,S_C_AIPd,0             },{L_Idx        ,O_C_NZ         ,S_C_AIPd,0             },
00652 {L_Idx          ,O_C_BE         ,S_C_AIPd,0             },{L_Idx        ,O_C_NBE        ,S_C_AIPd,0             },
00653 /* 0x388 - 0x38f */
00654 {L_Idx          ,O_C_S          ,S_C_AIPd,0             },{L_Idx        ,O_C_NS         ,S_C_AIPd,0             },
00655 {L_Idx          ,O_C_P          ,S_C_AIPd,0             },{L_Idx        ,O_C_NP         ,S_C_AIPd,0             },
00656 {L_Idx          ,O_C_L          ,S_C_AIPd,0             },{L_Idx        ,O_C_NL         ,S_C_AIPd,0             },
00657 {L_Idx          ,O_C_LE         ,S_C_AIPd,0             },{L_Idx        ,O_C_NLE        ,S_C_AIPd,0             },
00658 
00659 /* 0x390 - 0x397 */
00660 {L_MODRM        ,O_C_O          ,S_C_Eb,0               },{L_MODRM      ,O_C_NO         ,S_C_Eb,0               },
00661 {L_MODRM        ,O_C_B          ,S_C_Eb,0               },{L_MODRM      ,O_C_NB         ,S_C_Eb,0               },
00662 {L_MODRM        ,O_C_Z          ,S_C_Eb,0               },{L_MODRM      ,O_C_NZ         ,S_C_Eb,0               },
00663 {L_MODRM        ,O_C_BE         ,S_C_Eb,0               },{L_MODRM      ,O_C_NBE        ,S_C_Eb,0               },
00664 /* 0x398 - 0x39f */
00665 {L_MODRM        ,O_C_S          ,S_C_Eb,0               },{L_MODRM      ,O_C_NS         ,S_C_Eb,0               },
00666 {L_MODRM        ,O_C_P          ,S_C_Eb,0               },{L_MODRM      ,O_C_NP         ,S_C_Eb,0               },
00667 {L_MODRM        ,O_C_L          ,S_C_Eb,0               },{L_MODRM      ,O_C_NL         ,S_C_Eb,0               },
00668 {L_MODRM        ,O_C_LE         ,S_C_Eb,0               },{L_MODRM      ,O_C_NLE        ,S_C_Eb,0               },
00669 
00670 /* 0x3a0 - 0x3a7 */
00671 {L_SEG          ,0              ,S_PUSHd        ,fs             },{D_POPSEGd,0                  ,0              ,fs                     },
00672 {D_CPUID        ,0                      ,0              ,0              },{L_MODRM      ,O_BTd          ,S_Ed   ,M_EdGdt        },
00673 {L_MODRM        ,O_DSHLd        ,S_Ed,M_EdGdIb  },{L_MODRM      ,O_DSHLd        ,S_Ed   ,M_EdGdCL       },
00674 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00675 /* 0x3a8 - 0x3af */
00676 {L_SEG          ,0              ,S_PUSHd        ,gs             },{D_POPSEGd,0                  ,0              ,gs                     },
00677 {0                      ,0                      ,0              ,0              },{L_MODRM      ,O_BTSd         ,S_Ed   ,M_EdGdt        },
00678 {L_MODRM        ,O_DSHRd        ,S_Ed,M_EdGdIb  },{L_MODRM      ,O_DSHRd        ,S_Ed   ,M_EdGdCL       },
00679 {0                      ,0                      ,0              ,0              },{L_MODRM      ,O_IMULRd       ,S_Gd   ,M_EdxGdx       },
00680 
00681 /* 0x3b0 - 0x3b7 */
00682 {0                      ,0                      ,0              ,0              },{L_MODRM      ,O_CMPXCHG      ,S_Ed   ,M_Ed   },
00683 {L_MODRM        ,O_SEGSS        ,S_SEGGd,M_Efd  },{L_MODRM      ,O_BTRd         ,S_Ed   ,M_EdGdt        },
00684 {L_MODRM        ,O_SEGFS        ,S_SEGGd,M_Efd  },{L_MODRM      ,O_SEGGS        ,S_SEGGd,M_Efd  },
00685 {L_MODRM        ,0                      ,S_Gd   ,M_Eb   },{L_MODRM      ,0                      ,S_Gd   ,M_Ew   },
00686 /* 0x3b8 - 0x3bf */
00687 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00688 {L_MODRM        ,0xf            ,0              ,M_GRP  },{L_MODRM      ,O_BTCd         ,S_Ed   ,M_EdGdt        },
00689 {L_MODRM        ,O_BSFd         ,S_Gd   ,M_Ed   },{L_MODRM      ,O_BSRd         ,S_Gd   ,M_Ed   },
00690 {L_MODRM        ,0                      ,S_Gd   ,M_Ebx  },{L_MODRM      ,0                      ,S_Gd   ,M_Ewx  },
00691 
00692 /* 0x3c0 - 0x3cc */
00693 {L_MODRM                ,t_ADDb                 ,S_EbGb         ,M_GbEb         },{L_MODRM              ,t_ADDd         ,S_EdGd         ,M_GdEd },
00694 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00695 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00696 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00697 /* 0x3c8 - 0x3cf */
00698 {L_REGd         ,O_BSWAPd       ,S_REGd ,REGI_AX},{L_REGd       ,O_BSWAPd       ,S_REGd ,REGI_CX},
00699 {L_REGd         ,O_BSWAPd       ,S_REGd ,REGI_DX},{L_REGd       ,O_BSWAPd       ,S_REGd ,REGI_BX},
00700 {L_REGd         ,O_BSWAPd       ,S_REGd ,REGI_SP},{L_REGd       ,O_BSWAPd       ,S_REGd ,REGI_BP},
00701 {L_REGd         ,O_BSWAPd       ,S_REGd ,REGI_SI},{L_REGd       ,O_BSWAPd       ,S_REGd ,REGI_DI},
00702 
00703 /* 0x3d0 - 0x3d7 */
00704 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00705 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00706 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00707 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00708 /* 0x3d8 - 0x3df */
00709 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00710 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00711 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00712 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00713 
00714 /* 0x3e0 - 0x3ee */
00715 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00716 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00717 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00718 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00719 /* 0x3e8 - 0x3ef */
00720 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00721 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00722 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00723 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00724 
00725 /* 0x3f0 - 0x3fc */
00726 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00727 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00728 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00729 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00730 /* 0x3f8 - 0x3ff */
00731 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00732 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00733 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00734 {0                      ,0                      ,0              ,0              },{0            ,0                      ,0              ,0              },
00735 
00736 };
00737 
00738 static OpCode Groups[16][8]={
00739 {       /* 0x00 Group 1 Eb,Ib */
00740 {0              ,t_ADDb         ,S_Eb   ,M_EbIb         },{0    ,t_ORb          ,S_Eb   ,M_EbIb         },
00741 {0              ,t_ADCb         ,S_Eb   ,M_EbIb         },{0    ,t_SBBb         ,S_Eb   ,M_EbIb         },
00742 {0              ,t_ANDb         ,S_Eb   ,M_EbIb         },{0    ,t_SUBb         ,S_Eb   ,M_EbIb         },
00743 {0              ,t_XORb         ,S_Eb   ,M_EbIb         },{0    ,t_CMPb         ,0              ,M_EbIb         },
00744 },{     /* 0x01 Group 1 Ew,Iw */
00745 {0              ,t_ADDw         ,S_Ew   ,M_EwIw         },{0    ,t_ORw          ,S_Ew   ,M_EwIw         },
00746 {0              ,t_ADCw         ,S_Ew   ,M_EwIw         },{0    ,t_SBBw         ,S_Ew   ,M_EwIw         },
00747 {0              ,t_ANDw         ,S_Ew   ,M_EwIw         },{0    ,t_SUBw         ,S_Ew   ,M_EwIw         },
00748 {0              ,t_XORw         ,S_Ew   ,M_EwIw         },{0    ,t_CMPw         ,0              ,M_EwIw         },
00749 },{     /* 0x02 Group 1 Ed,Id */
00750 {0              ,t_ADDd         ,S_Ed   ,M_EdId         },{0    ,t_ORd          ,S_Ed   ,M_EdId         },
00751 {0              ,t_ADCd         ,S_Ed   ,M_EdId         },{0    ,t_SBBd         ,S_Ed   ,M_EdId         },
00752 {0              ,t_ANDd         ,S_Ed   ,M_EdId         },{0    ,t_SUBd         ,S_Ed   ,M_EdId         },
00753 {0              ,t_XORd         ,S_Ed   ,M_EdId         },{0    ,t_CMPd         ,0              ,M_EdId         },
00754 },{     /* 0x03 Group 1 Ew,Ibx */
00755 {0              ,t_ADDw         ,S_Ew   ,M_EwIbx        },{0    ,t_ORw          ,S_Ew   ,M_EwIbx        },
00756 {0              ,t_ADCw         ,S_Ew   ,M_EwIbx        },{0    ,t_SBBw         ,S_Ew   ,M_EwIbx        },
00757 {0              ,t_ANDw         ,S_Ew   ,M_EwIbx        },{0    ,t_SUBw         ,S_Ew   ,M_EwIbx        },
00758 {0              ,t_XORw         ,S_Ew   ,M_EwIbx        },{0    ,t_CMPw         ,0              ,M_EwIbx        },
00759 },{     /* 0x04 Group 1 Ed,Ibx */
00760 {0              ,t_ADDd         ,S_Ed   ,M_EdIbx        },{0    ,t_ORd          ,S_Ed   ,M_EdIbx        },
00761 {0              ,t_ADCd         ,S_Ed   ,M_EdIbx        },{0    ,t_SBBd         ,S_Ed   ,M_EdIbx        },
00762 {0              ,t_ANDd         ,S_Ed   ,M_EdIbx        },{0    ,t_SUBd         ,S_Ed   ,M_EdIbx        },
00763 {0              ,t_XORd         ,S_Ed   ,M_EdIbx        },{0    ,t_CMPd         ,0              ,M_EdIbx        },
00764 
00765 },{     /* 0x05 Group 2 Eb,XXX */
00766 {0              ,t_ROLb         ,S_Eb   ,M_Eb           },{0    ,t_RORb         ,S_Eb   ,M_Eb           },
00767 {0              ,t_RCLb         ,S_Eb   ,M_Eb           },{0    ,t_RCRb         ,S_Eb   ,M_Eb           },
00768 {0              ,t_SHLb         ,S_Eb   ,M_Eb           },{0    ,t_SHRb         ,S_Eb   ,M_Eb           },
00769 {0              ,t_SHLb         ,S_Eb   ,M_Eb           },{0    ,t_SARb         ,S_Eb   ,M_Eb           },
00770 },{     /* 0x06 Group 2 Ew,XXX */
00771 {0              ,t_ROLw         ,S_Ew   ,M_Ew           },{0    ,t_RORw         ,S_Ew   ,M_Ew           },
00772 {0              ,t_RCLw         ,S_Ew   ,M_Ew           },{0    ,t_RCRw         ,S_Ew   ,M_Ew           },
00773 {0              ,t_SHLw         ,S_Ew   ,M_Ew           },{0    ,t_SHRw         ,S_Ew   ,M_Ew           },
00774 {0              ,t_SHLw         ,S_Ew   ,M_Ew           },{0    ,t_SARw         ,S_Ew   ,M_Ew           },
00775 },{     /* 0x07 Group 2 Ed,XXX */
00776 {0              ,t_ROLd         ,S_Ed   ,M_Ed           },{0    ,t_RORd         ,S_Ed   ,M_Ed           },
00777 {0              ,t_RCLd         ,S_Ed   ,M_Ed           },{0    ,t_RCRd         ,S_Ed   ,M_Ed           },
00778 {0              ,t_SHLd         ,S_Ed   ,M_Ed           },{0    ,t_SHRd         ,S_Ed   ,M_Ed           },
00779 {0              ,t_SHLd         ,S_Ed   ,M_Ed           },{0    ,t_SARd         ,S_Ed   ,M_Ed           },
00780 
00781 
00782 },{     /* 0x08 Group 3 Eb */
00783 {0              ,t_TESTb        ,0              ,M_EbIb         },{0    ,t_TESTb        ,0              ,M_EbIb         },
00784 {0              ,O_NOT          ,S_Eb   ,M_Eb           },{0    ,t_NEGb         ,S_Eb   ,M_Eb           },
00785 {0              ,O_MULb         ,0              ,M_Eb           },{0    ,O_IMULb        ,0              ,M_Eb           },
00786 {0              ,O_DIVb         ,0              ,M_Eb           },{0    ,O_IDIVb        ,0              ,M_Eb           },
00787 },{     /* 0x09 Group 3 Ew */
00788 {0              ,t_TESTw        ,0              ,M_EwIw         },{0    ,t_TESTw        ,0              ,M_EwIw         },
00789 {0              ,O_NOT          ,S_Ew   ,M_Ew           },{0    ,t_NEGw         ,S_Ew   ,M_Ew           },
00790 {0              ,O_MULw         ,0              ,M_Ew           },{0    ,O_IMULw        ,0              ,M_Ew           },
00791 {0              ,O_DIVw         ,0              ,M_Ew           },{0    ,O_IDIVw        ,0              ,M_Ew           },
00792 },{     /* 0x0a Group 3 Ed */
00793 {0              ,t_TESTd        ,0              ,M_EdId         },{0    ,t_TESTd        ,0              ,M_EdId         },
00794 {0              ,O_NOT          ,S_Ed   ,M_Ed           },{0    ,t_NEGd         ,S_Ed   ,M_Ed           },
00795 {0              ,O_MULd         ,0              ,M_Ed           },{0    ,O_IMULd        ,0              ,M_Ed           },
00796 {0              ,O_DIVd         ,0              ,M_Ed           },{0    ,O_IDIVd        ,0              ,M_Ed           },
00797 
00798 },{     /* 0x0b Group 4 Eb */
00799 {0              ,t_INCb         ,S_Eb   ,M_Eb           },{0    ,t_DECb         ,S_Eb   ,M_Eb           },
00800 {0              ,0                      ,0              ,0                      },{0    ,0                      ,0              ,0                      },
00801 {0              ,0                      ,0              ,0                      },{0    ,0                      ,0              ,0                      },
00802 {0              ,0                      ,0              ,0                      },{0    ,O_CBACK        ,0              ,M_Iw           },
00803 },{     /* 0x0c Group 5 Ew */
00804 {0              ,t_INCw         ,S_Ew   ,M_Ew           },{0    ,t_DECw         ,S_Ew   ,M_Ew           },
00805 {0              ,O_CALLNw       ,S_IP   ,M_Ew           },{0    ,O_CALLFw       ,0              ,M_Efw          },
00806 {0              ,0                      ,S_IP   ,M_Ew           },{0    ,O_JMPFw        ,0              ,M_Efw          },
00807 {0              ,0                      ,S_PUSHw,M_Ew           },{0    ,0                      ,0              ,0                      },
00808 },{     /* 0x0d Group 5 Ed */
00809 {0              ,t_INCd         ,S_Ed   ,M_Ed           },{0    ,t_DECd         ,S_Ed   ,M_Ed           },
00810 {0              ,O_CALLNd       ,S_IP   ,M_Ed           },{0    ,O_CALLFd       ,0              ,M_Efd          },
00811 {0              ,0                      ,S_IP   ,M_Ed           },{0    ,O_JMPFd        ,0              ,M_Efd          },
00812 {0              ,0                      ,S_PUSHd,M_Ed           },{0    ,0                      ,0              ,0                      },
00813 
00814 
00815 },{     /* 0x0e Group 8 Ew */
00816 {0              ,0                      ,0              ,0                      },{0    ,0                      ,0              ,0                      },
00817 {0              ,0                      ,0              ,0                      },{0    ,0                      ,0              ,0                      },
00818 {0              ,O_BTw          ,S_Ew   ,M_EwIb         },{0    ,O_BTSw         ,S_Ew   ,M_EwIb         },
00819 {0              ,O_BTRw         ,S_Ew   ,M_EwIb         },{0    ,O_BTCw         ,S_Ew   ,M_EwIb         },
00820 },{     /* 0x0f Group 8 Ed */
00821 {0              ,0                      ,0              ,0                      },{0    ,0                      ,0              ,0                      },
00822 {0              ,0                      ,0              ,0                      },{0    ,0                      ,0              ,0                      },
00823 {0              ,O_BTd          ,S_Ed   ,M_EdIb         },{0    ,O_BTSd         ,S_Ed   ,M_EdIb         },
00824 {0              ,O_BTRd         ,S_Ed   ,M_EdIb         },{0    ,O_BTCd         ,S_Ed   ,M_EdIb         },
00825 
00826 
00827 
00828 }
00829 };
00830 
00831 
00832