replace B[01]+ with hex value
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp
index eba0ffc..5983545 100644
--- a/gen/gen_code.cpp
+++ b/gen/gen_code.cpp
@@ -75,42 +75,42 @@
 			const char *name;
 		} tbl[] = {
 			// MMX
-			{ B01101011, "packssdw" },
-			{ B01100011, "packsswb" },
-			{ B01100111, "packuswb" },
+			{ 0x6B, "packssdw" },
+			{ 0x63, "packsswb" },
+			{ 0x67, "packuswb" },
 
-			{ B11011011, "pand" },
-			{ B11011111, "pandn" },
+			{ 0xDB, "pand" },
+			{ 0xDF, "pandn" },
 
-			{ B11110101, "pmaddwd" },
-			{ B11100100, "pmulhuw" },
-			{ B11100101, "pmulhw" },
-			{ B11010101, "pmullw" },
+			{ 0xF5, "pmaddwd" },
+			{ 0xE4, "pmulhuw" },
+			{ 0xE5, "pmulhw" },
+			{ 0xD5, "pmullw" },
 
-			{ B11101011, "por" },
+			{ 0xEB, "por" },
 
-			{ B01101000, "punpckhbw" },
-			{ B01101001, "punpckhwd" },
-			{ B01101010, "punpckhdq" },
+			{ 0x68, "punpckhbw" },
+			{ 0x69, "punpckhwd" },
+			{ 0x6A, "punpckhdq" },
 
-			{ B01100000, "punpcklbw" },
-			{ B01100001, "punpcklwd" },
-			{ B01100010, "punpckldq" },
+			{ 0x60, "punpcklbw" },
+			{ 0x61, "punpcklwd" },
+			{ 0x62, "punpckldq" },
 
-			{ B11101111, "pxor" },
+			{ 0xEF, "pxor" },
 
 			// MMX2
-			{ B11100000, "pavgb" },
-			{ B11100011, "pavgw" },
-			{ B11101110, "pmaxsw" },
-			{ B11011110, "pmaxub" },
-			{ B11101010, "pminsw" },
-			{ B11011010, "pminub" },
-			{ B11110110, "psadbw" },
+			{ 0xE0, "pavgb" },
+			{ 0xE3, "pavgw" },
+			{ 0xEE, "pmaxsw" },
+			{ 0xDE, "pmaxub" },
+			{ 0xEA, "pminsw" },
+			{ 0xDA, "pminub" },
+			{ 0xF6, "psadbw" },
 			//
-			{ B11010100, "paddq" },
-			{ B11110100, "pmuludq" },
-			{ B11111011, "psubq" },
+			{ 0xD4, "paddq" },
+			{ 0xF4, "pmuludq" },
+			{ 0xFB, "psubq" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -125,17 +125,17 @@
 			int mode;
 			const char *name;
 		} tbl[] = {
-			{ B11111100, B|W|D, "padd" },
-			{ B11101100, B|W  , "padds" },
-			{ B11011100, B|W  , "paddus" },
-			{ B01110100, B|W|D, "pcmpeq" },
-			{ B01100100, B|W|D, "pcmpgt" },
-			{ B11110000, W|D|Q, "psll" },
-			{ B11100000, W|D  , "psra" },
-			{ B11010000, W|D|Q, "psrl" },
-			{ B11111000, B|W|D, "psub" },
-			{ B11101000, B|W  , "psubs" },
-			{ B11011000, B|W  , "psubus" },
+			{ 0xFC, B|W|D, "padd" },
+			{ 0xEC, B|W  , "padds" },
+			{ 0xDC, B|W  , "paddus" },
+			{ 0x74, B|W|D, "pcmpeq" },
+			{ 0x64, B|W|D, "pcmpgt" },
+			{ 0xF0, W|D|Q, "psll" },
+			{ 0xE0, W|D  , "psra" },
+			{ 0xD0, W|D|Q, "psrl" },
+			{ 0xF8, B|W|D, "psub" },
+			{ 0xE8, B|W  , "psubs" },
+			{ 0xD8, B|W  , "psubus" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -160,9 +160,9 @@
 			int mode;
 			const char *name;
 		} tbl[] = {
-			{ B01110000, 6, W|D|Q, "psll" },
-			{ B01110000, 4, W|D  , "psra" },
-			{ B01110000, 2, W|D|Q, "psrl" },
+			{ 0x70, 6, W|D|Q, "psll" },
+			{ 0x70, 4, W|D  , "psra" },
+			{ 0x70, 2, W|D|Q, "psrl" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -179,8 +179,8 @@
 				);
 			}
 		}
-		printf("void pslldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x%02X, %d); }\n", B01110011, 7);
-		printf("void psrldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x%02X, %d); }\n", B01110011, 3);
+		printf("void pslldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x%02X, %d); }\n", 0x73, 7);
+		printf("void psrldq(const Xmm& xmm, int imm8) { opMMX_IMM(xmm, imm8, 0x%02X, %d); }\n", 0x73, 3);
 	}
 
 	{
@@ -189,10 +189,10 @@
 			uint8 pref;
 			const char *name;
 		} tbl[] = {
-			{ B01110000, 0, "pshufw" },
-			{ B01110000, 0xF2, "pshuflw" },
-			{ B01110000, 0xF3, "pshufhw" },
-			{ B01110000, 0x66, "pshufd" },
+			{ 0x70, 0, "pshufw" },
+			{ 0x70, 0xF2, "pshuflw" },
+			{ 0x70, 0xF3, "pshufhw" },
+			{ 0x70, 0x66, "pshufd" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -206,15 +206,15 @@
 			int pref;
 			const char *name;
 		} mmxTbl6[] = {
-			{ B01101111, B01111111, 0x66, "movdqa" },
-			{ B01101111, B01111111, 0xF3, "movdqu" },
+			{ 0x6F, 0x7F, 0x66, "movdqa" },
+			{ 0x6F, 0x7F, 0xF3, "movdqu" },
 			// SSE2
-			{ B00101000, B00101001, NO, "movaps" },
-			{ B00010000, B00010001, 0xF3, "movss" },
-			{ B00010000, B00010001, NO, "movups" },
-			{ B00101000, B00101001, 0x66, "movapd" },
-			{ B00010000, B00010001, 0xF2, "movsd" },
-			{ B00010000, B00010001, 0x66, "movupd" },
+			{ 0x28, 0x29, NO, "movaps" },
+			{ 0x10, 0x11, 0xF3, "movss" },
+			{ 0x10, 0x11, NO, "movups" },
+			{ 0x28, 0x29, 0x66, "movapd" },
+			{ 0x10, 0x11, 0xF2, "movsd" },
+			{ 0x10, 0x11, 0x66, "movupd" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(mmxTbl6); i++) {
 			const MmxTbl6 *p = &mmxTbl6[i];
@@ -246,23 +246,23 @@
 			const char *name;
 			bool hasImm;
 		} tbl[] = {
-			{ B01011000, PS|SS|PD|SD, "add" },
-			{ B01010101, PS|PD      , "andn" },
-			{ B01010100, PS|PD      , "and" },
-			{ B11000010, PS|SS|PD|SD, "cmp", true },
-			{ B01011110, PS|SS|PD|SD, "div" },
-			{ B01011111, PS|SS|PD|SD, "max" },
-			{ B01011101, PS|SS|PD|SD, "min" },
-			{ B01011001, PS|SS|PD|SD, "mul" },
-			{ B01010110, PS|PD      , "or" },
-			{ B01010011, PS|SS      , "rcp" },
-			{ B01010010, PS|SS      , "rsqrt" },
-			{ B11000110, PS|PD      , "shuf", true },
-			{ B01010001, PS|SS|PD|SD, "sqrt" },
-			{ B01011100, PS|SS|PD|SD, "sub" },
-			{ B00010101, PS|PD      , "unpckh" },
-			{ B00010100, PS|PD      , "unpckl" },
-			{ B01010111, PS|PD      , "xor" },
+			{ 0x58, PS|SS|PD|SD, "add" },
+			{ 0x55, PS|PD      , "andn" },
+			{ 0x54, PS|PD      , "and" },
+			{ 0xC2, PS|SS|PD|SD, "cmp", true },
+			{ 0x5E, PS|SS|PD|SD, "div" },
+			{ 0x5F, PS|SS|PD|SD, "max" },
+			{ 0x5D, PS|SS|PD|SD, "min" },
+			{ 0x59, PS|SS|PD|SD, "mul" },
+			{ 0x56, PS|PD      , "or" },
+			{ 0x53, PS|SS      , "rcp" },
+			{ 0x52, PS|SS      , "rsqrt" },
+			{ 0xC6, PS|PD      , "shuf", true },
+			{ 0x51, PS|SS|PD|SD, "sqrt" },
+			{ 0x5C, PS|SS|PD|SD, "sub" },
+			{ 0x15, PS|PD      , "unpckh" },
+			{ 0x14, PS|PD      , "unpckl" },
+			{ 0x57, PS|PD      , "xor" },
 			//
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
@@ -285,9 +285,9 @@
 			uint8 pref;
 			const char *name;
 		} tbl[] = {
-			{ B11110111, 0x66, "maskmovdqu" },
-			{ B00010010, 0   , "movhlps" },
-			{ B00010110, 0   , "movlhps" },
+			{ 0xF7, 0x66, "maskmovdqu" },
+			{ 0x12, 0   , "movhlps" },
+			{ 0x16, 0   , "movlhps" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -303,36 +303,36 @@
 			int pref;
 			const char *name;
 		} tbl[] = {
-			{ B01101101, 0x66, "punpckhqdq" },
-			{ B01101100, 0x66, "punpcklqdq" },
+			{ 0x6D, 0x66, "punpckhqdq" },
+			{ 0x6C, 0x66, "punpcklqdq" },
 
-			{ B00101111, NO  , "comiss" },
-			{ B00101110, NO  , "ucomiss" },
-			{ B00101111, 0x66, "comisd" },
-			{ B00101110, 0x66, "ucomisd" },
+			{ 0x2F, NO  , "comiss" },
+			{ 0x2E, NO  , "ucomiss" },
+			{ 0x2F, 0x66, "comisd" },
+			{ 0x2E, 0x66, "ucomisd" },
 
-			{ B01011010, 0x66, "cvtpd2ps" },
-			{ B01011010, NO  , "cvtps2pd" },
-			{ B01011010, 0xF2, "cvtsd2ss" },
-			{ B01011010, 0xF3, "cvtss2sd" },
-			{ B11100110, 0xF2, "cvtpd2dq" },
-			{ B11100110, 0x66, "cvttpd2dq" },
-			{ B11100110, 0xF3, "cvtdq2pd" },
-			{ B01011011, 0x66, "cvtps2dq" },
-			{ B01011011, 0xF3, "cvttps2dq" },
-			{ B01011011, NO  , "cvtdq2ps" },
+			{ 0x5A, 0x66, "cvtpd2ps" },
+			{ 0x5A, NO  , "cvtps2pd" },
+			{ 0x5A, 0xF2, "cvtsd2ss" },
+			{ 0x5A, 0xF3, "cvtss2sd" },
+			{ 0xE6, 0xF2, "cvtpd2dq" },
+			{ 0xE6, 0x66, "cvttpd2dq" },
+			{ 0xE6, 0xF3, "cvtdq2pd" },
+			{ 0x5B, 0x66, "cvtps2dq" },
+			{ 0x5B, 0xF3, "cvttps2dq" },
+			{ 0x5B, NO  , "cvtdq2ps" },
 
 			// SSE3
-			{ B11010000, 0x66, "addsubpd" },
-			{ B11010000, 0xF2, "addsubps" },
-			{ B01111100, 0x66, "haddpd" },
-			{ B01111100, 0xF2, "haddps" },
-			{ B01111101, 0x66, "hsubpd" },
-			{ B01111101, 0xF2, "hsubps" },
+			{ 0xD0, 0x66, "addsubpd" },
+			{ 0xD0, 0xF2, "addsubps" },
+			{ 0x7C, 0x66, "haddpd" },
+			{ 0x7C, 0xF2, "haddps" },
+			{ 0x7D, 0x66, "hsubpd" },
+			{ 0x7D, 0xF2, "hsubps" },
 
-			{ B00010010, 0xF2, "movddup" },
-			{ B00010110, 0xF3, "movshdup" },
-			{ B00010010, 0xF3, "movsldup" },
+			{ 0x12, 0xF2, "movddup" },
+			{ 0x16, 0xF3, "movshdup" },
+			{ 0x12, 0xF3, "movsldup" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -348,18 +348,18 @@
 			const char *name;
 			const char *cond;
 		} tbl[] = {
-			{ B00101010, NO  , "cvtpi2ps",  "isXMM_MMXorMEM" },
-			{ B00101101, NO  , "cvtps2pi",  "isMMX_XMMorMEM" },
-			{ B00101010, 0xF3, "cvtsi2ss",  "isXMM_REG32orMEM" },
-			{ B00101101, 0xF3, "cvtss2si",  "isREG32_XMMorMEM" },
-			{ B00101100, NO  , "cvttps2pi", "isMMX_XMMorMEM" },
-			{ B00101100, 0xF3, "cvttss2si", "isREG32_XMMorMEM" },
-			{ B00101010, 0x66, "cvtpi2pd",  "isXMM_MMXorMEM" },
-			{ B00101101, 0x66, "cvtpd2pi",  "isMMX_XMMorMEM" },
-			{ B00101010, 0xF2, "cvtsi2sd",  "isXMM_REG32orMEM" },
-			{ B00101101, 0xF2, "cvtsd2si",  "isREG32_XMMorMEM" },
-			{ B00101100, 0x66, "cvttpd2pi", "isMMX_XMMorMEM" },
-			{ B00101100, 0xF2, "cvttsd2si", "isREG32_XMMorMEM" },
+			{ 0x2A, NO  , "cvtpi2ps",  "isXMM_MMXorMEM" },
+			{ 0x2D, NO  , "cvtps2pi",  "isMMX_XMMorMEM" },
+			{ 0x2A, 0xF3, "cvtsi2ss",  "isXMM_REG32orMEM" },
+			{ 0x2D, 0xF3, "cvtss2si",  "isREG32_XMMorMEM" },
+			{ 0x2C, NO  , "cvttps2pi", "isMMX_XMMorMEM" },
+			{ 0x2C, 0xF3, "cvttss2si", "isREG32_XMMorMEM" },
+			{ 0x2A, 0x66, "cvtpi2pd",  "isXMM_MMXorMEM" },
+			{ 0x2D, 0x66, "cvtpd2pi",  "isMMX_XMMorMEM" },
+			{ 0x2A, 0xF2, "cvtsi2sd",  "isXMM_REG32orMEM" },
+			{ 0x2D, 0xF2, "cvtsd2si",  "isREG32_XMMorMEM" },
+			{ 0x2C, 0x66, "cvttpd2pi", "isMMX_XMMorMEM" },
+			{ 0x2C, 0xF2, "cvttsd2si", "isREG32_XMMorMEM" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -379,7 +379,7 @@
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
-			printf("void prefetch%s(const Address& addr) { opModM(addr, Reg32(%d), 0x0F, B00011000); }\n", p->name, p->ext);
+			printf("void prefetch%s(const Address& addr) { opModM(addr, Reg32(%d), 0x0F, 0x18); }\n", p->name, p->ext);
 		}
 	}
 	{
@@ -388,10 +388,10 @@
 			int pref;
 			const char *name;
 		} tbl[] = {
-			{ B00010110, NO,   "movhps" },
-			{ B00010010, NO,   "movlps" },
-			{ B00010110, 0x66, "movhpd" },
-			{ B00010010, 0x66, "movlpd" },
+			{ 0x16, NO,   "movhps" },
+			{ 0x12, NO,   "movlps" },
+			{ 0x16, 0x66, "movhpd" },
+			{ 0x12, 0x66, "movlpd" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -437,12 +437,12 @@
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
-			printf("void cmov%s(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | %d); }\n", p->name, p->ext);
-			printf("void j%s(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x%02X, 0x%02X, 0x%02X); }\n", p->name, p->ext | B01110000, p->ext | B10000000, 0x0F);
-			printf("void j%s(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x%02X, 0x%02X, 0x%02X); }\n", p->name, p->ext | B01110000, p->ext | B10000000, 0x0F);
+			printf("void cmov%s(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | %d); }\n", p->name, p->ext);
+			printf("void j%s(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x%02X, 0x%02X, 0x%02X); }\n", p->name, p->ext | 0x70, p->ext | 0x80, 0x0F);
+			printf("void j%s(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x%02X, 0x%02X, 0x%02X); }\n", p->name, p->ext | 0x70, p->ext | 0x80, 0x0F);
 			printf("void j%s(const char *label, LabelType type = T_AUTO) { j%s(std::string(label), type); }\n", p->name, p->name);
-			printf("void j%s(const void *addr) { opJmpAbs(addr, T_NEAR, 0x%02X, 0x%02X, 0x%02X); }\n", p->name, p->ext | B01110000, p->ext | B10000000, 0x0F);
-			printf("void set%s(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | %d); }\n", p->name, p->ext);
+			printf("void j%s(const void *addr) { opJmpAbs(addr, T_NEAR, 0x%02X, 0x%02X, 0x%02X); }\n", p->name, p->ext | 0x70, p->ext | 0x80, 0x0F);
+			printf("void set%s(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | %d); }\n", p->name, p->ext);
 		}
 		puts("#ifdef XBYAK32");
 		put_jREGz("cx", true);
@@ -461,65 +461,65 @@
 			uint8 code3;
 		} tbl[] = {
 			// only 64-bit mode(from)
-			{ "cdqe", B01001000, B10011000 },
+			{ "cdqe", 0x48, 0x98 },
 			{ "cqo", 0x48, 0x99 },
 			{ "@@@" }, /// here
 			// only 32-bit mode(from)
-			{ "aaa", B00110111 },
-			{ "aad", B11010101, B00001010 },
-			{ "aam", B11010100, B00001010 },
-			{ "aas", B00111111 },
-			{ "daa", B00100111 },
-			{ "das", B00101111 },
-			{ "popad", B01100001 },
-			{ "popfd", B10011101 },
-			{ "pusha", B01100000 },
-			{ "pushad", B01100000 },
-			{ "pushfd", B10011100 },
-			{ "popa", B01100001 },
+			{ "aaa", 0x37 },
+			{ "aad", 0xD5, 0x0A },
+			{ "aam", 0xD4, 0x0A },
+			{ "aas", 0x3F },
+			{ "daa", 0x27 },
+			{ "das", 0x2F },
+			{ "popad", 0x61 },
+			{ "popfd", 0x9D },
+			{ "pusha", 0x60 },
+			{ "pushad", 0x60 },
+			{ "pushfd", 0x9C },
+			{ "popa", 0x61 },
 			{ "@@@" }, /// here
 
-			{ "cbw", 0x66, B10011000 },
-			{ "cdq", B10011001 },
-			{ "clc", B11111000 },
-			{ "cld", B11111100 },
-			{ "cli", B11111010 },
-			{ "cmc", B11110101 },
+			{ "cbw", 0x66, 0x98 },
+			{ "cdq", 0x99 },
+			{ "clc", 0xF8 },
+			{ "cld", 0xFC },
+			{ "cli", 0xFA },
+			{ "cmc", 0xF5 },
 
-			{ "cpuid", 0x0F, B10100010 },
-			{ "cwd", 0x66, B10011001 },
-			{ "cwde", B10011000 },
+			{ "cpuid", 0x0F, 0xA2 },
+			{ "cwd", 0x66, 0x99 },
+			{ "cwde", 0x98 },
 
-			{ "lahf", B10011111 },
-			{ "lock", B11110000 },
-			{ "nop", B10010000 },
+			{ "lahf", 0x9F },
+			{ "lock", 0xF0 },
+			{ "nop", 0x90 },
 
-			{ "sahf", B10011110 },
-			{ "stc", B11111001 },
-			{ "std", B11111101 },
-			{ "sti", B11111011 },
+			{ "sahf", 0x9E },
+			{ "stc", 0xF9 },
+			{ "std", 0xFD },
+			{ "sti", 0xFB },
 
-			{ "emms", 0x0F, B01110111 },
-			{ "pause", 0xF3, B10010000 },
-			{ "sfence", 0x0F, B10101110, B11111000 },
-			{ "lfence", 0x0F, B10101110, B11101000 },
-			{ "mfence", 0x0F, B10101110, B11110000 },
-			{ "monitor", 0x0F, B00000001, B11001000 },
-			{ "mwait", 0x0F, B00000001, B11001001 },
+			{ "emms", 0x0F, 0x77 },
+			{ "pause", 0xF3, 0x90 },
+			{ "sfence", 0x0F, 0xAE, 0xF8 },
+			{ "lfence", 0x0F, 0xAE, 0xE8 },
+			{ "mfence", 0x0F, 0xAE, 0xF0 },
+			{ "monitor", 0x0F, 0x01, 0xC8 },
+			{ "mwait", 0x0F, 0x01, 0xC9 },
 
-			{ "rdmsr", 0x0F, B00110010 },
-			{ "rdpmc", 0x0F, B00110011 },
-			{ "rdtsc", 0x0F, B00110001 },
+			{ "rdmsr", 0x0F, 0x32 },
+			{ "rdpmc", 0x0F, 0x33 },
+			{ "rdtsc", 0x0F, 0x31 },
 			{ "rdtscp", 0x0F, 0x01, 0xF9 },
 			{ "ud2", 0x0F, 0x0B },
 			{ "wait", 0x9B },
 			{ "fwait", 0x9B },
-			{ "wbinvd", 0x0F, B00001001 },
-			{ "wrmsr", 0x0F, B00110000 },
+			{ "wbinvd", 0x0F, 0x09 },
+			{ "wrmsr", 0x0F, 0x30 },
 			{ "xlatb", 0xD7 },
 
-			{ "popf", B10011101 },
-			{ "pushf", B10011100 },
+			{ "popf", 0x9D },
+			{ "pushf", 0x9C },
 			{ "stac", 0x0F, 0x01, 0xCB },
 
 			{ "vzeroall", 0xC5, 0xFC, 0x77 },
@@ -597,14 +597,14 @@
 			uint8 ext; // (reg, imm)
 			const char *name;
 		} tbl[] = {
-			{ B00010000, 2, "adc" },
-			{ B00000000, 0, "add" },
-			{ B00100000, 4, "and" },
-			{ B00111000, 7, "cmp" },
-			{ B00001000, 1, "or" },
-			{ B00011000, 3, "sbb" },
-			{ B00101000, 5, "sub" },
-			{ B00110000, 6, "xor" },
+			{ 0x10, 2, "adc" },
+			{ 0x00, 0, "add" },
+			{ 0x20, 4, "and" },
+			{ 0x38, 7, "cmp" },
+			{ 0x08, 1, "or" },
+			{ 0x18, 3, "sbb" },
+			{ 0x28, 5, "sub" },
+			{ 0x30, 6, "xor" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -629,8 +629,8 @@
 			uint8 ext;
 			const char *name;
 		} tbl[] = {
-			{ B01001000, 1, "dec" },
-			{ B01000000, 0, "inc" },
+			{ 0x48, 1, "dec" },
+			{ 0x40, 0, "inc" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -660,12 +660,12 @@
 			uint8 ext;
 			const char *name;
 		} tbl[] = {
-			{ B11110110, 6, "div" },
-			{ B11110110, 7, "idiv" },
-			{ B11110110, 5, "imul" },
-			{ B11110110, 4, "mul" },
-			{ B11110110, 3, "neg" },
-			{ B11110110, 2, "not" },
+			{ 0xF6, 6, "div" },
+			{ 0xF6, 7, "idiv" },
+			{ 0xF6, 5, "imul" },
+			{ 0xF6, 4, "mul" },
+			{ 0xF6, 3, "neg" },
+			{ 0xF6, 2, "not" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -707,8 +707,8 @@
 			const char *name;
 			uint8 code;
 		} tbl[] = {
-			{ "shld", B10100100 },
-			{ "shrd", B10101100 },
+			{ "shld", 0xA4 },
+			{ "shrd", 0xAC },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -871,9 +871,9 @@
 			uint8 ext;
 			const char *name;
 		} tbl[] = {
-			{ 0x0F, B10101110, 2, "ldmxcsr" },
-			{ 0x0F, B10101110, 3, "stmxcsr" },
-			{ 0x0F, B10101110, 7, "clflush" }, // 0x80 is bug of nasm ?
+			{ 0x0F, 0xAE, 2, "ldmxcsr" },
+			{ 0x0F, 0xAE, 3, "stmxcsr" },
+			{ 0x0F, 0xAE, 7, "clflush" }, // 0x80 is bug of nasm ?
 			{ 0xD9, NONE, 5, "fldcw" },
 //			{ 0x9B, 0xD9, 7, "fstcw" }, // not correct order for fstcw [eax] on 64bit OS
 		};
@@ -888,8 +888,8 @@
 			uint8 code;
 			const char *name;
 		} tbl[] = {
-			{ B00101011, "movntpd" },
-			{ B11100111, "movntdq" },
+			{ 0x2B, "movntpd" },
+			{ 0xE7, "movntdq" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
@@ -902,8 +902,8 @@
 			uint8 code;
 			const char *name;
 		} tbl[] = {
-			{ B10111110, "movsx" },
-			{ B10110110, "movzx" },
+			{ 0xBE, "movsx" },
+			{ 0xB6, "movzx" },
 		};
 		for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
 			const Tbl *p = &tbl[i];
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index 5d3f33d..d8bfa73 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -879,7 +879,7 @@
 	size_t getSize() const { return size_; }
 	void updateRegField(uint8 regIdx) const
 	{
-		*top_ = (*top_ & B11000111) | ((regIdx << 3) & B00111000);
+		*top_ = (*top_ & 0xC7) | ((regIdx << 3) & 0x38);
 	}
 	void setVsib(bool isVsib) const { isVsib_ = isVsib; }
 	bool isVsib() const { return isVsib_; }
@@ -1444,9 +1444,9 @@
 	{
 		if (hasMMX2 && op.isREG(i32e)) { /* pextrw is special */
 			if (mmx.isXMM()) db(0x66);
-			opModR(static_cast<const Reg&>(op), mmx, 0x0F, B11000101); db(imm);
+			opModR(static_cast<const Reg&>(op), mmx, 0x0F, 0xC5); db(imm);
 		} else {
-			opGen(mmx, op, code, 0x66, isXMM_REG32orMEM, imm, B00111010);
+			opGen(mmx, op, code, 0x66, isXMM_REG32orMEM, imm, 0x3A);
 		}
 	}
 	void opR_ModM(const Operand& op, int bit, int ext, int code0, int code1 = NONE, int code2 = NONE, bool disableRex = false, int immSize = 0)
@@ -1464,13 +1464,13 @@
 	void opShift(const Operand& op, int imm, int ext)
 	{
 		verifyMemHasSize(op);
-		opR_ModM(op, 0, ext, (B11000000 | ((imm == 1 ? 1 : 0) << 4)), NONE, NONE, false, (imm != 1) ? 1 : 0);
+		opR_ModM(op, 0, ext, (0xC0 | ((imm == 1 ? 1 : 0) << 4)), NONE, NONE, false, (imm != 1) ? 1 : 0);
 		if (imm != 1) db(imm);
 	}
 	void opShift(const Operand& op, const Reg8& _cl, int ext)
 	{
 		if (_cl.getIdx() != Operand::CL) throw Error(ERR_BAD_COMBINATION);
-		opR_ModM(op, 0, ext, B11010010);
+		opR_ModM(op, 0, ext, 0xD2);
 	}
 	void opModRM(const Operand& op1, const Operand& op2, bool condR, bool condM, int code0, int code1 = NONE, int code2 = NONE, int immSize = 0)
 	{
@@ -1510,7 +1510,7 @@
 			db(code | 4 | (immBit == 8 ? 0 : 1));
 		} else {
 			int tmp = immBit < (std::min)(op.getBit(), 32U) ? 2 : 0;
-			opR_ModM(op, 0, ext, B10000000 | tmp, NONE, NONE, false, immBit / 8);
+			opR_ModM(op, 0, ext, 0x80 | tmp, NONE, NONE, false, immBit / 8);
 		}
 		db(imm, immBit / 8);
 	}
@@ -1523,7 +1523,7 @@
 			return;
 		}
 #endif
-		code = B11111110;
+		code = 0xFE;
 		if (op.isREG()) {
 			opModR(Reg(ext, Operand::REG, op.getBit()), static_cast<const Reg&>(op), code);
 		} else {
@@ -1718,16 +1718,16 @@
 	void outLocalLabel() { labelMgr_.leaveLocal(); }
 	void jmp(std::string label, LabelType type = T_AUTO)
 	{
-		opJmp(label, type, B11101011, B11101001, 0);
+		opJmp(label, type, 0xEB, 0xE9, 0);
 	}
 	void jmp(const Label& label, LabelType type = T_AUTO)
 	{
-		opJmp(label, type, B11101011, B11101001, 0);
+		opJmp(label, type, 0xEB, 0xE9, 0);
 	}
 	void jmp(const char *label, LabelType type = T_AUTO) { jmp(std::string(label), type); }
 	void jmp(const void *addr, LabelType type = T_AUTO)
 	{
-		opJmpAbs(addr, type, B11101011, B11101001);
+		opJmpAbs(addr, type, 0xEB, 0xE9);
 	}
 	void jmp(const Operand& op)
 	{
@@ -1740,7 +1740,7 @@
 	// (REG|MEM, REG)
 	void test(const Operand& op, const Reg& reg)
 	{
-		opModRM(reg, op, op.isREG() && (op.getKind() == reg.getKind()), op.isMEM(), B10000100);
+		opModRM(reg, op, op.isREG() && (op.getKind() == reg.getKind()), op.isMEM(), 0x84);
 	}
 	// (REG|MEM, IMM)
 	void test(const Operand& op, uint32 imm)
@@ -1749,48 +1749,48 @@
         int immSize = (std::min)(op.getBit() / 8, 4U);
 		if (op.isREG() && op.getIdx() == 0) { // al, ax, eax
 			rex(op);
-			db(B10101000 | (op.isBit(8) ? 0 : 1));
+			db(0xA8 | (op.isBit(8) ? 0 : 1));
 		} else {
-			opR_ModM(op, 0, 0, B11110110, NONE, NONE, false, immSize);
+			opR_ModM(op, 0, 0, 0xF6, NONE, NONE, false, immSize);
 		}
 		db(imm, immSize);
 	}
 	void ret(int imm = 0)
 	{
 		if (imm) {
-			db(B11000010); dw(imm);
+			db(0xC2); dw(imm);
 		} else {
-			db(B11000011);
+			db(0xC3);
 		}
 	}
 	// (REG16|REG32, REG16|REG32|MEM)
 	void imul(const Reg& reg, const Operand& op)
 	{
-		opModRM(reg, op, op.isREG() && (reg.getKind() == op.getKind()), op.isMEM(), 0x0F, B10101111);
+		opModRM(reg, op, op.isREG() && (reg.getKind() == op.getKind()), op.isMEM(), 0x0F, 0xAF);
 	}
 	void imul(const Reg& reg, const Operand& op, int imm)
 	{
 		int s = inner::IsInDisp8(imm) ? 1 : 0;
         int immSize = s ? 1 : reg.isREG(16) ? 2 : 4;
-		opModRM(reg, op, op.isREG() && (reg.getKind() == op.getKind()), op.isMEM(), B01101001 | (s << 1), NONE, NONE, immSize);
+		opModRM(reg, op, op.isREG() && (reg.getKind() == op.getKind()), op.isMEM(), 0x69 | (s << 1), NONE, NONE, immSize);
 		db(imm, immSize);
 	}
 	void pop(const Operand& op)
 	{
-		opPushPop(op, B10001111, 0, B01011000);
+		opPushPop(op, 0x8F, 0, 0x58);
 	}
 	void push(const Operand& op)
 	{
-		opPushPop(op, B11111111, 6, B01010000);
+		opPushPop(op, 0xFF, 6, 0x50);
 	}
 	void push(const AddressFrame& af, uint32 imm)
 	{
 		if (af.bit_ == 8 && inner::IsInDisp8(imm)) {
-			db(B01101010); db(imm);
+			db(0x6A); db(imm);
 		} else if (af.bit_ == 16 && isInDisp16(imm)) {
-			db(0x66); db(B01101000); dw(imm);
+			db(0x66); db(0x68); dw(imm);
 		} else {
-			db(B01101000); dd(imm);
+			db(0x68); dd(imm);
 		}
 	}
 	/* use "push(word, 4)" if you want "push word 4" */
@@ -1842,12 +1842,12 @@
 		if (reg1.isREG() && reg1.getIdx() == 0 && reg2.isMEM()) { // mov eax|ax|al, [disp]
 			reg = &static_cast<const Reg&>(reg1);
 			addr= &static_cast<const Address&>(reg2);
-			code = B10100000;
+			code = 0xA0;
 		} else
 		if (reg1.isMEM() && reg2.isREG() && reg2.getIdx() == 0) { // mov [disp], eax|ax|al
 			reg = &static_cast<const Reg&>(reg2);
 			addr= &static_cast<const Address&>(reg1);
-			code = B10100010;
+			code = 0xA2;
 		}
 #ifdef XBYAK64
 		if (addr && addr->is64bitDisp()) {
@@ -1867,7 +1867,7 @@
 		} else
 #endif
 		{
-			opRM_RM(reg1, reg2, B10001000);
+			opRM_RM(reg1, reg2, 0x88);
 		}
 	}
 private:
@@ -1878,15 +1878,15 @@
 	{
 		int bit = reg.getBit();
 		const int idx = reg.getIdx();
-		int code = B10110000 | ((bit == 8 ? 0 : 1) << 3);
+		int code = 0xB0 | ((bit == 8 ? 0 : 1) << 3);
 		if (bit == 64 && (imm & ~size_t(0xffffffffu)) == 0) {
 			rex(Reg32(idx));
 			bit = 32;
 		} else {
 			rex(reg);
 			if (bit == 64 && inner::IsInInt32(imm)) {
-				db(B11000111);
-				code = B11000000;
+				db(0xC7);
+				code = 0xC0;
 				bit = 32;
 			}
 		}
@@ -1930,7 +1930,7 @@
 				if (!inner::IsInInt32(imm)) throw Error(ERR_IMM_IS_TOO_BIG);
 				immSize = 4;
 			}
-			opModM(static_cast<const Address&>(op), Reg(0, Operand::REG, op.getBit()), B11000110, NONE, NONE, immSize);
+			opModM(static_cast<const Address&>(op), Reg(0, Operand::REG, op.getBit()), 0xC6, NONE, NONE, immSize);
 			db(static_cast<uint32>(imm), immSize);
 		} else {
 			throw Error(ERR_BAD_COMBINATION);
@@ -1983,17 +1983,17 @@
 	void putL(const Label& label) { putL_inner(label); }
 	void adcx(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0x66, isREG32_REG32orMEM, NONE, 0x38); }
 	void adox(const Reg32e& reg, const Operand& op) { opGen(reg, op, 0xF6, 0xF3, isREG32_REG32orMEM, NONE, 0x38); }
-	void cmpxchg8b(const Address& addr) { opModM(addr, Reg32(1), 0x0F, B11000111); }
+	void cmpxchg8b(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0xC7); }
 #ifdef XBYAK64
-	void cmpxchg16b(const Address& addr) { opModM(addr, Reg64(1), 0x0F, B11000111); }
+	void cmpxchg16b(const Address& addr) { opModM(addr, Reg64(1), 0x0F, 0xC7); }
 #endif
 	void xadd(const Operand& op, const Reg& reg)
 	{
-		opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, B11000000 | (reg.isBit(8) ? 0 : 1));
+		opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xC0 | (reg.isBit(8) ? 0 : 1));
 	}
 	void cmpxchg(const Operand& op, const Reg& reg)
 	{
-		opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xb0 | (reg.isBit(8) ? 0 : 1));
+		opModRM(reg, op, (op.isREG() && reg.isREG() && op.getBit() == reg.getBit()), op.isMEM(), 0x0F, 0xB0 | (reg.isBit(8) ? 0 : 1));
 	}
 	void xchg(const Operand& op1, const Operand& op2)
 	{
@@ -2010,77 +2010,77 @@
 			rex(*p2, *p1); db(0x90 | (p2->getIdx() & 7));
 			return;
 		}
