diff udis86-1.4/libudis86/opcmap.c @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/udis86-1.4/libudis86/opcmap.c	Tue Apr 05 20:44:01 2011 +0200
@@ -0,0 +1,3013 @@
+/* -----------------------------------------------------------------------------
+ * opcmap.c
+ *
+ * Copyright (c) 2006, Vivek Mohan <vivek@sig9.com>
+ * All rights reserved. See LICENSE
+ * -----------------------------------------------------------------------------
+ */
+
+#include "types.h"
+#include "mnemonics.h"
+#include "opcmap.h"
+#include "input.h"
+
+/* operand types - check out the intel/amd manuals */
+#define Ap	{ OP_A, SZ_P 	}
+#define E	{ OP_E, 0 	}
+#define Eb	{ OP_E, SZ_B 	}
+#define Ew	{ OP_E, SZ_W 	}
+#define Ev	{ OP_E, SZ_V 	}
+#define Ed	{ OP_E, SZ_D 	}
+#define Ez	{ OP_E, SZ_Z 	}
+#define Ex	{ OP_E, SZ_MDQ 	}
+#define Ep	{ OP_E, SZ_P 	}
+#define G	{ OP_G, 0 	}
+#define Gb	{ OP_G, SZ_B 	}
+#define Gw	{ OP_G, SZ_W 	}
+#define Gv	{ OP_G, SZ_V 	}
+#define Gvw	{ OP_G, SZ_MDQ 	}
+#define Gd	{ OP_G, SZ_D 	}
+#define Gx	{ OP_G, SZ_MDQ 	}
+#define Gz	{ OP_G, SZ_Z 	}
+#define M	{ OP_M, 0 	}
+#define Mb	{ OP_M, SZ_B 	}
+#define Mw	{ OP_M, SZ_W 	}
+#define Ms	{ OP_M, SZ_W 	}
+#define Md	{ OP_M, SZ_D 	}
+#define Mq	{ OP_M, SZ_Q 	}
+#define Mt	{ OP_M, SZ_T 	}
+#define	I1	{ OP_I1, 0 	}
+#define	I3	{ OP_I3, 0 	}
+#define Ib	{ OP_I, SZ_B 	}
+#define Iw	{ OP_I, SZ_W	}
+#define Iv	{ OP_I, SZ_V	}
+#define Iz	{ OP_I, SZ_Z	}
+#define Jv	{ OP_J, SZ_V	}
+#define Jz	{ OP_J, SZ_Z	}
+#define Jb	{ OP_J, SZ_B	}
+#define R	{ OP_R, SZ_RDQ	}
+#define C	{ OP_C, 0	} 
+#define D	{ OP_D, 0	}
+#define S	{ OP_S, 0	}
+#define Ob	{ OP_O, SZ_B	}
+#define Ow	{ OP_O, SZ_W	}
+#define Ov	{ OP_O, SZ_V	}
+#define V	{ OP_V, 0	}
+#define W	{ OP_W, 0	}
+#define P	{ OP_P, 0	}
+#define Q	{ OP_Q, 0	}
+#define VR	{ OP_VR, 0	}
+#define PR	{ OP_PR, 0	}
+#define AL	{ OP_AL, 0	}
+#define CL	{ OP_CL, 0	}
+#define DL	{ OP_DL, 0	}
+#define BL	{ OP_BL, 0	}
+#define AH	{ OP_AH, 0	}
+#define CH	{ OP_CH, 0	}
+#define DH	{ OP_DH, 0	}
+#define BH	{ OP_BH, 0	}
+#define AX	{ OP_AX, 0	}
+#define CX	{ OP_CX, 0	}
+#define DX	{ OP_DX, 0	}
+#define BX	{ OP_BX, 0	}
+#define SI	{ OP_SI, 0	}
+#define DI	{ OP_DI, 0	}
+#define SP	{ OP_SP, 0	}
+#define BP	{ OP_BP, 0	}
+#define eAX	{ OP_eAX, 0	}
+#define eCX	{ OP_eCX, 0	}
+#define eDX	{ OP_eDX, 0	}
+#define eBX	{ OP_eBX, 0	}
+#define eSI	{ OP_eSI, 0	}
+#define eDI	{ OP_eDI, 0	}
+#define eSP	{ OP_eSP, 0	}
+#define eBP	{ OP_eBP, 0	}
+#define rAX	{ OP_rAX, 0	}
+#define rCX	{ OP_rCX, 0	}
+#define rBX	{ OP_rDX, 0	}
+#define rDX	{ OP_rDX, 0	}
+#define rSI	{ OP_rSI, 0	}
+#define rDI	{ OP_rDI, 0	}
+#define rSP	{ OP_rSP, 0	}
+#define rBP	{ OP_rBP, 0	}
+#define ES	{ OP_ES, 0	}
+#define CS	{ OP_CS, 0	}
+#define DS	{ OP_DS, 0	}
+#define SS	{ OP_SS, 0	}
+#define GS	{ OP_GS, 0	}
+#define FS	{ OP_FS, 0	}
+#define ST0	{ OP_ST0, 0	}
+#define ST1	{ OP_ST1, 0	}
+#define ST2	{ OP_ST2, 0	}
+#define ST3	{ OP_ST3, 0	}
+#define ST4	{ OP_ST4, 0	}
+#define ST5	{ OP_ST5, 0	}
+#define ST6	{ OP_ST6, 0	}
+#define ST7	{ OP_ST7, 0	}
+#define NOARG	{ 0, 0 		}
+#define ALr8b	{ OP_ALr8b,0 	}
+#define CLr9b	{ OP_CLr9b,0 	}
+#define DLr10b	{ OP_DLr10b,0 	}
+#define BLr11b	{ OP_BLr11b,0 	}
+#define AHr12b	{ OP_AHr12b,0 	}
+#define CHr13b	{ OP_CHr13b,0 	}
+#define DHr14b	{ OP_DHr14b,0 	}
+#define BHr15b	{ OP_BHr15b,0 	}
+#define rAXr8	{ OP_rAXr8,0 	}
+#define rCXr9	{ OP_rCXr9,0 	}
+#define rDXr10	{ OP_rDXr10,0 	}
+#define rBXr11	{ OP_rBXr11,0 	}
+#define rSPr12	{ OP_rSPr12,0 	}
+#define rBPr13	{ OP_rBPr13,0 	}
+#define rSIr14	{ OP_rSIr14,0 	}
+#define rDIr15	{ OP_rDIr15,0 	}
+
+enum INSN_GROUPS
+{
+  GRP_80, 
+  GRP_81, 
+  GRP_82,
+  GRP_83,
+  GRP_8F,
+  GRP_C0,
+  GRP_C1,
+  GRP_C6,
+  GRP_C7,
+  GRP_D0,
+  GRP_D1,
+  GRP_D2,
+  GRP_D3,
+  GRP_F6,
+  GRP_F7,
+  GRP_FE,
+  GRP_FF,
+  GRP_0F00,
+  GRP_0F01,
+  GRP_0F0D,
+  GRP_0F18,
+  GRP_0F71,
+  GRP_0F72,
+  GRP_0F73,
+  GRP_0FAE,
+  GRP_0FBA,
+  GRP_0FB9,
+  GRP_0FC7
+};
+
+/* 1 byte opcode */
+struct map_entry itab_1byte[0x100] = 
+{
+	/* Instruction, op1, op2, op3, Valid Prefixes */
+
+/* 00 */ { UD_Iadd,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R) },
+/* 01 */ { UD_Iadd,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 02 */ { UD_Iadd,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R) },
+/* 03 */ { UD_Iadd,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 04 */ { UD_Iadd,	AL,	Ib,	NOARG,	Pnone },
+/* 05 */ { UD_Iadd,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 06 */ { UD_Ipush,	ES,	NOARG,	NOARG,	Pinv64 },
+/* 07 */ { UD_Ipop,	ES,	NOARG,	NOARG,	Pinv64 },
+/* 08 */ { UD_Ior,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R) },
+/* 09 */ { UD_Ior,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 0A */ { UD_Ior,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R)},
+/* 0B */ { UD_Ior,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 0C */ { UD_Ior,	AL,	Ib,	NOARG,	Pnone },
+/* 0D */ { UD_Ior,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 0E */ { UD_Ipush,	CS,	NOARG,	NOARG,	Pinv64 },
+/* 0F */ { UD_Iesc,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 10 */ { UD_Iadc,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 11 */ { UD_Iadc,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 12 */ { UD_Iadc,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 13 */ { UD_Iadc,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 14 */ { UD_Iadc,	AL,	Ib,	NOARG,	Pnone },
+/* 15 */ { UD_Iadc,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 16 */ { UD_Ipush,	SS,	NOARG,	NOARG,	Pinv64 },
+/* 17 */ { UD_Ipop,	SS,	NOARG,	NOARG,	Pinv64 },
+/* 18 */ { UD_Isbb,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 19 */ { UD_Isbb,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 1A */ { UD_Isbb,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 1B */ { UD_Isbb,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 1C */ { UD_Isbb,	AL,	Ib,	NOARG,	Pnone },
+/* 1D */ { UD_Isbb,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 1E */ { UD_Ipush,	DS,	NOARG,	NOARG,	Pinv64 },
+/* 1F */ { UD_Ipop,	DS,	NOARG,	NOARG,	Pinv64 },
+/* 20 */ { UD_Iand,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 21 */ { UD_Iand,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 22 */ { UD_Iand,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 23 */ { UD_Iand,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 24 */ { UD_Iand,	AL,	Ib,	NOARG,	Pnone },
+/* 25 */ { UD_Iand,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 26 */ { UD_Ies,	ES,	NOARG,	NOARG,	Pnone },
+/* 27 */ { UD_Idaa,	NOARG,	NOARG,	NOARG,	Pinv64 },
+/* 28 */ { UD_Isub,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 29 */ { UD_Isub,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 2A */ { UD_Isub,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 2B */ { UD_Isub,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 2C */ { UD_Isub,	AL,	Ib,	NOARG,	Pnone },
+/* 2D */ { UD_Isub,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 2E */ { UD_Ics,	CS,	NOARG,	NOARG,	Pnone },
+/* 2F */ { UD_Idas,	NOARG,	NOARG,	NOARG,	Pinv64 },
+/* 30 */ { UD_Ixor,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 31 */ { UD_Ixor,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 32 */ { UD_Ixor,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 33 */ { UD_Ixor,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 34 */ { UD_Ixor,	AL,	Ib,	NOARG,	Pnone },
+/* 35 */ { UD_Ixor,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 36 */ { UD_Iss,	ES,	NOARG,	NOARG,	Pinv64 },
+/* 37 */ { UD_Iaaa,	NOARG,	NOARG,	NOARG,	Pinv64 },
+/* 38 */ { UD_Icmp,	Eb,	Gb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 39 */ { UD_Icmp,	Ev,	Gv,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 3A */ { UD_Icmp,	Gb,	Eb,	NOARG,	Pa32 | REX(_X|_B|_R)  },
+/* 3B */ { UD_Icmp,	Gv,	Ev,	NOARG,	Pa32 | Po32 | REX(_W|_R|_X|_B) },
+/* 3C */ { UD_Icmp,	AL,	Ib,	NOARG,	Pnone },
+/* 3D */ { UD_Icmp,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* 3E */ { UD_Ids,	ES,	NOARG,	NOARG,	Pnone },
+/* 3F */ { UD_Iaas,	NOARG,	NOARG,	NOARG,	Pinv64 },
+/* 40 */ { UD_Iinc,	eAX,	NOARG,	NOARG,	Po32 },
+/* 41 */ { UD_Iinc,	eCX,	NOARG,	NOARG,	Po32 },
+/* 42 */ { UD_Iinc,	eDX,	NOARG,	NOARG,	Po32 },
+/* 43 */ { UD_Iinc,	eBX,	NOARG,	NOARG,	Po32 },
+/* 44 */ { UD_Iinc,	eSP,	NOARG,	NOARG,	Po32 },
+/* 45 */ { UD_Iinc,	eBP,	NOARG,	NOARG,	Po32 },
+/* 46 */ { UD_Iinc,	eSI,	NOARG,	NOARG,	Po32 },
+/* 47 */ { UD_Iinc,	eDI,	NOARG,	NOARG,	Po32 },
+/* 48 */ { UD_Idec,	eAX,	NOARG,	NOARG,	Po32 },
+/* 49 */ { UD_Idec,	eCX,	NOARG,	NOARG,	Po32 },
+/* 4A */ { UD_Idec,	eDX,	NOARG,	NOARG,	Po32 },
+/* 4B */ { UD_Idec,	eBX,	NOARG,	NOARG,	Po32 },
+/* 4C */ { UD_Idec,	eSP,	NOARG,	NOARG,	Po32 },
+/* 4D */ { UD_Idec,	eBP,	NOARG,	NOARG,	Po32 },
+/* 4E */ { UD_Idec,	eSI,	NOARG,	NOARG,	Po32 },
+/* 4F */ { UD_Idec,	eDI,	NOARG,	NOARG,	Po32 },
+/* 50 */ { UD_Ipush,	rAXr8,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 51 */ { UD_Ipush,	rCXr9,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 52 */ { UD_Ipush,	rDXr10,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 53 */ { UD_Ipush,	rBXr11,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 54 */ { UD_Ipush,	rSPr12,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 55 */ { UD_Ipush,	rBPr13,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 56 */ { UD_Ipush,	rSIr14,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 57 */ { UD_Ipush,	rDIr15,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 58 */ { UD_Ipop,	rAXr8,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 59 */ { UD_Ipop,	rCXr9,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 5A */ { UD_Ipop,	rDXr10,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 5B */ { UD_Ipop,	rBXr11,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 5C */ { UD_Ipop,	rSPr12,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 5D */ { UD_Ipop,	rBPr13,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 5E */ { UD_Ipop,	rSIr14,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 5F */ { UD_Ipop,	rDIr15,	NOARG,	NOARG,	Po32 | Pdef64 | REX(_B) },
+/* 60 */ { UD_Ipusha,	NOARG,	NOARG,	NOARG,	Po32 | Pinv64 | PdepM },
+/* 61 */ { UD_Ipopa,	NOARG,	NOARG,	NOARG,	Po32 | Pinv64 | PdepM },
+/* 62 */ { UD_Ibound,	Gv,	M,	NOARG,	Po32 | Pa32 | Pinv64 },
+/* 63 */ { UD_Iarpl,	Ew,	Gw,	NOARG,	Pa32 | Pinv64 },
+/* 64 */ { UD_Ifs,	ES,	NOARG,	NOARG,	Pnone },
+/* 65 */ { UD_Igs,	GS,	NOARG,	NOARG,	Pnone },
+/* 66 */ { UD_Ia32,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 67 */ { UD_Io32,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 68 */ { UD_Ipush,	Iz,	NOARG,	NOARG,	Pc1 | Po32 },
+/* 69 */ { UD_Iimul,	Gv,	Ev,	Iz,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 6A */ { UD_Ipush,	Ib,	NOARG,	NOARG,	Pnone },
+/* 6B */ { UD_Iimul,	Gv,	Ev,	Ib,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 6C */ { UD_Iinsb,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6D */ { UD_Iinsw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM },
+/* 6E */ { UD_Ioutsb,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6F */ { UD_Ioutsw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM },
+/* 70 */ { UD_Ijo,	Jb,	NOARG,	NOARG,	Pnone },
+/* 71 */ { UD_Ijno,	Jb,	NOARG,	NOARG,	Pnone },
+/* 72 */ { UD_Ijb,	Jb,	NOARG,	NOARG,	Pnone },
+/* 73 */ { UD_Ijae,	Jb,	NOARG,	NOARG,	Pnone },
+/* 74 */ { UD_Ijz,	Jb,	NOARG,	NOARG,	Pnone },
+/* 75 */ { UD_Ijnz,	Jb,	NOARG,	NOARG,	Pnone },
+/* 76 */ { UD_Ijbe,	Jb,	NOARG,	NOARG,	Pnone },
+/* 77 */ { UD_Ija,	Jb,	NOARG,	NOARG,	Pnone },
+/* 78 */ { UD_Ijs,	Jb,	NOARG,	NOARG,	Pnone },
+/* 79 */ { UD_Ijns,	Jb,	NOARG,	NOARG,	Pnone },
+/* 7A */ { UD_Ijp,	Jb,	NOARG,	NOARG,	Pnone },
+/* 7B */ { UD_Ijnp,	Jb,	NOARG,	NOARG,	Pnone },
+/* 7C */ { UD_Ijl,	Jb,	NOARG,	NOARG,	Pnone },
+/* 7D */ { UD_Ijge,	Jb,	NOARG,	NOARG,	Pnone },
+/* 7E */ { UD_Ijle,	Jb,	NOARG,	NOARG,	Pnone },
+/* 7F */ { UD_Ijg,	Jb,	NOARG,	NOARG,	Pnone },
+/* 80 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_80 },
+/* 81 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_81 },
+/* 82 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_82 },
+/* 83 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_83 },
+/* 84 */ { UD_Itest,	Eb,	Gb,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 85 */ { UD_Itest,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 86 */ { UD_Ixchg,	Eb,	Gb,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 87 */ { UD_Ixchg,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 88 */ { UD_Imov,	Eb,	Gb,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 89 */ { UD_Imov,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 8A */ { UD_Imov,	Gb,	Eb,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 8B */ { UD_Imov,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 8C */ { UD_Imov,	Ev,	S,	NOARG,	Po32 | Pa32 | REX(_R|_X|_B) },
+/* 8D */ { UD_Ilea,	Gv,	M,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 8E */ { UD_Imov,	S,	Ev,	NOARG,	Po32 | Pa32 | REX(_R|_X|_B) },
+/* 8F */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_8F },
+/* 90 */ { UD_Ixchg,	rAXr8,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 91 */ { UD_Ixchg,	rCXr9,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 92 */ { UD_Ixchg,	rDXr10,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 93 */ { UD_Ixchg,	rBXr11,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 94 */ { UD_Ixchg,	rSPr12,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 95 */ { UD_Ixchg,	rBPr13,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 96 */ { UD_Ixchg,	rSIr14,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 97 */ { UD_Ixchg,	rDIr15,	rAX,	NOARG,	Po32 | REX(_W|_B) },
+/* 98 */ { UD_Icbw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* 99 */ { UD_Icwd,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* 9A */ { UD_Icall,	Ap,	NOARG,	NOARG,	Pc1 | Po32 | Pinv64 },
+/* 9B */ { UD_Iwait,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9C */ { UD_Ipushfw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | Pdef64 },
+/* 9D */ { UD_Ipopfw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | Pdef64 },
+/* 9E */ { UD_Isahf,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9F */ { UD_Ilahf,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A0 */ { UD_Imov,	AL,	Ob,	NOARG,	Pnone },
+/* A1 */ { UD_Imov,	rAX,	Ov,	NOARG,	Po32 | Pa32 | REX(_W) },
+/* A2 */ { UD_Imov,	Ob,	AL,	NOARG,	Pnone },
+/* A3 */ { UD_Imov,	Ov,	rAX, 	NOARG,	Po32 | Pa32 | REX(_W) },
+/* A4 */ { UD_Imovsb,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A5 */ { UD_Imovsw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* A6 */ { UD_Icmpsb,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A7 */ { UD_Icmpsw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* A8 */ { UD_Itest,	AL,	Ib,	NOARG,	Pnone },
+/* A9 */ { UD_Itest,	rAX,	Iz,	NOARG,	Po32 | REX(_W) },
+/* AA */ { UD_Istosb,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AB */ { UD_Istosw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* AC */ { UD_Ilodsb,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AD */ { UD_Ilodsw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* AE */ { UD_Iscasb,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AF */ { UD_Iscasw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* B0 */ { UD_Imov,	ALr8b,	Ib,	NOARG,	REX(_B) },
+/* B1 */ { UD_Imov,	CLr9b,	Ib,	NOARG,	REX(_B) },
+/* B2 */ { UD_Imov,	DLr10b,	Ib,	NOARG,	REX(_B) },
+/* B3 */ { UD_Imov,	BLr11b,	Ib,	NOARG,	REX(_B) },
+/* B4 */ { UD_Imov,	AHr12b,	Ib,	NOARG,	REX(_B) },
+/* B5 */ { UD_Imov,	CHr13b,	Ib,	NOARG,	REX(_B) },
+/* B6 */ { UD_Imov,	DHr14b,	Ib,	NOARG,	REX(_B) },
+/* B7 */ { UD_Imov,	BHr15b,	Ib,	NOARG,	REX(_B) },
+/* B8 */ { UD_Imov,	rAXr8,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* B9 */ { UD_Imov,	rCXr9,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* BA */ { UD_Imov,	rDXr10,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* BB */ { UD_Imov,	rBXr11,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* BC */ { UD_Imov,	rSPr12,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* BD */ { UD_Imov,	rBPr13,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* BE */ { UD_Imov,	rSIr14,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* BF */ { UD_Imov,	rDIr15,	Iv,	NOARG,	Po32 | REX(_W|_B) },
+/* C0 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_C0 },
+/* C1 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_C1 },
+/* C2 */ { UD_Iret,	Iw,	NOARG,	NOARG,	Pnone },
+/* C3 */ { UD_Iret,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C4 */ { UD_Iles,	Gv,	M,	NOARG,	Po32 | Pa32 | Pinv64 },
+/* C5 */ { UD_Ilds,	Gv,	M,	NOARG,	Po32 | Pa32 | Pinv64 },
+/* C6 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_C6 },
+/* C7 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_C7 },
+/* C8 */ { UD_Ienter,	Iw,	Ib,	NOARG,	Pnone | Pdef64 },
+/* C9 */ { UD_Ileave,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CA */ { UD_Iretf,	Iw,	NOARG,	NOARG,	Pnone },
+/* CB */ { UD_Iretf,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CC */ { UD_Iint3,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CD */ { UD_Iint,	Ib,	NOARG,	NOARG,	Pnone },
+/* CE */ { UD_Iinto,	NOARG,	NOARG,	NOARG,	Pinv64 },
+/* CF */ { UD_Iiretw,	NOARG,	NOARG,	NOARG,	Po32 | PdepM | REX(_W) },
+/* D0 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_D0 },
+/* D1 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_D1 },
+/* D2 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_D2 },
+/* D3 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_D3 },
+/* D4 */ { UD_Iaam,	Ib,	NOARG,	NOARG,	Pinv64 },
+/* D5 */ { UD_Iaad,	Ib,	NOARG,	NOARG,	Pinv64 },
+/* D6 */ { UD_Isalc,	NOARG,	NOARG,	NOARG,	Pinv64 },
+/* D7 */ { UD_Ixlatb,	NOARG,	NOARG,	NOARG,	REX(_W) },
+/* D8 */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D9 */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DA */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DB */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DC */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DD */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DE */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DF */ { UD_Ix87,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E0 */ { UD_Iloopnz,	Jb,	NOARG,	NOARG,	Pnone },
+/* E1 */ { UD_Iloope,	Jb,	NOARG,	NOARG,	Pnone },
+/* E2 */ { UD_Iloop,	Jb,	NOARG,	NOARG,	Pdef64 },
+/* E3 */ { UD_Ijcxz,	Jb,	NOARG,	NOARG,	Pa32 | PdepM  },
+/* E4 */ { UD_Iin,	AL,	Ib,	NOARG,	Pnone },
+/* E5 */ { UD_Iin,	eAX,	Ib,	NOARG,	Pnone | Po32 },
+/* E6 */ { UD_Iout,	Ib,	AL,	NOARG,	Pnone },
+/* E7 */ { UD_Iout,	Ib,	eAX,	NOARG,	Po32 | Pnone },
+/* E8 */ { UD_Icall,	Jz,	NOARG,	NOARG,	Po32 | Pdef64 },
+/* E9 */ { UD_Ijmp,	Jz,	NOARG,	NOARG,	Po32 | Pdef64 },
+/* EA */ { UD_Ijmp,	Ap,	NOARG,	NOARG,	Pinv64 },
+/* EB */ { UD_Ijmp,	Jb,	NOARG,	NOARG,	Pnone },
+/* EC */ { UD_Iin,	AL,	DX,	NOARG,	Pnone },
+/* ED */ { UD_Iin,	eAX,	DX,	NOARG,	Po32 | Pnone },
+/* EE */ { UD_Iout,	DX,	AL,	NOARG,	Pnone },
+/* EF */ { UD_Iout,	DX,	eAX,	NOARG,	Po32 | Pnone },
+/* F0 */ { UD_Ilock,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F1 */ { UD_Iint1,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F2 */ { UD_Irepne,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F3 */ { UD_Irep,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F4 */ { UD_Ihlt,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F5 */ { UD_Icmc,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F6 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_F6 },
+/* F7 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_F7 },
+/* F8 */ { UD_Iclc,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F9 */ { UD_Istc,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FA */ { UD_Icli,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FB */ { UD_Isti,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FC */ { UD_Icld,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FD */ { UD_Istd,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FE */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_FE },
+/* FF */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_FF }
+
+};
+
+
+/* 2byte no-prefix opcodes */
+struct map_entry itab_2byte[0x100] = 
+{
+/* 00 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F00 },
+/* 01 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F01 },
+/* 02 */ { UD_Ilar,	Gv,	Ew,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 03 */ { UD_Ilsl,	Gv,	Ew,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 04 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 05 */ { UD_Isyscall,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 06 */ { UD_Iclts,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 07 */ { UD_Isysret,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 08 */ { UD_Iinvd,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 09 */ { UD_Iwbinvd,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0B */ { UD_Iud2,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0D */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F0D },
+/* 0E */ { UD_Ifemms,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0F */ { UD_I3dnow,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 10 */ { UD_Imovups,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 11 */ { UD_Imovups,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 12 */ { UD_Imovlps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 13 */ { UD_Imovlps,	M,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 14 */ { UD_Iunpcklps,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 15 */ { UD_Iunpckhps,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 16 */ { UD_Imovhps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 17 */ { UD_Imovhps,	M,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 18 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F18  },
+/* 19 */ { UD_Inop,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 1A */ { UD_Inop,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 1B */ { UD_Inop,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 1C */ { UD_Inop,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 1D */ { UD_Inop,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 1E */ { UD_Inop,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 1F */ { UD_Inop,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 20 */ { UD_Imov,	R,	C,	NOARG,	REX(_R) },
+/* 21 */ { UD_Imov,	R,	D,	NOARG,	REX(_R) },
+/* 22 */ { UD_Imov,	C,	R,	NOARG,	REX(_R) },
+/* 23 */ { UD_Imov,	D,	R,	NOARG,	REX(_R) },
+/* 24 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 25 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 26 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 27 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 28 */ { UD_Imovaps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 29 */ { UD_Imovaps,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2A */ { UD_Icvtpi2ps,V,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2B */ { UD_Imovntps,	M,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2C */ { UD_Icvttps2pi,P,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2D */ { UD_Icvtps2pi,P,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2E */ { UD_Iucomiss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2F */ { UD_Icomiss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 30 */ { UD_Iwrmsr,	NOARG,	NOARG,	NOARG,	},
+/* 31 */ { UD_Irdtsc,	NOARG,	NOARG,	NOARG,	},
+/* 32 */ { UD_Irdmsr,	NOARG,	NOARG,	NOARG,	},
+/* 33 */ { UD_Irdpmc,	NOARG,	NOARG,	NOARG,	},
+/* 34 */ { UD_Isysenter, NOARG,	NOARG,	NOARG,	Pinv64 },
+/* 35 */ { UD_Isysexit,	NOARG,	NOARG,	NOARG,	Pinv64 },
+/* 36 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 37 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 38 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 39 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3D */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3E */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3F */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 40 */ { UD_Icmovo,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 41 */ { UD_Icmovno,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 42 */ { UD_Icmovb,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 43 */ { UD_Icmovae,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 44 */ { UD_Icmovz,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 45 */ { UD_Icmovnz,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 46 */ { UD_Icmovbe,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 47 */ { UD_Icmova,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 48 */ { UD_Icmovs,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 49 */ { UD_Icmovns,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 4A */ { UD_Icmovp,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 4B */ { UD_Icmovnp,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 4C */ { UD_Icmovl,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 4D */ { UD_Icmovge,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 4E */ { UD_Icmovle,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 4F */ { UD_Icmovg,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* 50 */ { UD_Imovmskps,Gd,	VR,	NOARG,	Po32 | REX(_W|_R|_B) },
+/* 51 */ { UD_Isqrtps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 52 */ { UD_Irsqrtps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 53 */ { UD_Ircpps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 54 */ { UD_Iandps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 55 */ { UD_Iandnps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 56 */ { UD_Iorps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 57 */ { UD_Ixorps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 58 */ { UD_Iaddps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 59 */ { UD_Imulps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5A */ { UD_Icvtps2pd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5B */ { UD_Icvtdq2ps,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5C */ { UD_Isubps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5D */ { UD_Iminps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5E */ { UD_Idivps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5F */ { UD_Imaxps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 60 */ { UD_Ipunpcklbw,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 61 */ { UD_Ipunpcklwd,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 62 */ { UD_Ipunpckldq,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 63 */ { UD_Ipacksswb, P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 64 */ { UD_Ipcmpgtb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 65 */ { UD_Ipcmpgtw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 66 */ { UD_Ipcmpgtd,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 67 */ { UD_Ipackuswb,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 68 */ { UD_Ipunpckhbw,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 69 */ { UD_Ipunpckhwd,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6A */ { UD_Ipunpckhdq,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6B */ { UD_Ipackssdw,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6D */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6E */ { UD_Imovd,	P,	Ex,	NOARG,	Pc2 | Pa32 | REX(_R|_X|_B) },
+/* 6F */ { UD_Imovq,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 70 */ { UD_Ipshufw,	P,	Q,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* 71 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F71 },
+/* 72 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F72 },
+/* 73 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F73 },
+/* 74 */ { UD_Ipcmpeqb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 75 */ { UD_Ipcmpeqw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 76 */ { UD_Ipcmpeqd,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 77 */ { UD_Iemms,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 78 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 79 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7D */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7E */ { UD_Imovd,	Ex,	P,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+/* 7F */ { UD_Imovq,	Q,	P,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 80 */ { UD_Ijo,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64},
+/* 81 */ { UD_Ijno,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 82 */ { UD_Ijb,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 83 */ { UD_Ijae,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 84 */ { UD_Ijz,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 85 */ { UD_Ijnz,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 86 */ { UD_Ijbe,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 87 */ { UD_Ija,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 88 */ { UD_Ijs,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 89 */ { UD_Ijns,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64},
+/* 8A */ { UD_Ijp,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 8B */ { UD_Ijnp,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 8C */ { UD_Ijl,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 8D */ { UD_Ijge,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 8E */ { UD_Ijle,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 8F */ { UD_Ijg,	Jz,	NOARG,	NOARG,	Pc1 | Po32 | Pdef64 },
+/* 90 */ { UD_Iseto,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 91 */ { UD_Isetno,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 92 */ { UD_Isetb,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 93 */ { UD_Isetnb,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 94 */ { UD_Isetz,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 95 */ { UD_Isetnz,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 96 */ { UD_Isetbe,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 97 */ { UD_Iseta,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 98 */ { UD_Isets,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 99 */ { UD_Isetns,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 9A */ { UD_Isetp,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 9B */ { UD_Isetnp,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 9C */ { UD_Isetl,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 9D */ { UD_Isetge,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 9E */ { UD_Isetle,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 9F */ { UD_Isetg,	Eb,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* A0 */ { UD_Ipush,	FS,	NOARG,	NOARG,	Pnone },
+/* A1 */ { UD_Ipop,	FS,	NOARG,	NOARG,	Pnone },
+/* A2 */ { UD_Icpuid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A3 */ { UD_Ibt,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* A4 */ { UD_Ishld,	Ev,	Gv,	Ib,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* A5 */ { UD_Ishld,	Ev,	Gv,	CL,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* A6 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A7 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A8 */ { UD_Ipush,	GS,	NOARG,	NOARG,	Pnone },
+/* A9 */ { UD_Ipop,	GS,	NOARG,	NOARG,	Pnone },
+/* AA */ { UD_Irsm,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AB */ { UD_Ibts,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* AC */ { UD_Ishrd,	Ev,	Gv,	Ib,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* AD */ { UD_Ishrd,	Ev,	Gv,	CL,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* AE */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0FAE },
+/* AF */ { UD_Iimul,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B0 */ { UD_Icmpxchg,	Eb,	Gb,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* B1 */ { UD_Icmpxchg,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B2 */ { UD_Ilss,	Gz,	M,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B3 */ { UD_Ibtr,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B4 */ { UD_Ilfs,	Gz,	M,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B5 */ { UD_Ilgs,	Gz,	M,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B6 */ { UD_Imovzx,	Gv,	Eb,	NOARG,	Pc2 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B7 */ { UD_Imovzx,	Gv,	Ew,	NOARG,	Pc2 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* B8 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B9 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0FB9 },
+/* BA */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0FBA },
+/* BB */ { UD_Ibtc,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* BC */ { UD_Ibsf,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* BD */ { UD_Ibsr,	Gv,	Ev,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* BE */ { UD_Imovsx,	Gv,	Eb,	NOARG,	Pc2 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* BF */ { UD_Imovsx,	Gv,	Ew,	NOARG,	Pc2 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* C0 */ { UD_Ixadd,	Eb,	Gb,	NOARG,	Po32 | Pa32 | REX(_R|_X|_B) },
+/* C1 */ { UD_Ixadd,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* C2 */ { UD_Icmpps,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* C3 */ { UD_Imovnti,	M,	Gx,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+/* C4 */ { UD_Ipinsrw,	P,	Ew,	Ib,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* C5 */ { UD_Ipextrw,	Gd,	PR,	Ib,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* C6 */ { UD_Ishufps,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* C7 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0FC7 },
+/* C8 */ { UD_Ibswap,	rAXr8,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* C9 */ { UD_Ibswap,	rCXr9,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* CA */ { UD_Ibswap,	rDXr10,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* CB */ { UD_Ibswap,	rBXr11,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* CC */ { UD_Ibswap,	rSPr12,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* CD */ { UD_Ibswap,	rBPr13,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* CE */ { UD_Ibswap,	rSIr14,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* CF */ { UD_Ibswap,	rDIr15,	NOARG,	NOARG,	Po32 | REX(_W|_B) },
+/* D0 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D1 */ { UD_Ipsrlw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D2 */ { UD_Ipsrld,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D3 */ { UD_Ipsrlq,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D4 */ { UD_Ipaddq,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D5 */ { UD_Ipmullw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D6 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D7 */ { UD_Ipmovmskb,Gd,	PR,	NOARG,	Pnone },
+/* D8 */ { UD_Ipsubusb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D9 */ { UD_Ipsubusw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DA */ { UD_Ipminub,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DB */ { UD_Ipand,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DC */ { UD_Ipaddusb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DD */ { UD_Ipaddusw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DE */ { UD_Ipmaxub,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DF */ { UD_Ipandn,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E0 */ { UD_Ipavgb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E1 */ { UD_Ipsraw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E2 */ { UD_Ipsrad,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E3 */ { UD_Ipavgw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E4 */ { UD_Ipmulhuw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E5 */ { UD_Ipmulhw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E6 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E7 */ { UD_Imovntq,	M,	P,	NOARG,	Pnone },
+/* E8 */ { UD_Ipsubsb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E9 */ { UD_Ipsubsw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EA */ { UD_Ipminsw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EB */ { UD_Ipor,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EC */ { UD_Ipaddsb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* ED */ { UD_Ipaddsw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EE */ { UD_Ipmaxsw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EF */ { UD_Ipxor,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F0 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F1 */ { UD_Ipsllw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F2 */ { UD_Ipslld,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F3 */ { UD_Ipsllq,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F4 */ { UD_Ipmuludq,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F5 */ { UD_Ipmaddwd,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F6 */ { UD_Ipsadbw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F7 */ { UD_Imaskmovq,P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F8 */ { UD_Ipsubb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F9 */ { UD_Ipsubw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FA */ { UD_Ipsubd,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FB */ { UD_Ipsubq,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FC */ { UD_Ipaddb,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FD */ { UD_Ipaddw,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FE */ { UD_Ipaddd,	P,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_2byte_prefixF3[0x100] = 
+{
+/* 00 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 01 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 02 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 03 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 04 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 05 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 06 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 07 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 08 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 09 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 10 */ { UD_Imovss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 11 */ { UD_Imovss,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 12 */ { UD_Imovsldup,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 13 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 14 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 15 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 16 */ { UD_Imovshdup,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 17 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 18 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 19 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 20 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 21 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 22 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 23 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 24 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 25 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 26 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 27 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 28 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 29 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 2A */ { UD_Icvtsi2ss,V,	Ex,	NOARG,	Pc2 | Pa32 | REX(_R|_X|_B) },
+/* 2B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 2C */ { UD_Icvttss2si,Gvw,	W,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+/* 2D */ { UD_Icvtss2si,Gvw,	W,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+/* 2E */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 2F */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 30 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 31 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 32 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 33 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 34 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 35 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 36 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 37 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 38 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 39 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 40 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 41 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 42 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 43 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 44 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 45 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 46 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 47 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 48 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 49 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 50 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 51 */ { UD_Isqrtss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 52 */ { UD_Irsqrtss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 53 */ { UD_Ircpss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 54 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 55 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 56 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 57 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 58 */ { UD_Iaddss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 59 */ { UD_Imulss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5A */ { UD_Icvtss2sd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5B */ { UD_Icvttps2dq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5C */ { UD_Isubss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5D */ { UD_Iminss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5E */ { UD_Idivss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5F */ { UD_Imaxss,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 60 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 61 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 62 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 63 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 64 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 65 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 66 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 67 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 68 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 69 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6D */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6E */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6F */ { UD_Imovdqu,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 70 */ { UD_Ipshufhw,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* 71 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 72 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 73 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 74 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 75 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 76 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 77 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 78 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 79 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7D */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7E */ { UD_Imovq,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 7F */ { UD_Imovdqu,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 80 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 81 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 82 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 83 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 84 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 85 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 86 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 87 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 88 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 89 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 90 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 91 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 92 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 93 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 94 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 95 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 96 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 97 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 98 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 99 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A0 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A1 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A2 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A3 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A4 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A5 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A6 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A7 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B0 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B1 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B2 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B3 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B4 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B5 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B6 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B7 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C0 */ { UD_Ixadd,	Eb,	Gb,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+/* C1 */ { UD_Ixadd,	Ev,	Gv,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+/* C2 */ { UD_Icmpss,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* C3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C6 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C7 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0FC7 },
+/* C8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D0 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D1 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D2 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D6 */ { UD_Imovq2dq,	V,	PR,	NOARG,	Pa32  },
+/* D7 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D8 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D9 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DA */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DB */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DC */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DD */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DE */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E0 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E1 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E2 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E6 */ { UD_Icvtdq2pd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E7 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E8 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E9 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EA */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EB */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EC */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* ED */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EE */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F0 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F1 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F2 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F6 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F7 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F8 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F9 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FA */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FB */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FC */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FD */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FE */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_2byte_prefix66[0x100] = 
+{
+/* 00 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 01 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 02 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 03 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 04 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 05 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 06 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 07 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 08 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 09 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 10 */ { UD_Imovupd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 11 */ { UD_Imovupd,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 12 */ { UD_Imovlpd,	V,	M,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 13 */ { UD_Imovlpd,	M,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 14 */ { UD_Iunpcklpd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 15 */ { UD_Iunpckhpd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 16 */ { UD_Imovhpd,	V,	M,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 17 */ { UD_Imovhpd,	M,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 18 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 19 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 20 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 21 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 22 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 23 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 24 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 25 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 26 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 27 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 28 */ { UD_Imovapd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 29 */ { UD_Imovapd,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2A */ { UD_Icvtpi2pd,V,	Q,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2B */ { UD_Imovntpd,	M,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2C */ { UD_Icvttpd2pi,P,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2D */ { UD_Icvtpd2pi,P,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2E */ { UD_Iucomisd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 2F */ { UD_Icomisd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 30 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 31 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 32 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 33 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 34 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 35 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 36 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 37 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 38 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 39 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 40 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 41 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 42 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 43 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 44 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 45 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 46 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 47 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 48 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 49 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 50 */ { UD_Imovmskpd,Gd,	VR,	NOARG,	Po32 | REX(_W|_R|_B) },
+/* 51 */ { UD_Isqrtpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 52 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 53 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 54 */ { UD_Iandpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 55 */ { UD_Iandnpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 56 */ { UD_Iorpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 57 */ { UD_Ixorpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 58 */ { UD_Iaddpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 59 */ { UD_Imulpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5A */ { UD_Icvtpd2ps,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5B */ { UD_Icvtps2dq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5C */ { UD_Isubpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5D */ { UD_Iminpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5E */ { UD_Idivpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5F */ { UD_Imaxpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 60 */ { UD_Ipunpcklbw,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 61 */ { UD_Ipunpcklwd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 62 */ { UD_Ipunpckldq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 63 */ { UD_Ipacksswb,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 64 */ { UD_Ipcmpgtb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 65 */ { UD_Ipcmpgtw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 66 */ { UD_Ipcmpgtd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 67 */ { UD_Ipackuswb,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 68 */ { UD_Ipunpckhbw,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 69 */ { UD_Ipunpckhwd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6A */ { UD_Ipunpckhdq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6B */ { UD_Ipackssdw,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6C */ { UD_Ipunpcklqdq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6D */ { UD_Ipunpckhqdq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 6E */ { UD_Imovd,	V,	Ex,	NOARG,	Pc2 | Pa32 | REX(_W|_R|_X|_B) },
+/* 6F */ { UD_Imovqa,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 70 */ { UD_Ipshufd,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* 71 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F71 },
+/* 72 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F72 },
+/* 73 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0F73 },
+/* 74 */ { UD_Ipcmpeqb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 75 */ { UD_Ipcmpeqw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 76 */ { UD_Ipcmpeqd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 77 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 78 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 79 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7C */ { UD_Ihaddpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 7D */ { UD_Ihsubpd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 7E */ { UD_Imovd,	Ex,	V,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+/* 7F */ { UD_Imovdqa,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 80 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 81 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 82 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 83 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 84 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 85 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 86 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 87 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 88 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 89 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 90 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 91 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 92 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 93 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 94 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 95 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 96 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 97 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 98 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 99 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A0 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A1 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A2 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A3 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A4 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A5 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A6 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A7 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B0 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B1 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B2 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B3 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B4 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B5 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B6 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B7 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C0 */ { UD_Ixadd,	Eb,	Gb,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+/* C1 */ { UD_Ixadd,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_W|_R|_X|_B) },
+/* C2 */ { UD_Icmppd,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* C3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C4 */ { UD_Ipinsrw,	V,	Ew,	Ib,	Pa32 | REX(_W|_R|_X|_B) },
+/* C5 */ { UD_Ipextrw,	Gd,	VR,	Ib,	Pa32  },
+/* C6 */ { UD_Ishufpd,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* C7 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0FC7 },
+/* C8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D0 */ { UD_Iaddsubpd,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D1 */ { UD_Ipsrlw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D2 */ { UD_Ipsrld,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D3 */ { UD_Ipsrlq,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D4 */ { UD_Ipaddq,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D5 */ { UD_Ipmullw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D6 */ { UD_Imovq,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D7 */ { UD_Ipmovmskb,Gd,	VR,	NOARG,	Pnone },
+/* D8 */ { UD_Ipsubusb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D9 */ { UD_Ipsubusw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DA */ { UD_Ipminub,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DB */ { UD_Ipand,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DC */ { UD_Ipaddusb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DD */ { UD_Ipaddusw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DE */ { UD_Ipmaxub,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* DF */ { UD_Ipandn,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E0 */ { UD_Ipavgb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E1 */ { UD_Ipsraw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E2 */ { UD_Ipsrad,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E3 */ { UD_Ipavgw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E4 */ { UD_Ipmulhuw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E5 */ { UD_Ipmulhw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E6 */ { UD_Icvttpd2dq,V,	W,	NOARG,	Pnone },
+/* E7 */ { UD_Imovntdq,	M,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E8 */ { UD_Ipsubsb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E9 */ { UD_Ipsubsw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EA */ { UD_Ipminsw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EB */ { UD_Ipor,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EC */ { UD_Ipaddsb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* ED */ { UD_Ipaddsw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EE */ { UD_Ipmaxsw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* EF */ { UD_Ipxor,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F0 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F1 */ { UD_Ipsllw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F2 */ { UD_Ipslld,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F3 */ { UD_Ipsllq,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F4 */ { UD_Ipmuludq,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F5 */ { UD_Ipmaddwd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F6 */ { UD_Ipsadbw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F7 */ { UD_Imaskmovq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F8 */ { UD_Ipsubb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F9 */ { UD_Ipsubw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FA */ { UD_Ipsubd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FB */ { UD_Ipsubq,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FC */ { UD_Ipaddb,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FD */ { UD_Ipaddw,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FE */ { UD_Ipaddd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* FF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_2byte_prefixF2[0x100] = 
+{
+/* 00 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 01 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 02 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 03 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 04 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 05 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 06 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 07 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 08 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 09 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 0F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 10 */ { UD_Imovsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 11 */ { UD_Imovsd,	W,	V,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 12 */ { UD_Imovddup,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 13 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 14 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 15 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 16 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 17 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 18 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 19 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 1F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 20 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 21 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 22 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 23 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 24 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 25 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 26 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 27 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 28 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 29 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 2A */ { UD_Icvtsi2sd,V,	Ex,	NOARG,	Pc2 | Pa32 | REX(_W|_R|_X|_B) },
+/* 2B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 2C */ { UD_Icvttsd2si,Gvw,	W,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+/* 2D */ { UD_Icvtsd2si,Gvw,	W,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+/* 2E */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 2F */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 30 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 31 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 32 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 33 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 34 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 35 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 36 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 37 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 38 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 39 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3D */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3E */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 3F */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 40 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 41 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 42 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 43 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 44 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 45 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 46 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 47 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 48 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 49 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 4F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 50 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 51 */ { UD_Isqrtsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 52 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 53 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 54 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 55 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 56 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 57 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 58 */ { UD_Iaddsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 59 */ { UD_Imulsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5A */ { UD_Icvtsd2ss,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 5C */ { UD_Isubsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5D */ { UD_Iminsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5E */ { UD_Idivsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 5F */ { UD_Imaxsd,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 60 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 61 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 62 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 63 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 64 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 65 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 66 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 67 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 68 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 69 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6C */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6D */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6E */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 6F */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 70 */ { UD_Ipshuflw,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* 71 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 72 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 73 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 74 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 75 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 76 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 77 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 78 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 79 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7A */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7B */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7C */ { UD_Ihaddps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 7D */ { UD_Ihsubps,	V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* 7E */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 7F */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 80 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 81 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 82 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 83 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 84 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 85 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 86 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 87 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 88 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 89 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 8F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 90 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 91 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 92 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 93 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 94 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 95 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 96 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 97 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 98 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 99 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9A */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9B */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9C */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9D */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9E */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* 9F */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A0 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A1 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A2 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A3 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A4 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A5 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A6 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A7 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* A9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* AF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B0 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B1 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B2 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B3 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B4 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B5 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B6 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B7 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* B9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* BF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C0 */ { UD_Ixadd,	Eb,	Gb,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+/* C1 */ { UD_Ixadd,	Ev,	Gv,	NOARG,	Po32 | Pa32 | REX(_R|_X|_B) },
+/* C2 */ { UD_Icmpsd,	V,	W,	Ib,	Pa32 | REX(_R|_X|_B) },
+/* C3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C6 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C7 */ { UD_Igrp,	NOARG,	NOARG,	NOARG,	GRP_0FC7 },
+/* C8 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* C9 */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CA */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CB */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CC */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CD */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CE */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* CF */ { UD_Ina,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D0 */ { UD_Iaddsubps,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* D1 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D2 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D6 */ { UD_Imovdq2q,	P,	VR,	NOARG,	Pa32  },
+/* D7 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D8 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* D9 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DA */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DB */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DC */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DD */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DE */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* DF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E0 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E1 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E2 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E6 */ { UD_Icvtpd2dq,V,	W,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* E7 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E8 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* E9 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EA */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EB */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EC */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* ED */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EE */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* EF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F0 */ { UD_Ilddqu,	V,	M,	NOARG,	Pa32 | REX(_R|_X|_B) },
+/* F1 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F2 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F3 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F4 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F5 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F6 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F7 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F8 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* F9 */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FA */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FB */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FC */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FD */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FE */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+/* FF */ { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_g1_op80[0x8] = 
+{
+  { UD_Iadd,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ior,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iadc,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isbb,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iand,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isub,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ixor,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Icmp,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g1_op81[0x8] = 
+{
+  { UD_Iadd,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ior,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iadc,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isbb,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iand,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isub,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ixor,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Icmp,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g1_op82[0x8] = {
+  { UD_Iadd,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ior,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iadc,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isbb,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iand,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isub,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ixor,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Icmp,	Eb,	Ib,	NOARG,	Pc1 | Pinv64 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g1_op83[0x8] = {
+  { UD_Iadd,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) },
+  { UD_Ior,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) },
+  { UD_Iadc,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) },
+  { UD_Isbb,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) },
+  { UD_Iand,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) },
+  { UD_Isub,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) },
+  { UD_Ixor,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) },
+  { UD_Icmp,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_R|_X|_B|_W) }
+};
+
+struct map_entry itab_g1A_op8F[0x8] = {
+  { UD_Ipop,		Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | Pdef64 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_g2_opC0[0x8] = {
+  { UD_Irol,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iror,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircl,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircr,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishl,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishr,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isal,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isar,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g2_opC1[0x8] = {
+  { UD_Irol,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iror,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircl,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircr,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishl,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishr,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isal,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isar,	Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g2_opD0[0x8] = {
+  { UD_Irol,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iror,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircl,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircr,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishl,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishr,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isal,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isar,	Eb,	I1,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g2_opD1[0x8] = {
+  { UD_Irol,	Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iror,	Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircl,	Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircr,	Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishl,	Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishr,	Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isar,	Ev,	I1,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g2_opD2[0x8] = {
+  { UD_Irol,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iror,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircl,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircr,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishl,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishr,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isal,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isar,	Eb,	CL,	NOARG,	Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g2_opD3[0x8] = {
+  { UD_Irol,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iror,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircl,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ircr,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishl,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ishr,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isal,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Isar,	Ev,	CL,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g3_opF6[0x8] = {
+  { UD_Itest,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Itest,	Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Inot,	Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ineg,	Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Imul,	Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iimul,	Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Idiv,	Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iidiv,	Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g3_opF7[0x8] = {
+  { UD_Itest,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Itest,	Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Inot,	Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ineg,	Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Imul,	Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iimul,	Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Idiv,	Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iidiv,	Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct map_entry itab_g4_opFE[0x8] = {
+  { UD_Iinc,		Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Idec,		Eb,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_g5_opFF[0x8] = {
+  { UD_Iinc,		Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Idec,		Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Icall,		Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | Pdef64 | REX(_W|_R|_X|_B) },
+  { UD_Icall,		Ep,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ijmp,		Ev,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | Pdef64 | REX(_W|_R|_X|_B) },
+  { UD_Ijmp,		Ep,	NOARG,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ipush,		Ev,	NOARG,	NOARG,	Pc1 | Pdef64 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,	NOARG, 	NOARG,	NOARG,	Pnone }
+};
+
+/* group 6 */
+struct map_entry itab_g6_op0F00[0x8] = {
+  { UD_Isldt,		M,	NOARG,	NOARG,	Po32 | Pa32 | REX(_R|_X|_B) },
+  { UD_Istr,		M,	NOARG,	NOARG,	Po32 | Pa32 | REX(_R|_X|_B) },
+  { UD_Illdt,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iltr,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iverr,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iverw,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+
+/* group 7  */
+struct map_entry itab_g7_op0F01[0x8] = {
+  { UD_Isgdt,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Isidt,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ilgdt,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ilidt,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ismsw,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ilmsw,		Ew,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvlpg,		M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) }
+};
+
+/* group 7 -- Reg7 */
+struct map_entry itab_g7_op0F01_Reg7[0x8] = {
+  { UD_Iswapgs, 	NOARG,	NOARG,	NOARG,	PdepM },
+  { UD_Irdtscp,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group 7 -- Reg7 */
+struct map_entry itab_g7_op0F01_Reg7_intel[0x8] = {
+  { UD_Iswapgs, 	NOARG,	NOARG,	NOARG,	PdepM },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group 7 -- Reg3 */
+struct map_entry itab_g7_op0F01_Reg3[0x8] = {
+  { UD_Ivmrun,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmmcall,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmload, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmsave, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Istgi,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iclgi,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iskinit, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvlpga,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group 7 -- Reg0: Intel */
+struct map_entry itab_g7_op0F01_Reg0_intel[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmcall,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmlaunch, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmresume, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmxoff,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group 7 -- Reg1: Intel */
+struct map_entry itab_g7_op0F01_Reg1_intel[0x8] = {
+  { UD_Imonitor,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Imwait,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group 8  */
+struct map_entry itab_g8_op0FBA[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ibt,		Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ibts,		Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ibtr,		Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ibtc,		Ev,	Ib,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+};
+
+/* group 9  */
+struct map_entry itab_g9_op0FC7[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Icmpxchg8b,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) | PdepM },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group 9 - Intel */
+struct map_entry itab_g9_op0FC7_intel[0x8] = {
+  { UD_Ivmptrld,	Mq,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Icmpxchg8b,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) | PdepM },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmptrst,	Mq,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+};
+
+/* group 9 - Intel */
+struct map_entry itab_g9_op0FC7_prefix66_intel[0x8] = {
+  { UD_Ivmclear,	Mq,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group 9 - Intel */
+struct map_entry itab_g9_op0FC7_prefixF3_intel[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ivmxon,		Mq,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+};
+
+/* group A  */
+struct map_entry itab_gA_op0FB9[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group B  */
+struct map_entry itab_gB_opC6[0x8] = {
+  { UD_Imov,		Eb,	Ib,	NOARG,	Pc1 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group B  */
+struct map_entry itab_gB_opC7[0x8] = {
+  { UD_Imov,		Ev,	Iz,	NOARG,	Pc1 | Po32 | Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group C  */
+struct map_entry itab_gC_op0F71[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrlw,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsraw,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsllw,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+struct map_entry itab_gC_op0F71_prefix66[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrlw,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsraw,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsllw,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+struct map_entry itab_gC_op0F71_prefixF3[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_gC_op0F71_prefixF2[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group D  */
+struct map_entry itab_gD_op0F72[0x8] = 
+{
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrld,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrad,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipslld,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* group D, prefixed by 0x66  */
+struct map_entry itab_gD_op0F72_prefix66[0x8] = 
+{
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrld,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrad,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipslld,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+struct map_entry itab_gD_op0F72_prefixF3[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_gD_op0F72_prefixF2[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group E  */
+struct map_entry itab_gE_op0F73[0x8] = 
+{
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrlq,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsllq,		PR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_gE_op0F73_prefix66[0x8] = 
+{
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsrlq,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Ipsrldq,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ipsllq,		VR,	Ib,	NOARG,	Pnone },
+  { UD_Ipslldq,		VR,	Ib,	NOARG,	Pnone }
+};
+
+struct map_entry itab_gE_op0F73_prefixF3[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_gE_op0F73_prefixF2[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group F  */
+struct map_entry itab_gF_op0FAE[0x8] = 
+{
+  { UD_Ifxsave,		M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ifxrstor,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Ildmxcsr,	Md,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Istmxcsr,	Md,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iclflush,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+};
+
+struct map_entry itab_gF_op0FAE_prefix66[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_gF_op0FAE_prefixF3[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry itab_gF_op0FAE_prefixF2[0x8] = {
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group F -- Extensions */
+struct map_entry itab_gF_op0FAE_Reg5 = { 
+	UD_Ilfence,	NOARG,	NOARG,	NOARG,	Pnone
+};
+struct map_entry itab_gF_op0FAE_Reg6 = {
+	UD_Imfence,	NOARG,	NOARG,	NOARG,	Pnone
+};
+struct map_entry itab_gF_op0FAE_Reg7 = {
+	UD_Isfence,	NOARG,	NOARG,	NOARG,	Pnone
+};
+
+/* group 10  */
+struct map_entry itab_g10_op0F18[0x8] = {
+  { UD_Iprefetchnta,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetcht0,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetcht1,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetcht2,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* group P  */
+struct map_entry itab_gP_op0F0D[0x8] = {
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) },
+  { UD_Iprefetch,	M,	NOARG,	NOARG,	Pa32 | REX(_W|_R|_X|_B) }
+};
+
+struct
+{
+  struct map_entry *me_pfx_none;
+  struct map_entry *me_pfx_66;
+  struct map_entry *me_pfx_f2;
+  struct map_entry *me_pfx_f3;
+} itab_groups[] =  {
+  { itab_g1_op80,	0, 0, 0 },
+  { itab_g1_op81,	0, 0, 0 },
+  { itab_g1_op82,	0, 0, 0 },
+  { itab_g1_op83,	0, 0, 0 },
+  { itab_g1A_op8F,	0, 0, 0 },
+  { itab_g2_opC0,	0, 0, 0 },
+  { itab_g2_opC1,	0, 0, 0 },
+  { itab_gB_opC6,	0, 0, 0 },
+  { itab_gB_opC7,	0, 0, 0 },
+  { itab_g2_opD0,	0, 0, 0 },
+  { itab_g2_opD1,	0, 0, 0 },
+  { itab_g2_opD2,	0, 0, 0 },
+  { itab_g2_opD3,	0, 0, 0 },
+  { itab_g3_opF6,	0, 0, 0 },
+  { itab_g3_opF7,	0, 0, 0 },
+  { itab_g4_opFE,	0, 0, 0 },
+  { itab_g5_opFF,	0, 0, 0 },
+  { itab_g6_op0F00,	0, 0, 0 },
+  { itab_g7_op0F01,	0, 0, 0 },
+  { itab_gP_op0F0D,	0, 0, 0 },
+  { itab_g10_op0F18,	0, 0, 0 },
+  { itab_gC_op0F71,	itab_gC_op0F71_prefix66, itab_gC_op0F71_prefixF3, itab_gC_op0F71_prefixF2 },
+  { itab_gD_op0F72,	itab_gD_op0F72_prefix66, itab_gD_op0F72_prefixF3, itab_gD_op0F72_prefixF2 },
+  { itab_gE_op0F73,	itab_gE_op0F73_prefix66, itab_gE_op0F73_prefixF3, itab_gE_op0F73_prefixF2 },
+  { itab_gF_op0FAE,	itab_gF_op0FAE_prefix66, itab_gF_op0FAE_prefixF3, itab_gF_op0FAE_prefixF2 },
+  { itab_g8_op0FBA,	0, 0, 0 },
+  { itab_gA_op0FB9,	0, 0, 0 },
+  { itab_g9_op0FC7,	0, 0, 0 },
+
+#define ITAB_GROUPS_START_INTEL 28
+
+  { itab_g1_op80,	0, 0, 0 },
+  { itab_g1_op81,	0, 0, 0 },
+  { itab_g1_op82,	0, 0, 0 },
+  { itab_g1_op83,	0, 0, 0 },
+  { itab_g1A_op8F,	0, 0, 0 },
+  { itab_g2_opC0,	0, 0, 0 },
+  { itab_g2_opC1,	0, 0, 0 },
+  { itab_gB_opC6,	0, 0, 0 },
+  { itab_gB_opC7,	0, 0, 0 },
+  { itab_g2_opD0,	0, 0, 0 },
+  { itab_g2_opD1,	0, 0, 0 },
+  { itab_g2_opD2,	0, 0, 0 },
+  { itab_g2_opD3,	0, 0, 0 },
+  { itab_g3_opF6,	0, 0, 0 },
+  { itab_g3_opF7,	0, 0, 0 },
+  { itab_g4_opFE,	0, 0, 0 },
+  { itab_g5_opFF,	0, 0, 0 },
+  { itab_g6_op0F00,	0, 0, 0 },
+  { itab_g7_op0F01,	0, 0, 0 },
+  { itab_gP_op0F0D,	0, 0, 0 },
+  { itab_g10_op0F18,	0, 0, 0 },
+  { itab_gC_op0F71,	itab_gC_op0F71_prefix66, itab_gC_op0F71_prefixF3, itab_gC_op0F71_prefixF2 },
+  { itab_gD_op0F72,	itab_gD_op0F72_prefix66, itab_gD_op0F72_prefixF3, itab_gD_op0F72_prefixF2 },
+  { itab_gE_op0F73,	itab_gE_op0F73_prefix66, itab_gE_op0F73_prefixF3, itab_gE_op0F73_prefixF2 },
+  { itab_gF_op0FAE,	itab_gF_op0FAE_prefix66, itab_gF_op0FAE_prefixF3, itab_gF_op0FAE_prefixF2 },
+  { itab_g8_op0FBA,	0, 0, 0 },
+  { itab_gA_op0FB9,	0, 0, 0 },
+  { itab_g9_op0FC7_intel,	itab_g9_op0FC7_prefix66_intel, itab_g9_op0FC7_prefixF3_intel, 0 },
+};
+
+/* D8 Opcode Map */
+struct map_entry itab_x87_opD8reg[0x8] = 
+{
+  { UD_Ifadd,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifmul,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifcom,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifcomp,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifsub,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifsubr,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifdiv,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifdivr,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) }
+};
+
+/* D9 Opcode Map */
+struct map_entry itab_x87_opD9reg[0x8] = 
+{
+  { UD_Ifld,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvalid,NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifstp,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifldenv,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ifldcw,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifnstenv,M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ifnstcw,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) }
+};
+
+/* DA Opcode Map */
+struct map_entry itab_x87_opDAreg[0x8] = 
+{
+  { UD_Ifiadd,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifimul,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ificom,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ificomp,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifisub,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifisubr,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifidiv,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifidivr,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) }
+};
+
+/* DB Opcode Map */
+struct map_entry itab_x87_opDBreg[0x8] = 
+{
+  { UD_Ifild,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifisttp,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifist,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifistp,	Md,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvalid,NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifld,	Mt,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvalid,NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,	Mt,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) }
+};
+
+/* DC Opcode Map */
+struct map_entry itab_x87_opDCreg[0x8] = 
+{
+  { UD_Ifadd,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifmul,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifcom,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifcomp,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifsub,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifsubr,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifdiv,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifdivr,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) }
+};
+
+/* DD Opcode Map */
+struct map_entry itab_x87_opDDreg[0x8] = 
+{
+  { UD_Ifld,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifisttp,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifst,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifstp,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifrstor,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Iinvalid,NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifnsave,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ifnstsw,	M,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) }
+};
+
+/* DE Opcode Map */
+struct map_entry itab_x87_opDEreg[0x8] = 
+{
+  { UD_Ifiadd,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifimul,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ificom,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ificomp,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifisub,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifisubr,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifidiv,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifidivr,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) }
+};
+
+/* DF Opcode Map */
+struct map_entry itab_x87_opDFreg[0x8] = 
+{
+  { UD_Ifild,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifisttp, Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifist,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifistp,	Mw,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifbld,	Mt,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ifild,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) },
+  { UD_Ifbstp,	Mt,	NOARG,	NOARG,	Pa32 | REX(_R|_X|_B) },
+  { UD_Ifistp,	Mq,	NOARG,	NOARG,	Pc1 | Pa32 | REX(_R|_X|_B) }
+};
+
+struct map_entry itab_g_invalid[0x8] = 
+{
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+};
+
+/* D8 Opcode Map */
+struct map_entry itab_x87_opD8[0x8*0x8] = 
+{
+  { UD_Ifadd,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifadd,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifadd,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifadd,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifadd,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifadd,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifadd,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcom,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcomp,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST7,	NOARG,	Pnone }
+};
+
+/* D9 Opcode Map */
+struct map_entry itab_x87_opD9[0x8*0x8] = 
+{
+  { UD_Ifld,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifld,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifld,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifld,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifld,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifld,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifld,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifld,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifxch,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifnop,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Inone,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifchs,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifabs,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iftst,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifxam,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifld1,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifldl2t,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifldl2e,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifldlpi,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifldlg2,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifldln2,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifldz,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_If2xm1,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifyl2x,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifptan,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifpatan,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifpxtract,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifprem1,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifdecstp,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifncstp,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifprem,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifyl2xp1,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifsqrt,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifsincos,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifrndint,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifscale,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifsin,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifcos,		NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* DA Opcode Map */
+struct map_entry itab_x87_opDA[0x8*0x8] = {
+  { UD_Ifcmovb,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmovb,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmovb,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmovb,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmovb,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmovb,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmovb,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmovb,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmove,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmovbe,	ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmovu,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucompp,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* DB Opcode Map */
+struct map_entry itab_x87_opDB[0x8*0x8] = 
+{
+  { UD_Ifcmovnb,	ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmovnb,	ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmovnb,	ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmovnb,	ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmovnb,	ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmovnb,	ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmovnb,	ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmovnb,	ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmovne,	ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmovnbe,	ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcmovnu,	ST0,	ST7,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifclex,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifninit,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifucomi,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcomi,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid, 	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* DC Opcode Map */
+struct map_entry itab_x87_opDC[0x8*0x8] = 
+{
+  { UD_Ifadd,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifadd,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifmul,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubr,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifsub,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivr,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifdiv,		ST7,	ST0,	NOARG,	Pnone }
+};	
+
+/* DD Opcode Map */
+struct map_entry itab_x87_opDD[0x8*0x8] = 
+{
+  { UD_Iffree,		ST0,	NOARG,	NOARG,	Pnone },
+  { UD_Iffree,		ST1,	NOARG,	NOARG,	Pnone },
+  { UD_Iffree,		ST2,	NOARG,	NOARG,	Pnone },
+  { UD_Iffree,		ST3,	NOARG,	NOARG,	Pnone },
+  { UD_Iffree,		ST4,	NOARG,	NOARG,	Pnone },
+  { UD_Iffree,		ST5,	NOARG,	NOARG,	Pnone },
+  { UD_Iffree,		ST6,	NOARG,	NOARG,	Pnone },
+  { UD_Iffree,		ST7,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST0,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST1,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST2,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST3,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST4,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST5,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST6,	NOARG,	NOARG,	Pnone },
+  { UD_Ifst,		ST7,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST0,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST1,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST2,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST3,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST4,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST5,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST6,	NOARG,	NOARG,	Pnone },
+  { UD_Ifstp,		ST7,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST0,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST1,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST2,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST3,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST4,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST5,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST6,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucom,		ST7,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST0,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST1,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST2,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST3,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST4,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST5,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST6,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomp,		ST7,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+/* DE Opcode Map */
+struct map_entry itab_x87_opDE[0x8*0x8] = 
+{
+  { UD_Ifaddp,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifaddp,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifaddp,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifaddp,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifaddp,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifaddp,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifaddp,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifaddp,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifmulp,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifcompp,		NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubrp,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifsubp,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivrp,		ST7,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST1,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST2,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST3,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST4,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST5,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST6,	ST0,	NOARG,	Pnone },
+  { UD_Ifdivp,		ST7,	ST0,	NOARG,	Pnone }
+};
+
+/* DF Opcode Map */
+struct map_entry itab_x87_opDF[0x8*0x8] = 
+{
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifnstsw,		AX,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifucomip,	ST0,	ST7,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST0,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST1,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST2,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST3,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST4,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST5,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST6,	NOARG,	Pnone },
+  { UD_Ifcomip,		ST0,	ST7,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone },
+  { UD_Iinvalid,	NOARG,	NOARG,	NOARG,	Pnone }
+};
+
+struct map_entry *itab_x87_reg[] = 
+{
+  itab_x87_opD8reg,
+  itab_x87_opD9reg,
+  itab_x87_opDAreg,
+  itab_x87_opDBreg,
+  itab_x87_opDCreg,
+  itab_x87_opDDreg,
+  itab_x87_opDEreg,
+  itab_x87_opDFreg
+};
+
+struct map_entry *itab_x87[] = 
+{
+  itab_x87_opD8,
+  itab_x87_opD9,
+  itab_x87_opDA,
+  itab_x87_opDB,
+  itab_x87_opDC,
+  itab_x87_opDD,
+  itab_x87_opDE,
+  itab_x87_opDF
+};
+
+/* AMD 3DNow! Instructions */
+struct map_entry itab_3DNow =  
+  { UD_I3dnow,	P,	Q,	NOARG };
+struct map_entry nop = 
+  { UD_Inop,	NOARG,	NOARG,	NOARG, Pnone };
+struct map_entry pause = 
+  { UD_Ipause,	NOARG,	NOARG,	NOARG, Pnone };
+struct map_entry movsxd = 
+  { UD_Imovsxd,	Gv,	Ed,	NOARG,	Pc2 | Po32 | Pa32 | REX(_X|_W|_B|_R) };
+struct map_entry db = 
+  { UD_Idb, Ib, NOARG, NOARG, Pnone };
+struct map_entry invalid = 
+  { UD_Iinvalid, NOARG, NOARG, NOARG, Pnone };
+
+struct map_entry* ud_me_db() {
+	return &db;
+}
+
+struct map_entry* ud_me_invalid() {
+	return &invalid;
+}
+
+/* 3D Now instructions with suffix */
+extern enum ud_mnemonic_code 
+ud_map_get_3dnow(uint8_t suffix)
+{
+  switch(suffix) {
+	case 0x0C: return UD_Ipi2fw;
+	case 0x0D: return UD_Ipi2fd;
+	case 0x1C: return UD_Ipf2iw;
+	case 0x1D: return UD_Ipf2id;
+	case 0x8A: return UD_Ipfnacc;
+	case 0x8E: return UD_Ipfpnacc;
+	case 0x90: return UD_Ipfcmpge;
+	case 0x94: return UD_Ipfmin;
+	case 0x96: return UD_Ipfrcp;
+	case 0x97: return UD_Ipfrsqrt;
+	case 0x9A: return UD_Ipfsub;
+	case 0x9E: return UD_Ipfadd;
+	case 0xA0: return UD_Ipfcmpgt;
+	case 0xA4: return UD_Ipfmax;
+	case 0xA6: return UD_Ipfrcpit1;
+	case 0xA7: return UD_Ipfrsqit1;
+	case 0xAA: return UD_Ipfsubr;
+	case 0xAE: return UD_Ipfacc;
+	case 0xB0: return UD_Ipfcmpeq;
+	case 0xB4: return UD_Ipfmul;
+	case 0xB6: return UD_Ipfrcpit2;
+	case 0xB7: return UD_Ipmulhrw;
+	case 0xBB: return UD_Ipswapd;
+	case 0xBF: return UD_Ipavgusb;
+  }
+  return(0);
+}
+
+/* -----------------------------------------------------------------------------
+ * search_1byte_insn() - Searches for 1-byte instructions.
+ * -----------------------------------------------------------------------------
+ */
+static void
+search_1byte_insn(register struct ud* u)
+{
+  u->mapen = &itab_1byte[inp_curr(u)];
+
+  if (inp_curr(u) == 0x90) {
+	if (!(u->dis_mode == 64 && P_REX_B(u->pfx_rex))) {
+		if (u->pfx_rep) {
+			u->mapen = &pause;
+			u->pfx_rep = 0;
+		} else  u->mapen = &nop;
+	}
+  } else if (u->dis_mode == 64 && (u->mapen)->mnemonic == UD_Iarpl)
+	u->mapen = &movsxd;
+
+  else if (u->mapen->mnemonic == UD_Igrp)
+	u->mapen = &itab_groups[u->mapen->prefix].me_pfx_none[MODRM_REG(inp_peek(u))];
+
+  else if ((u->mapen)->mnemonic == UD_Ix87) {
+	if (inp_peek(u) <= 0xBF) {
+		u->mapen = &itab_x87_reg[(inp_curr(u))-0xD8][MODRM_REG(inp_peek(u))];		
+	}
+	else {
+		u->mapen = &itab_x87[inp_curr(u)-0xD8][inp_peek(u)-0xC0];
+		inp_next(u);
+	}
+  }  
+}
+
+/* -----------------------------------------------------------------------------
+ * search_2byte_insn() - Searches for 2-byte instructions.
+ * -----------------------------------------------------------------------------
+ */
+static void
+search_2byte_insn(register struct ud* u)
+{
+  uint32_t gindex;
+
+  inp_next(u);
+
+  if (u->pfx_insn == 0x66) {
+	u->mapen = &itab_2byte_prefix66[inp_curr(u)];
+	if (u->mapen != NULL && u->mapen->mnemonic != UD_Ina)
+		u->pfx_opr = 0;
+  } else if (u->pfx_insn == 0xF2) {
+	u->mapen = &itab_2byte_prefixF2[inp_curr(u)];
+	if (u->mapen != NULL && u->mapen->mnemonic != UD_Ina)
+		u->pfx_repne = 0;
+  } else if (u->pfx_insn == 0xF3) {
+	u->mapen = &itab_2byte_prefixF3[inp_curr(u)];
+	if (u->mapen != NULL && u->mapen->mnemonic != UD_Ina)
+		u->pfx_rep = 0;
+  }
+
+  if (u->mapen == NULL || u->mapen->mnemonic == UD_Ina)
+	u->mapen = &itab_2byte[inp_curr(u)];
+
+  if (u->mapen->mnemonic == UD_I3dnow)
+	u->mapen = &itab_3DNow;
+
+  if (u->mapen->mnemonic != UD_Igrp)
+	return;
+
+  /* If instruction is in a Group */
+  gindex = u->mapen->prefix + ((u->vendor == UD_VENDOR_INTEL) ? 
+				ITAB_GROUPS_START_INTEL : 0);
+
+  if (u->pfx_insn == 0x66 && itab_groups[gindex].me_pfx_66) {
+	u->mapen = &itab_groups[gindex].me_pfx_66[MODRM_REG(inp_peek(u))];
+	if (u->mapen != NULL && u->mapen->mnemonic != UD_Ina) {
+		u->pfx_opr = 0;
+		return;
+	}
+  }
+  else if (u->pfx_insn == 0xF2 && itab_groups[gindex].me_pfx_f2) {
+	u->mapen = &itab_groups[gindex].me_pfx_f2[MODRM_REG(inp_peek(u))];
+	if (u->mapen != NULL && u->mapen->mnemonic != UD_Ina) {
+		u->pfx_repne = 0;
+		return;
+	}
+  }
+  else if (u->pfx_insn == 0xF3 && itab_groups[gindex].me_pfx_f3) {
+	u->mapen = &itab_groups[gindex].me_pfx_f3[MODRM_REG(inp_peek(u))];
+	if (u->mapen != NULL && u->mapen->mnemonic != UD_Ina) {
+		u->pfx_rep = 0;
+		return;
+	}
+  }
+
+  if (! u->pfx_insn || u->mapen->mnemonic == UD_Igrp)
+	u->mapen = &itab_groups[gindex].me_pfx_none[MODRM_REG(inp_peek(u))];
+
+  /* 0F01 - opcode extensions */
+  if (inp_curr(u) == 0x01) {
+	uint8_t reg = MODRM_REG(inp_peek(u));
+	uint8_t mod = MODRM_MOD(inp_peek(u));
+	uint8_t rm  = MODRM_RM(inp_peek(u));
+
+	if (u->vendor == UD_VENDOR_INTEL) {
+		if (reg == 0 && mod == 3) {
+			u->mapen = &itab_g7_op0F01_Reg0_intel[rm];
+			inp_next(u);
+		} else if (reg == 1 && mod == 3) {
+			u->mapen = &itab_g7_op0F01_Reg1_intel[rm];
+			inp_next(u);
+		} else if (reg == 7 && mod == 3) {
+			u->mapen = &itab_g7_op0F01_Reg7_intel[rm];
+			inp_next(u);
+		}
+	}
+	else {
+		if (reg == 3 && mod == 3) {
+			u->mapen = &itab_g7_op0F01_Reg3[rm];
+			inp_next(u);
+		} else if (reg == 7 && mod == 3) {
+			u->mapen = &itab_g7_op0F01_Reg7[rm];
+			inp_next(u);
+		} else u->mapen = &itab_g7_op0F01[reg];
+	}	
+  } 
+  /* 0FAE - opcode extensions */
+  else if (inp_curr(u) == 0xAE) {
+	uint8_t reg = MODRM_REG(inp_peek(u));
+	uint8_t mod = MODRM_MOD(inp_peek(u));
+
+	if (reg == 5 && mod == 3) {
+		u->mapen = &itab_gF_op0FAE_Reg5;
+		inp_next(u);
+	} else if (reg == 6 && mod == 3) {
+		u->mapen = &itab_gF_op0FAE_Reg6;
+		inp_next(u);
+	} else if (reg == 7 && mod == 3) {
+		u->mapen = &itab_gF_op0FAE_Reg7;
+		inp_next(u);
+	} else u->mapen = &itab_gF_op0FAE[reg];
+  }
+}
+
+/* =============================================================================
+ * ud_search_map() - Searches the x86 opcode table for the instruction
+ * corresponding to the opcode given by next byte in the byte stream.
+ * =============================================================================
+ */
+void ud_search_map(register struct ud* u) 
+{
+  inp_next(u);
+
+  if (0x0F == inp_curr(u))
+	search_2byte_insn(u);
+  else	search_1byte_insn(u);
+
+  u->mnemonic = u->mapen->mnemonic;
+}
+
+/* =============================================================================
+ * ud_lookup_mnemonic() - Looks-up the mnemonic code.
+ * =============================================================================
+ */
+const char* ud_lookup_mnemonic(ud_mnemonic_code_t c) 
+{
+  if (c < UD_I3vil) 
+	return ud_mnemonics[c];
+  return NULL;
+}