mirror of
https://github.com/sarah-walker-pcem/pcem.git
synced 2025-07-23 03:33:02 +02:00
14939 lines
281 KiB
C
14939 lines
281 KiB
C
#ifndef _386_OPS_H_
|
|
#define _386_OPS_H_
|
|
#include "x86_ops.h"
|
|
|
|
#define ILLEGAL_ON(cond) \
|
|
do { \
|
|
if ((cond)) { \
|
|
cpu_state.pc = cpu_state.oldpc; \
|
|
x86illegal(); \
|
|
return 0; \
|
|
} \
|
|
} while (0)
|
|
|
|
static inline void PUSH_W(uint16_t val) {
|
|
if (stack32) {
|
|
writememw(ss, ESP - 2, val);
|
|
if (cpu_state.abrt)
|
|
return;
|
|
ESP -= 2;
|
|
} else {
|
|
writememw(ss, (SP - 2) & 0xFFFF, val);
|
|
if (cpu_state.abrt)
|
|
return;
|
|
SP -= 2;
|
|
}
|
|
}
|
|
|
|
static inline void PUSH_L(uint32_t val) {
|
|
if (stack32) {
|
|
writememl(ss, ESP - 4, val);
|
|
if (cpu_state.abrt)
|
|
return;
|
|
ESP -= 4;
|
|
} else {
|
|
writememl(ss, (SP - 4) & 0xFFFF, val);
|
|
if (cpu_state.abrt)
|
|
return;
|
|
SP -= 4;
|
|
}
|
|
}
|
|
|
|
static inline uint16_t POP_W() {
|
|
uint16_t ret;
|
|
if (stack32) {
|
|
ret = readmemw(ss, ESP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
ESP += 2;
|
|
} else {
|
|
ret = readmemw(ss, SP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
SP += 2;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static inline uint32_t POP_L() {
|
|
uint32_t ret;
|
|
if (stack32) {
|
|
ret = readmeml(ss, ESP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
ESP += 4;
|
|
} else {
|
|
ret = readmeml(ss, SP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
SP += 4;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static inline uint16_t POP_W_seg(uint32_t seg) {
|
|
uint16_t ret;
|
|
if (stack32) {
|
|
ret = readmemw(seg, ESP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
ESP += 2;
|
|
} else {
|
|
ret = readmemw(seg, SP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
SP += 2;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static inline uint32_t POP_L_seg(uint32_t seg) {
|
|
uint32_t ret;
|
|
if (stack32) {
|
|
ret = readmeml(seg, ESP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
ESP += 4;
|
|
} else {
|
|
ret = readmeml(seg, SP);
|
|
if (cpu_state.abrt)
|
|
return 0;
|
|
SP += 4;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
static int ILLEGAL(uint32_t fetchdat) {
|
|
cpu_state.pc = cpu_state.oldpc;
|
|
|
|
// fatal("Illegal instruction %08X\n", fetchdat);
|
|
x86illegal();
|
|
return 0;
|
|
}
|
|
|
|
#include "x86_ops_arith.h"
|
|
#include "x86_ops_atomic.h"
|
|
#include "x86_ops_bcd.h"
|
|
#include "x86_ops_bit.h"
|
|
#include "x86_ops_bitscan.h"
|
|
#include "x86_ops_call.h"
|
|
#include "x86_ops_cyrix.h"
|
|
#include "x86_ops_flag.h"
|
|
#include "x86_ops_fpu.h"
|
|
#include "x86_ops_inc_dec.h"
|
|
#include "x86_ops_int.h"
|
|
#include "x86_ops_io.h"
|
|
#include "x86_ops_jump.h"
|
|
#include "x86_ops_misc.h"
|
|
#include "x86_ops_mmx.h"
|
|
#include "x86_ops_3dnow.h"
|
|
#include "x86_ops_mmx_arith.h"
|
|
#include "x86_ops_mmx_cmp.h"
|
|
#include "x86_ops_mmx_logic.h"
|
|
#include "x86_ops_mmx_mov.h"
|
|
#include "x86_ops_mmx_pack.h"
|
|
#include "x86_ops_mmx_shift.h"
|
|
#include "x86_ops_mov.h"
|
|
#include "x86_ops_mov_ctrl.h"
|
|
#include "x86_ops_mov_seg.h"
|
|
#include "x86_ops_movx.h"
|
|
#include "x86_ops_msr.h"
|
|
#include "x86_ops_mul.h"
|
|
#include "x86_ops_pmode.h"
|
|
#include "x86_ops_prefix.h"
|
|
#include "x86_ops_rep.h"
|
|
#include "x86_ops_ret.h"
|
|
#include "x86_ops_set.h"
|
|
#include "x86_ops_shift.h"
|
|
#include "x86_ops_stack.h"
|
|
#include "x86_ops_string.h"
|
|
#include "x86_ops_xchg.h"
|
|
|
|
static int op0F_w_a16(uint32_t fetchdat) {
|
|
int opcode = fetchdat & 0xff;
|
|
cpu_state.pc++;
|
|
PREFETCH_PREFIX();
|
|
|
|
return x86_opcodes_0f[opcode](fetchdat >> 8);
|
|
}
|
|
static int op0F_l_a16(uint32_t fetchdat) {
|
|
int opcode = fetchdat & 0xff;
|
|
cpu_state.pc++;
|
|
PREFETCH_PREFIX();
|
|
|
|
return x86_opcodes_0f[opcode | 0x100](fetchdat >> 8);
|
|
}
|
|
static int op0F_w_a32(uint32_t fetchdat) {
|
|
int opcode = fetchdat & 0xff;
|
|
cpu_state.pc++;
|
|
PREFETCH_PREFIX();
|
|
|
|
return x86_opcodes_0f[opcode | 0x200](fetchdat >> 8);
|
|
}
|
|
static int op0F_l_a32(uint32_t fetchdat) {
|
|
int opcode = fetchdat & 0xff;
|
|
cpu_state.pc++;
|
|
PREFETCH_PREFIX();
|
|
|
|
return x86_opcodes_0f[opcode | 0x300](fetchdat >> 8);
|
|
}
|
|
|
|
OpFn OP_TABLE(286_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_286,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
opLOADALL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*90*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*a0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*b0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_286,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
opLOADALL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*90*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*a0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*b0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_286,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
opLOADALL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*90*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*a0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*b0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_286,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
opLOADALL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*90*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*a0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*b0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(386_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
opLOADALL386,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
ILLEGAL,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
opLOADALL386,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
ILLEGAL,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
opLOADALL386,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
ILLEGAL,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
opLOADALL386,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
ILLEGAL,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(winchip_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(winchip2_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPREFETCH_a16,
|
|
opFEMMS,
|
|
op3DNOW_a16,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPREFETCH_a16,
|
|
opFEMMS,
|
|
op3DNOW_a16,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPREFETCH_a32,
|
|
opFEMMS,
|
|
op3DNOW_a32,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPREFETCH_a32,
|
|
opFEMMS,
|
|
op3DNOW_a32,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(pentium_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(c6x86_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opSVDC_a16,
|
|
opRSDC_a16,
|
|
opSVLDT_a16,
|
|
opRSLDT_a16,
|
|
opSVTS_a16,
|
|
opRSTS_a16,
|
|
opSMINT,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opSVDC_a16,
|
|
opRSDC_a16,
|
|
opSVLDT_a16,
|
|
opRSLDT_a16,
|
|
opSVTS_a16,
|
|
opRSTS_a16,
|
|
opSMINT,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opSVDC_a32,
|
|
opRSDC_a32,
|
|
opSVLDT_a32,
|
|
opRSLDT_a32,
|
|
opSVTS_a32,
|
|
opRSTS_a32,
|
|
opSMINT,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opSVDC_a32,
|
|
opRSDC_a32,
|
|
opSVLDT_a32,
|
|
opRSLDT_a32,
|
|
opSVTS_a32,
|
|
opRSTS_a32,
|
|
opSMINT,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(pentiummmx_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(c6x86mx_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opRDSHR_a16,
|
|
opWRSHR_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_w_a16,
|
|
opCMOVNO_w_a16,
|
|
opCMOVB_w_a16,
|
|
opCMOVNB_w_a16,
|
|
opCMOVE_w_a16,
|
|
opCMOVNE_w_a16,
|
|
opCMOVBE_w_a16,
|
|
opCMOVNBE_w_a16,
|
|
opCMOVS_w_a16,
|
|
opCMOVNS_w_a16,
|
|
opCMOVP_w_a16,
|
|
opCMOVNP_w_a16,
|
|
opCMOVL_w_a16,
|
|
opCMOVNL_w_a16,
|
|
opCMOVLE_w_a16,
|
|
opCMOVNLE_w_a16,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
opSVDC_a16,
|
|
opRSDC_a16,
|
|
opSVLDT_a16,
|
|
opRSLDT_a16,
|
|
opSVTS_a16,
|
|
opRSTS_a16,
|
|
opMOVD_mm_l_a16_cx,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opRDSHR_a16,
|
|
opWRSHR_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_l_a16,
|
|
opCMOVNO_l_a16,
|
|
opCMOVB_l_a16,
|
|
opCMOVNB_l_a16,
|
|
opCMOVE_l_a16,
|
|
opCMOVNE_l_a16,
|
|
opCMOVBE_l_a16,
|
|
opCMOVNBE_l_a16,
|
|
opCMOVS_l_a16,
|
|
opCMOVNS_l_a16,
|
|
opCMOVP_l_a16,
|
|
opCMOVNP_l_a16,
|
|
opCMOVL_l_a16,
|
|
opCMOVNL_l_a16,
|
|
opCMOVLE_l_a16,
|
|
opCMOVNLE_l_a16,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
opSVDC_a16,
|
|
opRSDC_a16,
|
|
opSVLDT_a16,
|
|
opRSLDT_a16,
|
|
opSVTS_a16,
|
|
opRSTS_a16,
|
|
opMOVD_mm_l_a16_cx,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opRDSHR_a32,
|
|
opWRSHR_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_w_a32,
|
|
opCMOVNO_w_a32,
|
|
opCMOVB_w_a32,
|
|
opCMOVNB_w_a32,
|
|
opCMOVE_w_a32,
|
|
opCMOVNE_w_a32,
|
|
opCMOVBE_w_a32,
|
|
opCMOVNBE_w_a32,
|
|
opCMOVS_w_a32,
|
|
opCMOVNS_w_a32,
|
|
opCMOVP_w_a32,
|
|
opCMOVNP_w_a32,
|
|
opCMOVL_w_a32,
|
|
opCMOVNL_w_a32,
|
|
opCMOVLE_w_a32,
|
|
opCMOVNLE_w_a32,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
opSVDC_a32,
|
|
opRSDC_a32,
|
|
opSVLDT_a32,
|
|
opRSLDT_a32,
|
|
opSVTS_a32,
|
|
opRSTS_a32,
|
|
opMOVD_mm_l_a32_cx,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opRDSHR_a32,
|
|
opWRSHR_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_l_a32,
|
|
opCMOVNO_l_a32,
|
|
opCMOVB_l_a32,
|
|
opCMOVNB_l_a32,
|
|
opCMOVE_l_a32,
|
|
opCMOVNE_l_a32,
|
|
opCMOVBE_l_a32,
|
|
opCMOVNBE_l_a32,
|
|
opCMOVS_l_a32,
|
|
opCMOVNS_l_a32,
|
|
opCMOVP_l_a32,
|
|
opCMOVNP_l_a32,
|
|
opCMOVL_l_a32,
|
|
opCMOVNL_l_a32,
|
|
opCMOVLE_l_a32,
|
|
opCMOVNLE_l_a32,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
opSVDC_a16,
|
|
opRSDC_a16,
|
|
opSVLDT_a16,
|
|
opRSLDT_a16,
|
|
opSVTS_a16,
|
|
opRSTS_a16,
|
|
opMOVD_mm_l_a32_cx,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(pentiumpro_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_w_a16,
|
|
opCMOVNO_w_a16,
|
|
opCMOVB_w_a16,
|
|
opCMOVNB_w_a16,
|
|
opCMOVE_w_a16,
|
|
opCMOVNE_w_a16,
|
|
opCMOVBE_w_a16,
|
|
opCMOVNBE_w_a16,
|
|
opCMOVS_w_a16,
|
|
opCMOVNS_w_a16,
|
|
opCMOVP_w_a16,
|
|
opCMOVNP_w_a16,
|
|
opCMOVL_w_a16,
|
|
opCMOVNL_w_a16,
|
|
opCMOVLE_w_a16,
|
|
opCMOVNLE_w_a16,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_l_a16,
|
|
opCMOVNO_l_a16,
|
|
opCMOVB_l_a16,
|
|
opCMOVNB_l_a16,
|
|
opCMOVE_l_a16,
|
|
opCMOVNE_l_a16,
|
|
opCMOVBE_l_a16,
|
|
opCMOVNBE_l_a16,
|
|
opCMOVS_l_a16,
|
|
opCMOVNS_l_a16,
|
|
opCMOVP_l_a16,
|
|
opCMOVNP_l_a16,
|
|
opCMOVL_l_a16,
|
|
opCMOVNL_l_a16,
|
|
opCMOVLE_l_a16,
|
|
opCMOVNLE_l_a16,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_w_a32,
|
|
opCMOVNO_w_a32,
|
|
opCMOVB_w_a32,
|
|
opCMOVNB_w_a32,
|
|
opCMOVE_w_a32,
|
|
opCMOVNE_w_a32,
|
|
opCMOVBE_w_a32,
|
|
opCMOVNBE_w_a32,
|
|
opCMOVS_w_a32,
|
|
opCMOVNS_w_a32,
|
|
opCMOVP_w_a32,
|
|
opCMOVNP_w_a32,
|
|
opCMOVL_w_a32,
|
|
opCMOVNL_w_a32,
|
|
opCMOVLE_w_a32,
|
|
opCMOVNLE_w_a32,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
ILLEGAL,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_l_a32,
|
|
opCMOVNO_l_a32,
|
|
opCMOVB_l_a32,
|
|
opCMOVNB_l_a32,
|
|
opCMOVE_l_a32,
|
|
opCMOVNE_l_a32,
|
|
opCMOVBE_l_a32,
|
|
opCMOVNBE_l_a32,
|
|
opCMOVS_l_a32,
|
|
opCMOVNS_l_a32,
|
|
opCMOVP_l_a32,
|
|
opCMOVNP_l_a32,
|
|
opCMOVL_l_a32,
|
|
opCMOVNL_l_a32,
|
|
opCMOVLE_l_a32,
|
|
opCMOVNLE_l_a32,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*70*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*e0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*f0*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(pentium2_0f)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_w_a16,
|
|
opLAR_w_a16,
|
|
opLSL_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_w_a16,
|
|
opCMOVNO_w_a16,
|
|
opCMOVB_w_a16,
|
|
opCMOVNB_w_a16,
|
|
opCMOVE_w_a16,
|
|
opCMOVNE_w_a16,
|
|
opCMOVBE_w_a16,
|
|
opCMOVNBE_w_a16,
|
|
opCMOVS_w_a16,
|
|
opCMOVNS_w_a16,
|
|
opCMOVP_w_a16,
|
|
opCMOVNP_w_a16,
|
|
opCMOVL_w_a16,
|
|
opCMOVNL_w_a16,
|
|
opCMOVLE_w_a16,
|
|
opCMOVNLE_w_a16,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a16,
|
|
opSHLD_w_i_a16,
|
|
opSHLD_w_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a16,
|
|
opSHRD_w_i_a16,
|
|
opSHRD_w_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_w_a16,
|
|
opLSS_w_a16,
|
|
opBTR_w_r_a16,
|
|
opLFS_w_a16,
|
|
opLGS_w_a16,
|
|
opMOVZX_w_b_a16,
|
|
opMOVZX_w_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a16,
|
|
opBTC_w_r_a16,
|
|
opBSF_w_a16,
|
|
opBSR_w_a16,
|
|
opMOVSX_w_b_a16,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a16,
|
|
op0F01_l_a16,
|
|
opLAR_l_a16,
|
|
opLSL_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
opHINTNOP_a16,
|
|
/*20*/ opMOV_r_CRx_a16,
|
|
opMOV_r_DRx_a16,
|
|
opMOV_CRx_r_a16,
|
|
opMOV_DRx_r_a16,
|
|
opMOV_r_TRx_a16,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_l_a16,
|
|
opCMOVNO_l_a16,
|
|
opCMOVB_l_a16,
|
|
opCMOVNB_l_a16,
|
|
opCMOVE_l_a16,
|
|
opCMOVNE_l_a16,
|
|
opCMOVBE_l_a16,
|
|
opCMOVNBE_l_a16,
|
|
opCMOVS_l_a16,
|
|
opCMOVNS_l_a16,
|
|
opCMOVP_l_a16,
|
|
opCMOVNP_l_a16,
|
|
opCMOVL_l_a16,
|
|
opCMOVNL_l_a16,
|
|
opCMOVLE_l_a16,
|
|
opCMOVNLE_l_a16,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a16,
|
|
opPUNPCKLWD_a16,
|
|
opPUNPCKLDQ_a16,
|
|
opPACKSSWB_a16,
|
|
opPCMPGTB_a16,
|
|
opPCMPGTW_a16,
|
|
opPCMPGTD_a16,
|
|
opPACKUSWB_a16,
|
|
opPUNPCKHBW_a16,
|
|
opPUNPCKHWD_a16,
|
|
opPUNPCKHDQ_a16,
|
|
opPACKSSDW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a16,
|
|
opMOVQ_q_mm_a16,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a16,
|
|
opPCMPEQW_a16,
|
|
opPCMPEQD_a16,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a16,
|
|
opMOVQ_mm_q_a16,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a16,
|
|
opSETNO_a16,
|
|
opSETB_a16,
|
|
opSETNB_a16,
|
|
opSETE_a16,
|
|
opSETNE_a16,
|
|
opSETBE_a16,
|
|
opSETNBE_a16,
|
|
opSETS_a16,
|
|
opSETNS_a16,
|
|
opSETP_a16,
|
|
opSETNP_a16,
|
|
opSETL_a16,
|
|
opSETNL_a16,
|
|
opSETLE_a16,
|
|
opSETNLE_a16,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a16,
|
|
opSHLD_l_i_a16,
|
|
opSHLD_l_CL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a16,
|
|
opSHRD_l_i_a16,
|
|
opSHRD_l_CL_a16,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a16,
|
|
/*b0*/ opCMPXCHG_b_a16,
|
|
opCMPXCHG_l_a16,
|
|
opLSS_l_a16,
|
|
opBTR_l_r_a16,
|
|
opLFS_l_a16,
|
|
opLGS_l_a16,
|
|
opMOVZX_l_b_a16,
|
|
opMOVZX_l_w_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a16,
|
|
opBTC_l_r_a16,
|
|
opBSF_l_a16,
|
|
opBSR_l_a16,
|
|
opMOVSX_l_b_a16,
|
|
opMOVSX_l_w_a16,
|
|
|
|
/*c0*/ opXADD_b_a16,
|
|
opXADD_l_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a16,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a16,
|
|
opPSRLD_a16,
|
|
opPSRLQ_a16,
|
|
ILLEGAL,
|
|
opPMULLW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a16,
|
|
opPSUBUSW_a16,
|
|
NULL,
|
|
opPAND_a16,
|
|
opPADDUSB_a16,
|
|
opPADDUSW_a16,
|
|
NULL,
|
|
opPANDN_a16,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a16,
|
|
opPSRAD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a16,
|
|
opPSUBSW_a16,
|
|
NULL,
|
|
opPOR_a16,
|
|
opPADDSB_a16,
|
|
opPADDSW_a16,
|
|
NULL,
|
|
opPXOR_a16,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a16,
|
|
opPSLLD_a16,
|
|
opPSLLQ_a16,
|
|
ILLEGAL,
|
|
opPMADDWD_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a16,
|
|
opPSUBW_a16,
|
|
opPSUBD_a16,
|
|
ILLEGAL,
|
|
opPADDB_a16,
|
|
opPADDW_a16,
|
|
opPADDD_a16,
|
|
ILLEGAL,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_w_a32,
|
|
opLAR_w_a32,
|
|
opLSL_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_w_a32,
|
|
opCMOVNO_w_a32,
|
|
opCMOVB_w_a32,
|
|
opCMOVNB_w_a32,
|
|
opCMOVE_w_a32,
|
|
opCMOVNE_w_a32,
|
|
opCMOVBE_w_a32,
|
|
opCMOVNBE_w_a32,
|
|
opCMOVS_w_a32,
|
|
opCMOVNS_w_a32,
|
|
opCMOVP_w_a32,
|
|
opCMOVNP_w_a32,
|
|
opCMOVL_w_a32,
|
|
opCMOVNL_w_a32,
|
|
opCMOVLE_w_a32,
|
|
opCMOVNLE_w_a32,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_w,
|
|
opJNO_w,
|
|
opJB_w,
|
|
opJNB_w,
|
|
opJE_w,
|
|
opJNE_w,
|
|
opJBE_w,
|
|
opJNBE_w,
|
|
opJS_w,
|
|
opJNS_w,
|
|
opJP_w,
|
|
opJNP_w,
|
|
opJL_w,
|
|
opJNL_w,
|
|
opJLE_w,
|
|
opJNLE_w,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_w,
|
|
opPOP_FS_w,
|
|
opCPUID,
|
|
opBT_w_r_a32,
|
|
opSHLD_w_i_a32,
|
|
opSHLD_w_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_w,
|
|
opPOP_GS_w,
|
|
opRSM,
|
|
opBTS_w_r_a32,
|
|
opSHRD_w_i_a32,
|
|
opSHRD_w_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_w_w_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_w_a32,
|
|
opLSS_w_a32,
|
|
opBTR_w_r_a32,
|
|
opLFS_w_a32,
|
|
opLGS_w_a32,
|
|
opMOVZX_w_b_a32,
|
|
opMOVZX_w_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_w_a32,
|
|
opBTC_w_r_a32,
|
|
opBSF_w_a32,
|
|
opBSR_w_a32,
|
|
opMOVSX_w_b_a32,
|
|
ILLEGAL,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ op0F00_a32,
|
|
op0F01_l_a32,
|
|
opLAR_l_a32,
|
|
opLSL_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCLTS,
|
|
ILLEGAL,
|
|
opINVD,
|
|
opWBINVD,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*10*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
opHINTNOP_a32,
|
|
/*20*/ opMOV_r_CRx_a32,
|
|
opMOV_r_DRx_a32,
|
|
opMOV_CRx_r_a32,
|
|
opMOV_DRx_r_a32,
|
|
opMOV_r_TRx_a32,
|
|
ILLEGAL,
|
|
opMOV_TRx_r_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*30*/ opWRMSR,
|
|
opRDTSC,
|
|
opRDMSR,
|
|
opRDPMC,
|
|
opSYSENTER,
|
|
opSYSEXIT,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
|
|
/*40*/ opCMOVO_l_a32,
|
|
opCMOVNO_l_a32,
|
|
opCMOVB_l_a32,
|
|
opCMOVNB_l_a32,
|
|
opCMOVE_l_a32,
|
|
opCMOVNE_l_a32,
|
|
opCMOVBE_l_a32,
|
|
opCMOVNBE_l_a32,
|
|
opCMOVS_l_a32,
|
|
opCMOVNS_l_a32,
|
|
opCMOVP_l_a32,
|
|
opCMOVNP_l_a32,
|
|
opCMOVL_l_a32,
|
|
opCMOVNL_l_a32,
|
|
opCMOVLE_l_a32,
|
|
opCMOVNLE_l_a32,
|
|
/*50*/ ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
/*60*/ opPUNPCKLBW_a32,
|
|
opPUNPCKLWD_a32,
|
|
opPUNPCKLDQ_a32,
|
|
opPACKSSWB_a32,
|
|
opPCMPGTB_a32,
|
|
opPCMPGTW_a32,
|
|
opPCMPGTD_a32,
|
|
opPACKUSWB_a32,
|
|
opPUNPCKHBW_a32,
|
|
opPUNPCKHWD_a32,
|
|
opPUNPCKHDQ_a32,
|
|
opPACKSSDW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_l_mm_a32,
|
|
opMOVQ_q_mm_a32,
|
|
/*70*/ ILLEGAL,
|
|
opPSxxW_imm,
|
|
opPSxxD_imm,
|
|
opPSxxQ_imm,
|
|
opPCMPEQB_a32,
|
|
opPCMPEQW_a32,
|
|
opPCMPEQD_a32,
|
|
opEMMS,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opMOVD_mm_l_a32,
|
|
opMOVQ_mm_q_a32,
|
|
|
|
/*80*/ opJO_l,
|
|
opJNO_l,
|
|
opJB_l,
|
|
opJNB_l,
|
|
opJE_l,
|
|
opJNE_l,
|
|
opJBE_l,
|
|
opJNBE_l,
|
|
opJS_l,
|
|
opJNS_l,
|
|
opJP_l,
|
|
opJNP_l,
|
|
opJL_l,
|
|
opJNL_l,
|
|
opJLE_l,
|
|
opJNLE_l,
|
|
/*90*/ opSETO_a32,
|
|
opSETNO_a32,
|
|
opSETB_a32,
|
|
opSETNB_a32,
|
|
opSETE_a32,
|
|
opSETNE_a32,
|
|
opSETBE_a32,
|
|
opSETNBE_a32,
|
|
opSETS_a32,
|
|
opSETNS_a32,
|
|
opSETP_a32,
|
|
opSETNP_a32,
|
|
opSETL_a32,
|
|
opSETNL_a32,
|
|
opSETLE_a32,
|
|
opSETNLE_a32,
|
|
/*a0*/ opPUSH_FS_l,
|
|
opPOP_FS_l,
|
|
opCPUID,
|
|
opBT_l_r_a32,
|
|
opSHLD_l_i_a32,
|
|
opSHLD_l_CL_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_GS_l,
|
|
opPOP_GS_l,
|
|
opRSM,
|
|
opBTS_l_r_a32,
|
|
opSHRD_l_i_a32,
|
|
opSHRD_l_CL_a32,
|
|
ILLEGAL,
|
|
opIMUL_l_l_a32,
|
|
/*b0*/ opCMPXCHG_b_a32,
|
|
opCMPXCHG_l_a32,
|
|
opLSS_l_a32,
|
|
opBTR_l_r_a32,
|
|
opLFS_l_a32,
|
|
opLGS_l_a32,
|
|
opMOVZX_l_b_a32,
|
|
opMOVZX_l_w_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opBA_l_a32,
|
|
opBTC_l_r_a32,
|
|
opBSF_l_a32,
|
|
opBSR_l_a32,
|
|
opMOVSX_l_b_a32,
|
|
opMOVSX_l_w_a32,
|
|
|
|
/*c0*/ opXADD_b_a32,
|
|
opXADD_l_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opCMPXCHG8B_a32,
|
|
opBSWAP_EAX,
|
|
opBSWAP_ECX,
|
|
opBSWAP_EDX,
|
|
opBSWAP_EBX,
|
|
opBSWAP_ESP,
|
|
opBSWAP_EBP,
|
|
opBSWAP_ESI,
|
|
opBSWAP_EDI,
|
|
/*d0*/ ILLEGAL,
|
|
opPSRLW_a32,
|
|
opPSRLD_a32,
|
|
opPSRLQ_a32,
|
|
ILLEGAL,
|
|
opPMULLW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBUSB_a32,
|
|
opPSUBUSW_a32,
|
|
NULL,
|
|
opPAND_a32,
|
|
opPADDUSB_a32,
|
|
opPADDUSW_a32,
|
|
NULL,
|
|
opPANDN_a32,
|
|
/*e0*/ ILLEGAL,
|
|
opPSRAW_a32,
|
|
opPSRAD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPMULHW_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBSB_a32,
|
|
opPSUBSW_a32,
|
|
NULL,
|
|
opPOR_a32,
|
|
opPADDSB_a32,
|
|
opPADDSW_a32,
|
|
NULL,
|
|
opPXOR_a32,
|
|
/*f0*/ ILLEGAL,
|
|
opPSLLW_a32,
|
|
opPSLLD_a32,
|
|
opPSLLQ_a32,
|
|
ILLEGAL,
|
|
opPMADDWD_a32,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPSUBB_a32,
|
|
opPSUBW_a32,
|
|
opPSUBD_a32,
|
|
ILLEGAL,
|
|
opPADDB_a32,
|
|
opPADDW_a32,
|
|
opPADDD_a32,
|
|
ILLEGAL,
|
|
};
|
|
|
|
OpFn OP_TABLE(286)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a16,
|
|
opADD_w_rmw_a16,
|
|
opADD_b_rm_a16,
|
|
opADD_w_rm_a16,
|
|
opADD_AL_imm,
|
|
opADD_AX_imm,
|
|
opPUSH_ES_w,
|
|
opPOP_ES_w,
|
|
opOR_b_rmw_a16,
|
|
opOR_w_rmw_a16,
|
|
opOR_b_rm_a16,
|
|
opOR_w_rm_a16,
|
|
opOR_AL_imm,
|
|
opOR_AX_imm,
|
|
opPUSH_CS_w,
|
|
op0F_w_a16,
|
|
/*10*/ opADC_b_rmw_a16,
|
|
opADC_w_rmw_a16,
|
|
opADC_b_rm_a16,
|
|
opADC_w_rm_a16,
|
|
opADC_AL_imm,
|
|
opADC_AX_imm,
|
|
opPUSH_SS_w,
|
|
opPOP_SS_w,
|
|
opSBB_b_rmw_a16,
|
|
opSBB_w_rmw_a16,
|
|
opSBB_b_rm_a16,
|
|
opSBB_w_rm_a16,
|
|
opSBB_AL_imm,
|
|
opSBB_AX_imm,
|
|
opPUSH_DS_w,
|
|
opPOP_DS_w,
|
|
/*20*/ opAND_b_rmw_a16,
|
|
opAND_w_rmw_a16,
|
|
opAND_b_rm_a16,
|
|
opAND_w_rm_a16,
|
|
opAND_AL_imm,
|
|
opAND_AX_imm,
|
|
opES_w_a16,
|
|
opDAA,
|
|
opSUB_b_rmw_a16,
|
|
opSUB_w_rmw_a16,
|
|
opSUB_b_rm_a16,
|
|
opSUB_w_rm_a16,
|
|
opSUB_AL_imm,
|
|
opSUB_AX_imm,
|
|
opCS_w_a16,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a16,
|
|
opXOR_w_rmw_a16,
|
|
opXOR_b_rm_a16,
|
|
opXOR_w_rm_a16,
|
|
opXOR_AL_imm,
|
|
opXOR_AX_imm,
|
|
opSS_w_a16,
|
|
opAAA,
|
|
opCMP_b_rmw_a16,
|
|
opCMP_w_rmw_a16,
|
|
opCMP_b_rm_a16,
|
|
opCMP_w_rm_a16,
|
|
opCMP_AL_imm,
|
|
opCMP_AX_imm,
|
|
opDS_w_a16,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_AX,
|
|
opINC_CX,
|
|
opINC_DX,
|
|
opINC_BX,
|
|
opINC_SP,
|
|
opINC_BP,
|
|
opINC_SI,
|
|
opINC_DI,
|
|
opDEC_AX,
|
|
opDEC_CX,
|
|
opDEC_DX,
|
|
opDEC_BX,
|
|
opDEC_SP,
|
|
opDEC_BP,
|
|
opDEC_SI,
|
|
opDEC_DI,
|
|
/*50*/ opPUSH_AX,
|
|
opPUSH_CX,
|
|
opPUSH_DX,
|
|
opPUSH_BX,
|
|
opPUSH_SP,
|
|
opPUSH_BP,
|
|
opPUSH_SI,
|
|
opPUSH_DI,
|
|
opPOP_AX,
|
|
opPOP_CX,
|
|
opPOP_DX,
|
|
opPOP_BX,
|
|
opPOP_SP,
|
|
opPOP_BP,
|
|
opPOP_SI,
|
|
opPOP_DI,
|
|
/*60*/ opPUSHA_w,
|
|
opPOPA_w,
|
|
opBOUND_w_a16,
|
|
opARPL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_imm_w,
|
|
opIMUL_w_iw_a16,
|
|
opPUSH_imm_bw,
|
|
opIMUL_w_ib_a16,
|
|
opINSB_a16,
|
|
opINSW_a16,
|
|
opOUTSB_a16,
|
|
opOUTSW_a16,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a16,
|
|
op81_w_a16,
|
|
op80_a16,
|
|
op83_w_a16,
|
|
opTEST_b_a16,
|
|
opTEST_w_a16,
|
|
opXCHG_b_a16,
|
|
opXCHG_w_a16,
|
|
opMOV_b_r_a16,
|
|
opMOV_w_r_a16,
|
|
opMOV_r_b_a16,
|
|
opMOV_r_w_a16,
|
|
opMOV_w_seg_a16,
|
|
opLEA_w_a16,
|
|
opMOV_seg_w_a16,
|
|
opPOPW_a16,
|
|
/*90*/ opNOP,
|
|
opXCHG_AX_CX,
|
|
opXCHG_AX_DX,
|
|
opXCHG_AX_BX,
|
|
opXCHG_AX_SP,
|
|
opXCHG_AX_BP,
|
|
opXCHG_AX_SI,
|
|
opXCHG_AX_DI,
|
|
opCBW,
|
|
opCWD,
|
|
opCALL_far_w,
|
|
opWAIT,
|
|
opPUSHF,
|
|
opPOPF_286,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a16,
|
|
opMOV_AX_a16,
|
|
opMOV_a16_AL,
|
|
opMOV_a16_AX,
|
|
opMOVSB_a16,
|
|
opMOVSW_a16,
|
|
opCMPSB_a16,
|
|
opCMPSW_a16,
|
|
opTEST_AL,
|
|
opTEST_AX,
|
|
opSTOSB_a16,
|
|
opSTOSW_a16,
|
|
opLODSB_a16,
|
|
opLODSW_a16,
|
|
opSCASB_a16,
|
|
opSCASW_a16,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_AX_imm,
|
|
opMOV_CX_imm,
|
|
opMOV_DX_imm,
|
|
opMOV_BX_imm,
|
|
opMOV_SP_imm,
|
|
opMOV_BP_imm,
|
|
opMOV_SI_imm,
|
|
opMOV_DI_imm,
|
|
|
|
/*c0*/ opC0_a16,
|
|
opC1_w_a16,
|
|
opRET_w_imm,
|
|
opRET_w,
|
|
opLES_w_a16,
|
|
opLDS_w_a16,
|
|
opMOV_b_imm_a16,
|
|
opMOV_w_imm_a16,
|
|
opENTER_w,
|
|
opLEAVE_w,
|
|
opRETF_a16_imm,
|
|
opRETF_a16,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRET_286,
|
|
/*d0*/ opD0_a16,
|
|
opD1_w_a16,
|
|
opD2_a16,
|
|
opD3_w_a16,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a16,
|
|
opESCAPE_d8_a16,
|
|
opESCAPE_d9_a16,
|
|
opESCAPE_da_a16,
|
|
opESCAPE_db_a16,
|
|
opESCAPE_dc_a16,
|
|
opESCAPE_dd_a16,
|
|
opESCAPE_de_a16,
|
|
opESCAPE_df_a16,
|
|
/*e0*/ opLOOPNE_w,
|
|
opLOOPE_w,
|
|
opLOOP_w,
|
|
opJCXZ,
|
|
opIN_AL_imm,
|
|
opIN_AX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_AX_imm,
|
|
opCALL_r16,
|
|
opJMP_r16,
|
|
opJMP_far_a16,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_AX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_AX_DX,
|
|
/*f0*/ opLOCK,
|
|
opLOCK,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a16,
|
|
opF7_w_a16,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a16,
|
|
opFF_w_a16,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a16,
|
|
opADD_w_rmw_a16,
|
|
opADD_b_rm_a16,
|
|
opADD_w_rm_a16,
|
|
opADD_AL_imm,
|
|
opADD_AX_imm,
|
|
opPUSH_ES_w,
|
|
opPOP_ES_w,
|
|
opOR_b_rmw_a16,
|
|
opOR_w_rmw_a16,
|
|
opOR_b_rm_a16,
|
|
opOR_w_rm_a16,
|
|
opOR_AL_imm,
|
|
opOR_AX_imm,
|
|
opPUSH_CS_w,
|
|
op0F_w_a16,
|
|
/*10*/ opADC_b_rmw_a16,
|
|
opADC_w_rmw_a16,
|
|
opADC_b_rm_a16,
|
|
opADC_w_rm_a16,
|
|
opADC_AL_imm,
|
|
opADC_AX_imm,
|
|
opPUSH_SS_w,
|
|
opPOP_SS_w,
|
|
opSBB_b_rmw_a16,
|
|
opSBB_w_rmw_a16,
|
|
opSBB_b_rm_a16,
|
|
opSBB_w_rm_a16,
|
|
opSBB_AL_imm,
|
|
opSBB_AX_imm,
|
|
opPUSH_DS_w,
|
|
opPOP_DS_w,
|
|
/*20*/ opAND_b_rmw_a16,
|
|
opAND_w_rmw_a16,
|
|
opAND_b_rm_a16,
|
|
opAND_w_rm_a16,
|
|
opAND_AL_imm,
|
|
opAND_AX_imm,
|
|
opES_w_a16,
|
|
opDAA,
|
|
opSUB_b_rmw_a16,
|
|
opSUB_w_rmw_a16,
|
|
opSUB_b_rm_a16,
|
|
opSUB_w_rm_a16,
|
|
opSUB_AL_imm,
|
|
opSUB_AX_imm,
|
|
opCS_w_a16,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a16,
|
|
opXOR_w_rmw_a16,
|
|
opXOR_b_rm_a16,
|
|
opXOR_w_rm_a16,
|
|
opXOR_AL_imm,
|
|
opXOR_AX_imm,
|
|
opSS_w_a16,
|
|
opAAA,
|
|
opCMP_b_rmw_a16,
|
|
opCMP_w_rmw_a16,
|
|
opCMP_b_rm_a16,
|
|
opCMP_w_rm_a16,
|
|
opCMP_AL_imm,
|
|
opCMP_AX_imm,
|
|
opDS_w_a16,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_AX,
|
|
opINC_CX,
|
|
opINC_DX,
|
|
opINC_BX,
|
|
opINC_SP,
|
|
opINC_BP,
|
|
opINC_SI,
|
|
opINC_DI,
|
|
opDEC_AX,
|
|
opDEC_CX,
|
|
opDEC_DX,
|
|
opDEC_BX,
|
|
opDEC_SP,
|
|
opDEC_BP,
|
|
opDEC_SI,
|
|
opDEC_DI,
|
|
/*50*/ opPUSH_AX,
|
|
opPUSH_CX,
|
|
opPUSH_DX,
|
|
opPUSH_BX,
|
|
opPUSH_SP,
|
|
opPUSH_BP,
|
|
opPUSH_SI,
|
|
opPUSH_DI,
|
|
opPOP_AX,
|
|
opPOP_CX,
|
|
opPOP_DX,
|
|
opPOP_BX,
|
|
opPOP_SP,
|
|
opPOP_BP,
|
|
opPOP_SI,
|
|
opPOP_DI,
|
|
/*60*/ opPUSHA_w,
|
|
opPOPA_w,
|
|
opBOUND_w_a16,
|
|
opARPL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_imm_w,
|
|
opIMUL_w_iw_a16,
|
|
opPUSH_imm_bw,
|
|
opIMUL_w_ib_a16,
|
|
opINSB_a16,
|
|
opINSW_a16,
|
|
opOUTSB_a16,
|
|
opOUTSW_a16,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a16,
|
|
op81_w_a16,
|
|
op80_a16,
|
|
op83_w_a16,
|
|
opTEST_b_a16,
|
|
opTEST_w_a16,
|
|
opXCHG_b_a16,
|
|
opXCHG_w_a16,
|
|
opMOV_b_r_a16,
|
|
opMOV_w_r_a16,
|
|
opMOV_r_b_a16,
|
|
opMOV_r_w_a16,
|
|
opMOV_w_seg_a16,
|
|
opLEA_w_a16,
|
|
opMOV_seg_w_a16,
|
|
opPOPW_a16,
|
|
/*90*/ opNOP,
|
|
opXCHG_AX_CX,
|
|
opXCHG_AX_DX,
|
|
opXCHG_AX_BX,
|
|
opXCHG_AX_SP,
|
|
opXCHG_AX_BP,
|
|
opXCHG_AX_SI,
|
|
opXCHG_AX_DI,
|
|
opCBW,
|
|
opCWD,
|
|
opCALL_far_w,
|
|
opWAIT,
|
|
opPUSHF,
|
|
opPOPF_286,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a16,
|
|
opMOV_AX_a16,
|
|
opMOV_a16_AL,
|
|
opMOV_a16_AX,
|
|
opMOVSB_a16,
|
|
opMOVSW_a16,
|
|
opCMPSB_a16,
|
|
opCMPSW_a16,
|
|
opTEST_AL,
|
|
opTEST_AX,
|
|
opSTOSB_a16,
|
|
opSTOSW_a16,
|
|
opLODSB_a16,
|
|
opLODSW_a16,
|
|
opSCASB_a16,
|
|
opSCASW_a16,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_AX_imm,
|
|
opMOV_CX_imm,
|
|
opMOV_DX_imm,
|
|
opMOV_BX_imm,
|
|
opMOV_SP_imm,
|
|
opMOV_BP_imm,
|
|
opMOV_SI_imm,
|
|
opMOV_DI_imm,
|
|
|
|
/*c0*/ opC0_a16,
|
|
opC1_w_a16,
|
|
opRET_w_imm,
|
|
opRET_w,
|
|
opLES_w_a16,
|
|
opLDS_w_a16,
|
|
opMOV_b_imm_a16,
|
|
opMOV_w_imm_a16,
|
|
opENTER_w,
|
|
opLEAVE_w,
|
|
opRETF_a16_imm,
|
|
opRETF_a16,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRET_286,
|
|
/*d0*/ opD0_a16,
|
|
opD1_w_a16,
|
|
opD2_a16,
|
|
opD3_w_a16,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a16,
|
|
opESCAPE_d8_a16,
|
|
opESCAPE_d9_a16,
|
|
opESCAPE_da_a16,
|
|
opESCAPE_db_a16,
|
|
opESCAPE_dc_a16,
|
|
opESCAPE_dd_a16,
|
|
opESCAPE_de_a16,
|
|
opESCAPE_df_a16,
|
|
/*e0*/ opLOOPNE_w,
|
|
opLOOPE_w,
|
|
opLOOP_w,
|
|
opJCXZ,
|
|
opIN_AL_imm,
|
|
opIN_AX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_AX_imm,
|
|
opCALL_r16,
|
|
opJMP_r16,
|
|
opJMP_far_a16,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_AX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_AX_DX,
|
|
/*f0*/ opLOCK,
|
|
opLOCK,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a16,
|
|
opF7_w_a16,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a16,
|
|
opFF_w_a16,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a16,
|
|
opADD_w_rmw_a16,
|
|
opADD_b_rm_a16,
|
|
opADD_w_rm_a16,
|
|
opADD_AL_imm,
|
|
opADD_AX_imm,
|
|
opPUSH_ES_w,
|
|
opPOP_ES_w,
|
|
opOR_b_rmw_a16,
|
|
opOR_w_rmw_a16,
|
|
opOR_b_rm_a16,
|
|
opOR_w_rm_a16,
|
|
opOR_AL_imm,
|
|
opOR_AX_imm,
|
|
opPUSH_CS_w,
|
|
op0F_w_a16,
|
|
/*10*/ opADC_b_rmw_a16,
|
|
opADC_w_rmw_a16,
|
|
opADC_b_rm_a16,
|
|
opADC_w_rm_a16,
|
|
opADC_AL_imm,
|
|
opADC_AX_imm,
|
|
opPUSH_SS_w,
|
|
opPOP_SS_w,
|
|
opSBB_b_rmw_a16,
|
|
opSBB_w_rmw_a16,
|
|
opSBB_b_rm_a16,
|
|
opSBB_w_rm_a16,
|
|
opSBB_AL_imm,
|
|
opSBB_AX_imm,
|
|
opPUSH_DS_w,
|
|
opPOP_DS_w,
|
|
/*20*/ opAND_b_rmw_a16,
|
|
opAND_w_rmw_a16,
|
|
opAND_b_rm_a16,
|
|
opAND_w_rm_a16,
|
|
opAND_AL_imm,
|
|
opAND_AX_imm,
|
|
opES_w_a16,
|
|
opDAA,
|
|
opSUB_b_rmw_a16,
|
|
opSUB_w_rmw_a16,
|
|
opSUB_b_rm_a16,
|
|
opSUB_w_rm_a16,
|
|
opSUB_AL_imm,
|
|
opSUB_AX_imm,
|
|
opCS_w_a16,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a16,
|
|
opXOR_w_rmw_a16,
|
|
opXOR_b_rm_a16,
|
|
opXOR_w_rm_a16,
|
|
opXOR_AL_imm,
|
|
opXOR_AX_imm,
|
|
opSS_w_a16,
|
|
opAAA,
|
|
opCMP_b_rmw_a16,
|
|
opCMP_w_rmw_a16,
|
|
opCMP_b_rm_a16,
|
|
opCMP_w_rm_a16,
|
|
opCMP_AL_imm,
|
|
opCMP_AX_imm,
|
|
opDS_w_a16,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_AX,
|
|
opINC_CX,
|
|
opINC_DX,
|
|
opINC_BX,
|
|
opINC_SP,
|
|
opINC_BP,
|
|
opINC_SI,
|
|
opINC_DI,
|
|
opDEC_AX,
|
|
opDEC_CX,
|
|
opDEC_DX,
|
|
opDEC_BX,
|
|
opDEC_SP,
|
|
opDEC_BP,
|
|
opDEC_SI,
|
|
opDEC_DI,
|
|
/*50*/ opPUSH_AX,
|
|
opPUSH_CX,
|
|
opPUSH_DX,
|
|
opPUSH_BX,
|
|
opPUSH_SP,
|
|
opPUSH_BP,
|
|
opPUSH_SI,
|
|
opPUSH_DI,
|
|
opPOP_AX,
|
|
opPOP_CX,
|
|
opPOP_DX,
|
|
opPOP_BX,
|
|
opPOP_SP,
|
|
opPOP_BP,
|
|
opPOP_SI,
|
|
opPOP_DI,
|
|
/*60*/ opPUSHA_w,
|
|
opPOPA_w,
|
|
opBOUND_w_a16,
|
|
opARPL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_imm_w,
|
|
opIMUL_w_iw_a16,
|
|
opPUSH_imm_bw,
|
|
opIMUL_w_ib_a16,
|
|
opINSB_a16,
|
|
opINSW_a16,
|
|
opOUTSB_a16,
|
|
opOUTSW_a16,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a16,
|
|
op81_w_a16,
|
|
op80_a16,
|
|
op83_w_a16,
|
|
opTEST_b_a16,
|
|
opTEST_w_a16,
|
|
opXCHG_b_a16,
|
|
opXCHG_w_a16,
|
|
opMOV_b_r_a16,
|
|
opMOV_w_r_a16,
|
|
opMOV_r_b_a16,
|
|
opMOV_r_w_a16,
|
|
opMOV_w_seg_a16,
|
|
opLEA_w_a16,
|
|
opMOV_seg_w_a16,
|
|
opPOPW_a16,
|
|
/*90*/ opNOP,
|
|
opXCHG_AX_CX,
|
|
opXCHG_AX_DX,
|
|
opXCHG_AX_BX,
|
|
opXCHG_AX_SP,
|
|
opXCHG_AX_BP,
|
|
opXCHG_AX_SI,
|
|
opXCHG_AX_DI,
|
|
opCBW,
|
|
opCWD,
|
|
opCALL_far_w,
|
|
opWAIT,
|
|
opPUSHF,
|
|
opPOPF_286,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a16,
|
|
opMOV_AX_a16,
|
|
opMOV_a16_AL,
|
|
opMOV_a16_AX,
|
|
opMOVSB_a16,
|
|
opMOVSW_a16,
|
|
opCMPSB_a16,
|
|
opCMPSW_a16,
|
|
opTEST_AL,
|
|
opTEST_AX,
|
|
opSTOSB_a16,
|
|
opSTOSW_a16,
|
|
opLODSB_a16,
|
|
opLODSW_a16,
|
|
opSCASB_a16,
|
|
opSCASW_a16,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_AX_imm,
|
|
opMOV_CX_imm,
|
|
opMOV_DX_imm,
|
|
opMOV_BX_imm,
|
|
opMOV_SP_imm,
|
|
opMOV_BP_imm,
|
|
opMOV_SI_imm,
|
|
opMOV_DI_imm,
|
|
|
|
/*c0*/ opC0_a16,
|
|
opC1_w_a16,
|
|
opRET_w_imm,
|
|
opRET_w,
|
|
opLES_w_a16,
|
|
opLDS_w_a16,
|
|
opMOV_b_imm_a16,
|
|
opMOV_w_imm_a16,
|
|
opENTER_w,
|
|
opLEAVE_w,
|
|
opRETF_a16_imm,
|
|
opRETF_a16,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRET_286,
|
|
/*d0*/ opD0_a16,
|
|
opD1_w_a16,
|
|
opD2_a16,
|
|
opD3_w_a16,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a16,
|
|
opESCAPE_d8_a16,
|
|
opESCAPE_d9_a16,
|
|
opESCAPE_da_a16,
|
|
opESCAPE_db_a16,
|
|
opESCAPE_dc_a16,
|
|
opESCAPE_dd_a16,
|
|
opESCAPE_de_a16,
|
|
opESCAPE_df_a16,
|
|
/*e0*/ opLOOPNE_w,
|
|
opLOOPE_w,
|
|
opLOOP_w,
|
|
opJCXZ,
|
|
opIN_AL_imm,
|
|
opIN_AX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_AX_imm,
|
|
opCALL_r16,
|
|
opJMP_r16,
|
|
opJMP_far_a16,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_AX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_AX_DX,
|
|
/*f0*/ opLOCK,
|
|
opLOCK,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a16,
|
|
opF7_w_a16,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a16,
|
|
opFF_w_a16,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a16,
|
|
opADD_w_rmw_a16,
|
|
opADD_b_rm_a16,
|
|
opADD_w_rm_a16,
|
|
opADD_AL_imm,
|
|
opADD_AX_imm,
|
|
opPUSH_ES_w,
|
|
opPOP_ES_w,
|
|
opOR_b_rmw_a16,
|
|
opOR_w_rmw_a16,
|
|
opOR_b_rm_a16,
|
|
opOR_w_rm_a16,
|
|
opOR_AL_imm,
|
|
opOR_AX_imm,
|
|
opPUSH_CS_w,
|
|
op0F_w_a16,
|
|
/*10*/ opADC_b_rmw_a16,
|
|
opADC_w_rmw_a16,
|
|
opADC_b_rm_a16,
|
|
opADC_w_rm_a16,
|
|
opADC_AL_imm,
|
|
opADC_AX_imm,
|
|
opPUSH_SS_w,
|
|
opPOP_SS_w,
|
|
opSBB_b_rmw_a16,
|
|
opSBB_w_rmw_a16,
|
|
opSBB_b_rm_a16,
|
|
opSBB_w_rm_a16,
|
|
opSBB_AL_imm,
|
|
opSBB_AX_imm,
|
|
opPUSH_DS_w,
|
|
opPOP_DS_w,
|
|
/*20*/ opAND_b_rmw_a16,
|
|
opAND_w_rmw_a16,
|
|
opAND_b_rm_a16,
|
|
opAND_w_rm_a16,
|
|
opAND_AL_imm,
|
|
opAND_AX_imm,
|
|
opES_w_a16,
|
|
opDAA,
|
|
opSUB_b_rmw_a16,
|
|
opSUB_w_rmw_a16,
|
|
opSUB_b_rm_a16,
|
|
opSUB_w_rm_a16,
|
|
opSUB_AL_imm,
|
|
opSUB_AX_imm,
|
|
opCS_w_a16,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a16,
|
|
opXOR_w_rmw_a16,
|
|
opXOR_b_rm_a16,
|
|
opXOR_w_rm_a16,
|
|
opXOR_AL_imm,
|
|
opXOR_AX_imm,
|
|
opSS_w_a16,
|
|
opAAA,
|
|
opCMP_b_rmw_a16,
|
|
opCMP_w_rmw_a16,
|
|
opCMP_b_rm_a16,
|
|
opCMP_w_rm_a16,
|
|
opCMP_AL_imm,
|
|
opCMP_AX_imm,
|
|
opDS_w_a16,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_AX,
|
|
opINC_CX,
|
|
opINC_DX,
|
|
opINC_BX,
|
|
opINC_SP,
|
|
opINC_BP,
|
|
opINC_SI,
|
|
opINC_DI,
|
|
opDEC_AX,
|
|
opDEC_CX,
|
|
opDEC_DX,
|
|
opDEC_BX,
|
|
opDEC_SP,
|
|
opDEC_BP,
|
|
opDEC_SI,
|
|
opDEC_DI,
|
|
/*50*/ opPUSH_AX,
|
|
opPUSH_CX,
|
|
opPUSH_DX,
|
|
opPUSH_BX,
|
|
opPUSH_SP,
|
|
opPUSH_BP,
|
|
opPUSH_SI,
|
|
opPUSH_DI,
|
|
opPOP_AX,
|
|
opPOP_CX,
|
|
opPOP_DX,
|
|
opPOP_BX,
|
|
opPOP_SP,
|
|
opPOP_BP,
|
|
opPOP_SI,
|
|
opPOP_DI,
|
|
/*60*/ opPUSHA_w,
|
|
opPOPA_w,
|
|
opBOUND_w_a16,
|
|
opARPL_a16,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
ILLEGAL,
|
|
opPUSH_imm_w,
|
|
opIMUL_w_iw_a16,
|
|
opPUSH_imm_bw,
|
|
opIMUL_w_ib_a16,
|
|
opINSB_a16,
|
|
opINSW_a16,
|
|
opOUTSB_a16,
|
|
opOUTSW_a16,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a16,
|
|
op81_w_a16,
|
|
op80_a16,
|
|
op83_w_a16,
|
|
opTEST_b_a16,
|
|
opTEST_w_a16,
|
|
opXCHG_b_a16,
|
|
opXCHG_w_a16,
|
|
opMOV_b_r_a16,
|
|
opMOV_w_r_a16,
|
|
opMOV_r_b_a16,
|
|
opMOV_r_w_a16,
|
|
opMOV_w_seg_a16,
|
|
opLEA_w_a16,
|
|
opMOV_seg_w_a16,
|
|
opPOPW_a16,
|
|
/*90*/ opNOP,
|
|
opXCHG_AX_CX,
|
|
opXCHG_AX_DX,
|
|
opXCHG_AX_BX,
|
|
opXCHG_AX_SP,
|
|
opXCHG_AX_BP,
|
|
opXCHG_AX_SI,
|
|
opXCHG_AX_DI,
|
|
opCBW,
|
|
opCWD,
|
|
opCALL_far_w,
|
|
opWAIT,
|
|
opPUSHF,
|
|
opPOPF_286,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a16,
|
|
opMOV_AX_a16,
|
|
opMOV_a16_AL,
|
|
opMOV_a16_AX,
|
|
opMOVSB_a16,
|
|
opMOVSW_a16,
|
|
opCMPSB_a16,
|
|
opCMPSW_a16,
|
|
opTEST_AL,
|
|
opTEST_AX,
|
|
opSTOSB_a16,
|
|
opSTOSW_a16,
|
|
opLODSB_a16,
|
|
opLODSW_a16,
|
|
opSCASB_a16,
|
|
opSCASW_a16,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_AX_imm,
|
|
opMOV_CX_imm,
|
|
opMOV_DX_imm,
|
|
opMOV_BX_imm,
|
|
opMOV_SP_imm,
|
|
opMOV_BP_imm,
|
|
opMOV_SI_imm,
|
|
opMOV_DI_imm,
|
|
|
|
/*c0*/ opC0_a16,
|
|
opC1_w_a16,
|
|
opRET_w_imm,
|
|
opRET_w,
|
|
opLES_w_a16,
|
|
opLDS_w_a16,
|
|
opMOV_b_imm_a16,
|
|
opMOV_w_imm_a16,
|
|
opENTER_w,
|
|
opLEAVE_w,
|
|
opRETF_a16_imm,
|
|
opRETF_a16,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRET_286,
|
|
/*d0*/ opD0_a16,
|
|
opD1_w_a16,
|
|
opD2_a16,
|
|
opD3_w_a16,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a16,
|
|
opESCAPE_d8_a16,
|
|
opESCAPE_d9_a16,
|
|
opESCAPE_da_a16,
|
|
opESCAPE_db_a16,
|
|
opESCAPE_dc_a16,
|
|
opESCAPE_dd_a16,
|
|
opESCAPE_de_a16,
|
|
opESCAPE_df_a16,
|
|
/*e0*/ opLOOPNE_w,
|
|
opLOOPE_w,
|
|
opLOOP_w,
|
|
opJCXZ,
|
|
opIN_AL_imm,
|
|
opIN_AX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_AX_imm,
|
|
opCALL_r16,
|
|
opJMP_r16,
|
|
opJMP_far_a16,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_AX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_AX_DX,
|
|
/*f0*/ opLOCK,
|
|
opLOCK,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a16,
|
|
opF7_w_a16,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a16,
|
|
opFF_w_a16,
|
|
};
|
|
|
|
OpFn OP_TABLE(386)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a16,
|
|
opADD_w_rmw_a16,
|
|
opADD_b_rm_a16,
|
|
opADD_w_rm_a16,
|
|
opADD_AL_imm,
|
|
opADD_AX_imm,
|
|
opPUSH_ES_w,
|
|
opPOP_ES_w,
|
|
opOR_b_rmw_a16,
|
|
opOR_w_rmw_a16,
|
|
opOR_b_rm_a16,
|
|
opOR_w_rm_a16,
|
|
opOR_AL_imm,
|
|
opOR_AX_imm,
|
|
opPUSH_CS_w,
|
|
op0F_w_a16,
|
|
/*10*/ opADC_b_rmw_a16,
|
|
opADC_w_rmw_a16,
|
|
opADC_b_rm_a16,
|
|
opADC_w_rm_a16,
|
|
opADC_AL_imm,
|
|
opADC_AX_imm,
|
|
opPUSH_SS_w,
|
|
opPOP_SS_w,
|
|
opSBB_b_rmw_a16,
|
|
opSBB_w_rmw_a16,
|
|
opSBB_b_rm_a16,
|
|
opSBB_w_rm_a16,
|
|
opSBB_AL_imm,
|
|
opSBB_AX_imm,
|
|
opPUSH_DS_w,
|
|
opPOP_DS_w,
|
|
/*20*/ opAND_b_rmw_a16,
|
|
opAND_w_rmw_a16,
|
|
opAND_b_rm_a16,
|
|
opAND_w_rm_a16,
|
|
opAND_AL_imm,
|
|
opAND_AX_imm,
|
|
opES_w_a16,
|
|
opDAA,
|
|
opSUB_b_rmw_a16,
|
|
opSUB_w_rmw_a16,
|
|
opSUB_b_rm_a16,
|
|
opSUB_w_rm_a16,
|
|
opSUB_AL_imm,
|
|
opSUB_AX_imm,
|
|
opCS_w_a16,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a16,
|
|
opXOR_w_rmw_a16,
|
|
opXOR_b_rm_a16,
|
|
opXOR_w_rm_a16,
|
|
opXOR_AL_imm,
|
|
opXOR_AX_imm,
|
|
opSS_w_a16,
|
|
opAAA,
|
|
opCMP_b_rmw_a16,
|
|
opCMP_w_rmw_a16,
|
|
opCMP_b_rm_a16,
|
|
opCMP_w_rm_a16,
|
|
opCMP_AL_imm,
|
|
opCMP_AX_imm,
|
|
opDS_w_a16,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_AX,
|
|
opINC_CX,
|
|
opINC_DX,
|
|
opINC_BX,
|
|
opINC_SP,
|
|
opINC_BP,
|
|
opINC_SI,
|
|
opINC_DI,
|
|
opDEC_AX,
|
|
opDEC_CX,
|
|
opDEC_DX,
|
|
opDEC_BX,
|
|
opDEC_SP,
|
|
opDEC_BP,
|
|
opDEC_SI,
|
|
opDEC_DI,
|
|
/*50*/ opPUSH_AX,
|
|
opPUSH_CX,
|
|
opPUSH_DX,
|
|
opPUSH_BX,
|
|
opPUSH_SP,
|
|
opPUSH_BP,
|
|
opPUSH_SI,
|
|
opPUSH_DI,
|
|
opPOP_AX,
|
|
opPOP_CX,
|
|
opPOP_DX,
|
|
opPOP_BX,
|
|
opPOP_SP,
|
|
opPOP_BP,
|
|
opPOP_SI,
|
|
opPOP_DI,
|
|
/*60*/ opPUSHA_w,
|
|
opPOPA_w,
|
|
opBOUND_w_a16,
|
|
opARPL_a16,
|
|
opFS_w_a16,
|
|
opGS_w_a16,
|
|
op_66,
|
|
op_67,
|
|
opPUSH_imm_w,
|
|
opIMUL_w_iw_a16,
|
|
opPUSH_imm_bw,
|
|
opIMUL_w_ib_a16,
|
|
opINSB_a16,
|
|
opINSW_a16,
|
|
opOUTSB_a16,
|
|
opOUTSW_a16,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a16,
|
|
op81_w_a16,
|
|
op80_a16,
|
|
op83_w_a16,
|
|
opTEST_b_a16,
|
|
opTEST_w_a16,
|
|
opXCHG_b_a16,
|
|
opXCHG_w_a16,
|
|
opMOV_b_r_a16,
|
|
opMOV_w_r_a16,
|
|
opMOV_r_b_a16,
|
|
opMOV_r_w_a16,
|
|
opMOV_w_seg_a16,
|
|
opLEA_w_a16,
|
|
opMOV_seg_w_a16,
|
|
opPOPW_a16,
|
|
/*90*/ opNOP,
|
|
opXCHG_AX_CX,
|
|
opXCHG_AX_DX,
|
|
opXCHG_AX_BX,
|
|
opXCHG_AX_SP,
|
|
opXCHG_AX_BP,
|
|
opXCHG_AX_SI,
|
|
opXCHG_AX_DI,
|
|
opCBW,
|
|
opCWD,
|
|
opCALL_far_w,
|
|
opWAIT,
|
|
opPUSHF,
|
|
opPOPF,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a16,
|
|
opMOV_AX_a16,
|
|
opMOV_a16_AL,
|
|
opMOV_a16_AX,
|
|
opMOVSB_a16,
|
|
opMOVSW_a16,
|
|
opCMPSB_a16,
|
|
opCMPSW_a16,
|
|
opTEST_AL,
|
|
opTEST_AX,
|
|
opSTOSB_a16,
|
|
opSTOSW_a16,
|
|
opLODSB_a16,
|
|
opLODSW_a16,
|
|
opSCASB_a16,
|
|
opSCASW_a16,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_AX_imm,
|
|
opMOV_CX_imm,
|
|
opMOV_DX_imm,
|
|
opMOV_BX_imm,
|
|
opMOV_SP_imm,
|
|
opMOV_BP_imm,
|
|
opMOV_SI_imm,
|
|
opMOV_DI_imm,
|
|
|
|
/*c0*/ opC0_a16,
|
|
opC1_w_a16,
|
|
opRET_w_imm,
|
|
opRET_w,
|
|
opLES_w_a16,
|
|
opLDS_w_a16,
|
|
opMOV_b_imm_a16,
|
|
opMOV_w_imm_a16,
|
|
opENTER_w,
|
|
opLEAVE_w,
|
|
opRETF_a16_imm,
|
|
opRETF_a16,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRET,
|
|
/*d0*/ opD0_a16,
|
|
opD1_w_a16,
|
|
opD2_a16,
|
|
opD3_w_a16,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a16,
|
|
opESCAPE_d8_a16,
|
|
opESCAPE_d9_a16,
|
|
opESCAPE_da_a16,
|
|
opESCAPE_db_a16,
|
|
opESCAPE_dc_a16,
|
|
opESCAPE_dd_a16,
|
|
opESCAPE_de_a16,
|
|
opESCAPE_df_a16,
|
|
/*e0*/ opLOOPNE_w,
|
|
opLOOPE_w,
|
|
opLOOP_w,
|
|
opJCXZ,
|
|
opIN_AL_imm,
|
|
opIN_AX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_AX_imm,
|
|
opCALL_r16,
|
|
opJMP_r16,
|
|
opJMP_far_a16,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_AX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_AX_DX,
|
|
/*f0*/ opLOCK,
|
|
opINT1,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a16,
|
|
opF7_w_a16,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a16,
|
|
opFF_w_a16,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a16,
|
|
opADD_l_rmw_a16,
|
|
opADD_b_rm_a16,
|
|
opADD_l_rm_a16,
|
|
opADD_AL_imm,
|
|
opADD_EAX_imm,
|
|
opPUSH_ES_l,
|
|
opPOP_ES_l,
|
|
opOR_b_rmw_a16,
|
|
opOR_l_rmw_a16,
|
|
opOR_b_rm_a16,
|
|
opOR_l_rm_a16,
|
|
opOR_AL_imm,
|
|
opOR_EAX_imm,
|
|
opPUSH_CS_l,
|
|
op0F_l_a16,
|
|
/*10*/ opADC_b_rmw_a16,
|
|
opADC_l_rmw_a16,
|
|
opADC_b_rm_a16,
|
|
opADC_l_rm_a16,
|
|
opADC_AL_imm,
|
|
opADC_EAX_imm,
|
|
opPUSH_SS_l,
|
|
opPOP_SS_l,
|
|
opSBB_b_rmw_a16,
|
|
opSBB_l_rmw_a16,
|
|
opSBB_b_rm_a16,
|
|
opSBB_l_rm_a16,
|
|
opSBB_AL_imm,
|
|
opSBB_EAX_imm,
|
|
opPUSH_DS_l,
|
|
opPOP_DS_l,
|
|
/*20*/ opAND_b_rmw_a16,
|
|
opAND_l_rmw_a16,
|
|
opAND_b_rm_a16,
|
|
opAND_l_rm_a16,
|
|
opAND_AL_imm,
|
|
opAND_EAX_imm,
|
|
opES_l_a16,
|
|
opDAA,
|
|
opSUB_b_rmw_a16,
|
|
opSUB_l_rmw_a16,
|
|
opSUB_b_rm_a16,
|
|
opSUB_l_rm_a16,
|
|
opSUB_AL_imm,
|
|
opSUB_EAX_imm,
|
|
opCS_l_a16,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a16,
|
|
opXOR_l_rmw_a16,
|
|
opXOR_b_rm_a16,
|
|
opXOR_l_rm_a16,
|
|
opXOR_AL_imm,
|
|
opXOR_EAX_imm,
|
|
opSS_l_a16,
|
|
opAAA,
|
|
opCMP_b_rmw_a16,
|
|
opCMP_l_rmw_a16,
|
|
opCMP_b_rm_a16,
|
|
opCMP_l_rm_a16,
|
|
opCMP_AL_imm,
|
|
opCMP_EAX_imm,
|
|
opDS_l_a16,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_EAX,
|
|
opINC_ECX,
|
|
opINC_EDX,
|
|
opINC_EBX,
|
|
opINC_ESP,
|
|
opINC_EBP,
|
|
opINC_ESI,
|
|
opINC_EDI,
|
|
opDEC_EAX,
|
|
opDEC_ECX,
|
|
opDEC_EDX,
|
|
opDEC_EBX,
|
|
opDEC_ESP,
|
|
opDEC_EBP,
|
|
opDEC_ESI,
|
|
opDEC_EDI,
|
|
/*50*/ opPUSH_EAX,
|
|
opPUSH_ECX,
|
|
opPUSH_EDX,
|
|
opPUSH_EBX,
|
|
opPUSH_ESP,
|
|
opPUSH_EBP,
|
|
opPUSH_ESI,
|
|
opPUSH_EDI,
|
|
opPOP_EAX,
|
|
opPOP_ECX,
|
|
opPOP_EDX,
|
|
opPOP_EBX,
|
|
opPOP_ESP,
|
|
opPOP_EBP,
|
|
opPOP_ESI,
|
|
opPOP_EDI,
|
|
/*60*/ opPUSHA_l,
|
|
opPOPA_l,
|
|
opBOUND_l_a16,
|
|
opARPL_a16,
|
|
opFS_l_a16,
|
|
opGS_l_a16,
|
|
op_66,
|
|
op_67,
|
|
opPUSH_imm_l,
|
|
opIMUL_l_il_a16,
|
|
opPUSH_imm_bl,
|
|
opIMUL_l_ib_a16,
|
|
opINSB_a16,
|
|
opINSL_a16,
|
|
opOUTSB_a16,
|
|
opOUTSL_a16,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a16,
|
|
op81_l_a16,
|
|
op80_a16,
|
|
op83_l_a16,
|
|
opTEST_b_a16,
|
|
opTEST_l_a16,
|
|
opXCHG_b_a16,
|
|
opXCHG_l_a16,
|
|
opMOV_b_r_a16,
|
|
opMOV_l_r_a16,
|
|
opMOV_r_b_a16,
|
|
opMOV_r_l_a16,
|
|
opMOV_l_seg_a16,
|
|
opLEA_l_a16,
|
|
opMOV_seg_w_a16,
|
|
opPOPL_a16,
|
|
/*90*/ opNOP,
|
|
opXCHG_EAX_ECX,
|
|
opXCHG_EAX_EDX,
|
|
opXCHG_EAX_EBX,
|
|
opXCHG_EAX_ESP,
|
|
opXCHG_EAX_EBP,
|
|
opXCHG_EAX_ESI,
|
|
opXCHG_EAX_EDI,
|
|
opCWDE,
|
|
opCDQ,
|
|
opCALL_far_l,
|
|
opWAIT,
|
|
opPUSHFD,
|
|
opPOPFD,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a16,
|
|
opMOV_EAX_a16,
|
|
opMOV_a16_AL,
|
|
opMOV_a16_EAX,
|
|
opMOVSB_a16,
|
|
opMOVSL_a16,
|
|
opCMPSB_a16,
|
|
opCMPSL_a16,
|
|
opTEST_AL,
|
|
opTEST_EAX,
|
|
opSTOSB_a16,
|
|
opSTOSL_a16,
|
|
opLODSB_a16,
|
|
opLODSL_a16,
|
|
opSCASB_a16,
|
|
opSCASL_a16,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_EAX_imm,
|
|
opMOV_ECX_imm,
|
|
opMOV_EDX_imm,
|
|
opMOV_EBX_imm,
|
|
opMOV_ESP_imm,
|
|
opMOV_EBP_imm,
|
|
opMOV_ESI_imm,
|
|
opMOV_EDI_imm,
|
|
|
|
/*c0*/ opC0_a16,
|
|
opC1_l_a16,
|
|
opRET_l_imm,
|
|
opRET_l,
|
|
opLES_l_a16,
|
|
opLDS_l_a16,
|
|
opMOV_b_imm_a16,
|
|
opMOV_l_imm_a16,
|
|
opENTER_l,
|
|
opLEAVE_l,
|
|
opRETF_a32_imm,
|
|
opRETF_a32,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRETD,
|
|
/*d0*/ opD0_a16,
|
|
opD1_l_a16,
|
|
opD2_a16,
|
|
opD3_l_a16,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a16,
|
|
opESCAPE_d8_a16,
|
|
opESCAPE_d9_a16,
|
|
opESCAPE_da_a16,
|
|
opESCAPE_db_a16,
|
|
opESCAPE_dc_a16,
|
|
opESCAPE_dd_a16,
|
|
opESCAPE_de_a16,
|
|
opESCAPE_df_a16,
|
|
/*e0*/ opLOOPNE_w,
|
|
opLOOPE_w,
|
|
opLOOP_w,
|
|
opJCXZ,
|
|
opIN_AL_imm,
|
|
opIN_EAX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_EAX_imm,
|
|
opCALL_r32,
|
|
opJMP_r32,
|
|
opJMP_far_a32,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_EAX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_EAX_DX,
|
|
/*f0*/ opLOCK,
|
|
opINT1,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a16,
|
|
opF7_l_a16,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a16,
|
|
opFF_l_a16,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a32,
|
|
opADD_w_rmw_a32,
|
|
opADD_b_rm_a32,
|
|
opADD_w_rm_a32,
|
|
opADD_AL_imm,
|
|
opADD_AX_imm,
|
|
opPUSH_ES_w,
|
|
opPOP_ES_w,
|
|
opOR_b_rmw_a32,
|
|
opOR_w_rmw_a32,
|
|
opOR_b_rm_a32,
|
|
opOR_w_rm_a32,
|
|
opOR_AL_imm,
|
|
opOR_AX_imm,
|
|
opPUSH_CS_w,
|
|
op0F_w_a32,
|
|
/*10*/ opADC_b_rmw_a32,
|
|
opADC_w_rmw_a32,
|
|
opADC_b_rm_a32,
|
|
opADC_w_rm_a32,
|
|
opADC_AL_imm,
|
|
opADC_AX_imm,
|
|
opPUSH_SS_w,
|
|
opPOP_SS_w,
|
|
opSBB_b_rmw_a32,
|
|
opSBB_w_rmw_a32,
|
|
opSBB_b_rm_a32,
|
|
opSBB_w_rm_a32,
|
|
opSBB_AL_imm,
|
|
opSBB_AX_imm,
|
|
opPUSH_DS_w,
|
|
opPOP_DS_w,
|
|
/*20*/ opAND_b_rmw_a32,
|
|
opAND_w_rmw_a32,
|
|
opAND_b_rm_a32,
|
|
opAND_w_rm_a32,
|
|
opAND_AL_imm,
|
|
opAND_AX_imm,
|
|
opES_w_a32,
|
|
opDAA,
|
|
opSUB_b_rmw_a32,
|
|
opSUB_w_rmw_a32,
|
|
opSUB_b_rm_a32,
|
|
opSUB_w_rm_a32,
|
|
opSUB_AL_imm,
|
|
opSUB_AX_imm,
|
|
opCS_w_a32,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a32,
|
|
opXOR_w_rmw_a32,
|
|
opXOR_b_rm_a32,
|
|
opXOR_w_rm_a32,
|
|
opXOR_AL_imm,
|
|
opXOR_AX_imm,
|
|
opSS_w_a32,
|
|
opAAA,
|
|
opCMP_b_rmw_a32,
|
|
opCMP_w_rmw_a32,
|
|
opCMP_b_rm_a32,
|
|
opCMP_w_rm_a32,
|
|
opCMP_AL_imm,
|
|
opCMP_AX_imm,
|
|
opDS_w_a32,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_AX,
|
|
opINC_CX,
|
|
opINC_DX,
|
|
opINC_BX,
|
|
opINC_SP,
|
|
opINC_BP,
|
|
opINC_SI,
|
|
opINC_DI,
|
|
opDEC_AX,
|
|
opDEC_CX,
|
|
opDEC_DX,
|
|
opDEC_BX,
|
|
opDEC_SP,
|
|
opDEC_BP,
|
|
opDEC_SI,
|
|
opDEC_DI,
|
|
/*50*/ opPUSH_AX,
|
|
opPUSH_CX,
|
|
opPUSH_DX,
|
|
opPUSH_BX,
|
|
opPUSH_SP,
|
|
opPUSH_BP,
|
|
opPUSH_SI,
|
|
opPUSH_DI,
|
|
opPOP_AX,
|
|
opPOP_CX,
|
|
opPOP_DX,
|
|
opPOP_BX,
|
|
opPOP_SP,
|
|
opPOP_BP,
|
|
opPOP_SI,
|
|
opPOP_DI,
|
|
/*60*/ opPUSHA_w,
|
|
opPOPA_w,
|
|
opBOUND_w_a32,
|
|
opARPL_a32,
|
|
opFS_w_a32,
|
|
opGS_w_a32,
|
|
op_66,
|
|
op_67,
|
|
opPUSH_imm_w,
|
|
opIMUL_w_iw_a32,
|
|
opPUSH_imm_bw,
|
|
opIMUL_w_ib_a32,
|
|
opINSB_a32,
|
|
opINSW_a32,
|
|
opOUTSB_a32,
|
|
opOUTSW_a32,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a32,
|
|
op81_w_a32,
|
|
op80_a32,
|
|
op83_w_a32,
|
|
opTEST_b_a32,
|
|
opTEST_w_a32,
|
|
opXCHG_b_a32,
|
|
opXCHG_w_a32,
|
|
opMOV_b_r_a32,
|
|
opMOV_w_r_a32,
|
|
opMOV_r_b_a32,
|
|
opMOV_r_w_a32,
|
|
opMOV_w_seg_a32,
|
|
opLEA_w_a32,
|
|
opMOV_seg_w_a32,
|
|
opPOPW_a32,
|
|
/*90*/ opNOP,
|
|
opXCHG_AX_CX,
|
|
opXCHG_AX_DX,
|
|
opXCHG_AX_BX,
|
|
opXCHG_AX_SP,
|
|
opXCHG_AX_BP,
|
|
opXCHG_AX_SI,
|
|
opXCHG_AX_DI,
|
|
opCBW,
|
|
opCWD,
|
|
opCALL_far_w,
|
|
opWAIT,
|
|
opPUSHF,
|
|
opPOPF,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a32,
|
|
opMOV_AX_a32,
|
|
opMOV_a32_AL,
|
|
opMOV_a32_AX,
|
|
opMOVSB_a32,
|
|
opMOVSW_a32,
|
|
opCMPSB_a32,
|
|
opCMPSW_a32,
|
|
opTEST_AL,
|
|
opTEST_AX,
|
|
opSTOSB_a32,
|
|
opSTOSW_a32,
|
|
opLODSB_a32,
|
|
opLODSW_a32,
|
|
opSCASB_a32,
|
|
opSCASW_a32,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_AX_imm,
|
|
opMOV_CX_imm,
|
|
opMOV_DX_imm,
|
|
opMOV_BX_imm,
|
|
opMOV_SP_imm,
|
|
opMOV_BP_imm,
|
|
opMOV_SI_imm,
|
|
opMOV_DI_imm,
|
|
|
|
/*c0*/ opC0_a32,
|
|
opC1_w_a32,
|
|
opRET_w_imm,
|
|
opRET_w,
|
|
opLES_w_a32,
|
|
opLDS_w_a32,
|
|
opMOV_b_imm_a32,
|
|
opMOV_w_imm_a32,
|
|
opENTER_w,
|
|
opLEAVE_w,
|
|
opRETF_a16_imm,
|
|
opRETF_a16,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRET,
|
|
/*d0*/ opD0_a32,
|
|
opD1_w_a32,
|
|
opD2_a32,
|
|
opD3_w_a32,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a32,
|
|
opESCAPE_d8_a32,
|
|
opESCAPE_d9_a32,
|
|
opESCAPE_da_a32,
|
|
opESCAPE_db_a32,
|
|
opESCAPE_dc_a32,
|
|
opESCAPE_dd_a32,
|
|
opESCAPE_de_a32,
|
|
opESCAPE_df_a32,
|
|
/*e0*/ opLOOPNE_l,
|
|
opLOOPE_l,
|
|
opLOOP_l,
|
|
opJECXZ,
|
|
opIN_AL_imm,
|
|
opIN_AX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_AX_imm,
|
|
opCALL_r16,
|
|
opJMP_r16,
|
|
opJMP_far_a16,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_AX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_AX_DX,
|
|
/*f0*/ opLOCK,
|
|
opINT1,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a32,
|
|
opF7_w_a32,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a32,
|
|
opFF_w_a32,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ opADD_b_rmw_a32,
|
|
opADD_l_rmw_a32,
|
|
opADD_b_rm_a32,
|
|
opADD_l_rm_a32,
|
|
opADD_AL_imm,
|
|
opADD_EAX_imm,
|
|
opPUSH_ES_l,
|
|
opPOP_ES_l,
|
|
opOR_b_rmw_a32,
|
|
opOR_l_rmw_a32,
|
|
opOR_b_rm_a32,
|
|
opOR_l_rm_a32,
|
|
opOR_AL_imm,
|
|
opOR_EAX_imm,
|
|
opPUSH_CS_l,
|
|
op0F_l_a32,
|
|
/*10*/ opADC_b_rmw_a32,
|
|
opADC_l_rmw_a32,
|
|
opADC_b_rm_a32,
|
|
opADC_l_rm_a32,
|
|
opADC_AL_imm,
|
|
opADC_EAX_imm,
|
|
opPUSH_SS_l,
|
|
opPOP_SS_l,
|
|
opSBB_b_rmw_a32,
|
|
opSBB_l_rmw_a32,
|
|
opSBB_b_rm_a32,
|
|
opSBB_l_rm_a32,
|
|
opSBB_AL_imm,
|
|
opSBB_EAX_imm,
|
|
opPUSH_DS_l,
|
|
opPOP_DS_l,
|
|
/*20*/ opAND_b_rmw_a32,
|
|
opAND_l_rmw_a32,
|
|
opAND_b_rm_a32,
|
|
opAND_l_rm_a32,
|
|
opAND_AL_imm,
|
|
opAND_EAX_imm,
|
|
opES_l_a32,
|
|
opDAA,
|
|
opSUB_b_rmw_a32,
|
|
opSUB_l_rmw_a32,
|
|
opSUB_b_rm_a32,
|
|
opSUB_l_rm_a32,
|
|
opSUB_AL_imm,
|
|
opSUB_EAX_imm,
|
|
opCS_l_a32,
|
|
opDAS,
|
|
/*30*/ opXOR_b_rmw_a32,
|
|
opXOR_l_rmw_a32,
|
|
opXOR_b_rm_a32,
|
|
opXOR_l_rm_a32,
|
|
opXOR_AL_imm,
|
|
opXOR_EAX_imm,
|
|
opSS_l_a32,
|
|
opAAA,
|
|
opCMP_b_rmw_a32,
|
|
opCMP_l_rmw_a32,
|
|
opCMP_b_rm_a32,
|
|
opCMP_l_rm_a32,
|
|
opCMP_AL_imm,
|
|
opCMP_EAX_imm,
|
|
opDS_l_a32,
|
|
opAAS,
|
|
|
|
/*40*/ opINC_EAX,
|
|
opINC_ECX,
|
|
opINC_EDX,
|
|
opINC_EBX,
|
|
opINC_ESP,
|
|
opINC_EBP,
|
|
opINC_ESI,
|
|
opINC_EDI,
|
|
opDEC_EAX,
|
|
opDEC_ECX,
|
|
opDEC_EDX,
|
|
opDEC_EBX,
|
|
opDEC_ESP,
|
|
opDEC_EBP,
|
|
opDEC_ESI,
|
|
opDEC_EDI,
|
|
/*50*/ opPUSH_EAX,
|
|
opPUSH_ECX,
|
|
opPUSH_EDX,
|
|
opPUSH_EBX,
|
|
opPUSH_ESP,
|
|
opPUSH_EBP,
|
|
opPUSH_ESI,
|
|
opPUSH_EDI,
|
|
opPOP_EAX,
|
|
opPOP_ECX,
|
|
opPOP_EDX,
|
|
opPOP_EBX,
|
|
opPOP_ESP,
|
|
opPOP_EBP,
|
|
opPOP_ESI,
|
|
opPOP_EDI,
|
|
/*60*/ opPUSHA_l,
|
|
opPOPA_l,
|
|
opBOUND_l_a32,
|
|
opARPL_a32,
|
|
opFS_l_a32,
|
|
opGS_l_a32,
|
|
op_66,
|
|
op_67,
|
|
opPUSH_imm_l,
|
|
opIMUL_l_il_a32,
|
|
opPUSH_imm_bl,
|
|
opIMUL_l_ib_a32,
|
|
opINSB_a32,
|
|
opINSL_a32,
|
|
opOUTSB_a32,
|
|
opOUTSL_a32,
|
|
/*70*/ opJO,
|
|
opJNO,
|
|
opJB,
|
|
opJNB,
|
|
opJE,
|
|
opJNE,
|
|
opJBE,
|
|
opJNBE,
|
|
opJS,
|
|
opJNS,
|
|
opJP,
|
|
opJNP,
|
|
opJL,
|
|
opJNL,
|
|
opJLE,
|
|
opJNLE,
|
|
|
|
/*80*/ op80_a32,
|
|
op81_l_a32,
|
|
op80_a32,
|
|
op83_l_a32,
|
|
opTEST_b_a32,
|
|
opTEST_l_a32,
|
|
opXCHG_b_a32,
|
|
opXCHG_l_a32,
|
|
opMOV_b_r_a32,
|
|
opMOV_l_r_a32,
|
|
opMOV_r_b_a32,
|
|
opMOV_r_l_a32,
|
|
opMOV_l_seg_a32,
|
|
opLEA_l_a32,
|
|
opMOV_seg_w_a32,
|
|
opPOPL_a32,
|
|
/*90*/ opNOP,
|
|
opXCHG_EAX_ECX,
|
|
opXCHG_EAX_EDX,
|
|
opXCHG_EAX_EBX,
|
|
opXCHG_EAX_ESP,
|
|
opXCHG_EAX_EBP,
|
|
opXCHG_EAX_ESI,
|
|
opXCHG_EAX_EDI,
|
|
opCWDE,
|
|
opCDQ,
|
|
opCALL_far_l,
|
|
opWAIT,
|
|
opPUSHFD,
|
|
opPOPFD,
|
|
opSAHF,
|
|
opLAHF,
|
|
/*a0*/ opMOV_AL_a32,
|
|
opMOV_EAX_a32,
|
|
opMOV_a32_AL,
|
|
opMOV_a32_EAX,
|
|
opMOVSB_a32,
|
|
opMOVSL_a32,
|
|
opCMPSB_a32,
|
|
opCMPSL_a32,
|
|
opTEST_AL,
|
|
opTEST_EAX,
|
|
opSTOSB_a32,
|
|
opSTOSL_a32,
|
|
opLODSB_a32,
|
|
opLODSL_a32,
|
|
opSCASB_a32,
|
|
opSCASL_a32,
|
|
/*b0*/ opMOV_AL_imm,
|
|
opMOV_CL_imm,
|
|
opMOV_DL_imm,
|
|
opMOV_BL_imm,
|
|
opMOV_AH_imm,
|
|
opMOV_CH_imm,
|
|
opMOV_DH_imm,
|
|
opMOV_BH_imm,
|
|
opMOV_EAX_imm,
|
|
opMOV_ECX_imm,
|
|
opMOV_EDX_imm,
|
|
opMOV_EBX_imm,
|
|
opMOV_ESP_imm,
|
|
opMOV_EBP_imm,
|
|
opMOV_ESI_imm,
|
|
opMOV_EDI_imm,
|
|
|
|
/*c0*/ opC0_a32,
|
|
opC1_l_a32,
|
|
opRET_l_imm,
|
|
opRET_l,
|
|
opLES_l_a32,
|
|
opLDS_l_a32,
|
|
opMOV_b_imm_a32,
|
|
opMOV_l_imm_a32,
|
|
opENTER_l,
|
|
opLEAVE_l,
|
|
opRETF_a32_imm,
|
|
opRETF_a32,
|
|
opINT3,
|
|
opINT,
|
|
opINTO,
|
|
opIRETD,
|
|
/*d0*/ opD0_a32,
|
|
opD1_l_a32,
|
|
opD2_a32,
|
|
opD3_l_a32,
|
|
opAAM,
|
|
opAAD,
|
|
opSETALC,
|
|
opXLAT_a32,
|
|
opESCAPE_d8_a32,
|
|
opESCAPE_d9_a32,
|
|
opESCAPE_da_a32,
|
|
opESCAPE_db_a32,
|
|
opESCAPE_dc_a32,
|
|
opESCAPE_dd_a32,
|
|
opESCAPE_de_a32,
|
|
opESCAPE_df_a32,
|
|
/*e0*/ opLOOPNE_l,
|
|
opLOOPE_l,
|
|
opLOOP_l,
|
|
opJECXZ,
|
|
opIN_AL_imm,
|
|
opIN_EAX_imm,
|
|
opOUT_AL_imm,
|
|
opOUT_EAX_imm,
|
|
opCALL_r32,
|
|
opJMP_r32,
|
|
opJMP_far_a32,
|
|
opJMP_r8,
|
|
opIN_AL_DX,
|
|
opIN_EAX_DX,
|
|
opOUT_AL_DX,
|
|
opOUT_EAX_DX,
|
|
/*f0*/ opLOCK,
|
|
opINT1,
|
|
opREPNE,
|
|
opREPE,
|
|
opHLT,
|
|
opCMC,
|
|
opF6_a32,
|
|
opF7_l_a32,
|
|
opCLC,
|
|
opSTC,
|
|
opCLI,
|
|
opSTI,
|
|
opCLD,
|
|
opSTD,
|
|
opINCDEC_b_a32,
|
|
opFF_l_a32,
|
|
};
|
|
|
|
OpFn OP_TABLE(REPE)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPE_w_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPE_w_a16,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPE_w_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPE_w_a16,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPE_w_a16,
|
|
opGS_REPE_w_a16,
|
|
op_66_REPE,
|
|
op_67_REPE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a16,
|
|
opREP_INSW_a16,
|
|
opREP_OUTSB_a16,
|
|
opREP_OUTSW_a16,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a16,
|
|
opREP_MOVSW_a16,
|
|
opREP_CMPSB_a16_E,
|
|
opREP_CMPSW_a16_E,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a16,
|
|
opREP_STOSW_a16,
|
|
opREP_LODSB_a16,
|
|
opREP_LODSW_a16,
|
|
opREP_SCASB_a16_E,
|
|
opREP_SCASW_a16_E,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPE_l_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPE_l_a16,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPE_l_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPE_l_a16,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPE_l_a16,
|
|
opGS_REPE_l_a16,
|
|
op_66_REPE,
|
|
op_67_REPE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a16,
|
|
opREP_INSL_a16,
|
|
opREP_OUTSB_a16,
|
|
opREP_OUTSL_a16,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a16,
|
|
opREP_MOVSL_a16,
|
|
opREP_CMPSB_a16_E,
|
|
opREP_CMPSL_a16_E,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a16,
|
|
opREP_STOSL_a16,
|
|
opREP_LODSB_a16,
|
|
opREP_LODSL_a16,
|
|
opREP_SCASB_a16_E,
|
|
opREP_SCASL_a16_E,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPE_w_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPE_w_a32,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPE_w_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPE_w_a32,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPE_w_a32,
|
|
opGS_REPE_w_a32,
|
|
op_66_REPE,
|
|
op_67_REPE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a32,
|
|
opREP_INSW_a32,
|
|
opREP_OUTSB_a32,
|
|
opREP_OUTSW_a32,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a32,
|
|
opREP_MOVSW_a32,
|
|
opREP_CMPSB_a32_E,
|
|
opREP_CMPSW_a32_E,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a32,
|
|
opREP_STOSW_a32,
|
|
opREP_LODSB_a32,
|
|
opREP_LODSW_a32,
|
|
opREP_SCASB_a32_E,
|
|
opREP_SCASW_a32_E,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPE_l_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPE_l_a32,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPE_l_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPE_l_a32,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPE_l_a32,
|
|
opGS_REPE_l_a32,
|
|
op_66_REPE,
|
|
op_67_REPE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a32,
|
|
opREP_INSL_a32,
|
|
opREP_OUTSB_a32,
|
|
opREP_OUTSL_a32,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a32,
|
|
opREP_MOVSL_a32,
|
|
opREP_CMPSB_a32_E,
|
|
opREP_CMPSL_a32_E,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a32,
|
|
opREP_STOSL_a32,
|
|
opREP_LODSB_a32,
|
|
opREP_LODSL_a32,
|
|
opREP_SCASB_a32_E,
|
|
opREP_SCASL_a32_E,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
};
|
|
|
|
OpFn OP_TABLE(REPNE)[1024] = {
|
|
/*16-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPNE_w_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPNE_w_a16,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPNE_w_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPNE_w_a16,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPNE_w_a16,
|
|
opGS_REPNE_w_a16,
|
|
op_66_REPNE,
|
|
op_67_REPNE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a16,
|
|
opREP_INSW_a16,
|
|
opREP_OUTSB_a16,
|
|
opREP_OUTSW_a16,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a16,
|
|
opREP_MOVSW_a16,
|
|
opREP_CMPSB_a16_NE,
|
|
opREP_CMPSW_a16_NE,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a16,
|
|
opREP_STOSW_a16,
|
|
opREP_LODSB_a16,
|
|
opREP_LODSW_a16,
|
|
opREP_SCASB_a16_NE,
|
|
opREP_SCASW_a16_NE,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*32-bit data, 16-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPNE_l_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPNE_l_a16,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPNE_l_a16,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPNE_l_a16,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPNE_l_a16,
|
|
opGS_REPNE_l_a16,
|
|
op_66_REPNE,
|
|
op_67_REPNE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a16,
|
|
opREP_INSL_a16,
|
|
opREP_OUTSB_a16,
|
|
opREP_OUTSL_a16,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a16,
|
|
opREP_MOVSL_a16,
|
|
opREP_CMPSB_a16_NE,
|
|
opREP_CMPSL_a16_NE,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a16,
|
|
opREP_STOSL_a16,
|
|
opREP_LODSB_a16,
|
|
opREP_LODSL_a16,
|
|
opREP_SCASB_a16_NE,
|
|
opREP_SCASL_a16_NE,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*16-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPNE_w_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPNE_w_a32,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPNE_w_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPNE_w_a32,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPNE_w_a32,
|
|
opGS_REPNE_w_a32,
|
|
op_66_REPNE,
|
|
op_67_REPNE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a32,
|
|
opREP_INSW_a32,
|
|
opREP_OUTSB_a32,
|
|
opREP_OUTSW_a32,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a32,
|
|
opREP_MOVSW_a32,
|
|
opREP_CMPSB_a32_NE,
|
|
opREP_CMPSW_a32_NE,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a32,
|
|
opREP_STOSW_a32,
|
|
opREP_LODSB_a32,
|
|
opREP_LODSW_a32,
|
|
opREP_SCASB_a32_NE,
|
|
opREP_SCASW_a32_NE,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*32-bit data, 32-bit addr*/
|
|
/* 00 01 02 03 04 05 06 07
|
|
08 09 0a 0b 0c 0d 0e 0f*/
|
|
/*00*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*10*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*20*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opES_REPNE_l_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opCS_REPNE_l_a32,
|
|
0,
|
|
/*30*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opSS_REPNE_l_a32,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opDS_REPNE_l_a32,
|
|
0,
|
|
|
|
/*40*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*50*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*60*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opFS_REPNE_l_a32,
|
|
opGS_REPNE_l_a32,
|
|
op_66_REPNE,
|
|
op_67_REPNE,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_INSB_a32,
|
|
opREP_INSL_a32,
|
|
opREP_OUTSB_a32,
|
|
opREP_OUTSL_a32,
|
|
/*70*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*80*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*90*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*a0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
opREP_MOVSB_a32,
|
|
opREP_MOVSL_a32,
|
|
opREP_CMPSB_a32_NE,
|
|
opREP_CMPSL_a32_NE,
|
|
0,
|
|
0,
|
|
opREP_STOSB_a32,
|
|
opREP_STOSL_a32,
|
|
opREP_LODSB_a32,
|
|
opREP_LODSL_a32,
|
|
opREP_SCASB_a32_NE,
|
|
opREP_SCASL_a32_NE,
|
|
/*b0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
|
|
/*c0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*d0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*e0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
/*f0*/ 0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
};
|
|
|
|
#include "x87_ops.h"
|
|
|
|
#endif /* _386_OPS_H_ */ |