-		opModRM(*p1, *p2, (p1->isREG() && p2->isREG() && (p1->getBit() == p2->getBit())), p2->isMEM(), B10000110 | (p1->isBit(8) ? 0 : 1));
+		opModRM(*p1, *p2, (p1->isREG() && p2->isREG() && (p1->getBit() == p2->getBit())), p2->isMEM(), 0x86 | (p1->isBit(8) ? 0 : 1));
 	}
-	void call(std::string label) { opJmp(label, T_NEAR, 0, B11101000, 0); }
+	void call(std::string label) { opJmp(label, T_NEAR, 0, 0xE8, 0); }
 	// call(string label)
 	void call(const char *label) { call(std::string(label)); }
-	void call(const Label& label) { opJmp(label, T_NEAR, 0, B11101000, 0); }
+	void call(const Label& label) { opJmp(label, T_NEAR, 0, 0xE8, 0); }
 	// call(function pointer)
 #ifdef XBYAK_VARIADIC_TEMPLATE
 	template<class Ret, class... Params>
 	void call(Ret(*func)(Params...)) { call(CastTo<const void*>(func)); }
 #endif
-	void call(const void *addr) { opJmpAbs(addr, T_NEAR, 0, B11101000); }
+	void call(const void *addr) { opJmpAbs(addr, T_NEAR, 0, 0xE8); }
 	// special case
 	void movd(const Address& addr, const Mmx& mmx)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModM(addr, mmx, 0x0F, B01111110);
+		opModM(addr, mmx, 0x0F, 0x7E);
 	}
 	void movd(const Reg32& reg, const Mmx& mmx)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModR(mmx, reg, 0x0F, B01111110);
+		opModR(mmx, reg, 0x0F, 0x7E);
 	}
 	void movd(const Mmx& mmx, const Address& addr)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModM(addr, mmx, 0x0F, B01101110);
+		opModM(addr, mmx, 0x0F, 0x6E);
 	}
 	void movd(const Mmx& mmx, const Reg32& reg)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModR(mmx, reg, 0x0F, B01101110);
+		opModR(mmx, reg, 0x0F, 0x6E);
 	}
 	void movq2dq(const Xmm& xmm, const Mmx& mmx)
 	{
-		db(0xF3); opModR(xmm, mmx, 0x0F, B11010110);
+		db(0xF3); opModR(xmm, mmx, 0x0F, 0xD6);
 	}
 	void movdq2q(const Mmx& mmx, const Xmm& xmm)
 	{
-		db(0xF2); opModR(mmx, xmm, 0x0F, B11010110);
+		db(0xF2); opModR(mmx, xmm, 0x0F, 0xD6);
 	}
 	void movq(const Mmx& mmx, const Operand& op)
 	{
 		if (mmx.isXMM()) db(0xF3);
-		opModRM(mmx, op, (mmx.getKind() == op.getKind()), op.isMEM(), 0x0F, mmx.isXMM() ? B01111110 : B01101111);
+		opModRM(mmx, op, (mmx.getKind() == op.getKind()), op.isMEM(), 0x0F, mmx.isXMM() ? 0x7E : 0x6F);
 	}
 	void movq(const Address& addr, const Mmx& mmx)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModM(addr, mmx, 0x0F, mmx.isXMM() ? B11010110 : B01111111);
+		opModM(addr, mmx, 0x0F, mmx.isXMM() ? 0xD6 : 0x7F);
 	}
 #ifdef XBYAK64
 	void movq(const Reg64& reg, const Mmx& mmx)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModR(mmx, reg, 0x0F, B01111110);
+		opModR(mmx, reg, 0x0F, 0x7E);
 	}
 	void movq(const Mmx& mmx, const Reg64& reg)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModR(mmx, reg, 0x0F, B01101110);
+		opModR(mmx, reg, 0x0F, 0x6E);
 	}
 	void pextrq(const Operand& op, const Xmm& xmm, uint8 imm)
 	{
 		if (!op.isREG(64) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION);
-		opGen(Reg64(xmm.getIdx()), op, 0x16, 0x66, 0, imm, B00111010); // force to 64bit
+		opGen(Reg64(xmm.getIdx()), op, 0x16, 0x66, 0, imm, 0x3A); // force to 64bit
 	}
 	void pinsrq(const Xmm& xmm, const Operand& op, uint8 imm)
 	{
 		if (!op.isREG(64) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION);
-		opGen(Reg64(xmm.getIdx()), op, 0x22, 0x66, 0, imm, B00111010); // force to 64bit
+		opGen(Reg64(xmm.getIdx()), op, 0x22, 0x66, 0, imm, 0x3A); // force to 64bit
 	}
 	void movsxd(const Reg64& reg, const Operand& op)
 	{
@@ -2097,38 +2097,38 @@
 	void pinsrw(const Mmx& mmx, const Operand& op, int imm)
 	{
 		if (!op.isREG(32) && !op.isMEM()) throw Error(ERR_BAD_COMBINATION);
-		opGen(mmx, op, B11000100, mmx.isXMM() ? 0x66 : NONE, 0, imm);
+		opGen(mmx, op, 0xC4, mmx.isXMM() ? 0x66 : NONE, 0, imm);
 	}
-	void insertps(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, imm, B00111010); }
-	void pinsrb(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x20, 0x66, isXMM_REG32orMEM, imm, B00111010); }
-	void pinsrd(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x22, 0x66, isXMM_REG32orMEM, imm, B00111010); }
+	void insertps(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, imm, 0x3A); }
+	void pinsrb(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x20, 0x66, isXMM_REG32orMEM, imm, 0x3A); }
+	void pinsrd(const Xmm& xmm, const Operand& op, uint8 imm) { opGen(xmm, op, 0x22, 0x66, isXMM_REG32orMEM, imm, 0x3A); }
 
 	void pmovmskb(const Reg32e& reg, const Mmx& mmx)
 	{
 		if (mmx.isXMM()) db(0x66);
-		opModR(reg, mmx, 0x0F, B11010111);
+		opModR(reg, mmx, 0x0F, 0xD7);
 	}
 	void maskmovq(const Mmx& reg1, const Mmx& reg2)
 	{
 		if (!reg1.isMMX() || !reg2.isMMX()) throw Error(ERR_BAD_COMBINATION);
-		opModR(reg1, reg2, 0x0F, B11110111);
+		opModR(reg1, reg2, 0x0F, 0xF7);
 	}
 	void lea(const Reg& reg, const Address& addr)
 	{
 		if (!reg.isBit(16 | i32e)) throw Error(ERR_BAD_SIZE_OF_REGISTER);
-		opModM(addr, reg, B10001101);
+		opModM(addr, reg, 0x8D);
 	}
 
-	void movmskps(const Reg32e& reg, const Xmm& xmm) { opModR(reg, xmm, 0x0F, B01010000); }
+	void movmskps(const Reg32e& reg, const Xmm& xmm) { opModR(reg, xmm, 0x0F, 0x50); }
 	void movmskpd(const Reg32e& reg, const Xmm& xmm) { db(0x66); movmskps(reg, xmm); }
-	void movntps(const Address& addr, const Xmm& xmm) { opModM(addr, Mmx(xmm.getIdx()), 0x0F, B00101011); }
+	void movntps(const Address& addr, const Xmm& xmm) { opModM(addr, Mmx(xmm.getIdx()), 0x0F, 0x2B); }
 	void movntdqa(const Xmm& xmm, const Address& addr) { db(0x66); opModM(addr, xmm, 0x0F, 0x38, 0x2A); }
-	void lddqu(const Xmm& xmm, const Address& addr) { db(0xF2); opModM(addr, xmm, 0x0F, B11110000); }
-	void movnti(const Address& addr, const Reg32e& reg) { opModM(addr, reg, 0x0F, B11000011); }
+	void lddqu(const Xmm& xmm, const Address& addr) { db(0xF2); opModM(addr, xmm, 0x0F, 0xF0); }
+	void movnti(const Address& addr, const Reg32e& reg) { opModM(addr, reg, 0x0F, 0xC3); }
 	void movntq(const Address& addr, const Mmx& mmx)
 	{
 		if (!mmx.isMMX()) throw Error(ERR_BAD_COMBINATION);
-		opModM(addr, mmx, 0x0F, B11100111);
+		opModM(addr, mmx, 0x0F, 0xE7);
 	}
 	void crc32(const Reg32e& reg, const Operand& op)
 	{
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index 98b7dd6..3479e9f 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -174,194 +174,194 @@
 void cvtsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2D, 0xF2, isREG32_XMMorMEM); }
 void cvttpd2pi(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0x66, isMMX_XMMorMEM); }
 void cvttsd2si(const Operand& reg, const Operand& op) { opGen(reg, op, 0x2C, 0xF2, isREG32_XMMorMEM); }
-void prefetcht0(const Address& addr) { opModM(addr, Reg32(1), 0x0F, B00011000); }
-void prefetcht1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, B00011000); }
-void prefetcht2(const Address& addr) { opModM(addr, Reg32(3), 0x0F, B00011000); }
-void prefetchnta(const Address& addr) { opModM(addr, Reg32(0), 0x0F, B00011000); }
+void prefetcht0(const Address& addr) { opModM(addr, Reg32(1), 0x0F, 0x18); }
+void prefetcht1(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0x18); }
+void prefetcht2(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0x18); }
+void prefetchnta(const Address& addr) { opModM(addr, Reg32(0), 0x0F, 0x18); }
 void movhps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x16, 0x100); }
 void movlps(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x12, 0x100); }
 void movhpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x16, 0x66); }
 void movlpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x12, 0x66); }
-void cmovo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 0); }
+void cmovo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 0); }
 void jo(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x70, 0x80, 0x0F); }
 void jo(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x70, 0x80, 0x0F); }
 void jo(const char *label, LabelType type = T_AUTO) { jo(std::string(label), type); }
 void jo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x70, 0x80, 0x0F); }
-void seto(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 0); }
-void cmovno(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 1); }
+void seto(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 0); }
+void cmovno(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 1); }
 void jno(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x71, 0x81, 0x0F); }
 void jno(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x71, 0x81, 0x0F); }
 void jno(const char *label, LabelType type = T_AUTO) { jno(std::string(label), type); }
 void jno(const void *addr) { opJmpAbs(addr, T_NEAR, 0x71, 0x81, 0x0F); }
-void setno(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 1); }
-void cmovb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 2); }
+void setno(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 1); }
+void cmovb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }
 void jb(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
 void jb(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
 void jb(const char *label, LabelType type = T_AUTO) { jb(std::string(label), type); }
 void jb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }
-void setb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 2); }
-void cmovc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 2); }
+void setb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }
+void cmovc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }
 void jc(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
 void jc(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
 void jc(const char *label, LabelType type = T_AUTO) { jc(std::string(label), type); }
 void jc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }
-void setc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 2); }
-void cmovnae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 2); }
+void setc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }
+void cmovnae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 2); }
 void jnae(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
 void jnae(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
 void jnae(const char *label, LabelType type = T_AUTO) { jnae(std::string(label), type); }
 void jnae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x72, 0x82, 0x0F); }
-void setnae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 2); }
-void cmovnb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 3); }
+void setnae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 2); }
+void cmovnb(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }
 void jnb(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
 void jnb(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
 void jnb(const char *label, LabelType type = T_AUTO) { jnb(std::string(label), type); }
 void jnb(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }
-void setnb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 3); }
-void cmovae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 3); }
+void setnb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }
+void cmovae(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }
 void jae(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
 void jae(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
 void jae(const char *label, LabelType type = T_AUTO) { jae(std::string(label), type); }
 void jae(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }
-void setae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 3); }
-void cmovnc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 3); }
+void setae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }
+void cmovnc(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 3); }
 void jnc(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
 void jnc(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
 void jnc(const char *label, LabelType type = T_AUTO) { jnc(std::string(label), type); }
 void jnc(const void *addr) { opJmpAbs(addr, T_NEAR, 0x73, 0x83, 0x0F); }
-void setnc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 3); }
-void cmove(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 4); }
+void setnc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 3); }
+void cmove(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 4); }
 void je(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }
 void je(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }
 void je(const char *label, LabelType type = T_AUTO) { je(std::string(label), type); }
 void je(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }
-void sete(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 4); }
-void cmovz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 4); }
+void sete(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }
+void cmovz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 4); }
 void jz(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }
 void jz(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }
 void jz(const char *label, LabelType type = T_AUTO) { jz(std::string(label), type); }
 void jz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x74, 0x84, 0x0F); }
-void setz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 4); }
-void cmovne(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 5); }
+void setz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 4); }
+void cmovne(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 5); }
 void jne(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }
 void jne(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }
 void jne(const char *label, LabelType type = T_AUTO) { jne(std::string(label), type); }
 void jne(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }
-void setne(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 5); }
-void cmovnz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 5); }
+void setne(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }
+void cmovnz(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 5); }
 void jnz(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }
 void jnz(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }
 void jnz(const char *label, LabelType type = T_AUTO) { jnz(std::string(label), type); }
 void jnz(const void *addr) { opJmpAbs(addr, T_NEAR, 0x75, 0x85, 0x0F); }
-void setnz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 5); }
-void cmovbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 6); }
+void setnz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 5); }
+void cmovbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 6); }
 void jbe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }
 void jbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }
 void jbe(const char *label, LabelType type = T_AUTO) { jbe(std::string(label), type); }
 void jbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }
-void setbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 6); }
-void cmovna(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 6); }
+void setbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }
+void cmovna(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 6); }
 void jna(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }
 void jna(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }
 void jna(const char *label, LabelType type = T_AUTO) { jna(std::string(label), type); }
 void jna(const void *addr) { opJmpAbs(addr, T_NEAR, 0x76, 0x86, 0x0F); }
-void setna(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 6); }
-void cmovnbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 7); }
+void setna(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 6); }
+void cmovnbe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 7); }
 void jnbe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }
 void jnbe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }
 void jnbe(const char *label, LabelType type = T_AUTO) { jnbe(std::string(label), type); }
 void jnbe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }
-void setnbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 7); }
-void cmova(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 7); }
+void setnbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }
+void cmova(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 7); }
 void ja(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }
 void ja(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }
 void ja(const char *label, LabelType type = T_AUTO) { ja(std::string(label), type); }
 void ja(const void *addr) { opJmpAbs(addr, T_NEAR, 0x77, 0x87, 0x0F); }
-void seta(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 7); }
-void cmovs(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 8); }
+void seta(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 7); }
+void cmovs(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 8); }
 void js(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x78, 0x88, 0x0F); }
 void js(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x78, 0x88, 0x0F); }
 void js(const char *label, LabelType type = T_AUTO) { js(std::string(label), type); }
 void js(const void *addr) { opJmpAbs(addr, T_NEAR, 0x78, 0x88, 0x0F); }
-void sets(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 8); }
-void cmovns(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 9); }
+void sets(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 8); }
+void cmovns(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 9); }
 void jns(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x79, 0x89, 0x0F); }
 void jns(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x79, 0x89, 0x0F); }
 void jns(const char *label, LabelType type = T_AUTO) { jns(std::string(label), type); }
 void jns(const void *addr) { opJmpAbs(addr, T_NEAR, 0x79, 0x89, 0x0F); }
-void setns(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 9); }
-void cmovp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 10); }
+void setns(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 9); }
+void cmovp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 10); }
 void jp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }
 void jp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }
 void jp(const char *label, LabelType type = T_AUTO) { jp(std::string(label), type); }
 void jp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }
-void setp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 10); }
-void cmovpe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 10); }
+void setp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }
+void cmovpe(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 10); }
 void jpe(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }
 void jpe(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }
 void jpe(const char *label, LabelType type = T_AUTO) { jpe(std::string(label), type); }
 void jpe(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7A, 0x8A, 0x0F); }
-void setpe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 10); }
-void cmovnp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 11); }
+void setpe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 10); }
+void cmovnp(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 11); }
 void jnp(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }
 void jnp(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }
 void jnp(const char *label, LabelType type = T_AUTO) { jnp(std::string(label), type); }
 void jnp(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }
-void setnp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 11); }
-void cmovpo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 11); }
+void setnp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }
+void cmovpo(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 11); }
 void jpo(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }
 void jpo(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }
 void jpo(const char *label, LabelType type = T_AUTO) { jpo(std::string(label), type); }
 void jpo(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7B, 0x8B, 0x0F); }
-void setpo(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 11); }
-void cmovl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 12); }
+void setpo(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 11); }
+void cmovl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 12); }
 void jl(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }
 void jl(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }
 void jl(const char *label, LabelType type = T_AUTO) { jl(std::string(label), type); }
 void jl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }
-void setl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 12); }
-void cmovnge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 12); }
+void setl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }
+void cmovnge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 12); }
 void jnge(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }
 void jnge(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }
 void jnge(const char *label, LabelType type = T_AUTO) { jnge(std::string(label), type); }
 void jnge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7C, 0x8C, 0x0F); }
-void setnge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 12); }
-void cmovnl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 13); }
+void setnge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 12); }
+void cmovnl(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 13); }
 void jnl(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }
 void jnl(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }
 void jnl(const char *label, LabelType type = T_AUTO) { jnl(std::string(label), type); }
 void jnl(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }
-void setnl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 13); }
-void cmovge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 13); }
+void setnl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }
+void cmovge(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 13); }
 void jge(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }
 void jge(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }
 void jge(const char *label, LabelType type = T_AUTO) { jge(std::string(label), type); }
 void jge(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7D, 0x8D, 0x0F); }
-void setge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 13); }
-void cmovle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 14); }
+void setge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 13); }
+void cmovle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 14); }
 void jle(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }
 void jle(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }
 void jle(const char *label, LabelType type = T_AUTO) { jle(std::string(label), type); }
 void jle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }
-void setle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 14); }
-void cmovng(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 14); }
+void setle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }
+void cmovng(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 14); }
 void jng(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }
 void jng(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }
 void jng(const char *label, LabelType type = T_AUTO) { jng(std::string(label), type); }
 void jng(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7E, 0x8E, 0x0F); }
-void setng(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 14); }
-void cmovnle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 15); }
+void setng(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 14); }
+void cmovnle(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 15); }
 void jnle(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }
 void jnle(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }
 void jnle(const char *label, LabelType type = T_AUTO) { jnle(std::string(label), type); }
 void jnle(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }
-void setnle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 15); }
-void cmovg(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, B01000000 | 15); }
+void setnle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }
+void cmovg(const Reg& reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0x40 | 15); }
 void jg(std::string label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }
 void jg(const Label& label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }
 void jg(const char *label, LabelType type = T_AUTO) { jg(std::string(label), type); }
 void jg(const void *addr) { opJmpAbs(addr, T_NEAR, 0x7F, 0x8F, 0x0F); }
-void setg(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 15); }
+void setg(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, 0x90 | 15); }
 #ifdef XBYAK32
 void jcxz(std::string label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }
 void jcxz(const Label& label) { db(0x67); opJmp(label, T_SHORT, 0xe3, 0, 0); }