aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--COPYRIGHT2
-rw-r--r--gen/gen_code.cpp572
-rw-r--r--readme.txt11
-rw-r--r--readme_e.txt15
-rw-r--r--sample/Makefile11
-rw-r--r--sample/bf.cpp27
-rw-r--r--sample/calc.cpp10
-rw-r--r--sample/test0.cpp1
-rw-r--r--sample/test_util.cpp29
-rw-r--r--test/Makefile5
-rw-r--r--test/make_nm.cpp696
-rw-r--r--test/nm.cpp7460
-rw-r--r--test/test_address.bat2
-rwxr-xr-xtest/test_nm.sh2
-rw-r--r--test/test_nm_all.bat2
-rw-r--r--xbyak.sln10
-rw-r--r--xbyak/xbyak.h247
-rw-r--r--xbyak/xbyak_mnemonic.h656
-rw-r--r--xbyak/xbyak_util.h18
19 files changed, 3351 insertions, 6425 deletions
diff --git a/COPYRIGHT b/COPYRIGHT
index ed08fcd..118291d 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,5 +1,5 @@
-Copyright (c) 2007-2010 MITSUNARI Shigeo
+Copyright (c) 2007-2011 MITSUNARI Shigeo
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/gen/gen_code.cpp b/gen/gen_code.cpp
index 57512bf..b1546ea 100644
--- a/gen/gen_code.cpp
+++ b/gen/gen_code.cpp
@@ -6,6 +6,35 @@
using namespace Xbyak;
+enum {
+ PP_66 = 1 << 0,
+ PP_F3 = 1 << 1,
+ PP_F2 = 1 << 2,
+ MM_0F = 1 << 5,
+ MM_0F38 = 1 << 6,
+ MM_0F3A = 1 << 7
+};
+
+std::string type2String(int type)
+{
+ std::string str;
+ if (type & MM_0F) {
+ str = "MM_0F";
+ } else if (type & MM_0F38) {
+ str = "MM_0F38";
+ } else if (type & MM_0F3A) {
+ str = "MM_0F3A";
+ }
+ if (type & PP_66) {
+ str += " | PP_66";
+ } else if (type & PP_F3) {
+ str += " | PP_F3";
+ } else if (type & PP_F2) {
+ str += " | PP_F2";
+ }
+ return str;
+}
+
void put()
{
const int NO = CodeGenerator::NONE;
@@ -393,7 +422,7 @@ void put()
const Tbl *p = &tbl[i];
printf("void cmov%s(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | %d); }\n", p->name, p->ext);
printf("void j%s(const char *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 set%s(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | %d); }\n", p->name, p->ext);
+ printf("void set%s(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | %d); }\n", p->name, p->ext);
}
}
////////////////////////////////////////////////////////////////
@@ -453,6 +482,7 @@ void put()
{ "rdmsr", 0x0F, B00110010 },
{ "rdpmc", 0x0F, B00110011 },
{ "rdtsc", 0x0F, B00110001 },
+ { "rdtscp", 0x0F, 0x01, 0xF9 },
{ "wait", B10011011 },
{ "wbinvd", 0x0F, B00001001 },
{ "wrmsr", 0x0F, B00110000 },
@@ -461,6 +491,10 @@ void put()
{ "popf", B10011101 },
{ "pushf", B10011100 },
+ { "vzeroall", 0xC5, 0xFC, 0x77 },
+ { "vzeroupper", 0xC5, 0xF8, 0x77 },
+ { "xgetbv", 0x0F, 0x01, 0xD0 },
+
// FPU
{ "f2xm1", 0xD9, 0xF0 },
{ "fabs", 0xD9, 0xE1 },
@@ -575,7 +609,7 @@ void put()
};
for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl *p = &tbl[i];
- printf("void %s(const Operand& op) { opR_ModM(op, 0, 3, %d, 0x%02X); }\n", p->name, p->ext, p->code);
+ printf("void %s(const Operand& op) { opR_ModM(op, 0, %d, 0x%02X); }\n", p->name, p->ext, p->code);
}
}
{
@@ -651,7 +685,7 @@ void put()
for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl *p = &tbl[i];
int preCode = 0x38;
- printf("void %s(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x%02X, 0x66, %d, 0x38); }\n", p->name, p->code, NO);
+ printf("void %s(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x%02X, 0x66, NONE, 0x38); }\n", p->name, p->code);
}
printf("void palignr(const Mmx& mmx, const Operand& op, int imm) { opMMX(mmx, op, 0x0f, 0x66, static_cast<uint8>(imm), 0x3a); }\n");
}
@@ -693,10 +727,15 @@ void put()
{ 0x41, "phminposuw"},
// SSE4.2
{ 0x37, "pcmpgtq" },
+ { 0xde, "aesdec" },
+ { 0xdf, "aesdeclast" },
+ { 0xdc, "aesenc" },
+ { 0xdd, "aesenclast" },
+ { 0xdb, "aesimc" },
};
for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl *p = &tbl[i];
- printf("void %s(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x%02X, 0x66, isXMM_XMMorMEM, %d, 0x38); }\n", p->name, p->code, NO);
+ printf("void %s(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x%02X, 0x66, isXMM_XMMorMEM, NONE, 0x38); }\n", p->name, p->code);
}
}
{
@@ -720,6 +759,8 @@ void put()
{ 0x61, "pcmpestri" },
{ 0x62, "pcmpistrm" },
{ 0x63, "pcmpistri" },
+ { 0x44, "pclmulqdq" },
+ { 0xdf, "aeskeygenassist" },
};
for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const Tbl *p = &tbl[i];
@@ -867,6 +908,529 @@ void put()
printf("void %s(const Fpu& reg) { opFpu(reg, 0x%02X, 0x%02X); }\n", p->name, p->code1, p->code2);
}
}
+ // AVX
+ { // pd, ps, sd, ss
+ const struct Tbl {
+ uint8 code;
+ const char *name;
+ bool only_pd_ps;
+ } tbl[] = {
+ { 0x58, "add", false },
+ { 0x5C, "sub", false },
+ { 0x59, "mul", false },
+ { 0x5E, "div", false },
+ { 0x5F, "max", false },
+ { 0x5D, "min", false },
+ { 0x54, "and", true },
+ { 0x55, "andn", true },
+ { 0x56, "or", true },
+ { 0x57, "xor", true },
+ };
+ for (int i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ printf("void v%spd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x%02X, true); }\n", p->name, p->code);
+ printf("void v%sps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x%02X, true); }\n", p->name, p->code);
+ if (p->only_pd_ps) continue;
+ printf("void v%ssd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x%02X, false); }\n", p->name, p->code);
+ printf("void v%sss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F3, 0x%02X, false); }\n", p->name, p->code);
+ }
+ }
+ // (x, x, x/m[, imm]) or (y, y, y/m[, imm])
+ {
+ const struct Tbl {
+ uint8 code;
+ const char *name;
+ int type;
+ bool supportYMM;
+ int w;
+ bool hasIMM;
+ bool enableOmit;
+ } tbl[] = {
+ { 0x0D, "blendpd", MM_0F3A | PP_66, true, 0, true, true },
+ { 0x0C, "blendps", MM_0F3A | PP_66, true, 0, true, true },
+ { 0x41, "dppd", MM_0F3A | PP_66, false, 0, true, true },
+ { 0x40, "dpps", MM_0F3A | PP_66, true, 0, true, true },
+ { 0x42, "mpsadbw", MM_0F3A | PP_66, false, 0, true, true },
+ { 0x0E, "pblendw", MM_0F3A | PP_66, false, 0, true, true },
+ { 0x0B, "roundsd", MM_0F3A | PP_66, false, 0, true, true },
+ { 0x0A, "roundss", MM_0F3A | PP_66, false, 0, true, true },
+ { 0x44, "pclmulqdq", MM_0F3A | PP_66, false, 0, true, true },
+ { 0x0C, "permilps", MM_0F38 | PP_66, true, 0, false, false },
+ { 0x0D, "permilpd", MM_0F38 | PP_66, true, 0, false, false },
+ { 0xC2, "cmppd", MM_0F | PP_66, true, -1, true, true },
+ { 0xC2, "cmpps", MM_0F, true, -1, true, true },
+ { 0xC2, "cmpsd", MM_0F | PP_F2, false, -1, true, true },
+ { 0xC2, "cmpss", MM_0F | PP_F3, false, -1, true, true },
+ { 0x5A, "cvtsd2ss", MM_0F | PP_F2, false, -1, false, true },
+ { 0x5A, "cvtss2sd", MM_0F | PP_F3, false, -1, false, true },
+ { 0x21, "insertps", MM_0F3A | PP_66, false, 0, true, true },
+ { 0x63, "packsswb", MM_0F | PP_66, false, -1, false, true },
+ { 0x6B, "packssdw", MM_0F | PP_66, false, -1, false, true },
+ { 0x67, "packuswb", MM_0F | PP_66, false, -1, false, true },
+ { 0x2B, "packusdw", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0xFC, "paddb", MM_0F | PP_66, false, -1, false, true },
+ { 0xFD, "paddw", MM_0F | PP_66, false, -1, false, true },
+ { 0xFE, "paddd", MM_0F | PP_66, false, -1, false, true },
+ { 0xD4, "paddq", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xEC, "paddsb", MM_0F | PP_66, false, -1, false, true },
+ { 0xED, "paddsw", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xDC, "paddusb", MM_0F | PP_66, false, -1, false, true },
+ { 0xDD, "paddusw", MM_0F | PP_66, false, -1, false, true },
+
+ { 0x0F, "palignr", MM_0F3A | PP_66, false, -1, true, true },
+
+ { 0xDB, "pand", MM_0F | PP_66, false, -1, false, true },
+ { 0xDF, "pandn", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xE0, "pavgb", MM_0F | PP_66, false, -1, false, true },
+ { 0xE3, "pavgw", MM_0F | PP_66, false, -1, false, true },
+
+ { 0x74, "pcmpeqb", MM_0F | PP_66, false, -1, false, true },
+ { 0x75, "pcmpeqw", MM_0F | PP_66, false, -1, false, true },
+ { 0x76, "pcmpeqd", MM_0F | PP_66, false, -1, false, true },
+ { 0x29, "pcmpeqq", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0x64, "pcmpgtb", MM_0F | PP_66, false, -1, false, true },
+ { 0x65, "pcmpgtw", MM_0F | PP_66, false, -1, false, true },
+ { 0x66, "pcmpgtd", MM_0F | PP_66, false, -1, false, true },
+ { 0x37, "pcmpgtq", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0x01, "phaddw", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x02, "phaddd", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x03, "phaddsw", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0x05, "phsubw", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x06, "phsubd", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x07, "phsubsw", MM_0F38 | PP_66, false, -1, false, true },
+ { 0xF5, "pmaddwd", MM_0F | PP_66, false, -1, false, true },
+ { 0x04, "pmaddubsw", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0x3C, "pmaxsb", MM_0F38 | PP_66, false, -1, false, true },
+ { 0xEE, "pmaxsw", MM_0F | PP_66, false, -1, false, true },
+ { 0x3D, "pmaxsd", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0xDE, "pmaxub", MM_0F | PP_66, false, -1, false, true },
+ { 0x3E, "pmaxuw", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x3F, "pmaxud", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0x38, "pminsb", MM_0F38 | PP_66, false, -1, false, true },
+ { 0xEA, "pminsw", MM_0F | PP_66, false, -1, false, true },
+ { 0x39, "pminsd", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0xDA, "pminub", MM_0F | PP_66, false, -1, false, true },
+ { 0x3A, "pminuw", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x3B, "pminud", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0xE4, "pmulhuw", MM_0F | PP_66, false, -1, false, true },
+ { 0x0B, "pmulhrsw", MM_0F38 | PP_66, false, -1, false, true },
+ { 0xE5, "pmulhw", MM_0F | PP_66, false, -1, false, true },
+ { 0xD5, "pmullw", MM_0F | PP_66, false, -1, false, true },
+ { 0x40, "pmulld", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0xF4, "pmuludq", MM_0F | PP_66, false, -1, false, true },
+ { 0x28, "pmuldq", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0xEB, "por", MM_0F | PP_66, false, -1, false, true },
+ { 0xF6, "psadbw", MM_0F | PP_66, false, -1, false, true },
+
+ { 0x00, "pshufb", MM_0F38 | PP_66, false, -1, false, false },
+
+ { 0x08, "psignb", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x09, "psignw", MM_0F38 | PP_66, false, -1, false, true },
+ { 0x0A, "psignd", MM_0F38 | PP_66, false, -1, false, true },
+
+ { 0xF1, "psllw", MM_0F | PP_66, false, -1, false, true },
+ { 0xF2, "pslld", MM_0F | PP_66, false, -1, false, true },
+ { 0xF3, "psllq", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xE1, "psraw", MM_0F | PP_66, false, -1, false, true },
+ { 0xE2, "psrad", MM_0F | PP_66, false, -1, false, true },
+ { 0xD1, "psrlw", MM_0F | PP_66, false, -1, false, true },
+ { 0xD2, "psrld", MM_0F | PP_66, false, -1, false, true },
+ { 0xD3, "psrlq", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xF8, "psubb", MM_0F | PP_66, false, -1, false, true },
+ { 0xF9, "psubw", MM_0F | PP_66, false, -1, false, true },
+ { 0xFA, "psubd", MM_0F | PP_66, false, -1, false, true },
+ { 0xFB, "psubq", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xE8, "psubsb", MM_0F | PP_66, false, -1, false, true },
+ { 0xE9, "psubsw", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xD8, "psubusb", MM_0F | PP_66, false, -1, false, true },
+ { 0xD9, "psubusw", MM_0F | PP_66, false, -1, false, true },
+
+ { 0x68, "punpckhbw", MM_0F | PP_66, false, -1, false, true },
+ { 0x69, "punpckhwd", MM_0F | PP_66, false, -1, false, true },
+ { 0x6A, "punpckhdq", MM_0F | PP_66, false, -1, false, true },
+ { 0x6D, "punpckhqdq", MM_0F | PP_66, false, -1, false, true },
+
+ { 0x60, "punpcklbw", MM_0F | PP_66, false, -1, false, true },
+ { 0x61, "punpcklwd", MM_0F | PP_66, false, -1, false, true },
+ { 0x62, "punpckldq", MM_0F | PP_66, false, -1, false, true },
+ { 0x6C, "punpcklqdq", MM_0F | PP_66, false, -1, false, true },
+
+ { 0xEF, "pxor", MM_0F | PP_66, false, -1, false, true },
+
+ { 0x53, "rcpss", MM_0F | PP_F3, false, -1, false, true },
+ { 0x52, "rsqrtss", MM_0F | PP_F3, false, -1, false, true },
+
+ { 0xC6, "shufpd", MM_0F | PP_66, true, -1, true, true },
+ { 0xC6, "shufps", MM_0F, true, -1, true, true },
+
+ { 0x51, "sqrtsd", MM_0F | PP_F2, false, -1, false, true },
+ { 0x51, "sqrtss", MM_0F | PP_F3, false, -1, false, true },
+
+ { 0x15, "unpckhpd", MM_0F | PP_66, true, -1, false, true },
+ { 0x15, "unpckhps", MM_0F, true, -1, false, true },
+
+ { 0x14, "unpcklpd", MM_0F | PP_66, true, -1, false, true },
+ { 0x14, "unpcklps", MM_0F, true, -1, false, true },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ std::string type = type2String(p->type);
+ printf("void v%s(const Xmm& xm1, const Xmm& xm2, const Operand& op%s) { opAVX_X_X_XM(xm1, xm2, op, %s, 0x%02X, %s, %d)%s; }\n"
+ , p->name, p->hasIMM ? ", uint8 imm" : "", type.c_str(), p->code, p->supportYMM ? "true" : "false", p->w, p->hasIMM ? "; db(imm)" : "");
+ if (!p->enableOmit) continue;
+ printf("void v%s(const Xmm& xmm, const Operand& op%s) { opAVX_X_X_XM(xmm, xmm, op, %s, 0x%02X, %s, %d)%s; }\n"
+ , p->name, p->hasIMM ? ", uint8 imm" : "", type.c_str(), p->code, p->supportYMM ? "true" : "false", p->w, p->hasIMM ? "; db(imm)" : "");
+ }
+ }
+ // (x, x/m[, imm]) or (y, y/m[, imm])
+ {
+ const struct Tbl {
+ uint8 code;
+ const char *name;
+ int type;
+ bool supportYMM;
+ int w;
+ bool hasIMM;
+ } tbl[] = {
+ { 0xDF, "aeskeygenassist", MM_0F3A | PP_66, false, 0, true },
+ { 0x09, "roundpd", MM_0F3A | PP_66, true, 0, true },
+ { 0x08, "roundps", MM_0F3A | PP_66, true, 0, true },
+ { 0x05, "permilpd", MM_0F3A | PP_66, true, 0, true },
+ { 0x04, "permilps", MM_0F3A | PP_66, true, 0, true },
+ { 0x61, "pcmpestri", MM_0F3A | PP_66, false, 0, true },
+ { 0x60, "pcmpestrm", MM_0F3A | PP_66, false, 0, true },
+ { 0x63, "pcmpistri", MM_0F3A | PP_66, false, 0, true },
+ { 0x62, "pcmpistrm", MM_0F3A | PP_66, false, 0, true },
+ { 0x0E, "testps", MM_0F38 | PP_66, true, 0, false },
+ { 0x0F, "testpd", MM_0F38 | PP_66, true, 0, false },
+ { 0x2F, "comisd", MM_0F | PP_66, false, -1, false },
+ { 0x2F, "comiss", MM_0F, false, -1, false },
+ { 0x5B, "cvtdq2ps", MM_0F, true, -1, false },
+ { 0x5B, "cvtps2dq", MM_0F | PP_66, true, -1, false },
+ { 0x5B, "cvttps2dq", MM_0F | PP_F3, true, -1, false },
+ { 0x28, "movapd", MM_0F | PP_66, true, -1, false },
+ { 0x28, "movaps", MM_0F, true, -1, false },
+ { 0x12, "movddup", MM_0F | PP_F2, true, -1, false },
+ { 0x6F, "movdqa", MM_0F | PP_66, true, -1, false },
+ { 0x6F, "movdqu", MM_0F | PP_F3, true, -1, false },
+ { 0x16, "movshdup", MM_0F | PP_F3, true, -1, false },
+ { 0x12, "movsldup", MM_0F | PP_F3, true, -1, false },
+ { 0x10, "movupd", MM_0F | PP_66, true, -1, false },
+ { 0x10, "movups", MM_0F, true, -1, false },
+
+ { 0x1C, "pabsb", MM_0F38 | PP_66, false, -1, false },
+ { 0x1D, "pabsw", MM_0F38 | PP_66, false, -1, false },
+ { 0x1E, "pabsd", MM_0F38 | PP_66, false, -1, false },
+ { 0x41, "phminposuw", MM_0F38 | PP_66, false, -1, false },
+
+ { 0x20, "pmovsxbw", MM_0F38 | PP_66, false, -1, false },
+ { 0x21, "pmovsxbd", MM_0F38 | PP_66, false, -1, false },
+ { 0x22, "pmovsxbq", MM_0F38 | PP_66, false, -1, false },
+ { 0x23, "pmovsxwd", MM_0F38 | PP_66, false, -1, false },
+ { 0x24, "pmovsxwq", MM_0F38 | PP_66, false, -1, false },
+ { 0x25, "pmovsxdq", MM_0F38 | PP_66, false, -1, false },
+
+ { 0x30, "pmovzxbw", MM_0F38 | PP_66, false, -1, false },
+ { 0x31, "pmovzxbd", MM_0F38 | PP_66, false, -1, false },
+ { 0x32, "pmovzxbq", MM_0F38 | PP_66, false, -1, false },
+ { 0x33, "pmovzxwd", MM_0F38 | PP_66, false, -1, false },
+ { 0x34, "pmovzxwq", MM_0F38 | PP_66, false, -1, false },
+ { 0x35, "pmovzxdq", MM_0F38 | PP_66, false, -1, false },
+
+ { 0x70, "pshufd", MM_0F | PP_66, false, -1, true },
+ { 0x70, "pshufhw", MM_0F | PP_F3, false, -1, true },
+ { 0x70, "pshuflw", MM_0F | PP_F2, false, -1, true },
+
+ { 0x17, "ptest", MM_0F38 | PP_66, false, -1, false },
+ { 0x53, "rcpps", MM_0F, true, -1, false },
+ { 0x52, "rsqrtps", MM_0F, true, -1, false },
+
+ { 0x51, "sqrtpd", MM_0F | PP_66, true, -1, false },
+ { 0x51, "sqrtps", MM_0F, true, -1, false },
+
+ { 0x2E, "ucomisd", MM_0F | PP_66, false, -1, false },
+ { 0x2E, "ucomiss", MM_0F, false, -1, false },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ std::string type = type2String(p->type);
+ printf("void v%s(const Xmm& xm, const Operand& op%s) { opAVX_X_XM_IMM(xm, op, %s, 0x%02X, %s, %d%s); }\n"
+ , p->name, p->hasIMM ? ", uint8 imm" : "", type.c_str(), p->code, p->supportYMM ? "true" : "false", p->w, p->hasIMM ? ", imm" : "");
+ }
+ }
+ // (m, x), (m, y)
+ {
+ const struct Tbl {
+ uint8 code;
+ const char *name;
+ int type;
+ bool supportYMM;
+ int w;
+ } tbl[] = {
+ { 0x29, "movapd", MM_0F | PP_66, true, -1 },
+ { 0x29, "movaps", MM_0F, true, -1 },
+ { 0x7F, "movdqa", MM_0F | PP_66, true, -1 },
+ { 0x7F, "movdqu", MM_0F | PP_F3, true, -1 },
+ { 0x11, "movupd", MM_0F | PP_66, true, -1 },
+ { 0x11, "movups", MM_0F, true, -1 },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ std::string type = type2String(p->type);
+ printf("void v%s(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, %s, 0x%02X, %s, %d); }\n"
+ , p->name, type.c_str(), p->code, p->supportYMM ? "true" : "false", p->w);
+ }
+ }
+ // (x, x/m), (y, y/m), (x, x, x/m), (y, y, y/m)
+ {
+ const struct Tbl {
+ uint8 code;
+ const char *name;
+ int type;
+ bool supportYMM;
+ int w;
+ } tbl[] = {
+ { 0xD0, "addsubpd", MM_0F | PP_66, true, -1 },
+ { 0xD0, "addsubps", MM_0F | PP_F2, true, -1 },
+ { 0x7C, "haddpd", MM_0F | PP_66, true, -1 },
+ { 0x7C, "haddps", MM_0F | PP_F2, true, -1 },
+ { 0x7D, "hsubpd", MM_0F | PP_66, true, -1 },
+ { 0x7D, "hsubps", MM_0F | PP_F2, true, -1 },
+
+ { 0xDC, "aesenc", MM_0F38 | PP_66, false, 0 },
+ { 0xDD, "aesenclast", MM_0F38 | PP_66, false, 0 },
+ { 0xDE, "aesdec", MM_0F38 | PP_66, false, 0 },
+ { 0xDF, "aesdeclast", MM_0F38 | PP_66, false, 0 },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ std::string type = type2String(p->type);
+ printf("void v%s(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, %s, 0x%02X, %s, %d); }\n"
+ , p->name, type.c_str(), p->code, p->supportYMM ? "true" : "false", p->w);
+ }
+ }
+ // vmaskmov
+ {
+ const char suf[][8] = { "ps", "pd" };
+ for (int i = 0; i < 2; i++) {
+ printf("void vmaskmov%s(const Xmm& xm1, const Xmm& xm2, const Address& addr) { opAVX_X_X_XM(xm1, xm2, addr, MM_0F38 | PP_66, 0x%02X, true, 0); }\n", suf[i], 0x2C + i);
+ printf("void vmaskmov%s(const Address& addr, const Xmm& xm1, const Xmm& xm2) { opAVX_X_X_XM(xm2, xm1, addr, MM_0F38 | PP_66, 0x%02X, true, 0); }\n", suf[i], 0x2E + i);
+ }
+ }
+ // vmov(h|l)(pd|ps)
+ {
+ const struct Tbl {
+ bool isH;
+ bool isPd;
+ uint8 code;
+ } tbl[] = {
+ { true, true, 0x16 },
+ { true, false, 0x16 },
+ { false, true, 0x12 },
+ { false, false, 0x12 },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl& p = tbl[i];
+ char c = p.isH ? 'h' : 'l';
+ const char *suf = p.isPd ? "pd" : "ps";
+ const char *type = p.isPd ? "MM_0F | PP_66" : "MM_0F";
+ printf("void vmov%c%s(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, op2, %s, 0x%02X, false); }\n"
+ , c, suf, type, p.code);
+ printf("void vmov%c%s(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, %s, 0x%02X, false); }\n"
+ , c, suf, type, p.code + 1);
+ }
+ }
+ // FMA
+ {
+ const struct Tbl {
+ uint8 code;
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { 0x08, "vfmadd", true },
+ { 0x09, "vfmadd", false },
+ { 0x06, "vfmaddsub", true },
+ { 0x07, "vfmsubadd", true },
+ { 0x0A, "vfmsub", true },
+ { 0x0B, "vfmsub", false },
+ { 0x0C, "vfnmadd", true },
+ { 0x0D, "vfnmadd", false },
+ { 0x0E, "vfnmsub", true },
+ { 0x0F, "vfnmsub", false },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ for (int j = 0; j < 2; j++) {
+ const char suf[][2][8] = {
+ { "pd", "ps" },
+ { "sd", "ss" },
+ };
+ for (int k = 0; k < 3; k++) {
+ const struct Ord {
+ const char *str;
+ uint8 code;
+ } ord[] = {
+ { "132", 0x90 },
+ { "213", 0xA0 },
+ { "231", 0xB0 },
+ };
+ printf("void %s%s%s(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x%02X, %s, %d); }\n"
+ , tbl[i].name, ord[k].str, suf[tbl[i].supportYMM ? 0 : 1][j], tbl[i].code + ord[k].code, tbl[i].supportYMM ? "true" : "false", j == 0 ? 1 : 0);
+ }
+ }
+ }
+ }
+ // FMA others
+ {
+ printf("void vaesimc(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, MM_0F38 | PP_66, 0xDB, false, 0); }\n");
+
+ printf("void vbroadcastf128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, MM_0F38 | PP_66, 0x1A, true, 0); }\n");
+ printf("void vbroadcastsd(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, MM_0F38 | PP_66, 0x19, true, 0); }\n");
+ printf("void vbroadcastss(const Xmm& x, const Address& addr) { opAVX_X_XM_IMM(x, addr, MM_0F38 | PP_66, 0x18, true, 0); }\n");
+
+ printf("void vextractf128(const Operand& op, const Ymm& y, uint8 imm) { opAVX_X_XM_IMM(y, cvtReg(op, op.isXMM(), Operand::YMM), MM_0F3A | PP_66, 0x19, true, 0, imm); }\n");
+ printf("void vinsertf128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, cvtReg(op, op.isXMM(), Operand::YMM), MM_0F3A | PP_66, 0x18, true, 0); db(imm); }\n");
+ printf("void vperm2f128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, op, MM_0F3A | PP_66, 0x06, true, 0); db(imm); }\n");
+
+ printf("void vlddqu(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F | PP_F2, 0xF0, true, 0); }\n");
+ printf("void vldmxcsr(const Address& addr) { opAVX_X_X_XM(xm2, xm0, addr, MM_0F, 0xAE, false, -1); }\n");
+ printf("void vstmxcsr(const Address& addr) { opAVX_X_X_XM(xm3, xm0, addr, MM_0F, 0xAE, false, -1); }\n");
+ printf("void vmaskmovdqu(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, MM_0F | PP_66, 0xF7, false, -1); }\n");
+
+ printf("void vpextrb(const Operand& op, const Xmm& x, uint8 imm) { if (!op.isREG(i32e) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, xm0, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x14, false); db(imm); }\n");
+ printf("void vpextrw(const Reg& r, const Xmm& x, uint8 imm) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), MM_0F | PP_66, 0xC5, false); db(imm); }\n");
+ printf("void vpextrw(const Address& addr, const Xmm& x, uint8 imm) { opAVX_X_X_XM(x, xm0, addr, MM_0F3A | PP_66, 0x15, false); db(imm); }\n");
+ printf("void vpextrd(const Operand& op, const Xmm& x, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, xm0, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x16, false, 0); db(imm); }\n");
+
+ printf("void vpinsrb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x20, false); db(imm); }\n");
+ printf("void vpinsrb(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x20, false); db(imm); }\n");
+
+ printf("void vpinsrw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F | PP_66, 0xC4, false); db(imm); }\n");
+ printf("void vpinsrw(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F | PP_66, 0xC4, false); db(imm); }\n");
+
+ printf("void vpinsrd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 0); db(imm); }\n");
+ printf("void vpinsrd(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 0); db(imm); }\n");
+
+ printf("void vpmovmskb(const Reg32e& r, const Xmm& x) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, x, MM_0F | PP_66, 0xD7, false); }\n");
+
+ }
+ // (x, x, imm), (x, imm)
+ {
+ const struct Tbl {
+ const char *name;
+ uint8 code;
+ int idx;
+ } tbl[] = {
+ { "pslldq", 0x73, 7 },
+ { "psrldq", 0x73, 3 },
+ { "psllw", 0x71, 6 },
+ { "pslld", 0x72, 6 },
+ { "psllq", 0x73, 6 },
+ { "psraw", 0x71, 4 },
+ { "psrad", 0x72, 4 },
+ { "psrlw", 0x71, 2 },
+ { "psrld", 0x72, 2 },
+ { "psrlq", 0x73, 2 },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl& p = tbl[i];
+ printf("void v%s(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm%d, x1, x2, MM_0F | PP_66, 0x%02X, false); db(imm); }\n", p.name, p.idx, p.code);
+ printf("void v%s(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm%d, x, x, MM_0F | PP_66, 0x%02X, false); db(imm); }\n", p.name, p.idx, p.code);
+ }
+ }
+ // 4-op
+ {
+ printf("void vblendvpd(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, MM_0F3A | PP_66, 0x4B, true); db(x4.getIdx() << 4); }\n");
+ printf("void vblendvpd(const Xmm& x1, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x1, op, MM_0F3A | PP_66, 0x4B, true); db(x4.getIdx() << 4); }\n");
+
+ printf("void vblendvps(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, MM_0F3A | PP_66, 0x4A, true); db(x4.getIdx() << 4); }\n");
+ printf("void vblendvps(const Xmm& x1, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x1, op, MM_0F3A | PP_66, 0x4A, true); db(x4.getIdx() << 4); }\n");
+
+ printf("void vpblendvb(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, MM_0F3A | PP_66, 0x4C, false); db(x4.getIdx() << 4); }\n");
+ printf("void vpblendvb(const Xmm& x1, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x1, op, MM_0F3A | PP_66, 0x4C, false); db(x4.getIdx() << 4); }\n");
+ }
+ // mov
+ {
+ printf("void vmovd(const Xmm& x, const Reg32& reg) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x6E, false, 0); }\n");
+ printf("void vmovd(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0x6E, false, 0); }\n");
+ printf("void vmovd(const Reg32& reg, const Xmm& x) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x7E, false, 0); }\n");
+ printf("void vmovd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0x7E, false, 0); }\n");
+
+ printf("void vmovhlps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, op, MM_0F, 0x12, false); }\n");
+ printf("void vmovlhps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, op, MM_0F, 0x16, false); }\n");
+
+ printf("void vmovmskpd(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), x.isXMM() ? xm0 : ym0, x, MM_0F | PP_66, 0x50, true, 0); }\n");
+ printf("void vmovmskps(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), x.isXMM() ? xm0 : ym0, x, MM_0F, 0x50, true, 0); }\n");
+
+ printf("void vmovntdq(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F | PP_66, 0xE7, true); }\n");
+ printf("void vmovntpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F | PP_66, 0x2B, true); }\n");
+ printf("void vmovntps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F, 0x2B, true); }\n");
+ printf("void vmovntdqa(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F38 | PP_66, 0x2A, false); }\n");
+
+ // vmovsd, vmovss
+ for (int i = 0; i < 2; i++) {
+ char c1 = i == 0 ? 'd' : 's';
+ char c2 = i == 0 ? '2' : '3';
+ printf("void vmovs%c(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, op, MM_0F | PP_F%c, 0x10, false); }\n", c1, c2);
+ printf("void vmovs%c(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F%c, 0x10, false); }\n", c1, c2);
+ printf("void vmovs%c(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F%c, 0x11, false); }\n", c1, c2);
+ }
+ }
+ // cvt
+ {
+ printf("void vcvtss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2D, false, 0); }\n");
+ printf("void vcvttss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2C, false, 0); }\n");
+ printf("void vcvtsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2D, false, 0); }\n");
+ printf("void vcvttsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2C, false, 0); }\n");
+
+ printf("void vcvtsi2ss(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !(op2.isREG(i32e) || op2.isMEM())) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, cvtReg(op2, op2.isREG(), Operand::XMM), MM_0F | PP_F3, 0x2A, false, (op1.isMEM() || op2.isMEM()) ? -1 : (op1.isREG(32) || op2.isREG(32)) ? 0 : 1); }\n");
+ printf("void vcvtsi2sd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !(op2.isREG(i32e) || op2.isMEM())) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, cvtReg(op2, op2.isREG(), Operand::XMM), MM_0F | PP_F2, 0x2A, false, (op1.isMEM() || op2.isMEM()) ? -1 : (op1.isREG(32) || op2.isREG(32)) ? 0 : 1); }\n");
+
+ printf("void vcvtps2pd(const Xmm& x, const Operand& op) { if (!op.isMEM() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, cvtReg(op, !op.isMEM(), x.isXMM() ? Operand::XMM : Operand::YMM), MM_0F, 0x5A, true); }\n");
+ printf("void vcvtdq2pd(const Xmm& x, const Operand& op) { if (!op.isMEM() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, cvtReg(op, !op.isMEM(), x.isXMM() ? Operand::XMM : Operand::YMM), MM_0F | PP_F3, 0xE6, true); }\n");
+
+ printf("void vcvtpd2ps(const Xmm& x, const Operand& op) { if (x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(op.isYMM() ? Ymm(x.getIdx()) : x, op.isYMM() ? ym0 : xm0, op, MM_0F | PP_66, 0x5A, true); }\n");
+ printf("void vcvtpd2dq(const Xmm& x, const Operand& op) { if (x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(op.isYMM() ? Ymm(x.getIdx()) : x, op.isYMM() ? ym0 : xm0, op, MM_0F | PP_F2, 0xE6, true); }\n");
+ printf("void vcvttpd2dq(const Xmm& x, const Operand& op) { if (x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(op.isYMM() ? Ymm(x.getIdx()) : x, op.isYMM() ? ym0 : xm0, op, MM_0F | PP_66, 0xE6, true); }\n");
+ }
+ // x64
+ {
+
+ printf("#ifdef XBYAK64\n");
+ printf("void vmovq(const Xmm& x, const Reg64& reg) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x6E, false, 1); }\n");
+ printf("void vmovq(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F3, 0x7E, false, -1); }\n");
+ printf("void vmovq(const Reg64& reg, const Xmm& x) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x7E, false, 1); }\n");
+ printf("void vmovq(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0xD6, false, -1); }\n");
+ printf("void vmovq(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, MM_0F | PP_F3, 0x7E, false, -1); }\n");
+
+ printf("void vpextrq(const Operand& op, const Xmm& x, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, xm0, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x16, false, 1); db(imm); }\n");
+
+ printf("void vpinsrq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 1); db(imm); }\n");
+ printf("void vpinsrq(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 1); db(imm); }\n");
+
+ printf("void vcvtss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2D, false, 1); }\n");
+ printf("void vcvttss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2C, false, 1); }\n");
+ printf("void vcvtsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2D, false, 1); }\n");
+ printf("void vcvttsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2C, false, 1); }\n");
+ printf("#endif\n");
+ }
}
int main()
diff --git a/readme.txt b/readme.txt
index f24a0f6..7dabbc9 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,5 +1,5 @@
- C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak version 2.29
+ C++用x86(IA-32), x64(AMD64, x86-64) JITアセンブラ Xbyak version 2.99
-----------------------------------------------------------------------------
◎概要
@@ -14,12 +14,12 @@
xbyak.hをインクルードするだけですぐ利用することができます.
C++の枠組み内で閉じているため,外部アセンブラは不要です.
32bit/64bit両対応です.
- 対応ニーモニック:特権命令除くx86, MMX/MMX2/SSE/SSE2/SSE3/SSSE3/SSE4/FPU(一部)
+ 対応ニーモニック:特権命令除くx86, MMX/MMX2/SSE/SSE2/SSE3/SSSE3/SSE4/FPU(一部)/AVX
・Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel Mac対応
- Windows Xp上ではVC2005 Express Ed., VC2008
+ Windows Xp上ではVC2005 Express Ed., VC2008, VC2010,
Windows Vista
- Linux (kernel 2.4.32)上ではgcc 4.3.0, CentOS 5.1上ではgcc 4.1.2
+ Linux (kernel 2.4.32)上ではgcc 4.5.0, CentOS 5.1上ではgcc 4.1.2
Intel Mac
などで動作確認をしています.
@@ -199,6 +199,9 @@ sample/{echo,hello}.bfは http://www.kmonos.net/alang/etc/brainfuck.php から
-----------------------------------------------------------------------------
◎履歴
+2011/02/04 ver 2.99 beta support AVX
+2010/12/08 ver 2.31 fix ptr [rip + 32bit offset], support rtdscp
+2010/10/19 ver 2.30 support pclmulqdq, aesdec, aesdeclast, aesenc, aesenclast, aesimc, aeskeygenassist
2010/07/07 ver 2.29 fix call(<label>)
2010/06/17 ver 2.28 move some member functions to public
2010/06/01 ver 2.27 support encoding of mov(reg64, imm) like yasm(not nasm)
diff --git a/readme_e.txt b/readme_e.txt
index 9efb5d2..8488830 100644
--- a/readme_e.txt
+++ b/readme_e.txt
@@ -1,5 +1,5 @@
- Xbyak 2.29 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
+ Xbyak 2.99 ; JIT assembler for x86(IA32), x64(AMD64, x86-64) by C++
-----------------------------------------------------------------------------
<Abstract>
@@ -12,11 +12,11 @@ x64(AMD64, x86-64) mnemonic.
header file only
you can use Xbyak's functions at once if xbyak.h is included.
-MMX/MMX2/SSE/SSE2/SSE3/SSSE3/SSE4/FPU(partial) are available.
+MMX/MMX2/SSE/SSE2/SSE3/SSSE3/SSE4/FPU(partial)/AVX are available.
Windows Xp(32bit, 64bit), Vista, Linux(32bit, 64bit), Intel Mac ready
-support Visual Studio C++ 2005 Express Ed., VC2008 Pro,
-mingw 3.4.2, icc 7.2, gcc 4.1.1, and so on.
+support Visual Studio C++ 2005 Express Ed., VC2008 Pro, VC2010,
+mingw 3.4.2, icc 7.2, gcc 4.5, and so on.
Note: "-fno-operator-names" option is required on gcc to avoid analyzing
"and", "or", etc. as operators.
@@ -148,6 +148,9 @@ http://www.opensource.org/licenses/bsd-license.php
-----------------------------------------------------------------------------
<History>
+2011/Feb/04 ver 2.99 beta support AVX
+2010/Dec/08 ver 2.31 fix ptr [rip + 32bit offset], support rdtscp
+2010/Oct/19 ver 2.30 support pclmulqdq, aesdec, aesdeclast, aesenc, aesenclast, aesimc, aeskeygenassist
2010/Jun/07 ver 2.29 fix call(<label>)
2010/Jun/17 ver 2.28 move some member functions to public
2010/Jun/01 ver 2.27 support encoding of mov(reg64, imm) like yasm(not nasm)
@@ -187,5 +190,5 @@ http://www.opensource.org/licenses/bsd-license.php
MITSUNARI Shigeo(herumi at nifty dot com)
---
-$Revision: 1.49 $
-$Date: 2010/07/07 01:00:04 $
+$Revision: 1.54 $
+$Date: 2011/02/04 03:27:59 $
diff --git a/sample/Makefile b/sample/Makefile
index 011e7f2..8df551c 100644
--- a/sample/Makefile
+++ b/sample/Makefile
@@ -14,12 +14,12 @@ endif
ifeq ($(BIT),64)
TARGET += test64 bf64 memfunc64 test_util64
ifeq ($(BOOST_EXIT),1)
-TARGET += calc64
+TARGET += calc64 calc2_64
endif
endif
ifeq ($(BOOST_EXIT),1)
-TARGET += calc
+TARGET += calc calc2
endif
all: $(TARGET)
@@ -38,6 +38,10 @@ calc:
g++ $(CFLAGS) calc.cpp -o $@ -m32
calc64:
g++ $(CFLAGS) calc.cpp -o $@ -m64
+#calc2:
+# g++ $(CFLAGS) calc2.cpp -o $@ -m32
+#calc2_64:
+# g++ $(CFLAGS) calc2.cpp -o $@ -m64
bf:
g++ $(CFLAGS) bf.cpp -o $@ -m32
@@ -67,10 +71,13 @@ test64: test0.cpp $(XBYAK_INC)
quantize : quantize.cpp $(XBYAK_INC)
calc : calc.cpp $(XBYAK_INC)
calc64 : calc.cpp $(XBYAK_INC)
+calc2 : calc2.cpp $(XBYAK_INC)
+calc2_64 : calc2.cpp $(XBYAK_INC)
bf : bf.cpp $(XBYAK_INC)
bf64 : bf.cpp $(XBYAK_INC)
memfunc : memfunc.cpp $(XBYAK_INC)
memfunc64 : memfunc.cpp $(XBYAK_INC)
toyvm : toyvm.cpp $(XBYAK_INC)
test_util : test_util.cpp $(XBYAK_INC) ../xbyak/xbyak_util.h
+test_util2 : test_util.cpp $(XBYAK_INC) ../xbyak/xbyak_util.h
diff --git a/sample/bf.cpp b/sample/bf.cpp
index 5f5a80e..8b9190f 100644
--- a/sample/bf.cpp
+++ b/sample/bf.cpp
@@ -29,7 +29,7 @@ public:
is.unget();
return count;
}
- Brainfuck(std::istream& is) : CodeGenerator(10000)
+ Brainfuck(std::istream& is) : CodeGenerator(100000)
{
// void (*)(void* putchar, void* getchar, int *stack)
using namespace Xbyak;
@@ -160,7 +160,7 @@ public:
void dump(const Xbyak::uint8 *code, size_t size)
{
- puts("#include <stdio.h>\nstatic int stack[32768];\nstatic const unsigned char code[] = {");
+ puts("#include <stdio.h>\nstatic int stack[128 * 1024];\nstatic const unsigned char code[] = {");
for (size_t i = 0; i < size; i++) {
printf("0x%02x,", code[i]); if ((i % 16) == 15) putchar('\n');
}
@@ -183,9 +183,9 @@ void dump(const Xbyak::uint8 *code, size_t size)
int main(int argc, char *argv[])
{
#ifdef XBYAK32
- puts("32bit mode");
+ fprintf(stderr, "32bit mode\n");
#else
- puts("64bit mode");
+ fprintf(stderr, "64bit mode\n");
#endif
if (argc == 1) {
fprintf(stderr, "bf filename.bf [0|1]\n");
@@ -193,13 +193,18 @@ int main(int argc, char *argv[])
}
std::ifstream ifs(argv[1]);
int mode = argc == 3 ? atoi(argv[2]) : 0;
- Brainfuck bf(ifs);
- if (mode == 0) {
- static int stack[32768];
- ((void (*)(void*, void*, int *))bf.getCode())((void*)putchar, (void*)getchar, stack);
- } else {
- dump(bf.getCode(), bf.getSize());
+ try {
+ Brainfuck bf(ifs);
+ if (mode == 0) {
+ static int stack[128 * 1024];
+ ((void (*)(void*, void*, int *))bf.getCode())((void*)putchar, (void*)getchar, stack);
+ } else {
+ dump(bf.getCode(), bf.getSize());
+ }
+ } catch (Xbyak::Error err) {
+ printf("ERR:%s(%d)\n", Xbyak::ConvertErrorToString(err), err);
+ } catch (...) {
+ printf("unknown error\n");
}
- return 0;
}
diff --git a/sample/calc.cpp b/sample/calc.cpp
index e4ecf6d..356b3b3 100644
--- a/sample/calc.cpp
+++ b/sample/calc.cpp
@@ -1,12 +1,12 @@
/*
@author herumi
- @date $Date: 2010/04/15 06:52:07 $
+ @date $Date: 2010/11/17 02:58:03 $
- tiny calculator 2
+ tiny calculator
This program generates a function to calc the value of
polynomial given by user in run-time.
- use boost::sprit
-
+ use boost::spirit::classic
+ see calc2.cpp for new version of boost::spirit
*/
#include <stdio.h>
#include <sstream>
@@ -16,8 +16,6 @@
#pragma warning(disable : 4127) // for boost(constant condition)
#pragma warning(disable : 4512) // for boost
#endif
-//#include <boost/spirit/iterator/file_iterator.hpp>
-//#include <boost/spirit/core.hpp>
#include <boost/spirit/include/classic_file_iterator.hpp>
#include <boost/spirit/include/classic_core.hpp>
#include <boost/bind.hpp>
diff --git a/sample/test0.cpp b/sample/test0.cpp
index b3f7a93..c7504d1 100644
--- a/sample/test0.cpp
+++ b/sample/test0.cpp
@@ -138,6 +138,5 @@ int main()
} catch (...) {
printf("unknown error\n");
}
- return 0;
}
diff --git a/sample/test_util.cpp b/sample/test_util.cpp
index cdca766..99035f1 100644
--- a/sample/test_util.cpp
+++ b/sample/test_util.cpp
@@ -4,6 +4,15 @@
#define NUM_OF_ARRAY(x) (sizeof(x) / sizeof(x[0]))
+struct PopCountTest : public Xbyak::CodeGenerator {
+ PopCountTest(int n)
+ {
+ mov(eax, n);
+ popcnt(eax, eax);
+ ret();
+ }
+};
+
void putCPUinfo()
{
using namespace Xbyak::util;
@@ -27,18 +36,34 @@ void putCPUinfo()
{ Cpu::tE3DN, "e3dn" },
{ Cpu::tSSE4a, "sse4a" },
{ Cpu::tSSE5, "sse5" },
+ { Cpu::tAESNI, "aesni" },
+ { Cpu::tRDTSCP, "rdtscp" },
+ { Cpu::tOSXSACE, "osxsace(xgetvb)" },
+ { Cpu::tPCLMULQDQ, "pclmulqdq" },
+ { Cpu::tAVX, "avx" },
+ { Cpu::tFMA, "fma" },
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
if (cpu.has(tbl[i].type)) printf(" %s", tbl[i].str);
}
printf("\n");
+ if (cpu.has(Cpu::tPOPCNT)) {
+ const int n = 0x12345678; // bitcount = 13
+ const int ok = 13;
+ int r = ((int (*)())(PopCountTest(n).getCode()))();
+ if (r == ok) {
+ puts("popcnt ok");
+ } else {
+ printf("popcnt ng %d %d\n", r, ok);
+ }
+ }
}
#ifdef XBYAK32
-struct EipTest : public Xbyak::util::EnableSetEip<Xbyak::CodeGenerator> {
+struct EipTest : public Xbyak::CodeGenerator {
EipTest()
{
- setEipTo(eax);
+ Xbyak::util::setEipTo(this, eax);
ret();
}
};
diff --git a/test/Makefile b/test/Makefile
index d8e66ff..89c5940 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -32,6 +32,11 @@ test: normalize_prefix jmp
./test_address.sh 64
./jmp
+test_avx:
+ ./test_avx.sh
+ ./test_avx.sh Y
+ ./test_avx.sh 64
+ ./test_avx.sh Y64
clean:
rm -rf *.o $(TARGET)
diff --git a/test/make_nm.cpp b/test/make_nm.cpp
index 105f29a..6f700b9 100644
--- a/test/make_nm.cpp
+++ b/test/make_nm.cpp
@@ -8,7 +8,7 @@ using namespace Xbyak;
const int bitEnd = 64;
const uint64 MMX = 1ULL << 0;
-const uint64 XMM = 1ULL << 1;
+const uint64 _XMM = 1ULL << 1;
const uint64 _MEM = 1ULL << 2;
const uint64 _REG32 = 1ULL << 3;
const uint64 EAX = 1ULL << 4;
@@ -30,15 +30,18 @@ const uint64 ONE = 1ULL << 19;
const uint64 CL = 1ULL << 20;
const uint64 MEM_ONLY_DISP = 1ULL << 21;
const uint64 NEG32 = 1ULL << 23;
+const uint64 _YMM = 1ULL << 24;
#ifdef XBYAK64
-const uint64 _MEMe = 1ULL << 22;
-const uint64 REG32_2 = 1ULL << 24; // r8d, ...
-const uint64 REG16_2 = 1ULL << 25; // r8w, ...
-const uint64 REG8_2 = 1ULL << 26; // r8b, ...
-const uint64 REG8_3 = 1ULL << 27; // spl, ...
-const uint64 _REG64 = 1ULL << 28; // rax, ...
-const uint64 _REG64_2 = 1ULL << 29; // r8, ...
-const uint64 RAX = 1ULL << 30;
+const uint64 _MEMe = 1ULL << 25;
+const uint64 REG32_2 = 1ULL << 26; // r8d, ...
+const uint64 REG16_2 = 1ULL << 27; // r8w, ...
+const uint64 REG8_2 = 1ULL << 28; // r8b, ...
+const uint64 REG8_3 = 1ULL << 29; // spl, ...
+const uint64 _REG64 = 1ULL << 30; // rax, ...
+const uint64 _REG64_2 = 1ULL << 31; // r8, ...
+const uint64 RAX = 1ULL << 32;
+const uint64 _XMM2 = 1ULL << 33;
+const uint64 _YMM2 = 1ULL << 34;
#else
const uint64 _MEMe = 0;
const uint64 REG32_2 = 0;
@@ -48,6 +51,8 @@ const uint64 REG8_3 = 0;
const uint64 _REG64 = 0;
const uint64 _REG64_2 = 0;
const uint64 RAX = 0;
+const uint64 _XMM2 = 0;
+const uint64 _YMM2 = 0;
#endif
const uint64 REG64 = _REG64 | _REG64_2 | RAX;
const uint64 REG32 = _REG32 | REG32_2 | EAX;
@@ -55,16 +60,18 @@ const uint64 REG16 = _REG16 | REG16_2 | AX;
const uint64 REG32e = REG32 | REG64;
const uint64 REG8 = _REG8 | REG8_2|AL;
const uint64 MEM = _MEM | _MEMe;
-const uint64 MEM64 = 1ULL << 31;
-const uint64 ST0 = 1ULL << 32;
-const uint64 STi = 1ULL << 33;
+const uint64 MEM64 = 1ULL << 35;
+const uint64 ST0 = 1ULL << 36;
+const uint64 STi = 1ULL << 37;
+const uint64 XMM = _XMM | _XMM2;
+const uint64 YMM = _YMM | _YMM2;
const uint64 NOPARA = 1ULL << (bitEnd - 1);
class Test {
const bool isXbyak_;
int funcNum_;
// check all op1, op2, op3
- void put(const char *nm, uint64 op1 = NOPARA, uint64 op2 = NOPARA, uint64 op3 = NOPARA) const
+ void put(const char *nm, uint64 op1 = NOPARA, uint64 op2 = NOPARA, uint64 op3 = NOPARA, uint64 op4 = NOPARA) const
{
for (int i = 0; i < bitEnd; i++) {
if ((op1 & (1ULL << i)) == 0) continue;
@@ -72,13 +79,17 @@ class Test {
if ((op2 & (1ULL << j)) == 0) continue;
for (int k = 0; k < bitEnd; k++) {
if ((op3 & (1ULL << k)) == 0) continue;
- printf("%s ", nm);
- if (isXbyak_) printf("(");
- if (!(op1 & NOPARA)) printf("%s", get(1ULL << i));
- if (!(op2 & NOPARA)) printf(", %s", get(1ULL << j));
- if (!(op3 & NOPARA)) printf(", %s", get(1ULL << k));
- if (isXbyak_) printf("); dump();");
- printf("\n");
+ for (int s = 0; s < bitEnd; s++) {
+ if ((op4 & (1ULL << s)) == 0) continue;
+ printf("%s ", nm);
+ if (isXbyak_) printf("(");
+ if (!(op1 & NOPARA)) printf("%s", get(1ULL << i));
+ if (!(op2 & NOPARA)) printf(", %s", get(1ULL << j));
+ if (!(op3 & NOPARA)) printf(", %s", get(1ULL << k));
+ if (!(op4 & NOPARA)) printf(", %s", get(1ULL << s));
+ if (isXbyak_) printf("); dump();");
+ printf("\n");
+ }
}
}
}
@@ -125,23 +136,36 @@ class Test {
};
return MmxTbl[idx];
}
- case XMM:
+ case _XMM:
{
- static const char XmmTbl[][6] = {
+ static const char tbl[][6] = {
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7",
- "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"
};
- static const char MyXmmTbl[][6] = {
- "xm0", "xm1", "xm2", "xm3", "xm4", "xm5", "xm6", "xm7",
- "xm8", "xm9", "xm10", "xm11", "xm12", "xm13", "xm14", "xm15"
+ return tbl[idx];
+ }
+ case _YMM:
+ {
+ static const char tbl[][6] = {
+ "ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6", "ymm7"
};
+ return tbl[idx];
+ }
#ifdef XBYAK64
- const int adj = 4;
-#else
- const int adj = 0;
-#endif
- return isXbyak_ ? MyXmmTbl[idx + adj] : XmmTbl[idx + adj];
+ case _XMM2:
+ {
+ static const char tbl[][6] = {
+ "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"
+ };
+ return tbl[idx];
+ }
+ case _YMM2:
+ {
+ static const char tbl[][6] = {
+ "ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6", "ymm7",
+ };
+ return tbl[idx];
}
+#endif
case _MEM:
return isXbyak_ ? "ptr[eax+ecx+3]" : "[eax+ecx+3]";
case _MEMe:
@@ -268,7 +292,7 @@ class Test {
}
void putSIMPLE() const
{
- const char tbl[][10] = {
+ const char tbl[][20] = {
#ifdef XBYAK64
"cdqe",
#else
@@ -325,6 +349,10 @@ class Test {
"popf",
"pushf",
+ "xgetbv",
+ "vzeroall",
+ "vzeroupper",
+
"f2xm1",
"fabs",
"faddp",
@@ -373,6 +401,23 @@ class Test {
put("bswap", REG32e);
put("lea", REG32e, MEM);
+#if 0
+#ifdef XBYAK64
+ put("jmp", REG64);
+ put("call", REG64);
+#else
+ put("jmp", REG32);
+ put("call", REG32);
+#endif
+ put("jmp", MEM);
+ put("jmp", MEM);
+ put("jmp", MEM);
+ put("call", REG16|MEM|MEM_ONLY_DISP);
+ put("call", "getCode() + 5", "$ + 5");
+#endif
+ }
+ void putJmp() const
+ {
#ifdef XBYAK64
put("jmp", REG64);
put("call", REG64);
@@ -381,8 +426,24 @@ class Test {
put("call", REG32);
#endif
put("jmp", MEM);
+ put("jmp", MEM);
+ put("jmp", MEM);
put("call", REG16|MEM|MEM_ONLY_DISP);
+#ifndef USE_YASM
+ // call(ptr [getCode() + 5]); means to construct the opecode of "call"
+ // after calling getCode().
+ // Its behavior is same as NASM(MASM). YASM makes different opecode.
put("call", "getCode() + 5", "$ + 5");
+#endif
+
+#ifdef XBYAK64
+ put("jmp", "ptr[(void*)0x12345678]", "[0x12345678]");
+ put("call", "ptr[(void*)0x12345678]", "[0x12345678]");
+#ifdef USE_YASM
+ put("jmp", "ptr[rip + 0x12345678]", "[rip+0x12345678]");
+ put("call", "ptr[rip + 0x12345678]", "[rip+0x12345678]");
+#endif
+#endif
}
void putMMX1() const
{
@@ -642,8 +703,8 @@ class Test {
{
static const struct Tbl {
const char *name;
- int op1;
- int op2;
+ uint64 op1;
+ uint64 op2;
} tbl[] = {
{ "cvtpi2ps", XMM, MMX|MEM },
{ "cvtps2pi", MMX, XMM|MEM },
@@ -993,6 +1054,11 @@ class Test {
"pmulld",
"phminposuw",
"pcmpgtq",
+ "aesdec",
+ "aesdeclast",
+ "aesenc",
+ "aesenclast",
+ "aesimc",
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const char *p = tbl[i];
@@ -1016,6 +1082,8 @@ class Test {
"pcmpestri",
"pcmpistrm",
"pcmpistri",
+ "pclmulqdq",
+ "aeskeygenassist",
};
for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
const char *p = tbl[i];
@@ -1035,6 +1103,10 @@ class Test {
put("popcnt", REG64, REG64|MEM);
put("crc32", REG32, REG8|REG16|REG32|MEM8|MEM16|MEM32);
put("crc32", REG64, REG64|REG8|MEM8);
+#ifdef XBYAK64
+ put("pextrq", REG64|MEM, XMM, IMM);
+ put("pinsrq", XMM, REG64|MEM, IMM);
+#endif
}
void putFpuMem16_32() const
{
@@ -1140,6 +1212,545 @@ class Test {
put(tbl[i], STi);
}
}
+ void putAVX1()
+ {
+ const struct Tbl {
+ const char *name;
+ bool only_pd_ps;
+ } tbl[] = {
+ { "add", false },
+ { "sub", false },
+ { "mul", false },
+ { "div", false },
+ { "max", false },
+ { "min", false },
+ { "and", true },
+ { "andn", true },
+ { "or", true },
+ { "xor", true },
+
+ { "addsub", true },
+ { "hadd", true },
+ { "hsub", true },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const struct Suf {
+ const char *suf;
+ bool supportYMM;
+ } suf[] = {
+ { "pd", true },
+ { "ps", true },
+ { "sd", false },
+ { "ss", false },
+ };
+ for (size_t j = 0; j < NUM_OF_ARRAY(suf); j++) {
+ if (tbl[i].only_pd_ps && j == 2) break;
+ std::string name = std::string("v") + tbl[i].name + suf[j].suf;
+ const char *p = name.c_str();
+ put(p, XMM, XMM | MEM);
+ put(p, XMM, XMM, XMM | MEM);
+ if (!suf[j].supportYMM) continue;
+ put(p, YMM, YMM | MEM);
+ put(p, YMM, YMM, YMM | MEM);
+ }
+ }
+ }
+ void putAVX_X_X_XM_omit()
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vaesenc", false },
+ { "vaesenclast", false },
+ { "vaesdec", false },
+ { "vaesdeclast", false },
+ { "vcvtsd2ss", false },
+ { "vcvtss2sd", false },
+ { "vpacksswb", false },
+ { "vpackssdw", false },
+ { "vpackuswb", false },
+ { "vpackusdw", false },
+
+ { "vpaddb", false },
+ { "vpaddw", false },
+ { "vpaddd", false },
+ { "vpaddq", false },
+
+ { "vpaddsb", false },
+ { "vpaddsw", false },
+
+ { "vpaddusb", false },
+ { "vpaddusw", false },
+
+ { "vpand", false },
+ { "vpandn", false },
+ { "vpavgb", false },
+ { "vpavgw", false },
+
+ { "vpcmpeqb", false },
+ { "vpcmpeqw", false },
+ { "vpcmpeqd", false },
+// { "vpcmpeqq", false }, // QQQ : nasm(2.09.04) may be wrong
+
+ { "vpcmpgtb", false },
+ { "vpcmpgtw", false },
+ { "vpcmpgtd", false },
+// { "vpcmpgtq", false }, // QQQ
+
+ { "vphaddw", false },
+ { "vphaddd", false },
+ { "vphaddsw", false },
+
+ { "vphsubw", false },
+ { "vphsubd", false },
+ { "vphsubsw", false },
+ { "vpmaddwd", false },
+ { "vpmaddubsw", false },
+
+ { "vpmaxsb", false },
+ { "vpmaxsw", false },
+ { "vpmaxsd", false },
+
+ { "vpmaxub", false },
+ { "vpmaxuw", false },
+ { "vpmaxud", false },
+
+ { "vpminsb", false },
+ { "vpminsw", false },
+ { "vpminsd", false },
+
+ { "vpminub", false },
+ { "vpminuw", false },
+ { "vpminud", false },
+
+ { "vpmulhuw", false },
+ { "vpmulhrsw", false },
+ { "vpmulhw", false },
+ { "vpmullw", false },
+ { "vpmulld", false },
+
+ { "vpmuludq", false },
+ { "vpmuldq", false },
+
+ { "vpor", false },
+ { "vpsadbw", false },
+
+ { "vpsignb", false },
+ { "vpsignw", false },
+ { "vpsignd", false },
+
+ { "vpsllw", false },
+ { "vpslld", false },
+ { "vpsllq", false },
+
+ { "vpsraw", false },
+ { "vpsrad", false },
+ { "vpsrlw", false },
+ { "vpsrld", false },
+ { "vpsrlq", false },
+
+ { "vpsubb", false },
+ { "vpsubw", false },
+ { "vpsubd", false },
+ { "vpsubq", false },
+
+ { "vpsubsb", false },
+ { "vpsubsw", false },
+
+ { "vpsubusb", false },
+ { "vpsubusw", false },
+
+ { "vpunpckhbw", false },
+ { "vpunpckhwd", false },
+ { "vpunpckhdq", false },
+ { "vpunpckhqdq", false },
+
+ { "vpunpcklbw", false },
+ { "vpunpcklwd", false },
+ { "vpunpckldq", false },
+ { "vpunpcklqdq", false },
+
+ { "vpxor", false },
+ { "vsqrtsd", false },
+ { "vsqrtss", false },
+
+ { "vunpckhpd", true },
+ { "vunpckhps", true },
+ { "vunpcklpd", true },
+ { "vunpcklps", true },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ put(p->name, XMM, XMM | MEM);
+ put(p->name, XMM, XMM, XMM | MEM);
+ if (!p->supportYMM) continue;
+ put(p->name, YMM, YMM | MEM);
+ put(p->name, YMM, YMM, YMM | MEM);
+ }
+ }
+ void putAVX_X_X_XM_IMM()
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vblendpd", true },
+ { "vblendps", true },
+ { "vdppd", false },
+ { "vdpps", true },
+ { "vmpsadbw", false },
+ { "vpblendw", false },
+ { "vroundsd", false },
+ { "vroundss", false },
+ { "vpclmulqdq", false },
+ { "vcmppd", true },
+ { "vcmpps", true },
+ { "vcmpsd", false },
+ { "vcmpss", false },
+ { "vinsertps", false },
+ { "vpalignr", false },
+ { "vshufpd", true },
+ { "vshufps", true },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ put(p->name, XMM, XMM, XMM | MEM, IMM);
+ put(p->name, XMM, XMM | MEM, IMM);
+ if (!p->supportYMM) continue;
+ put(p->name, YMM, YMM, YMM | MEM, IMM);
+ put(p->name, YMM, YMM | MEM, IMM);
+ }
+ }
+ void putAVX_X_XM_IMM()
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vroundpd", true },
+ { "vroundps", true },
+ { "vpcmpestri", false },
+ { "vpcmpestrm", false },
+ { "vpcmpistri", false },
+ { "vpcmpistrm", false },
+ { "vpermilpd", true },
+ { "vpermilps", true },
+ { "vaeskeygenassist", false },
+ { "vpshufd", false },
+ { "vpshufhw", false },
+ { "vpshuflw", false },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ put(p->name, XMM, XMM | MEM, IMM);
+ if (!p->supportYMM) continue;
+ put(p->name, YMM, YMM | MEM, IMM);
+ }
+ }
+ void putAVX_X_X_XM()
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vpermilpd", true },
+ { "vpermilps", true },
+ { "vpshufb", false },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ put(p->name, XMM, XMM, XMM | MEM);
+ if (!p->supportYMM) continue;
+ put(p->name, YMM, YMM, YMM | MEM);
+ }
+ }
+ void putAVX_X_XM()
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vaesimc", false },
+ { "vtestps", true },
+ { "vtestpd", true },
+ { "vcomisd", false },
+ { "vcomiss", false },
+ { "vcvtdq2ps", true },
+ { "vcvtps2dq", true },
+ { "vcvttps2dq", true },
+ { "vmovapd", true },
+ { "vmovaps", true },
+ { "vmovddup", true },
+ { "vmovdqa", true },
+ { "vmovdqu", true },
+ { "vmovupd", true },
+ { "vmovups", true },
+
+ { "vpabsb", false },
+ { "vpabsw", false },
+ { "vpabsd", false },
+ { "vphminposuw", false },
+
+ { "vpmovsxbw", false },
+ { "vpmovsxbd", false },
+ { "vpmovsxbq", false },
+ { "vpmovsxwd", false },
+ { "vpmovsxwq", false },
+ { "vpmovsxdq", false },
+
+ { "vpmovzxbw", false },
+ { "vpmovzxbd", false },
+ { "vpmovzxbq", false },
+ { "vpmovzxwd", false },
+ { "vpmovzxwq", false },
+ { "vpmovzxdq", false },
+
+ { "vptest", false },
+ { "vrcpps", true },
+ { "vrcpss", false },
+
+ { "vrsqrtps", true },
+ { "vrsqrtss", false },
+
+ { "vsqrtpd", true },
+ { "vsqrtps", true },
+ { "vucomisd", false },
+ { "vucomiss", false },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ put(p->name, XMM, XMM | MEM);
+ if (!p->supportYMM) continue;
+ put(p->name, YMM, YMM | MEM);
+ }
+ }
+ void putAVX_M_X()
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vmovapd", true },
+ { "vmovaps", true },
+ { "vmovdqa", true },
+ { "vmovdqu", true },
+ { "vmovupd", true },
+ { "vmovups", true },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl *p = &tbl[i];
+ put(p->name, MEM, XMM);
+ if (!p->supportYMM) continue;
+ put(p->name, MEM, YMM);
+ }
+ }
+ void putAVX_X_X_IMM_omit()
+ {
+ const struct Tbl {
+ const char *name;
+ } tbl[] = {
+ { "vpslldq" },
+ { "vpsrldq" },
+ { "vpsllw" },
+ { "vpslld" },
+ { "vpsllq" },
+ { "vpsraw" },
+ { "vpsrad" },
+ { "vpsrlw" },
+ { "vpsrld" },
+ { "vpsrlq" },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl& p = tbl[i];
+ put(p.name, XMM, XMM, IMM);
+ put(p.name, XMM, IMM);
+ }
+ }
+ void putFMA()
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vfmadd", true },
+ { "vfmadd", false },
+ { "vfmaddsub", true },
+ { "vfmsubadd", true },
+ { "vfmsub", true },
+ { "vfmsub", false },
+ { "vfnmadd", true },
+ { "vfnmadd", false },
+ { "vfnmsub", true },
+ { "vfnmsub", false },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl& p = tbl[i];
+ const struct Ord {
+ const char *name;
+ } ord[] = {
+ { "132" },
+ { "213" },
+ { "231" },
+ };
+ for (size_t j = 0; j < NUM_OF_ARRAY(ord); j++) {
+ const char suf[][2][8] = {
+ { "pd", "ps" },
+ { "sd", "ss" },
+ };
+ for (size_t k = 0; k < 2; k++) {
+ std::string name = std::string(p.name) + ord[j].name + suf[p.supportYMM ? 0 : 1][k];
+ const char *q = name.c_str();
+ put(q, XMM, XMM, XMM | MEM);
+ if (!p.supportYMM) continue;
+ put(q, YMM, YMM, YMM | MEM);
+ }
+ }
+ }
+ }
+ void putAVX2()
+ {
+ put("vextractps", REG32 | MEM, XMM, IMM);
+ put("vldmxcsr", MEM);
+ put("vstmxcsr", MEM);
+ put("vmaskmovdqu", XMM, XMM);
+
+ put("vmovd", XMM, REG32 | MEM);
+ put("vmovd", REG32 | MEM, XMM);
+
+ put("vmovhlps", XMM, XMM);
+ put("vmovhlps", XMM, XMM, XMM);
+ put("vmovlhps", XMM, XMM);
+ put("vmovlhps", XMM, XMM, XMM);
+
+ {
+ const char tbl[][16] = {
+ "vmovhpd",
+ "vmovhps",
+ "vmovlpd",
+ "vmovlps",
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ put(tbl[i], XMM, XMM, MEM);
+ put(tbl[i], XMM, MEM);
+ put(tbl[i], MEM, XMM);
+ }
+ }
+ put("vmovmskpd", REG32e, XMM | YMM);
+ put("vmovmskps", REG32e, XMM | YMM);
+
+ put("vmovntdq", MEM, XMM | YMM);
+ put("vmovntpd", MEM, XMM | YMM);
+ put("vmovntps", MEM, XMM | YMM);
+ put("vmovntdqa", XMM, MEM);
+
+ {
+ const char tbl[][8] = { "vmovsd", "vmovss" };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ put(tbl[i], XMM, XMM, XMM);
+ put(tbl[i], XMM, XMM | MEM);
+ put(tbl[i], MEM, XMM);
+ }
+ }
+ put("vpextrb", REG32e|MEM, XMM, IMM);
+ put("vpextrw", REG32e, XMM, IMM);
+ put("vpextrd", REG32|MEM, XMM, IMM);
+
+ for (int i = 0; i < 3; i++) {
+ const char tbl[][8] = { "vpinsrb", "vpinsrw", "vpinsrd" };
+ put(tbl[i], XMM, XMM, REG32|MEM, IMM);
+ put(tbl[i], XMM, REG32|MEM, IMM);
+ }
+
+ put("vpmovmskb", REG32e, XMM);
+
+ {
+ const struct Tbl {
+ const char *name;
+ bool supportYMM;
+ } tbl[] = {
+ { "vblendvpd", true },
+ { "vblendvps", true },
+ { "vpblendvb", false },
+ };
+ for (size_t i = 0; i < NUM_OF_ARRAY(tbl); i++) {
+ const Tbl& p = tbl[i];
+ put(p.name, XMM, XMM, XMM | MEM, XMM);
+ put(p.name, XMM, XMM | MEM, XMM);
+ if (!p.supportYMM) continue;
+ put(p.name, YMM, YMM, YMM | MEM, YMM);
+ put(p.name, YMM, YMM | MEM, YMM);
+ }
+ }
+ // cvt
+ {
+ put("vcvtss2si", REG32e, XMM | MEM);
+ put("vcvttss2si", REG32e, XMM | MEM);
+ put("vcvtsd2si", REG32e, XMM | MEM);
+ put("vcvttsd2si", REG32e, XMM | MEM);
+
+ put("vcvtsi2ss", XMM, XMM, REG32e | MEM);
+ put("vcvtsi2ss", XMM, REG32e | MEM);
+
+ put("vcvtsi2sd", XMM, XMM, REG32e | MEM);
+ put("vcvtsi2sd", XMM, REG32e | MEM);
+
+ put("vcvtps2pd", XMM | YMM, XMM | MEM);
+ put("vcvtdq2pd", XMM | YMM, XMM | MEM);
+
+ put("vcvtpd2ps", XMM, XMM | YMM | MEM);
+ put("vcvtpd2dq", XMM, XMM | YMM | MEM);
+ put("vcvttpd2dq", XMM, XMM | YMM | MEM);
+ }
+#ifdef XBYAK64
+ put("vmovq", XMM, XMM | REG64 | MEM);
+ put("vmovq", REG64 | MEM, XMM);
+
+ put("vpextrq", REG64|MEM, XMM, IMM);
+
+ put("vpinsrq", XMM, XMM, REG64|MEM, IMM);
+ put("vpinsrq", XMM, REG64|MEM, IMM);
+
+#endif
+ }
+ void putFMA2()
+ {
+#ifndef USE_YASM
+ put("vmaskmovps", XMM, XMM, MEM);
+ put("vmaskmovps", YMM, YMM, MEM);
+
+ put("vmaskmovpd", YMM, YMM, MEM);
+ put("vmaskmovpd", XMM, XMM, MEM);
+
+ put("vmaskmovps", MEM, XMM, XMM);
+ put("vmaskmovpd", MEM, XMM, XMM);
+
+ put("vbroadcastf128", YMM, MEM);
+ put("vbroadcastsd", YMM, MEM);
+ put("vbroadcastss", XMM | YMM, MEM);
+
+ put("vinsertf128", YMM, YMM, XMM | MEM, IMM8);
+ put("vperm2f128", YMM, YMM, YMM | MEM, IMM8);
+#else
+ put("vextractf128", XMM | MEM, YMM, IMM);
+ put("vmaskmovps", MEM, YMM, YMM);
+ put("vmaskmovpd", MEM, YMM, YMM);
+ put("vlddqu", XMM | YMM, MEM);
+
+ put("vmovshdup", XMM, XMM | MEM);
+ put("vmovshdup", YMM, YMM | MEM);
+ put("vmovsldup", XMM, XMM | MEM);
+ put("vmovsldup", YMM, YMM | MEM);
+
+ // QQQ:nasm is wrong
+ put("vpcmpeqq", XMM, XMM | MEM);
+ put("vpcmpeqq", XMM, XMM, XMM | MEM);
+ put("vpcmpgtq", XMM, XMM | MEM);
+ put("vpcmpgtq", XMM, XMM, XMM | MEM);
+
+ put("vpextrw", MEM, XMM, IMM); // nasm iw wrong?
+#endif
+ }
public:
Test(bool isXbyak)
: isXbyak_(isXbyak)
@@ -1178,6 +1789,22 @@ public:
}
void put()
{
+#ifdef USE_AVX
+#ifndef USE_YASM
+ putAVX1();
+ putAVX2();
+ putAVX_X_X_XM_omit();
+ putAVX_X_X_XM_IMM();
+ putAVX_X_XM_IMM();
+ putAVX_X_X_XM();
+ putAVX_X_XM();
+ putAVX_M_X();
+ putAVX_X_X_IMM_omit();
+ putFMA();
+#endif
+ putFMA2();
+#else
+ putJmp();
#ifndef USE_YASM
putSIMPLE();
putReg1();
@@ -1220,6 +1847,7 @@ public:
putSSE4_2();
putMov64();
#endif
+#endif
}
};
diff --git a/test/nm.cpp b/test/nm.cpp
index b17405f..02916e5 100644
--- a/test/nm.cpp
+++ b/test/nm.cpp
@@ -1,6185 +1,1275 @@
-void gen0(){
-mov (ecx, ptr[rax+rax+0]); dump();
-mov (ecx, ptr[rax+rax+1]); dump();
-mov (ecx, ptr[rax+rax+1000]); dump();
-mov (ecx, ptr[rax+rax-1]); dump();
-mov (ecx, ptr[rax+rax-1000]); dump();
-mov (ecx, ptr[rax+rax*1+0]); dump();
-mov (ecx, ptr[rax+rax*1+1]); dump();
-mov (ecx, ptr[rax+rax*1+1000]); dump();
-mov (ecx, ptr[rax+rax*1-1]); dump();
-mov (ecx, ptr[rax+rax*1-1000]); dump();
-mov (ecx, ptr[rax+rax*2+0]); dump();
-mov (ecx, ptr[rax+rax*2+1]); dump();
-mov (ecx, ptr[rax+rax*2+1000]); dump();
-mov (ecx, ptr[rax+rax*2-1]); dump();
-mov (ecx, ptr[rax+rax*2-1000]); dump();
-mov (ecx, ptr[rax+rax*4+0]); dump();
-mov (ecx, ptr[rax+rax*4+1]); dump();
-mov (ecx, ptr[rax+rax*4+1000]); dump();
-mov (ecx, ptr[rax+rax*4-1]); dump();
-mov (ecx, ptr[rax+rax*4-1000]); dump();
-mov (ecx, ptr[rax+rax*8+0]); dump();
-mov (ecx, ptr[rax+rax*8+1]); dump();
-mov (ecx, ptr[rax+rax*8+1000]); dump();
-mov (ecx, ptr[rax+rax*8-1]); dump();
-mov (ecx, ptr[rax+rax*8-1000]); dump();
-mov (ecx, ptr[rax+rcx+0]); dump();
-mov (ecx, ptr[rax+rcx+1]); dump();
-mov (ecx, ptr[rax+rcx+1000]); dump();
-mov (ecx, ptr[rax+rcx-1]); dump();
-mov (ecx, ptr[rax+rcx-1000]); dump();
-mov (ecx, ptr[rax+rcx*1+0]); dump();
-mov (ecx, ptr[rax+rcx*1+1]); dump();
-mov (ecx, ptr[rax+rcx*1+1000]); dump();
-mov (ecx, ptr[rax+rcx*1-1]); dump();
-mov (ecx, ptr[rax+rcx*1-1000]); dump();
-mov (ecx, ptr[rax+rcx*2+0]); dump();
-mov (ecx, ptr[rax+rcx*2+1]); dump();
-mov (ecx, ptr[rax+rcx*2+1000]); dump();
-mov (ecx, ptr[rax+rcx*2-1]); dump();
-mov (ecx, ptr[rax+rcx*2-1000]); dump();
-mov (ecx, ptr[rax+rcx*4+0]); dump();
-mov (ecx, ptr[rax+rcx*4+1]); dump();
-mov (ecx, ptr[rax+rcx*4+1000]); dump();
-mov (ecx, ptr[rax+rcx*4-1]); dump();
-mov (ecx, ptr[rax+rcx*4-1000]); dump();
-mov (ecx, ptr[rax+rcx*8+0]); dump();
-mov (ecx, ptr[rax+rcx*8+1]); dump();
-mov (ecx, ptr[rax+rcx*8+1000]); dump();
-mov (ecx, ptr[rax+rcx*8-1]); dump();
-mov (ecx, ptr[rax+rcx*8-1000]); dump();
-mov (ecx, ptr[rax+rdx+0]); dump();
-mov (ecx, ptr[rax+rdx+1]); dump();
-mov (ecx, ptr[rax+rdx+1000]); dump();
-mov (ecx, ptr[rax+rdx-1]); dump();
-mov (ecx, ptr[rax+rdx-1000]); dump();
-mov (ecx, ptr[rax+rdx*1+0]); dump();
-mov (ecx, ptr[rax+rdx*1+1]); dump();
-mov (ecx, ptr[rax+rdx*1+1000]); dump();
-mov (ecx, ptr[rax+rdx*1-1]); dump();
-mov (ecx, ptr[rax+rdx*1-1000]); dump();
-mov (ecx, ptr[rax+rdx*2+0]); dump();
-mov (ecx, ptr[rax+rdx*2+1]); dump();
-mov (ecx, ptr[rax+rdx*2+1000]); dump();
-mov (ecx, ptr[rax+rdx*2-1]); dump();
-mov (ecx, ptr[rax+rdx*2-1000]); dump();
-mov (ecx, ptr[rax+rdx*4+0]); dump();
-mov (ecx, ptr[rax+rdx*4+1]); dump();
-mov (ecx, ptr[rax+rdx*4+1000]); dump();
-mov (ecx, ptr[rax+rdx*4-1]); dump();
-mov (ecx, ptr[rax+rdx*4-1000]); dump();
-mov (ecx, ptr[rax+rdx*8+0]); dump();
-mov (ecx, ptr[rax+rdx*8+1]); dump();
-mov (ecx, ptr[rax+rdx*8+1000]); dump();
-mov (ecx, ptr[rax+rdx*8-1]); dump();
-mov (ecx, ptr[rax+rdx*8-1000]); dump();
-mov (ecx, ptr[rax+rbx+0]); dump();
-mov (ecx, ptr[rax+rbx+1]); dump();
-mov (ecx, ptr[rax+rbx+1000]); dump();
-mov (ecx, ptr[rax+rbx-1]); dump();
-mov (ecx, ptr[rax+rbx-1000]); dump();
-mov (ecx, ptr[rax+rbx*1+0]); dump();
-mov (ecx, ptr[rax+rbx*1+1]); dump();
-mov (ecx, ptr[rax+rbx*1+1000]); dump();
-mov (ecx, ptr[rax+rbx*1-1]); dump();
-mov (ecx, ptr[rax+rbx*1-1000]); dump();
-mov (ecx, ptr[rax+rbx*2+0]); dump();
-mov (ecx, ptr[rax+rbx*2+1]); dump();
-mov (ecx, ptr[rax+rbx*2+1000]); dump();
-mov (ecx, ptr[rax+rbx*2-1]); dump();
-mov (ecx, ptr[rax+rbx*2-1000]); dump();
-mov (ecx, ptr[rax+rbx*4+0]); dump();
-mov (ecx, ptr[rax+rbx*4+1]); dump();
-mov (ecx, ptr[rax+rbx*4+1000]); dump();
-mov (ecx, ptr[rax+rbx*4-1]); dump();
-mov (ecx, ptr[rax+rbx*4-1000]); dump();
-mov (ecx, ptr[rax+rbx*8+0]); dump();
-mov (ecx, ptr[rax+rbx*8+1]); dump();
-mov (ecx, ptr[rax+rbx*8+1000]); dump();
-mov (ecx, ptr[rax+rbx*8-1]); dump();
-mov (ecx, ptr[rax+rbx*8-1000]); dump();
-}
- void gen1(){
-mov (ecx, ptr[rax+rbp+0]); dump();
-mov (ecx, ptr[rax+rbp+1]); dump();
-mov (ecx, ptr[rax+rbp+1000]); dump();
-mov (ecx, ptr[rax+rbp-1]); dump();
-mov (ecx, ptr[rax+rbp-1000]); dump();
-mov (ecx, ptr[rax+rbp*1+0]); dump();
-mov (ecx, ptr[rax+rbp*1+1]); dump();
-mov (ecx, ptr[rax+rbp*1+1000]); dump();
-mov (ecx, ptr[rax+rbp*1-1]); dump();
-mov (ecx, ptr[rax+rbp*1-1000]); dump();
-mov (ecx, ptr[rax+rbp*2+0]); dump();
-mov (ecx, ptr[rax+rbp*2+1]); dump();
-mov (ecx, ptr[rax+rbp*2+1000]); dump();
-mov (ecx, ptr[rax+rbp*2-1]); dump();
-mov (ecx, ptr[rax+rbp*2-1000]); dump();
-mov (ecx, ptr[rax+rbp*4+0]); dump();
-mov (ecx, ptr[rax+rbp*4+1]); dump();
-mov (ecx, ptr[rax+rbp*4+1000]); dump();
-mov (ecx, ptr[rax+rbp*4-1]); dump();
-mov (ecx, ptr[rax+rbp*4-1000]); dump();
-mov (ecx, ptr[rax+rbp*8+0]); dump();
-mov (ecx, ptr[rax+rbp*8+1]); dump();
-mov (ecx, ptr[rax+rbp*8+1000]); dump();
-mov (ecx, ptr[rax+rbp*8-1]); dump();
-mov (ecx, ptr[rax+rbp*8-1000]); dump();
-mov (ecx, ptr[rax+rsi+0]); dump();
-mov (ecx, ptr[rax+rsi+1]); dump();
-mov (ecx, ptr[rax+rsi+1000]); dump();
-mov (ecx, ptr[rax+rsi-1]); dump();
-mov (ecx, ptr[rax+rsi-1000]); dump();
-mov (ecx, ptr[rax+rsi*1+0]); dump();
-mov (ecx, ptr[rax+rsi*1+1]); dump();
-mov (ecx, ptr[rax+rsi*1+1000]); dump();
-mov (ecx, ptr[rax+rsi*1-1]); dump();
-mov (ecx, ptr[rax+rsi*1-1000]); dump();
-mov (ecx, ptr[rax+rsi*2+0]); dump();
-mov (ecx, ptr[rax+rsi*2+1]); dump();
-mov (ecx, ptr[rax+rsi*2+1000]); dump();
-mov (ecx, ptr[rax+rsi*2-1]); dump();
-mov (ecx, ptr[rax+rsi*2-1000]); dump();
-mov (ecx, ptr[rax+rsi*4+0]); dump();
-mov (ecx, ptr[rax+rsi*4+1]); dump();
-mov (ecx, ptr[rax+rsi*4+1000]); dump();
-mov (ecx, ptr[rax+rsi*4-1]); dump();
-mov (ecx, ptr[rax+rsi*4-1000]); dump();
-mov (ecx, ptr[rax+rsi*8+0]); dump();
-mov (ecx, ptr[rax+rsi*8+1]); dump();
-mov (ecx, ptr[rax+rsi*8+1000]); dump();
-mov (ecx, ptr[rax+rsi*8-1]); dump();
-mov (ecx, ptr[rax+rsi*8-1000]); dump();
-mov (ecx, ptr[rax+rdi+0]); dump();
-mov (ecx, ptr[rax+rdi+1]); dump();
-mov (ecx, ptr[rax+rdi+1000]); dump();
-mov (ecx, ptr[rax+rdi-1]); dump();
-mov (ecx, ptr[rax+rdi-1000]); dump();
-mov (ecx, ptr[rax+rdi*1+0]); dump();
-mov (ecx, ptr[rax+rdi*1+1]); dump();
-mov (ecx, ptr[rax+rdi*1+1000]); dump();
-mov (ecx, ptr[rax+rdi*1-1]); dump();
-mov (ecx, ptr[rax+rdi*1-1000]); dump();
-mov (ecx, ptr[rax+rdi*2+0]); dump();
-mov (ecx, ptr[rax+rdi*2+1]); dump();
-mov (ecx, ptr[rax+rdi*2+1000]); dump();
-mov (ecx, ptr[rax+rdi*2-1]); dump();
-mov (ecx, ptr[rax+rdi*2-1000]); dump();
-mov (ecx, ptr[rax+rdi*4+0]); dump();
-mov (ecx, ptr[rax+rdi*4+1]); dump();
-mov (ecx, ptr[rax+rdi*4+1000]); dump();
-mov (ecx, ptr[rax+rdi*4-1]); dump();
-mov (ecx, ptr[rax+rdi*4-1000]); dump();
-mov (ecx, ptr[rax+rdi*8+0]); dump();
-mov (ecx, ptr[rax+rdi*8+1]); dump();
-mov (ecx, ptr[rax+rdi*8+1000]); dump();
-mov (ecx, ptr[rax+rdi*8-1]); dump();
-mov (ecx, ptr[rax+rdi*8-1000]); dump();
-mov (ecx, ptr[rax+r9+0]); dump();
-mov (ecx, ptr[rax+r9+1]); dump();
-mov (ecx, ptr[rax+r9+1000]); dump();
-mov (ecx, ptr[rax+r9-1]); dump();
-mov (ecx, ptr[rax+r9-1000]); dump();
-mov (ecx, ptr[rax+r9*1+0]); dump();
-mov (ecx, ptr[rax+r9*1+1]); dump();
-mov (ecx, ptr[rax+r9*1+1000]); dump();
-mov (ecx, ptr[rax+r9*1-1]); dump();
-mov (ecx, ptr[rax+r9*1-1000]); dump();
-mov (ecx, ptr[rax+r9*2+0]); dump();
-mov (ecx, ptr[rax+r9*2+1]); dump();
-mov (ecx, ptr[rax+r9*2+1000]); dump();
-mov (ecx, ptr[rax+r9*2-1]); dump();
-mov (ecx, ptr[rax+r9*2-1000]); dump();
-mov (ecx, ptr[rax+r9*4+0]); dump();
-mov (ecx, ptr[rax+r9*4+1]); dump();
-mov (ecx, ptr[rax+r9*4+1000]); dump();
-mov (ecx, ptr[rax+r9*4-1]); dump();
-mov (ecx, ptr[rax+r9*4-1000]); dump();
-mov (ecx, ptr[rax+r9*8+0]); dump();
-mov (ecx, ptr[rax+r9*8+1]); dump();
-mov (ecx, ptr[rax+r9*8+1000]); dump();
-mov (ecx, ptr[rax+r9*8-1]); dump();
-mov (ecx, ptr[rax+r9*8-1000]); dump();
-}
- void gen2(){
-mov (ecx, ptr[rax+r10+0]); dump();
-mov (ecx, ptr[rax+r10+1]); dump();
-mov (ecx, ptr[rax+r10+1000]); dump();
-mov (ecx, ptr[rax+r10-1]); dump();
-mov (ecx, ptr[rax+r10-1000]); dump();
-mov (ecx, ptr[rax+r10*1+0]); dump();
-mov (ecx, ptr[rax+r10*1+1]); dump();
-mov (ecx, ptr[rax+r10*1+1000]); dump();
-mov (ecx, ptr[rax+r10*1-1]); dump();
-mov (ecx, ptr[rax+r10*1-1000]); dump();
-mov (ecx, ptr[rax+r10*2+0]); dump();
-mov (ecx, ptr[rax+r10*2+1]); dump();
-mov (ecx, ptr[rax+r10*2+1000]); dump();
-mov (ecx, ptr[rax+r10*2-1]); dump();
-mov (ecx, ptr[rax+r10*2-1000]); dump();
-mov (ecx, ptr[rax+r10*4+0]); dump();
-mov (ecx, ptr[rax+r10*4+1]); dump();
-mov (ecx, ptr[rax+r10*4+1000]); dump();
-mov (ecx, ptr[rax+r10*4-1]); dump();
-mov (ecx, ptr[rax+r10*4-1000]); dump();
-mov (ecx, ptr[rax+r10*8+0]); dump();
-mov (ecx, ptr[rax+r10*8+1]); dump();
-mov (ecx, ptr[rax+r10*8+1000]); dump();
-mov (ecx, ptr[rax+r10*8-1]); dump();
-mov (ecx, ptr[rax+r10*8-1000]); dump();
-mov (ecx, ptr[rax+r11+0]); dump();
-mov (ecx, ptr[rax+r11+1]); dump();
-mov (ecx, ptr[rax+r11+1000]); dump();
-mov (ecx, ptr[rax+r11-1]); dump();
-mov (ecx, ptr[rax+r11-1000]); dump();
-mov (ecx, ptr[rax+r11*1+0]); dump();
-mov (ecx, ptr[rax+r11*1+1]); dump();
-mov (ecx, ptr[rax+r11*1+1000]); dump();
-mov (ecx, ptr[rax+r11*1-1]); dump();
-mov (ecx, ptr[rax+r11*1-1000]); dump();
-mov (ecx, ptr[rax+r11*2+0]); dump();
-mov (ecx, ptr[rax+r11*2+1]); dump();
-mov (ecx, ptr[rax+r11*2+1000]); dump();
-mov (ecx, ptr[rax+r11*2-1]); dump();
-mov (ecx, ptr[rax+r11*2-1000]); dump();
-mov (ecx, ptr[rax+r11*4+0]); dump();
-mov (ecx, ptr[rax+r11*4+1]); dump();
-mov (ecx, ptr[rax+r11*4+1000]); dump();
-mov (ecx, ptr[rax+r11*4-1]); dump();
-mov (ecx, ptr[rax+r11*4-1000]); dump();
-mov (ecx, ptr[rax+r11*8+0]); dump();
-mov (ecx, ptr[rax+r11*8+1]); dump();
-mov (ecx, ptr[rax+r11*8+1000]); dump();
-mov (ecx, ptr[rax+r11*8-1]); dump();
-mov (ecx, ptr[rax+r11*8-1000]); dump();
-mov (ecx, ptr[rax+r12+0]); dump();
-mov (ecx, ptr[rax+r12+1]); dump();
-mov (ecx, ptr[rax+r12+1000]); dump();
-mov (ecx, ptr[rax+r12-1]); dump();
-mov (ecx, ptr[rax+r12-1000]); dump();
-mov (ecx, ptr[rax+r12*1+0]); dump();
-mov (ecx, ptr[rax+r12*1+1]); dump();
-mov (ecx, ptr[rax+r12*1+1000]); dump();
-mov (ecx, ptr[rax+r12*1-1]); dump();
-mov (ecx, ptr[rax+r12*1-1000]); dump();
-mov (ecx, ptr[rax+r12*2+0]); dump();
-mov (ecx, ptr[rax+r12*2+1]); dump();
-mov (ecx, ptr[rax+r12*2+1000]); dump();
-mov (ecx, ptr[rax+r12*2-1]); dump();
-mov (ecx, ptr[rax+r12*2-1000]); dump();
-mov (ecx, ptr[rax+r12*4+0]); dump();
-mov (ecx, ptr[rax+r12*4+1]); dump();
-mov (ecx, ptr[rax+r12*4+1000]); dump();
-mov (ecx, ptr[rax+r12*4-1]); dump();
-mov (ecx, ptr[rax+r12*4-1000]); dump();
-mov (ecx, ptr[rax+r12*8+0]); dump();
-mov (ecx, ptr[rax+r12*8+1]); dump();
-mov (ecx, ptr[rax+r12*8+1000]); dump();
-mov (ecx, ptr[rax+r12*8-1]); dump();
-mov (ecx, ptr[rax+r12*8-1000]); dump();
-mov (ecx, ptr[rax+r13+0]); dump();
-mov (ecx, ptr[rax+r13+1]); dump();
-mov (ecx, ptr[rax+r13+1000]); dump();
-mov (ecx, ptr[rax+r13-1]); dump();
-mov (ecx, ptr[rax+r13-1000]); dump();
-mov (ecx, ptr[rax+r13*1+0]); dump();
-mov (ecx, ptr[rax+r13*1+1]); dump();
-mov (ecx, ptr[rax+r13*1+1000]); dump();
-mov (ecx, ptr[rax+r13*1-1]); dump();
-mov (ecx, ptr[rax+r13*1-1000]); dump();
-mov (ecx, ptr[rax+r13*2+0]); dump();
-mov (ecx, ptr[rax+r13*2+1]); dump();
-mov (ecx, ptr[rax+r13*2+1000]); dump();
-mov (ecx, ptr[rax+r13*2-1]); dump();
-mov (ecx, ptr[rax+r13*2-1000]); dump();
-mov (ecx, ptr[rax+r13*4+0]); dump();
-mov (ecx, ptr[rax+r13*4+1]); dump();
-mov (ecx, ptr[rax+r13*4+1000]); dump();
-mov (ecx, ptr[rax+r13*4-1]); dump();
-mov (ecx, ptr[rax+r13*4-1000]); dump();
-mov (ecx, ptr[rax+r13*8+0]); dump();
-mov (ecx, ptr[rax+r13*8+1]); dump();
-mov (ecx, ptr[rax+r13*8+1000]); dump();
-mov (ecx, ptr[rax+r13*8-1]); dump();
-mov (ecx, ptr[rax+r13*8-1000]); dump();
-}
- void gen3(){
-mov (ecx, ptr[rax+r14+0]); dump();
-mov (ecx, ptr[rax+r14+1]); dump();
-mov (ecx, ptr[rax+r14+1000]); dump();
-mov (ecx, ptr[rax+r14-1]); dump();
-mov (ecx, ptr[rax+r14-1000]); dump();
-mov (ecx, ptr[rax+r14*1+0]); dump();
-mov (ecx, ptr[rax+r14*1+1]); dump();
-mov (ecx, ptr[rax+r14*1+1000]); dump();
-mov (ecx, ptr[rax+r14*1-1]); dump();
-mov (ecx, ptr[rax+r14*1-1000]); dump();
-mov (ecx, ptr[rax+r14*2+0]); dump();
-mov (ecx, ptr[rax+r14*2+1]); dump();
-mov (ecx, ptr[rax+r14*2+1000]); dump();
-mov (ecx, ptr[rax+r14*2-1]); dump();
-mov (ecx, ptr[rax+r14*2-1000]); dump();
-mov (ecx, ptr[rax+r14*4+0]); dump();
-mov (ecx, ptr[rax+r14*4+1]); dump();
-mov (ecx, ptr[rax+r14*4+1000]); dump();
-mov (ecx, ptr[rax+r14*4-1]); dump();
-mov (ecx, ptr[rax+r14*4-1000]); dump();
-mov (ecx, ptr[rax+r14*8+0]); dump();
-mov (ecx, ptr[rax+r14*8+1]); dump();
-mov (ecx, ptr[rax+r14*8+1000]); dump();
-mov (ecx, ptr[rax+r14*8-1]); dump();
-mov (ecx, ptr[rax+r14*8-1000]); dump();
-mov (ecx, ptr[rax+r15+0]); dump();
-mov (ecx, ptr[rax+r15+1]); dump();
-mov (ecx, ptr[rax+r15+1000]); dump();
-mov (ecx, ptr[rax+r15-1]); dump();
-mov (ecx, ptr[rax+r15-1000]); dump();
-mov (ecx, ptr[rax+r15*1+0]); dump();
-mov (ecx, ptr[rax+r15*1+1]); dump();
-mov (ecx, ptr[rax+r15*1+1000]); dump();
-mov (ecx, ptr[rax+r15*1-1]); dump();
-mov (ecx, ptr[rax+r15*1-1000]); dump();
-mov (ecx, ptr[rax+r15*2+0]); dump();
-mov (ecx, ptr[rax+r15*2+1]); dump();
-mov (ecx, ptr[rax+r15*2+1000]); dump();
-mov (ecx, ptr[rax+r15*2-1]); dump();
-mov (ecx, ptr[rax+r15*2-1000]); dump();
-mov (ecx, ptr[rax+r15*4+0]); dump();
-mov (ecx, ptr[rax+r15*4+1]); dump();
-mov (ecx, ptr[rax+r15*4+1000]); dump();
-mov (ecx, ptr[rax+r15*4-1]); dump();
-mov (ecx, ptr[rax+r15*4-1000]); dump();
-mov (ecx, ptr[rax+r15*8+0]); dump();
-mov (ecx, ptr[rax+r15*8+1]); dump();
-mov (ecx, ptr[rax+r15*8+1000]); dump();
-mov (ecx, ptr[rax+r15*8-1]); dump();
-mov (ecx, ptr[rax+r15*8-1000]); dump();
-mov (ecx, ptr[rax+0]); dump();
-mov (ecx, ptr[rax+1]); dump();
-mov (ecx, ptr[rax+1000]); dump();
-mov (ecx, ptr[rax-1]); dump();
-mov (ecx, ptr[rax-1000]); dump();
-mov (ecx, ptr[rax+0]); dump();
-mov (ecx, ptr[rax+1]); dump();
-mov (ecx, ptr[rax+1000]); dump();
-mov (ecx, ptr[rax-1]); dump();
-mov (ecx, ptr[rax-1000]); dump();
-mov (ecx, ptr[rax+0]); dump();
-mov (ecx, ptr[rax+1]); dump();
-mov (ecx, ptr[rax+1000]); dump();
-mov (ecx, ptr[rax-1]); dump();
-mov (ecx, ptr[rax-1000]); dump();
-mov (ecx, ptr[rax+0]); dump();
-mov (ecx, ptr[rax+1]); dump();
-mov (ecx, ptr[rax+1000]); dump();
-mov (ecx, ptr[rax-1]); dump();
-mov (ecx, ptr[rax-1000]); dump();
-mov (ecx, ptr[rax+0]); dump();
-mov (ecx, ptr[rax+1]); dump();
-mov (ecx, ptr[rax+1000]); dump();
-mov (ecx, ptr[rax-1]); dump();
-mov (ecx, ptr[rax-1000]); dump();
-mov (ecx, ptr[rcx+rax+0]); dump();
-mov (ecx, ptr[rcx+rax+1]); dump();
-mov (ecx, ptr[rcx+rax+1000]); dump();
-mov (ecx, ptr[rcx+rax-1]); dump();
-mov (ecx, ptr[rcx+rax-1000]); dump();
-mov (ecx, ptr[rcx+rax*1+0]); dump();
-mov (ecx, ptr[rcx+rax*1+1]); dump();
-mov (ecx, ptr[rcx+rax*1+1000]); dump();
-mov (ecx, ptr[rcx+rax*1-1]); dump();
-mov (ecx, ptr[rcx+rax*1-1000]); dump();
-mov (ecx, ptr[rcx+rax*2+0]); dump();
-mov (ecx, ptr[rcx+rax*2+1]); dump();
-mov (ecx, ptr[rcx+rax*2+1000]); dump();
-mov (ecx, ptr[rcx+rax*2-1]); dump();
-mov (ecx, ptr[rcx+rax*2-1000]); dump();
-mov (ecx, ptr[rcx+rax*4+0]); dump();
-mov (ecx, ptr[rcx+rax*4+1]); dump();
-mov (ecx, ptr[rcx+rax*4+1000]); dump();
-mov (ecx, ptr[rcx+rax*4-1]); dump();
-mov (ecx, ptr[rcx+rax*4-1000]); dump();
-mov (ecx, ptr[rcx+rax*8+0]); dump();
-mov (ecx, ptr[rcx+rax*8+1]); dump();
-mov (ecx, ptr[rcx+rax*8+1000]); dump();
-mov (ecx, ptr[rcx+rax*8-1]); dump();
-mov (ecx, ptr[rcx+rax*8-1000]); dump();
-}
- void gen4(){
-mov (ecx, ptr[rcx+rcx+0]); dump();
-mov (ecx, ptr[rcx+rcx+1]); dump();
-mov (ecx, ptr[rcx+rcx+1000]); dump();
-mov (ecx, ptr[rcx+rcx-1]); dump();
-mov (ecx, ptr[rcx+rcx-1000]); dump();
-mov (ecx, ptr[rcx+rcx*1+0]); dump();
-mov (ecx, ptr[rcx+rcx*1+1]); dump();
-mov (ecx, ptr[rcx+rcx*1+1000]); dump();
-mov (ecx, ptr[rcx+rcx*1-1]); dump();
-mov (ecx, ptr[rcx+rcx*1-1000]); dump();
-mov (ecx, ptr[rcx+rcx*2+0]); dump();
-mov (ecx, ptr[rcx+rcx*2+1]); dump();
-mov (ecx, ptr[rcx+rcx*2+1000]); dump();
-mov (ecx, ptr[rcx+rcx*2-1]); dump();
-mov (ecx, ptr[rcx+rcx*2-1000]); dump();
-mov (ecx, ptr[rcx+rcx*4+0]); dump();
-mov (ecx, ptr[rcx+rcx*4+1]); dump();
-mov (ecx, ptr[rcx+rcx*4+1000]); dump();
-mov (ecx, ptr[rcx+rcx*4-1]); dump();
-mov (ecx, ptr[rcx+rcx*4-1000]); dump();
-mov (ecx, ptr[rcx+rcx*8+0]); dump();
-mov (ecx, ptr[rcx+rcx*8+1]); dump();
-mov (ecx, ptr[rcx+rcx*8+1000]); dump();
-mov (ecx, ptr[rcx+rcx*8-1]); dump();
-mov (ecx, ptr[rcx+rcx*8-1000]); dump();
-mov (ecx, ptr[rcx+rdx+0]); dump();
-mov (ecx, ptr[rcx+rdx+1]); dump();
-mov (ecx, ptr[rcx+rdx+1000]); dump();
-mov (ecx, ptr[rcx+rdx-1]); dump();
-mov (ecx, ptr[rcx+rdx-1000]); dump();
-mov (ecx, ptr[rcx+rdx*1+0]); dump();
-mov (ecx, ptr[rcx+rdx*1+1]); dump();
-mov (ecx, ptr[rcx+rdx*1+1000]); dump();
-mov (ecx, ptr[rcx+rdx*1-1]); dump();
-mov (ecx, ptr[rcx+rdx*1-1000]); dump();
-mov (ecx, ptr[rcx+rdx*2+0]); dump();
-mov (ecx, ptr[rcx+rdx*2+1]); dump();
-mov (ecx, ptr[rcx+rdx*2+1000]); dump();
-mov (ecx, ptr[rcx+rdx*2-1]); dump();
-mov (ecx, ptr[rcx+rdx*2-1000]); dump();
-mov (ecx, ptr[rcx+rdx*4+0]); dump();
-mov (ecx, ptr[rcx+rdx*4+1]); dump();
-mov (ecx, ptr[rcx+rdx*4+1000]); dump();
-mov (ecx, ptr[rcx+rdx*4-1]); dump();
-mov (ecx, ptr[rcx+rdx*4-1000]); dump();
-mov (ecx, ptr[rcx+rdx*8+0]); dump();
-mov (ecx, ptr[rcx+rdx*8+1]); dump();
-mov (ecx, ptr[rcx+rdx*8+1000]); dump();
-mov (ecx, ptr[rcx+rdx*8-1]); dump();
-mov (ecx, ptr[rcx+rdx*8-1000]); dump();
-mov (ecx, ptr[rcx+rbx+0]); dump();
-mov (ecx, ptr[rcx+rbx+1]); dump();
-mov (ecx, ptr[rcx+rbx+1000]); dump();
-mov (ecx, ptr[rcx+rbx-1]); dump();
-mov (ecx, ptr[rcx+rbx-1000]); dump();
-mov (ecx, ptr[rcx+rbx*1+0]); dump();
-mov (ecx, ptr[rcx+rbx*1+1]); dump();
-mov (ecx, ptr[rcx+rbx*1+1000]); dump();
-mov (ecx, ptr[rcx+rbx*1-1]); dump();
-mov (ecx, ptr[rcx+rbx*1-1000]); dump();
-mov (ecx, ptr[rcx+rbx*2+0]); dump();
-mov (ecx, ptr[rcx+rbx*2+1]); dump();
-mov (ecx, ptr[rcx+rbx*2+1000]); dump();
-mov (ecx, ptr[rcx+rbx*2-1]); dump();
-mov (ecx, ptr[rcx+rbx*2-1000]); dump();
-mov (ecx, ptr[rcx+rbx*4+0]); dump();
-mov (ecx, ptr[rcx+rbx*4+1]); dump();
-mov (ecx, ptr[rcx+rbx*4+1000]); dump();
-mov (ecx, ptr[rcx+rbx*4-1]); dump();
-mov (ecx, ptr[rcx+rbx*4-1000]); dump();
-mov (ecx, ptr[rcx+rbx*8+0]); dump();
-mov (ecx, ptr[rcx+rbx*8+1]); dump();
-mov (ecx, ptr[rcx+rbx*8+1000]); dump();
-mov (ecx, ptr[rcx+rbx*8-1]); dump();
-mov (ecx, ptr[rcx+rbx*8-1000]); dump();
-mov (ecx, ptr[rcx+rbp+0]); dump();
-mov (ecx, ptr[rcx+rbp+1]); dump();
-mov (ecx, ptr[rcx+rbp+1000]); dump();
-mov (ecx, ptr[rcx+rbp-1]); dump();
-mov (ecx, ptr[rcx+rbp-1000]); dump();
-mov (ecx, ptr[rcx+rbp*1+0]); dump();
-mov (ecx, ptr[rcx+rbp*1+1]); dump();
-mov (ecx, ptr[rcx+rbp*1+1000]); dump();
-mov (ecx, ptr[rcx+rbp*1-1]); dump();
-mov (ecx, ptr[rcx+rbp*1-1000]); dump();
-mov (ecx, ptr[rcx+rbp*2+0]); dump();
-mov (ecx, ptr[rcx+rbp*2+1]); dump();
-mov (ecx, ptr[rcx+rbp*2+1000]); dump();
-mov (ecx, ptr[rcx+rbp*2-1]); dump();
-mov (ecx, ptr[rcx+rbp*2-1000]); dump();
-mov (ecx, ptr[rcx+rbp*4+0]); dump();
-mov (ecx, ptr[rcx+rbp*4+1]); dump();
-mov (ecx, ptr[rcx+rbp*4+1000]); dump();
-mov (ecx, ptr[rcx+rbp*4-1]); dump();
-mov (ecx, ptr[rcx+rbp*4-1000]); dump();
-mov (ecx, ptr[rcx+rbp*8+0]); dump();
-mov (ecx, ptr[rcx+rbp*8+1]); dump();
-mov (ecx, ptr[rcx+rbp*8+1000]); dump();
-mov (ecx, ptr[rcx+rbp*8-1]); dump();
-mov (ecx, ptr[rcx+rbp*8-1000]); dump();
-}
- void gen5(){
-mov (ecx, ptr[rcx+rsi+0]); dump();
-mov (ecx, ptr[rcx+rsi+1]); dump();
-mov (ecx, ptr[rcx+rsi+1000]); dump();
-mov (ecx, ptr[rcx+rsi-1]); dump();
-mov (ecx, ptr[rcx+rsi-1000]); dump();
-mov (ecx, ptr[rcx+rsi*1+0]); dump();
-mov (ecx, ptr[rcx+rsi*1+1]); dump();
-mov (ecx, ptr[rcx+rsi*1+1000]); dump();
-mov (ecx, ptr[rcx+rsi*1-1]); dump();
-mov (ecx, ptr[rcx+rsi*1-1000]); dump();
-mov (ecx, ptr[rcx+rsi*2+0]); dump();
-mov (ecx, ptr[rcx+rsi*2+1]); dump();
-mov (ecx, ptr[rcx+rsi*2+1000]); dump();
-mov (ecx, ptr[rcx+rsi*2-1]); dump();
-mov (ecx, ptr[rcx+rsi*2-1000]); dump();
-mov (ecx, ptr[rcx+rsi*4+0]); dump();
-mov (ecx, ptr[rcx+rsi*4+1]); dump();
-mov (ecx, ptr[rcx+rsi*4+1000]); dump();
-mov (ecx, ptr[rcx+rsi*4-1]); dump();
-mov (ecx, ptr[rcx+rsi*4-1000]); dump();
-mov (ecx, ptr[rcx+rsi*8+0]); dump();
-mov (ecx, ptr[rcx+rsi*8+1]); dump();
-mov (ecx, ptr[rcx+rsi*8+1000]); dump();
-mov (ecx, ptr[rcx+rsi*8-1]); dump();
-mov (ecx, ptr[rcx+rsi*8-1000]); dump();
-mov (ecx, ptr[rcx+rdi+0]); dump();
-mov (ecx, ptr[rcx+rdi+1]); dump();
-mov (ecx, ptr[rcx+rdi+1000]); dump();
-mov (ecx, ptr[rcx+rdi-1]); dump();
-mov (ecx, ptr[rcx+rdi-1000]); dump();
-mov (ecx, ptr[rcx+rdi*1+0]); dump();
-mov (ecx, ptr[rcx+rdi*1+1]); dump();
-mov (ecx, ptr[rcx+rdi*1+1000]); dump();
-mov (ecx, ptr[rcx+rdi*1-1]); dump();
-mov (ecx, ptr[rcx+rdi*1-1000]); dump();
-mov (ecx, ptr[rcx+rdi*2+0]); dump();
-mov (ecx, ptr[rcx+rdi*2+1]); dump();
-mov (ecx, ptr[rcx+rdi*2+1000]); dump();
-mov (ecx, ptr[rcx+rdi*2-1]); dump();
-mov (ecx, ptr[rcx+rdi*2-1000]); dump();
-mov (ecx, ptr[rcx+rdi*4+0]); dump();
-mov (ecx, ptr[rcx+rdi*4+1]); dump();
-mov (ecx, ptr[rcx+rdi*4+1000]); dump();
-mov (ecx, ptr[rcx+rdi*4-1]); dump();
-mov (ecx, ptr[rcx+rdi*4-1000]); dump();
-mov (ecx, ptr[rcx+rdi*8+0]); dump();
-mov (ecx, ptr[rcx+rdi*8+1]); dump();
-mov (ecx, ptr[rcx+rdi*8+1000]); dump();
-mov (ecx, ptr[rcx+rdi*8-1]); dump();
-mov (ecx, ptr[rcx+rdi*8-1000]); dump();
-mov (ecx, ptr[rcx+r9+0]); dump();
-mov (ecx, ptr[rcx+r9+1]); dump();
-mov (ecx, ptr[rcx+r9+1000]); dump();
-mov (ecx, ptr[rcx+r9-1]); dump();
-mov (ecx, ptr[rcx+r9-1000]); dump();
-mov (ecx, ptr[rcx+r9*1+0]); dump();
-mov (ecx, ptr[rcx+r9*1+1]); dump();
-mov (ecx, ptr[rcx+r9*1+1000]); dump();
-mov (ecx, ptr[rcx+r9*1-1]); dump();
-mov (ecx, ptr[rcx+r9*1-1000]); dump();
-mov (ecx, ptr[rcx+r9*2+0]); dump();
-mov (ecx, ptr[rcx+r9*2+1]); dump();
-mov (ecx, ptr[rcx+r9*2+1000]); dump();
-mov (ecx, ptr[rcx+r9*2-1]); dump();
-mov (ecx, ptr[rcx+r9*2-1000]); dump();
-mov (ecx, ptr[rcx+r9*4+0]); dump();
-mov (ecx, ptr[rcx+r9*4+1]); dump();
-mov (ecx, ptr[rcx+r9*4+1000]); dump();
-mov (ecx, ptr[rcx+r9*4-1]); dump();
-mov (ecx, ptr[rcx+r9*4-1000]); dump();
-mov (ecx, ptr[rcx+r9*8+0]); dump();
-mov (ecx, ptr[rcx+r9*8+1]); dump();
-mov (ecx, ptr[rcx+r9*8+1000]); dump();
-mov (ecx, ptr[rcx+r9*8-1]); dump();
-mov (ecx, ptr[rcx+r9*8-1000]); dump();
-mov (ecx, ptr[rcx+r10+0]); dump();
-mov (ecx, ptr[rcx+r10+1]); dump();
-mov (ecx, ptr[rcx+r10+1000]); dump();
-mov (ecx, ptr[rcx+r10-1]); dump();
-mov (ecx, ptr[rcx+r10-1000]); dump();
-mov (ecx, ptr[rcx+r10*1+0]); dump();
-mov (ecx, ptr[rcx+r10*1+1]); dump();
-mov (ecx, ptr[rcx+r10*1+1000]); dump();
-mov (ecx, ptr[rcx+r10*1-1]); dump();
-mov (ecx, ptr[rcx+r10*1-1000]); dump();
-mov (ecx, ptr[rcx+r10*2+0]); dump();
-mov (ecx, ptr[rcx+r10*2+1]); dump();
-mov (ecx, ptr[rcx+r10*2+1000]); dump();
-mov (ecx, ptr[rcx+r10*2-1]); dump();
-mov (ecx, ptr[rcx+r10*2-1000]); dump();
-mov (ecx, ptr[rcx+r10*4+0]); dump();
-mov (ecx, ptr[rcx+r10*4+1]); dump();
-mov (ecx, ptr[rcx+r10*4+1000]); dump();
-mov (ecx, ptr[rcx+r10*4-1]); dump();
-mov (ecx, ptr[rcx+r10*4-1000]); dump();
-mov (ecx, ptr[rcx+r10*8+0]); dump();
-mov (ecx, ptr[rcx+r10*8+1]); dump();
-mov (ecx, ptr[rcx+r10*8+1000]); dump();
-mov (ecx, ptr[rcx+r10*8-1]); dump();
-mov (ecx, ptr[rcx+r10*8-1000]); dump();
-}
- void gen6(){
-mov (ecx, ptr[rcx+r11+0]); dump();
-mov (ecx, ptr[rcx+r11+1]); dump();
-mov (ecx, ptr[rcx+r11+1000]); dump();
-mov (ecx, ptr[rcx+r11-1]); dump();
-mov (ecx, ptr[rcx+r11-1000]); dump();
-mov (ecx, ptr[rcx+r11*1+0]); dump();
-mov (ecx, ptr[rcx+r11*1+1]); dump();
-mov (ecx, ptr[rcx+r11*1+1000]); dump();
-mov (ecx, ptr[rcx+r11*1-1]); dump();
-mov (ecx, ptr[rcx+r11*1-1000]); dump();
-mov (ecx, ptr[rcx+r11*2+0]); dump();
-mov (ecx, ptr[rcx+r11*2+1]); dump();
-mov (ecx, ptr[rcx+r11*2+1000]); dump();
-mov (ecx, ptr[rcx+r11*2-1]); dump();
-mov (ecx, ptr[rcx+r11*2-1000]); dump();
-mov (ecx, ptr[rcx+r11*4+0]); dump();
-mov (ecx, ptr[rcx+r11*4+1]); dump();
-mov (ecx, ptr[rcx+r11*4+1000]); dump();
-mov (ecx, ptr[rcx+r11*4-1]); dump();
-mov (ecx, ptr[rcx+r11*4-1000]); dump();
-mov (ecx, ptr[rcx+r11*8+0]); dump();
-mov (ecx, ptr[rcx+r11*8+1]); dump();
-mov (ecx, ptr[rcx+r11*8+1000]); dump();
-mov (ecx, ptr[rcx+r11*8-1]); dump();
-mov (ecx, ptr[rcx+r11*8-1000]); dump();
-mov (ecx, ptr[rcx+r12+0]); dump();
-mov (ecx, ptr[rcx+r12+1]); dump();
-mov (ecx, ptr[rcx+r12+1000]); dump();
-mov (ecx, ptr[rcx+r12-1]); dump();
-mov (ecx, ptr[rcx+r12-1000]); dump();
-mov (ecx, ptr[rcx+r12*1+0]); dump();
-mov (ecx, ptr[rcx+r12*1+1]); dump();
-mov (ecx, ptr[rcx+r12*1+1000]); dump();
-mov (ecx, ptr[rcx+r12*1-1]); dump();
-mov (ecx, ptr[rcx+r12*1-1000]); dump();
-mov (ecx, ptr[rcx+r12*2+0]); dump();
-mov (ecx, ptr[rcx+r12*2+1]); dump();
-mov (ecx, ptr[rcx+r12*2+1000]); dump();
-mov (ecx, ptr[rcx+r12*2-1]); dump();
-mov (ecx, ptr[rcx+r12*2-1000]); dump();
-mov (ecx, ptr[rcx+r12*4+0]); dump();
-mov (ecx, ptr[rcx+r12*4+1]); dump();
-mov (ecx, ptr[rcx+r12*4+1000]); dump();
-mov (ecx, ptr[rcx+r12*4-1]); dump();
-mov (ecx, ptr[rcx+r12*4-1000]); dump();
-mov (ecx, ptr[rcx+r12*8+0]); dump();
-mov (ecx, ptr[rcx+r12*8+1]); dump();
-mov (ecx, ptr[rcx+r12*8+1000]); dump();
-mov (ecx, ptr[rcx+r12*8-1]); dump();
-mov (ecx, ptr[rcx+r12*8-1000]); dump();
-mov (ecx, ptr[rcx+r13+0]); dump();
-mov (ecx, ptr[rcx+r13+1]); dump();
-mov (ecx, ptr[rcx+r13+1000]); dump();
-mov (ecx, ptr[rcx+r13-1]); dump();
-mov (ecx, ptr[rcx+r13-1000]); dump();
-mov (ecx, ptr[rcx+r13*1+0]); dump();
-mov (ecx, ptr[rcx+r13*1+1]); dump();
-mov (ecx, ptr[rcx+r13*1+1000]); dump();
-mov (ecx, ptr[rcx+r13*1-1]); dump();
-mov (ecx, ptr[rcx+r13*1-1000]); dump();
-mov (ecx, ptr[rcx+r13*2+0]); dump();
-mov (ecx, ptr[rcx+r13*2+1]); dump();
-mov (ecx, ptr[rcx+r13*2+1000]); dump();
-mov (ecx, ptr[rcx+r13*2-1]); dump();
-mov (ecx, ptr[rcx+r13*2-1000]); dump();
-mov (ecx, ptr[rcx+r13*4+0]); dump();
-mov (ecx, ptr[rcx+r13*4+1]); dump();
-mov (ecx, ptr[rcx+r13*4+1000]); dump();
-mov (ecx, ptr[rcx+r13*4-1]); dump();
-mov (ecx, ptr[rcx+r13*4-1000]); dump();
-mov (ecx, ptr[rcx+r13*8+0]); dump();
-mov (ecx, ptr[rcx+r13*8+1]); dump();
-mov (ecx, ptr[rcx+r13*8+1000]); dump();
-mov (ecx, ptr[rcx+r13*8-1]); dump();
-mov (ecx, ptr[rcx+r13*8-1000]); dump();
-mov (ecx, ptr[rcx+r14+0]); dump();
-mov (ecx, ptr[rcx+r14+1]); dump();
-mov (ecx, ptr[rcx+r14+1000]); dump();
-mov (ecx, ptr[rcx+r14-1]); dump();
-mov (ecx, ptr[rcx+r14-1000]); dump();
-mov (ecx, ptr[rcx+r14*1+0]); dump();
-mov (ecx, ptr[rcx+r14*1+1]); dump();
-mov (ecx, ptr[rcx+r14*1+1000]); dump();
-mov (ecx, ptr[rcx+r14*1-1]); dump();
-mov (ecx, ptr[rcx+r14*1-1000]); dump();
-mov (ecx, ptr[rcx+r14*2+0]); dump();
-mov (ecx, ptr[rcx+r14*2+1]); dump();
-mov (ecx, ptr[rcx+r14*2+1000]); dump();
-mov (ecx, ptr[rcx+r14*2-1]); dump();
-mov (ecx, ptr[rcx+r14*2-1000]); dump();
-mov (ecx, ptr[rcx+r14*4+0]); dump();
-mov (ecx, ptr[rcx+r14*4+1]); dump();
-mov (ecx, ptr[rcx+r14*4+1000]); dump();
-mov (ecx, ptr[rcx+r14*4-1]); dump();
-mov (ecx, ptr[rcx+r14*4-1000]); dump();
-mov (ecx, ptr[rcx+r14*8+0]); dump();
-mov (ecx, ptr[rcx+r14*8+1]); dump();
-mov (ecx, ptr[rcx+r14*8+1000]); dump();
-mov (ecx, ptr[rcx+r14*8-1]); dump();
-mov (ecx, ptr[rcx+r14*8-1000]); dump();
-}
- void gen7(){
-mov (ecx, ptr[rcx+r15+0]); dump();
-mov (ecx, ptr[rcx+r15+1]); dump();
-mov (ecx, ptr[rcx+r15+1000]); dump();
-mov (ecx, ptr[rcx+r15-1]); dump();
-mov (ecx, ptr[rcx+r15-1000]); dump();
-mov (ecx, ptr[rcx+r15*1+0]); dump();
-mov (ecx, ptr[rcx+r15*1+1]); dump();
-mov (ecx, ptr[rcx+r15*1+1000]); dump();
-mov (ecx, ptr[rcx+r15*1-1]); dump();
-mov (ecx, ptr[rcx+r15*1-1000]); dump();
-mov (ecx, ptr[rcx+r15*2+0]); dump();
-mov (ecx, ptr[rcx+r15*2+1]); dump();
-mov (ecx, ptr[rcx+r15*2+1000]); dump();
-mov (ecx, ptr[rcx+r15*2-1]); dump();
-mov (ecx, ptr[rcx+r15*2-1000]); dump();
-mov (ecx, ptr[rcx+r15*4+0]); dump();
-mov (ecx, ptr[rcx+r15*4+1]); dump();
-mov (ecx, ptr[rcx+r15*4+1000]); dump();
-mov (ecx, ptr[rcx+r15*4-1]); dump();
-mov (ecx, ptr[rcx+r15*4-1000]); dump();
-mov (ecx, ptr[rcx+r15*8+0]); dump();
-mov (ecx, ptr[rcx+r15*8+1]); dump();
-mov (ecx, ptr[rcx+r15*8+1000]); dump();
-mov (ecx, ptr[rcx+r15*8-1]); dump();
-mov (ecx, ptr[rcx+r15*8-1000]); dump();
-mov (ecx, ptr[rcx+0]); dump();
-mov (ecx, ptr[rcx+1]); dump();
-mov (ecx, ptr[rcx+1000]); dump();
-mov (ecx, ptr[rcx-1]); dump();
-mov (ecx, ptr[rcx-1000]); dump();
-mov (ecx, ptr[rcx+0]); dump();
-mov (ecx, ptr[rcx+1]); dump();
-mov (ecx, ptr[rcx+1000]); dump();
-mov (ecx, ptr[rcx-1]); dump();
-mov (ecx, ptr[rcx-1000]); dump();
-mov (ecx, ptr[rcx+0]); dump();
-mov (ecx, ptr[rcx+1]); dump();
-mov (ecx, ptr[rcx+1000]); dump();
-mov (ecx, ptr[rcx-1]); dump();
-mov (ecx, ptr[rcx-1000]); dump();
-mov (ecx, ptr[rcx+0]); dump();
-mov (ecx, ptr[rcx+1]); dump();
-mov (ecx, ptr[rcx+1000]); dump();
-mov (ecx, ptr[rcx-1]); dump();
-mov (ecx, ptr[rcx-1000]); dump();
-mov (ecx, ptr[rcx+0]); dump();
-mov (ecx, ptr[rcx+1]); dump();
-mov (ecx, ptr[rcx+1000]); dump();
-mov (ecx, ptr[rcx-1]); dump();
-mov (ecx, ptr[rcx-1000]); dump();
-mov (ecx, ptr[rdx+rax+0]); dump();
-mov (ecx, ptr[rdx+rax+1]); dump();
-mov (ecx, ptr[rdx+rax+1000]); dump();
-mov (ecx, ptr[rdx+rax-1]); dump();
-mov (ecx, ptr[rdx+rax-1000]); dump();
-mov (ecx, ptr[rdx+rax*1+0]); dump();
-mov (ecx, ptr[rdx+rax*1+1]); dump();
-mov (ecx, ptr[rdx+rax*1+1000]); dump();
-mov (ecx, ptr[rdx+rax*1-1]); dump();
-mov (ecx, ptr[rdx+rax*1-1000]); dump();
-mov (ecx, ptr[rdx+rax*2+0]); dump();
-mov (ecx, ptr[rdx+rax*2+1]); dump();
-mov (ecx, ptr[rdx+rax*2+1000]); dump();
-mov (ecx, ptr[rdx+rax*2-1]); dump();
-mov (ecx, ptr[rdx+rax*2-1000]); dump();
-mov (ecx, ptr[rdx+rax*4+0]); dump();
-mov (ecx, ptr[rdx+rax*4+1]); dump();
-mov (ecx, ptr[rdx+rax*4+1000]); dump();
-mov (ecx, ptr[rdx+rax*4-1]); dump();
-mov (ecx, ptr[rdx+rax*4-1000]); dump();
-mov (ecx, ptr[rdx+rax*8+0]); dump();
-mov (ecx, ptr[rdx+rax*8+1]); dump();
-mov (ecx, ptr[rdx+rax*8+1000]); dump();
-mov (ecx, ptr[rdx+rax*8-1]); dump();
-mov (ecx, ptr[rdx+rax*8-1000]); dump();
-mov (ecx, ptr[rdx+rcx+0]); dump();
-mov (ecx, ptr[rdx+rcx+1]); dump();
-mov (ecx, ptr[rdx+rcx+1000]); dump();
-mov (ecx, ptr[rdx+rcx-1]); dump();
-mov (ecx, ptr[rdx+rcx-1000]); dump();
-mov (ecx, ptr[rdx+rcx*1+0]); dump();
-mov (ecx, ptr[rdx+rcx*1+1]); dump();
-mov (ecx, ptr[rdx+rcx*1+1000]); dump();
-mov (ecx, ptr[rdx+rcx*1-1]); dump();
-mov (ecx, ptr[rdx+rcx*1-1000]); dump();
-mov (ecx, ptr[rdx+rcx*2+0]); dump();
-mov (ecx, ptr[rdx+rcx*2+1]); dump();
-mov (ecx, ptr[rdx+rcx*2+1000]); dump();
-mov (ecx, ptr[rdx+rcx*2-1]); dump();
-mov (ecx, ptr[rdx+rcx*2-1000]); dump();
-mov (ecx, ptr[rdx+rcx*4+0]); dump();
-mov (ecx, ptr[rdx+rcx*4+1]); dump();
-mov (ecx, ptr[rdx+rcx*4+1000]); dump();
-mov (ecx, ptr[rdx+rcx*4-1]); dump();
-mov (ecx, ptr[rdx+rcx*4-1000]); dump();
-mov (ecx, ptr[rdx+rcx*8+0]); dump();
-mov (ecx, ptr[rdx+rcx*8+1]); dump();
-mov (ecx, ptr[rdx+rcx*8+1000]); dump();
-mov (ecx, ptr[rdx+rcx*8-1]); dump();
-mov (ecx, ptr[rdx+rcx*8-1000]); dump();
-}
- void gen8(){
-mov (ecx, ptr[rdx+rdx+0]); dump();
-mov (ecx, ptr[rdx+rdx+1]); dump();
-mov (ecx, ptr[rdx+rdx+1000]); dump();
-mov (ecx, ptr[rdx+rdx-1]); dump();
-mov (ecx, ptr[rdx+rdx-1000]); dump();
-mov (ecx, ptr[rdx+rdx*1+0]); dump();
-mov (ecx, ptr[rdx+rdx*1+1]); dump();
-mov (ecx, ptr[rdx+rdx*1+1000]); dump();
-mov (ecx, ptr[rdx+rdx*1-1]); dump();
-mov (ecx, ptr[rdx+rdx*1-1000]); dump();
-mov (ecx, ptr[rdx+rdx*2+0]); dump();
-mov (ecx, ptr[rdx+rdx*2+1]); dump();
-mov (ecx, ptr[rdx+rdx*2+1000]); dump();
-mov (ecx, ptr[rdx+rdx*2-1]); dump();
-mov (ecx, ptr[rdx+rdx*2-1000]); dump();
-mov (ecx, ptr[rdx+rdx*4+0]); dump();
-mov (ecx, ptr[rdx+rdx*4+1]); dump();
-mov (ecx, ptr[rdx+rdx*4+1000]); dump();
-mov (ecx, ptr[rdx+rdx*4-1]); dump();
-mov (ecx, ptr[rdx+rdx*4-1000]); dump();
-mov (ecx, ptr[rdx+rdx*8+0]); dump();
-mov (ecx, ptr[rdx+rdx*8+1]); dump();
-mov (ecx, ptr[rdx+rdx*8+1000]); dump();
-mov (ecx, ptr[rdx+rdx*8-1]); dump();
-mov (ecx, ptr[rdx+rdx*8-1000]); dump();
-mov (ecx, ptr[rdx+rbx+0]); dump();
-mov (ecx, ptr[rdx+rbx+1]); dump();
-mov (ecx, ptr[rdx+rbx+1000]); dump();
-mov (ecx, ptr[rdx+rbx-1]); dump();
-mov (ecx, ptr[rdx+rbx-1000]); dump();
-mov (ecx, ptr[rdx+rbx*1+0]); dump();
-mov (ecx, ptr[rdx+rbx*1+1]); dump();
-mov (ecx, ptr[rdx+rbx*1+1000]); dump();
-mov (ecx, ptr[rdx+rbx*1-1]); dump();
-mov (ecx, ptr[rdx+rbx*1-1000]); dump();
-mov (ecx, ptr[rdx+rbx*2+0]); dump();
-mov (ecx, ptr[rdx+rbx*2+1]); dump();
-mov (ecx, ptr[rdx+rbx*2+1000]); dump();
-mov (ecx, ptr[rdx+rbx*2-1]); dump();
-mov (ecx, ptr[rdx+rbx*2-1000]); dump();
-mov (ecx, ptr[rdx+rbx*4+0]); dump();
-mov (ecx, ptr[rdx+rbx*4+1]); dump();
-mov (ecx, ptr[rdx+rbx*4+1000]); dump();
-mov (ecx, ptr[rdx+rbx*4-1]); dump();
-mov (ecx, ptr[rdx+rbx*4-1000]); dump();
-mov (ecx, ptr[rdx+rbx*8+0]); dump();
-mov (ecx, ptr[rdx+rbx*8+1]); dump();
-mov (ecx, ptr[rdx+rbx*8+1000]); dump();
-mov (ecx, ptr[rdx+rbx*8-1]); dump();
-mov (ecx, ptr[rdx+rbx*8-1000]); dump();
-mov (ecx, ptr[rdx+rbp+0]); dump();
-mov (ecx, ptr[rdx+rbp+1]); dump();
-mov (ecx, ptr[rdx+rbp+1000]); dump();
-mov (ecx, ptr[rdx+rbp-1]); dump();
-mov (ecx, ptr[rdx+rbp-1000]); dump();
-mov (ecx, ptr[rdx+rbp*1+0]); dump();
-mov (ecx, ptr[rdx+rbp*1+1]); dump();
-mov (ecx, ptr[rdx+rbp*1+1000]); dump();
-mov (ecx, ptr[rdx+rbp*1-1]); dump();
-mov (ecx, ptr[rdx+rbp*1-1000]); dump();
-mov (ecx, ptr[rdx+rbp*2+0]); dump();
-mov (ecx, ptr[rdx+rbp*2+1]); dump();
-mov (ecx, ptr[rdx+rbp*2+1000]); dump();
-mov (ecx, ptr[rdx+rbp*2-1]); dump();
-mov (ecx, ptr[rdx+rbp*2-1000]); dump();
-mov (ecx, ptr[rdx+rbp*4+0]); dump();
-mov (ecx, ptr[rdx+rbp*4+1]); dump();
-mov (ecx, ptr[rdx+rbp*4+1000]); dump();
-mov (ecx, ptr[rdx+rbp*4-1]); dump();
-mov (ecx, ptr[rdx+rbp*4-1000]); dump();
-mov (ecx, ptr[rdx+rbp*8+0]); dump();
-mov (ecx, ptr[rdx+rbp*8+1]); dump();
-mov (ecx, ptr[rdx+rbp*8+1000]); dump();
-mov (ecx, ptr[rdx+rbp*8-1]); dump();
-mov (ecx, ptr[rdx+rbp*8-1000]); dump();
-mov (ecx, ptr[rdx+rsi+0]); dump();
-mov (ecx, ptr[rdx+rsi+1]); dump();
-mov (ecx, ptr[rdx+rsi+1000]); dump();
-mov (ecx, ptr[rdx+rsi-1]); dump();
-mov (ecx, ptr[rdx+rsi-1000]); dump();
-mov (ecx, ptr[rdx+rsi*1+0]); dump();
-mov (ecx, ptr[rdx+rsi*1+1]); dump();
-mov (ecx, ptr[rdx+rsi*1+1000]); dump();
-mov (ecx, ptr[rdx+rsi*1-1]); dump();
-mov (ecx, ptr[rdx+rsi*1-1000]); dump();
-mov (ecx, ptr[rdx+rsi*2+0]); dump();
-mov (ecx, ptr[rdx+rsi*2+1]); dump();
-mov (ecx, ptr[rdx+rsi*2+1000]); dump();
-mov (ecx, ptr[rdx+rsi*2-1]); dump();
-mov (ecx, ptr[rdx+rsi*2-1000]); dump();
-mov (ecx, ptr[rdx+rsi*4+0]); dump();
-mov (ecx, ptr[rdx+rsi*4+1]); dump();
-mov (ecx, ptr[rdx+rsi*4+1000]); dump();
-mov (ecx, ptr[rdx+rsi*4-1]); dump();
-mov (ecx, ptr[rdx+rsi*4-1000]); dump();
-mov (ecx, ptr[rdx+rsi*8+0]); dump();
-mov (ecx, ptr[rdx+rsi*8+1]); dump();
-mov (ecx, ptr[rdx+rsi*8+1000]); dump();
-mov (ecx, ptr[rdx+rsi*8-1]); dump();
-mov (ecx, ptr[rdx+rsi*8-1000]); dump();
-}
- void gen9(){
-mov (ecx, ptr[rdx+rdi+0]); dump();
-mov (ecx, ptr[rdx+rdi+1]); dump();
-mov (ecx, ptr[rdx+rdi+1000]); dump();
-mov (ecx, ptr[rdx+rdi-1]); dump();
-mov (ecx, ptr[rdx+rdi-1000]); dump();
-mov (ecx, ptr[rdx+rdi*1+0]); dump();
-mov (ecx, ptr[rdx+rdi*1+1]); dump();
-mov (ecx, ptr[rdx+rdi*1+1000]); dump();
-mov (ecx, ptr[rdx+rdi*1-1]); dump();
-mov (ecx, ptr[rdx+rdi*1-1000]); dump();
-mov (ecx, ptr[rdx+rdi*2+0]); dump();
-mov (ecx, ptr[rdx+rdi*2+1]); dump();
-mov (ecx, ptr[rdx+rdi*2+1000]); dump();
-mov (ecx, ptr[rdx+rdi*2-1]); dump();
-mov (ecx, ptr[rdx+rdi*2-1000]); dump();
-mov (ecx, ptr[rdx+rdi*4+0]); dump();
-mov (ecx, ptr[rdx+rdi*4+1]); dump();
-mov (ecx, ptr[rdx+rdi*4+1000]); dump();
-mov (ecx, ptr[rdx+rdi*4-1]); dump();
-mov (ecx, ptr[rdx+rdi*4-1000]); dump();
-mov (ecx, ptr[rdx+rdi*8+0]); dump();
-mov (ecx, ptr[rdx+rdi*8+1]); dump();
-mov (ecx, ptr[rdx+rdi*8+1000]); dump();
-mov (ecx, ptr[rdx+rdi*8-1]); dump();
-mov (ecx, ptr[rdx+rdi*8-1000]); dump();
-mov (ecx, ptr[rdx+r9+0]); dump();
-mov (ecx, ptr[rdx+r9+1]); dump();
-mov (ecx, ptr[rdx+r9+1000]); dump();
-mov (ecx, ptr[rdx+r9-1]); dump();
-mov (ecx, ptr[rdx+r9-1000]); dump();
-mov (ecx, ptr[rdx+r9*1+0]); dump();
-mov (ecx, ptr[rdx+r9*1+1]); dump();
-mov (ecx, ptr[rdx+r9*1+1000]); dump();
-mov (ecx, ptr[rdx+r9*1-1]); dump();
-mov (ecx, ptr[rdx+r9*1-1000]); dump();
-mov (ecx, ptr[rdx+r9*2+0]); dump();
-mov (ecx, ptr[rdx+r9*2+1]); dump();
-mov (ecx, ptr[rdx+r9*2+1000]); dump();
-mov (ecx, ptr[rdx+r9*2-1]); dump();
-mov (ecx, ptr[rdx+r9*2-1000]); dump();
-mov (ecx, ptr[rdx+r9*4+0]); dump();
-mov (ecx, ptr[rdx+r9*4+1]); dump();
-mov (ecx, ptr[rdx+r9*4+1000]); dump();
-mov (ecx, ptr[rdx+r9*4-1]); dump();
-mov (ecx, ptr[rdx+r9*4-1000]); dump();
-mov (ecx, ptr[rdx+r9*8+0]); dump();
-mov (ecx, ptr[rdx+r9*8+1]); dump();
-mov (ecx, ptr[rdx+r9*8+1000]); dump();
-mov (ecx, ptr[rdx+r9*8-1]); dump();
-mov (ecx, ptr[rdx+r9*8-1000]); dump();
-mov (ecx, ptr[rdx+r10+0]); dump();
-mov (ecx, ptr[rdx+r10+1]); dump();
-mov (ecx, ptr[rdx+r10+1000]); dump();
-mov (ecx, ptr[rdx+r10-1]); dump();
-mov (ecx, ptr[rdx+r10-1000]); dump();
-mov (ecx, ptr[rdx+r10*1+0]); dump();
-mov (ecx, ptr[rdx+r10*1+1]); dump();
-mov (ecx, ptr[rdx+r10*1+1000]); dump();
-mov (ecx, ptr[rdx+r10*1-1]); dump();
-mov (ecx, ptr[rdx+r10*1-1000]); dump();
-mov (ecx, ptr[rdx+r10*2+0]); dump();
-mov (ecx, ptr[rdx+r10*2+1]); dump();
-mov (ecx, ptr[rdx+r10*2+1000]); dump();
-mov (ecx, ptr[rdx+r10*2-1]); dump();
-mov (ecx, ptr[rdx+r10*2-1000]); dump();
-mov (ecx, ptr[rdx+r10*4+0]); dump();
-mov (ecx, ptr[rdx+r10*4+1]); dump();
-mov (ecx, ptr[rdx+r10*4+1000]); dump();
-mov (ecx, ptr[rdx+r10*4-1]); dump();
-mov (ecx, ptr[rdx+r10*4-1000]); dump();
-mov (ecx, ptr[rdx+r10*8+0]); dump();
-mov (ecx, ptr[rdx+r10*8+1]); dump();
-mov (ecx, ptr[rdx+r10*8+1000]); dump();
-mov (ecx, ptr[rdx+r10*8-1]); dump();
-mov (ecx, ptr[rdx+r10*8-1000]); dump();
-mov (ecx, ptr[rdx+r11+0]); dump();
-mov (ecx, ptr[rdx+r11+1]); dump();
-mov (ecx, ptr[rdx+r11+1000]); dump();
-mov (ecx, ptr[rdx+r11-1]); dump();
-mov (ecx, ptr[rdx+r11-1000]); dump();
-mov (ecx, ptr[rdx+r11*1+0]); dump();
-mov (ecx, ptr[rdx+r11*1+1]); dump();
-mov (ecx, ptr[rdx+r11*1+1000]); dump();
-mov (ecx, ptr[rdx+r11*1-1]); dump();
-mov (ecx, ptr[rdx+r11*1-1000]); dump();
-mov (ecx, ptr[rdx+r11*2+0]); dump();
-mov (ecx, ptr[rdx+r11*2+1]); dump();
-mov (ecx, ptr[rdx+r11*2+1000]); dump();
-mov (ecx, ptr[rdx+r11*2-1]); dump();
-mov (ecx, ptr[rdx+r11*2-1000]); dump();
-mov (ecx, ptr[rdx+r11*4+0]); dump();
-mov (ecx, ptr[rdx+r11*4+1]); dump();
-mov (ecx, ptr[rdx+r11*4+1000]); dump();
-mov (ecx, ptr[rdx+r11*4-1]); dump();
-mov (ecx, ptr[rdx+r11*4-1000]); dump();
-mov (ecx, ptr[rdx+r11*8+0]); dump();
-mov (ecx, ptr[rdx+r11*8+1]); dump();
-mov (ecx, ptr[rdx+r11*8+1000]); dump();
-mov (ecx, ptr[rdx+r11*8-1]); dump();
-mov (ecx, ptr[rdx+r11*8-1000]); dump();
-}
- void gen10(){
-mov (ecx, ptr[rdx+r12+0]); dump();
-mov (ecx, ptr[rdx+r12+1]); dump();
-mov (ecx, ptr[rdx+r12+1000]); dump();
-mov (ecx, ptr[rdx+r12-1]); dump();
-mov (ecx, ptr[rdx+r12-1000]); dump();
-mov (ecx, ptr[rdx+r12*1+0]); dump();
-mov (ecx, ptr[rdx+r12*1+1]); dump();
-mov (ecx, ptr[rdx+r12*1+1000]); dump();
-mov (ecx, ptr[rdx+r12*1-1]); dump();
-mov (ecx, ptr[rdx+r12*1-1000]); dump();
-mov (ecx, ptr[rdx+r12*2+0]); dump();
-mov (ecx, ptr[rdx+r12*2+1]); dump();
-mov (ecx, ptr[rdx+r12*2+1000]); dump();
-mov (ecx, ptr[rdx+r12*2-1]); dump();
-mov (ecx, ptr[rdx+r12*2-1000]); dump();
-mov (ecx, ptr[rdx+r12*4+0]); dump();
-mov (ecx, ptr[rdx+r12*4+1]); dump();
-mov (ecx, ptr[rdx+r12*4+1000]); dump();
-mov (ecx, ptr[rdx+r12*4-1]); dump();
-mov (ecx, ptr[rdx+r12*4-1000]); dump();
-mov (ecx, ptr[rdx+r12*8+0]); dump();
-mov (ecx, ptr[rdx+r12*8+1]); dump();
-mov (ecx, ptr[rdx+r12*8+1000]); dump();
-mov (ecx, ptr[rdx+r12*8-1]); dump();
-mov (ecx, ptr[rdx+r12*8-1000]); dump();
-mov (ecx, ptr[rdx+r13+0]); dump();
-mov (ecx, ptr[rdx+r13+1]); dump();
-mov (ecx, ptr[rdx+r13+1000]); dump();
-mov (ecx, ptr[rdx+r13-1]); dump();
-mov (ecx, ptr[rdx+r13-1000]); dump();
-mov (ecx, ptr[rdx+r13*1+0]); dump();
-mov (ecx, ptr[rdx+r13*1+1]); dump();
-mov (ecx, ptr[rdx+r13*1+1000]); dump();
-mov (ecx, ptr[rdx+r13*1-1]); dump();
-mov (ecx, ptr[rdx+r13*1-1000]); dump();
-mov (ecx, ptr[rdx+r13*2+0]); dump();
-mov (ecx, ptr[rdx+r13*2+1]); dump();
-mov (ecx, ptr[rdx+r13*2+1000]); dump();
-mov (ecx, ptr[rdx+r13*2-1]); dump();
-mov (ecx, ptr[rdx+r13*2-1000]); dump();
-mov (ecx, ptr[rdx+r13*4+0]); dump();
-mov (ecx, ptr[rdx+r13*4+1]); dump();
-mov (ecx, ptr[rdx+r13*4+1000]); dump();
-mov (ecx, ptr[rdx+r13*4-1]); dump();
-mov (ecx, ptr[rdx+r13*4-1000]); dump();
-mov (ecx, ptr[rdx+r13*8+0]); dump();
-mov (ecx, ptr[rdx+r13*8+1]); dump();
-mov (ecx, ptr[rdx+r13*8+1000]); dump();
-mov (ecx, ptr[rdx+r13*8-1]); dump();
-mov (ecx, ptr[rdx+r13*8-1000]); dump();
-mov (ecx, ptr[rdx+r14+0]); dump();
-mov (ecx, ptr[rdx+r14+1]); dump();
-mov (ecx, ptr[rdx+r14+1000]); dump();
-mov (ecx, ptr[rdx+r14-1]); dump();
-mov (ecx, ptr[rdx+r14-1000]); dump();
-mov (ecx, ptr[rdx+r14*1+0]); dump();
-mov (ecx, ptr[rdx+r14*1+1]); dump();
-mov (ecx, ptr[rdx+r14*1+1000]); dump();
-mov (ecx, ptr[rdx+r14*1-1]); dump();
-mov (ecx, ptr[rdx+r14*1-1000]); dump();
-mov (ecx, ptr[rdx+r14*2+0]); dump();
-mov (ecx, ptr[rdx+r14*2+1]); dump();
-mov (ecx, ptr[rdx+r14*2+1000]); dump();
-mov (ecx, ptr[rdx+r14*2-1]); dump();
-mov (ecx, ptr[rdx+r14*2-1000]); dump();
-mov (ecx, ptr[rdx+r14*4+0]); dump();
-mov (ecx, ptr[rdx+r14*4+1]); dump();
-mov (ecx, ptr[rdx+r14*4+1000]); dump();
-mov (ecx, ptr[rdx+r14*4-1]); dump();
-mov (ecx, ptr[rdx+r14*4-1000]); dump();
-mov (ecx, ptr[rdx+r14*8+0]); dump();
-mov (ecx, ptr[rdx+r14*8+1]); dump();
-mov (ecx, ptr[rdx+r14*8+1000]); dump();
-mov (ecx, ptr[rdx+r14*8-1]); dump();
-mov (ecx, ptr[rdx+r14*8-1000]); dump();
-mov (ecx, ptr[rdx+r15+0]); dump();
-mov (ecx, ptr[rdx+r15+1]); dump();
-mov (ecx, ptr[rdx+r15+1000]); dump();
-mov (ecx, ptr[rdx+r15-1]); dump();
-mov (ecx, ptr[rdx+r15-1000]); dump();
-mov (ecx, ptr[rdx+r15*1+0]); dump();
-mov (ecx, ptr[rdx+r15*1+1]); dump();
-mov (ecx, ptr[rdx+r15*1+1000]); dump();
-mov (ecx, ptr[rdx+r15*1-1]); dump();
-mov (ecx, ptr[rdx+r15*1-1000]); dump();
-mov (ecx, ptr[rdx+r15*2+0]); dump();
-mov (ecx, ptr[rdx+r15*2+1]); dump();
-mov (ecx, ptr[rdx+r15*2+1000]); dump();
-mov (ecx, ptr[rdx+r15*2-1]); dump();
-mov (ecx, ptr[rdx+r15*2-1000]); dump();
-mov (ecx, ptr[rdx+r15*4+0]); dump();
-mov (ecx, ptr[rdx+r15*4+1]); dump();
-mov (ecx, ptr[rdx+r15*4+1000]); dump();
-mov (ecx, ptr[rdx+r15*4-1]); dump();
-mov (ecx, ptr[rdx+r15*4-1000]); dump();
-mov (ecx, ptr[rdx+r15*8+0]); dump();
-mov (ecx, ptr[rdx+r15*8+1]); dump();
-mov (ecx, ptr[rdx+r15*8+1000]); dump();
-mov (ecx, ptr[rdx+r15*8-1]); dump();
-mov (ecx, ptr[rdx+r15*8-1000]); dump();
-}
- void gen11(){
-mov (ecx, ptr[rdx+0]); dump();
-mov (ecx, ptr[rdx+1]); dump();
-mov (ecx, ptr[rdx+1000]); dump();
-mov (ecx, ptr[rdx-1]); dump();
-mov (ecx, ptr[rdx-1000]); dump();
-mov (ecx, ptr[rdx+0]); dump();
-mov (ecx, ptr[rdx+1]); dump();
-mov (ecx, ptr[rdx+1000]); dump();
-mov (ecx, ptr[rdx-1]); dump();
-mov (ecx, ptr[rdx-1000]); dump();
-mov (ecx, ptr[rdx+0]); dump();
-mov (ecx, ptr[rdx+1]); dump();
-mov (ecx, ptr[rdx+1000]); dump();
-mov (ecx, ptr[rdx-1]); dump();
-mov (ecx, ptr[rdx-1000]); dump();
-mov (ecx, ptr[rdx+0]); dump();
-mov (ecx, ptr[rdx+1]); dump();
-mov (ecx, ptr[rdx+1000]); dump();
-mov (ecx, ptr[rdx-1]); dump();
-mov (ecx, ptr[rdx-1000]); dump();
-mov (ecx, ptr[rdx+0]); dump();
-mov (ecx, ptr[rdx+1]); dump();
-mov (ecx, ptr[rdx+1000]); dump();
-mov (ecx, ptr[rdx-1]); dump();
-mov (ecx, ptr[rdx-1000]); dump();
-mov (ecx, ptr[rbx+rax+0]); dump();
-mov (ecx, ptr[rbx+rax+1]); dump();
-mov (ecx, ptr[rbx+rax+1000]); dump();
-mov (ecx, ptr[rbx+rax-1]); dump();
-mov (ecx, ptr[rbx+rax-1000]); dump();
-mov (ecx, ptr[rbx+rax*1+0]); dump();
-mov (ecx, ptr[rbx+rax*1+1]); dump();
-mov (ecx, ptr[rbx+rax*1+1000]); dump();
-mov (ecx, ptr[rbx+rax*1-1]); dump();
-mov (ecx, ptr[rbx+rax*1-1000]); dump();
-mov (ecx, ptr[rbx+rax*2+0]); dump();
-mov (ecx, ptr[rbx+rax*2+1]); dump();
-mov (ecx, ptr[rbx+rax*2+1000]); dump();
-mov (ecx, ptr[rbx+rax*2-1]); dump();
-mov (ecx, ptr[rbx+rax*2-1000]); dump();
-mov (ecx, ptr[rbx+rax*4+0]); dump();
-mov (ecx, ptr[rbx+rax*4+1]); dump();
-mov (ecx, ptr[rbx+rax*4+1000]); dump();
-mov (ecx, ptr[rbx+rax*4-1]); dump();
-mov (ecx, ptr[rbx+rax*4-1000]); dump();
-mov (ecx, ptr[rbx+rax*8+0]); dump();
-mov (ecx, ptr[rbx+rax*8+1]); dump();
-mov (ecx, ptr[rbx+rax*8+1000]); dump();
-mov (ecx, ptr[rbx+rax*8-1]); dump();
-mov (ecx, ptr[rbx+rax*8-1000]); dump();
-mov (ecx, ptr[rbx+rcx+0]); dump();
-mov (ecx, ptr[rbx+rcx+1]); dump();
-mov (ecx, ptr[rbx+rcx+1000]); dump();
-mov (ecx, ptr[rbx+rcx-1]); dump();
-mov (ecx, ptr[rbx+rcx-1000]); dump();
-mov (ecx, ptr[rbx+rcx*1+0]); dump();
-mov (ecx, ptr[rbx+rcx*1+1]); dump();
-mov (ecx, ptr[rbx+rcx*1+1000]); dump();
-mov (ecx, ptr[rbx+rcx*1-1]); dump();
-mov (ecx, ptr[rbx+rcx*1-1000]); dump();
-mov (ecx, ptr[rbx+rcx*2+0]); dump();
-mov (ecx, ptr[rbx+rcx*2+1]); dump();
-mov (ecx, ptr[rbx+rcx*2+1000]); dump();
-mov (ecx, ptr[rbx+rcx*2-1]); dump();
-mov (ecx, ptr[rbx+rcx*2-1000]); dump();
-mov (ecx, ptr[rbx+rcx*4+0]); dump();
-mov (ecx, ptr[rbx+rcx*4+1]); dump();
-mov (ecx, ptr[rbx+rcx*4+1000]); dump();
-mov (ecx, ptr[rbx+rcx*4-1]); dump();
-mov (ecx, ptr[rbx+rcx*4-1000]); dump();
-mov (ecx, ptr[rbx+rcx*8+0]); dump();
-mov (ecx, ptr[rbx+rcx*8+1]); dump();
-mov (ecx, ptr[rbx+rcx*8+1000]); dump();
-mov (ecx, ptr[rbx+rcx*8-1]); dump();
-mov (ecx, ptr[rbx+rcx*8-1000]); dump();
-mov (ecx, ptr[rbx+rdx+0]); dump();
-mov (ecx, ptr[rbx+rdx+1]); dump();
-mov (ecx, ptr[rbx+rdx+1000]); dump();
-mov (ecx, ptr[rbx+rdx-1]); dump();
-mov (ecx, ptr[rbx+rdx-1000]); dump();
-mov (ecx, ptr[rbx+rdx*1+0]); dump();
-mov (ecx, ptr[rbx+rdx*1+1]); dump();
-mov (ecx, ptr[rbx+rdx*1+1000]); dump();
-mov (ecx, ptr[rbx+rdx*1-1]); dump();
-mov (ecx, ptr[rbx+rdx*1-1000]); dump();
-mov (ecx, ptr[rbx+rdx*2+0]); dump();
-mov (ecx, ptr[rbx+rdx*2+1]); dump();
-mov (ecx, ptr[rbx+rdx*2+1000]); dump();
-mov (ecx, ptr[rbx+rdx*2-1]); dump();
-mov (ecx, ptr[rbx+rdx*2-1000]); dump();
-mov (ecx, ptr[rbx+rdx*4+0]); dump();
-mov (ecx, ptr[rbx+rdx*4+1]); dump();
-mov (ecx, ptr[rbx+rdx*4+1000]); dump();
-mov (ecx, ptr[rbx+rdx*4-1]); dump();
-mov (ecx, ptr[rbx+rdx*4-1000]); dump();
-mov (ecx, ptr[rbx+rdx*8+0]); dump();
-mov (ecx, ptr[rbx+rdx*8+1]); dump();
-mov (ecx, ptr[rbx+rdx*8+1000]); dump();
-mov (ecx, ptr[rbx+rdx*8-1]); dump();
-mov (ecx, ptr[rbx+rdx*8-1000]); dump();
-}
- void gen12(){
-mov (ecx, ptr[rbx+rbx+0]); dump();
-mov (ecx, ptr[rbx+rbx+1]); dump();
-mov (ecx, ptr[rbx+rbx+1000]); dump();
-mov (ecx, ptr[rbx+rbx-1]); dump();
-mov (ecx, ptr[rbx+rbx-1000]); dump();
-mov (ecx, ptr[rbx+rbx*1+0]); dump();
-mov (ecx, ptr[rbx+rbx*1+1]); dump();
-mov (ecx, ptr[rbx+rbx*1+1000]); dump();
-mov (ecx, ptr[rbx+rbx*1-1]); dump();
-mov (ecx, ptr[rbx+rbx*1-1000]); dump();
-mov (ecx, ptr[rbx+rbx*2+0]); dump();
-mov (ecx, ptr[rbx+rbx*2+1]); dump();
-mov (ecx, ptr[rbx+rbx*2+1000]); dump();
-mov (ecx, ptr[rbx+rbx*2-1]); dump();
-mov (ecx, ptr[rbx+rbx*2-1000]); dump();
-mov (ecx, ptr[rbx+rbx*4+0]); dump();
-mov (ecx, ptr[rbx+rbx*4+1]); dump();
-mov (ecx, ptr[rbx+rbx*4+1000]); dump();
-mov (ecx, ptr[rbx+rbx*4-1]); dump();
-mov (ecx, ptr[rbx+rbx*4-1000]); dump();
-mov (ecx, ptr[rbx+rbx*8+0]); dump();
-mov (ecx, ptr[rbx+rbx*8+1]); dump();
-mov (ecx, ptr[rbx+rbx*8+1000]); dump();
-mov (ecx, ptr[rbx+rbx*8-1]); dump();
-mov (ecx, ptr[rbx+rbx*8-1000]); dump();
-mov (ecx, ptr[rbx+rbp+0]); dump();
-mov (ecx, ptr[rbx+rbp+1]); dump();
-mov (ecx, ptr[rbx+rbp+1000]); dump();
-mov (ecx, ptr[rbx+rbp-1]); dump();
-mov (ecx, ptr[rbx+rbp-1000]); dump();
-mov (ecx, ptr[rbx+rbp*1+0]); dump();
-mov (ecx, ptr[rbx+rbp*1+1]); dump();
-mov (ecx, ptr[rbx+rbp*1+1000]); dump();
-mov (ecx, ptr[rbx+rbp*1-1]); dump();
-mov (ecx, ptr[rbx+rbp*1-1000]); dump();
-mov (ecx, ptr[rbx+rbp*2+0]); dump();
-mov (ecx, ptr[rbx+rbp*2+1]); dump();
-mov (ecx, ptr[rbx+rbp*2+1000]); dump();
-mov (ecx, ptr[rbx+rbp*2-1]); dump();
-mov (ecx, ptr[rbx+rbp*2-1000]); dump();
-mov (ecx, ptr[rbx+rbp*4+0]); dump();
-mov (ecx, ptr[rbx+rbp*4+1]); dump();
-mov (ecx, ptr[rbx+rbp*4+1000]); dump();
-mov (ecx, ptr[rbx+rbp*4-1]); dump();
-mov (ecx, ptr[rbx+rbp*4-1000]); dump();
-mov (ecx, ptr[rbx+rbp*8+0]); dump();
-mov (ecx, ptr[rbx+rbp*8+1]); dump();
-mov (ecx, ptr[rbx+rbp*8+1000]); dump();
-mov (ecx, ptr[rbx+rbp*8-1]); dump();
-mov (ecx, ptr[rbx+rbp*8-1000]); dump();
-mov (ecx, ptr[rbx+rsi+0]); dump();
-mov (ecx, ptr[rbx+rsi+1]); dump();
-mov (ecx, ptr[rbx+rsi+1000]); dump();
-mov (ecx, ptr[rbx+rsi-1]); dump();
-mov (ecx, ptr[rbx+rsi-1000]); dump();
-mov (ecx, ptr[rbx+rsi*1+0]); dump();
-mov (ecx, ptr[rbx+rsi*1+1]); dump();
-mov (ecx, ptr[rbx+rsi*1+1000]); dump();
-mov (ecx, ptr[rbx+rsi*1-1]); dump();
-mov (ecx, ptr[rbx+rsi*1-1000]); dump();
-mov (ecx, ptr[rbx+rsi*2+0]); dump();
-mov (ecx, ptr[rbx+rsi*2+1]); dump();
-mov (ecx, ptr[rbx+rsi*2+1000]); dump();
-mov (ecx, ptr[rbx+rsi*2-1]); dump();
-mov (ecx, ptr[rbx+rsi*2-1000]); dump();
-mov (ecx, ptr[rbx+rsi*4+0]); dump();
-mov (ecx, ptr[rbx+rsi*4+1]); dump();
-mov (ecx, ptr[rbx+rsi*4+1000]); dump();
-mov (ecx, ptr[rbx+rsi*4-1]); dump();
-mov (ecx, ptr[rbx+rsi*4-1000]); dump();
-mov (ecx, ptr[rbx+rsi*8+0]); dump();
-mov (ecx, ptr[rbx+rsi*8+1]); dump();
-mov (ecx, ptr[rbx+rsi*8+1000]); dump();
-mov (ecx, ptr[rbx+rsi*8-1]); dump();
-mov (ecx, ptr[rbx+rsi*8-1000]); dump();
-mov (ecx, ptr[rbx+rdi+0]); dump();
-mov (ecx, ptr[rbx+rdi+1]); dump();
-mov (ecx, ptr[rbx+rdi+1000]); dump();
-mov (ecx, ptr[rbx+rdi-1]); dump();
-mov (ecx, ptr[rbx+rdi-1000]); dump();
-mov (ecx, ptr[rbx+rdi*1+0]); dump();
-mov (ecx, ptr[rbx+rdi*1+1]); dump();
-mov (ecx, ptr[rbx+rdi*1+1000]); dump();
-mov (ecx, ptr[rbx+rdi*1-1]); dump();
-mov (ecx, ptr[rbx+rdi*1-1000]); dump();
-mov (ecx, ptr[rbx+rdi*2+0]); dump();
-mov (ecx, ptr[rbx+rdi*2+1]); dump();
-mov (ecx, ptr[rbx+rdi*2+1000]); dump();
-mov (ecx, ptr[rbx+rdi*2-1]); dump();
-mov (ecx, ptr[rbx+rdi*2-1000]); dump();
-mov (ecx, ptr[rbx+rdi*4+0]); dump();
-mov (ecx, ptr[rbx+rdi*4+1]); dump();
-mov (ecx, ptr[rbx+rdi*4+1000]); dump();
-mov (ecx, ptr[rbx+rdi*4-1]); dump();
-mov (ecx, ptr[rbx+rdi*4-1000]); dump();
-mov (ecx, ptr[rbx+rdi*8+0]); dump();
-mov (ecx, ptr[rbx+rdi*8+1]); dump();
-mov (ecx, ptr[rbx+rdi*8+1000]); dump();
-mov (ecx, ptr[rbx+rdi*8-1]); dump();
-mov (ecx, ptr[rbx+rdi*8-1000]); dump();
-}
- void gen13(){
-mov (ecx, ptr[rbx+r9+0]); dump();
-mov (ecx, ptr[rbx+r9+1]); dump();
-mov (ecx, ptr[rbx+r9+1000]); dump();
-mov (ecx, ptr[rbx+r9-1]); dump();
-mov (ecx, ptr[rbx+r9-1000]); dump();
-mov (ecx, ptr[rbx+r9*1+0]); dump();
-mov (ecx, ptr[rbx+r9*1+1]); dump();
-mov (ecx, ptr[rbx+r9*1+1000]); dump();
-mov (ecx, ptr[rbx+r9*1-1]); dump();
-mov (ecx, ptr[rbx+r9*1-1000]); dump();
-mov (ecx, ptr[rbx+r9*2+0]); dump();
-mov (ecx, ptr[rbx+r9*2+1]); dump();
-mov (ecx, ptr[rbx+r9*2+1000]); dump();
-mov (ecx, ptr[rbx+r9*2-1]); dump();
-mov (ecx, ptr[rbx+r9*2-1000]); dump();
-mov (ecx, ptr[rbx+r9*4+0]); dump();
-mov (ecx, ptr[rbx+r9*4+1]); dump();
-mov (ecx, ptr[rbx+r9*4+1000]); dump();
-mov (ecx, ptr[rbx+r9*4-1]); dump();
-mov (ecx, ptr[rbx+r9*4-1000]); dump();
-mov (ecx, ptr[rbx+r9*8+0]); dump();
-mov (ecx, ptr[rbx+r9*8+1]); dump();
-mov (ecx, ptr[rbx+r9*8+1000]); dump();
-mov (ecx, ptr[rbx+r9*8-1]); dump();
-mov (ecx, ptr[rbx+r9*8-1000]); dump();
-mov (ecx, ptr[rbx+r10+0]); dump();
-mov (ecx, ptr[rbx+r10+1]); dump();
-mov (ecx, ptr[rbx+r10+1000]); dump();
-mov (ecx, ptr[rbx+r10-1]); dump();
-mov (ecx, ptr[rbx+r10-1000]); dump();
-mov (ecx, ptr[rbx+r10*1+0]); dump();
-mov (ecx, ptr[rbx+r10*1+1]); dump();
-mov (ecx, ptr[rbx+r10*1+1000]); dump();
-mov (ecx, ptr[rbx+r10*1-1]); dump();
-mov (ecx, ptr[rbx+r10*1-1000]); dump();
-mov (ecx, ptr[rbx+r10*2+0]); dump();
-mov (ecx, ptr[rbx+r10*2+1]); dump();
-mov (ecx, ptr[rbx+r10*2+1000]); dump();
-mov (ecx, ptr[rbx+r10*2-1]); dump();
-mov (ecx, ptr[rbx+r10*2-1000]); dump();
-mov (ecx, ptr[rbx+r10*4+0]); dump();
-mov (ecx, ptr[rbx+r10*4+1]); dump();
-mov (ecx, ptr[rbx+r10*4+1000]); dump();
-mov (ecx, ptr[rbx+r10*4-1]); dump();
-mov (ecx, ptr[rbx+r10*4-1000]); dump();
-mov (ecx, ptr[rbx+r10*8+0]); dump();
-mov (ecx, ptr[rbx+r10*8+1]); dump();
-mov (ecx, ptr[rbx+r10*8+1000]); dump();
-mov (ecx, ptr[rbx+r10*8-1]); dump();
-mov (ecx, ptr[rbx+r10*8-1000]); dump();
-mov (ecx, ptr[rbx+r11+0]); dump();
-mov (ecx, ptr[rbx+r11+1]); dump();
-mov (ecx, ptr[rbx+r11+1000]); dump();
-mov (ecx, ptr[rbx+r11-1]); dump();
-mov (ecx, ptr[rbx+r11-1000]); dump();
-mov (ecx, ptr[rbx+r11*1+0]); dump();
-mov (ecx, ptr[rbx+r11*1+1]); dump();
-mov (ecx, ptr[rbx+r11*1+1000]); dump();
-mov (ecx, ptr[rbx+r11*1-1]); dump();
-mov (ecx, ptr[rbx+r11*1-1000]); dump();
-mov (ecx, ptr[rbx+r11*2+0]); dump();
-mov (ecx, ptr[rbx+r11*2+1]); dump();
-mov (ecx, ptr[rbx+r11*2+1000]); dump();
-mov (ecx, ptr[rbx+r11*2-1]); dump();
-mov (ecx, ptr[rbx+r11*2-1000]); dump();
-mov (ecx, ptr[rbx+r11*4+0]); dump();
-mov (ecx, ptr[rbx+r11*4+1]); dump();
-mov (ecx, ptr[rbx+r11*4+1000]); dump();
-mov (ecx, ptr[rbx+r11*4-1]); dump();
-mov (ecx, ptr[rbx+r11*4-1000]); dump();
-mov (ecx, ptr[rbx+r11*8+0]); dump();
-mov (ecx, ptr[rbx+r11*8+1]); dump();
-mov (ecx, ptr[rbx+r11*8+1000]); dump();
-mov (ecx, ptr[rbx+r11*8-1]); dump();
-mov (ecx, ptr[rbx+r11*8-1000]); dump();
-mov (ecx, ptr[rbx+r12+0]); dump();
-mov (ecx, ptr[rbx+r12+1]); dump();
-mov (ecx, ptr[rbx+r12+1000]); dump();
-mov (ecx, ptr[rbx+r12-1]); dump();
-mov (ecx, ptr[rbx+r12-1000]); dump();
-mov (ecx, ptr[rbx+r12*1+0]); dump();
-mov (ecx, ptr[rbx+r12*1+1]); dump();
-mov (ecx, ptr[rbx+r12*1+1000]); dump();
-mov (ecx, ptr[rbx+r12*1-1]); dump();
-mov (ecx, ptr[rbx+r12*1-1000]); dump();
-mov (ecx, ptr[rbx+r12*2+0]); dump();
-mov (ecx, ptr[rbx+r12*2+1]); dump();
-mov (ecx, ptr[rbx+r12*2+1000]); dump();
-mov (ecx, ptr[rbx+r12*2-1]); dump();
-mov (ecx, ptr[rbx+r12*2-1000]); dump();
-mov (ecx, ptr[rbx+r12*4+0]); dump();
-mov (ecx, ptr[rbx+r12*4+1]); dump();
-mov (ecx, ptr[rbx+r12*4+1000]); dump();
-mov (ecx, ptr[rbx+r12*4-1]); dump();
-mov (ecx, ptr[rbx+r12*4-1000]); dump();
-mov (ecx, ptr[rbx+r12*8+0]); dump();
-mov (ecx, ptr[rbx+r12*8+1]); dump();
-mov (ecx, ptr[rbx+r12*8+1000]); dump();
-mov (ecx, ptr[rbx+r12*8-1]); dump();
-mov (ecx, ptr[rbx+r12*8-1000]); dump();
-}
- void gen14(){
-mov (ecx, ptr[rbx+r13+0]); dump();
-mov (ecx, ptr[rbx+r13+1]); dump();
-mov (ecx, ptr[rbx+r13+1000]); dump();
-mov (ecx, ptr[rbx+r13-1]); dump();
-mov (ecx, ptr[rbx+r13-1000]); dump();
-mov (ecx, ptr[rbx+r13*1+0]); dump();
-mov (ecx, ptr[rbx+r13*1+1]); dump();
-mov (ecx, ptr[rbx+r13*1+1000]); dump();
-mov (ecx, ptr[rbx+r13*1-1]); dump();
-mov (ecx, ptr[rbx+r13*1-1000]); dump();
-mov (ecx, ptr[rbx+r13*2+0]); dump();
-mov (ecx, ptr[rbx+r13*2+1]); dump();
-mov (ecx, ptr[rbx+r13*2+1000]); dump();
-mov (ecx, ptr[rbx+r13*2-1]); dump();
-mov (ecx, ptr[rbx+r13*2-1000]); dump();
-mov (ecx, ptr[rbx+r13*4+0]); dump();
-mov (ecx, ptr[rbx+r13*4+1]); dump();
-mov (ecx, ptr[rbx+r13*4+1000]); dump();
-mov (ecx, ptr[rbx+r13*4-1]); dump();
-mov (ecx, ptr[rbx+r13*4-1000]); dump();
-mov (ecx, ptr[rbx+r13*8+0]); dump();
-mov (ecx, ptr[rbx+r13*8+1]); dump();
-mov (ecx, ptr[rbx+r13*8+1000]); dump();
-mov (ecx, ptr[rbx+r13*8-1]); dump();
-mov (ecx, ptr[rbx+r13*8-1000]); dump();
-mov (ecx, ptr[rbx+r14+0]); dump();
-mov (ecx, ptr[rbx+r14+1]); dump();
-mov (ecx, ptr[rbx+r14+1000]); dump();
-mov (ecx, ptr[rbx+r14-1]); dump();
-mov (ecx, ptr[rbx+r14-1000]); dump();
-mov (ecx, ptr[rbx+r14*1+0]); dump();
-mov (ecx, ptr[rbx+r14*1+1]); dump();
-mov (ecx, ptr[rbx+r14*1+1000]); dump();
-mov (ecx, ptr[rbx+r14*1-1]); dump();
-mov (ecx, ptr[rbx+r14*1-1000]); dump();
-mov (ecx, ptr[rbx+r14*2+0]); dump();
-mov (ecx, ptr[rbx+r14*2+1]); dump();
-mov (ecx, ptr[rbx+r14*2+1000]); dump();
-mov (ecx, ptr[rbx+r14*2-1]); dump();
-mov (ecx, ptr[rbx+r14*2-1000]); dump();
-mov (ecx, ptr[rbx+r14*4+0]); dump();
-mov (ecx, ptr[rbx+r14*4+1]); dump();
-mov (ecx, ptr[rbx+r14*4+1000]); dump();
-mov (ecx, ptr[rbx+r14*4-1]); dump();
-mov (ecx, ptr[rbx+r14*4-1000]); dump();
-mov (ecx, ptr[rbx+r14*8+0]); dump();
-mov (ecx, ptr[rbx+r14*8+1]); dump();
-mov (ecx, ptr[rbx+r14*8+1000]); dump();
-mov (ecx, ptr[rbx+r14*8-1]); dump();
-mov (ecx, ptr[rbx+r14*8-1000]); dump();
-mov (ecx, ptr[rbx+r15+0]); dump();
-mov (ecx, ptr[rbx+r15+1]); dump();
-mov (ecx, ptr[rbx+r15+1000]); dump();
-mov (ecx, ptr[rbx+r15-1]); dump();
-mov (ecx, ptr[rbx+r15-1000]); dump();
-mov (ecx, ptr[rbx+r15*1+0]); dump();
-mov (ecx, ptr[rbx+r15*1+1]); dump();
-mov (ecx, ptr[rbx+r15*1+1000]); dump();
-mov (ecx, ptr[rbx+r15*1-1]); dump();
-mov (ecx, ptr[rbx+r15*1-1000]); dump();
-mov (ecx, ptr[rbx+r15*2+0]); dump();
-mov (ecx, ptr[rbx+r15*2+1]); dump();
-mov (ecx, ptr[rbx+r15*2+1000]); dump();
-mov (ecx, ptr[rbx+r15*2-1]); dump();
-mov (ecx, ptr[rbx+r15*2-1000]); dump();
-mov (ecx, ptr[rbx+r15*4+0]); dump();
-mov (ecx, ptr[rbx+r15*4+1]); dump();
-mov (ecx, ptr[rbx+r15*4+1000]); dump();
-mov (ecx, ptr[rbx+r15*4-1]); dump();
-mov (ecx, ptr[rbx+r15*4-1000]); dump();
-mov (ecx, ptr[rbx+r15*8+0]); dump();
-mov (ecx, ptr[rbx+r15*8+1]); dump();
-mov (ecx, ptr[rbx+r15*8+1000]); dump();
-mov (ecx, ptr[rbx+r15*8-1]); dump();
-mov (ecx, ptr[rbx+r15*8-1000]); dump();
-mov (ecx, ptr[rbx+0]); dump();
-mov (ecx, ptr[rbx+1]); dump();
-mov (ecx, ptr[rbx+1000]); dump();
-mov (ecx, ptr[rbx-1]); dump();
-mov (ecx, ptr[rbx-1000]); dump();
-mov (ecx, ptr[rbx+0]); dump();
-mov (ecx, ptr[rbx+1]); dump();
-mov (ecx, ptr[rbx+1000]); dump();
-mov (ecx, ptr[rbx-1]); dump();
-mov (ecx, ptr[rbx-1000]); dump();
-mov (ecx, ptr[rbx+0]); dump();
-mov (ecx, ptr[rbx+1]); dump();
-mov (ecx, ptr[rbx+1000]); dump();
-mov (ecx, ptr[rbx-1]); dump();
-mov (ecx, ptr[rbx-1000]); dump();
-mov (ecx, ptr[rbx+0]); dump();
-mov (ecx, ptr[rbx+1]); dump();
-mov (ecx, ptr[rbx+1000]); dump();
-mov (ecx, ptr[rbx-1]); dump();
-mov (ecx, ptr[rbx-1000]); dump();
-mov (ecx, ptr[rbx+0]); dump();
-mov (ecx, ptr[rbx+1]); dump();
-mov (ecx, ptr[rbx+1000]); dump();
-mov (ecx, ptr[rbx-1]); dump();
-mov (ecx, ptr[rbx-1000]); dump();
-}
- void gen15(){
-mov (ecx, ptr[rsp+rax+0]); dump();
-mov (ecx, ptr[rsp+rax+1]); dump();
-mov (ecx, ptr[rsp+rax+1000]); dump();
-mov (ecx, ptr[rsp+rax-1]); dump();
-mov (ecx, ptr[rsp+rax-1000]); dump();
-mov (ecx, ptr[rsp+rax*1+0]); dump();
-mov (ecx, ptr[rsp+rax*1+1]); dump();
-mov (ecx, ptr[rsp+rax*1+1000]); dump();
-mov (ecx, ptr[rsp+rax*1-1]); dump();
-mov (ecx, ptr[rsp+rax*1-1000]); dump();
-mov (ecx, ptr[rsp+rax*2+0]); dump();
-mov (ecx, ptr[rsp+rax*2+1]); dump();
-mov (ecx, ptr[rsp+rax*2+1000]); dump();
-mov (ecx, ptr[rsp+rax*2-1]); dump();
-mov (ecx, ptr[rsp+rax*2-1000]); dump();
-mov (ecx, ptr[rsp+rax*4+0]); dump();
-mov (ecx, ptr[rsp+rax*4+1]); dump();
-mov (ecx, ptr[rsp+rax*4+1000]); dump();
-mov (ecx, ptr[rsp+rax*4-1]); dump();
-mov (ecx, ptr[rsp+rax*4-1000]); dump();
-mov (ecx, ptr[rsp+rax*8+0]); dump();
-mov (ecx, ptr[rsp+rax*8+1]); dump();
-mov (ecx, ptr[rsp+rax*8+1000]); dump();
-mov (ecx, ptr[rsp+rax*8-1]); dump();
-mov (ecx, ptr[rsp+rax*8-1000]); dump();
-mov (ecx, ptr[rsp+rcx+0]); dump();
-mov (ecx, ptr[rsp+rcx+1]); dump();
-mov (ecx, ptr[rsp+rcx+1000]); dump();
-mov (ecx, ptr[rsp+rcx-1]); dump();
-mov (ecx, ptr[rsp+rcx-1000]); dump();
-mov (ecx, ptr[rsp+rcx*1+0]); dump();
-mov (ecx, ptr[rsp+rcx*1+1]); dump();
-mov (ecx, ptr[rsp+rcx*1+1000]); dump();
-mov (ecx, ptr[rsp+rcx*1-1]); dump();
-mov (ecx, ptr[rsp+rcx*1-1000]); dump();
-mov (ecx, ptr[rsp+rcx*2+0]); dump();
-mov (ecx, ptr[rsp+rcx*2+1]); dump();
-mov (ecx, ptr[rsp+rcx*2+1000]); dump();
-mov (ecx, ptr[rsp+rcx*2-1]); dump();
-mov (ecx, ptr[rsp+rcx*2-1000]); dump();
-mov (ecx, ptr[rsp+rcx*4+0]); dump();
-mov (ecx, ptr[rsp+rcx*4+1]); dump();
-mov (ecx, ptr[rsp+rcx*4+1000]); dump();
-mov (ecx, ptr[rsp+rcx*4-1]); dump();
-mov (ecx, ptr[rsp+rcx*4-1000]); dump();
-mov (ecx, ptr[rsp+rcx*8+0]); dump();
-mov (ecx, ptr[rsp+rcx*8+1]); dump();
-mov (ecx, ptr[rsp+rcx*8+1000]); dump();
-mov (ecx, ptr[rsp+rcx*8-1]); dump();
-mov (ecx, ptr[rsp+rcx*8-1000]); dump();
-mov (ecx, ptr[rsp+rdx+0]); dump();
-mov (ecx, ptr[rsp+rdx+1]); dump();
-mov (ecx, ptr[rsp+rdx+1000]); dump();
-mov (ecx, ptr[rsp+rdx-1]); dump();
-mov (ecx, ptr[rsp+rdx-1000]); dump();
-mov (ecx, ptr[rsp+rdx*1+0]); dump();
-mov (ecx, ptr[rsp+rdx*1+1]); dump();
-mov (ecx, ptr[rsp+rdx*1+1000]); dump();
-mov (ecx, ptr[rsp+rdx*1-1]); dump();
-mov (ecx, ptr[rsp+rdx*1-1000]); dump();
-mov (ecx, ptr[rsp+rdx*2+0]); dump();
-mov (ecx, ptr[rsp+rdx*2+1]); dump();
-mov (ecx, ptr[rsp+rdx*2+1000]); dump();
-mov (ecx, ptr[rsp+rdx*2-1]); dump();
-mov (ecx, ptr[rsp+rdx*2-1000]); dump();
-mov (ecx, ptr[rsp+rdx*4+0]); dump();
-mov (ecx, ptr[rsp+rdx*4+1]); dump();
-mov (ecx, ptr[rsp+rdx*4+1000]); dump();
-mov (ecx, ptr[rsp+rdx*4-1]); dump();
-mov (ecx, ptr[rsp+rdx*4-1000]); dump();
-mov (ecx, ptr[rsp+rdx*8+0]); dump();
-mov (ecx, ptr[rsp+rdx*8+1]); dump();
-mov (ecx, ptr[rsp+rdx*8+1000]); dump();
-mov (ecx, ptr[rsp+rdx*8-1]); dump();
-mov (ecx, ptr[rsp+rdx*8-1000]); dump();
-mov (ecx, ptr[rsp+rbx+0]); dump();
-mov (ecx, ptr[rsp+rbx+1]); dump();
-mov (ecx, ptr[rsp+rbx+1000]); dump();
-mov (ecx, ptr[rsp+rbx-1]); dump();
-mov (ecx, ptr[rsp+rbx-1000]); dump();
-mov (ecx, ptr[rsp+rbx*1+0]); dump();
-mov (ecx, ptr[rsp+rbx*1+1]); dump();
-mov (ecx, ptr[rsp+rbx*1+1000]); dump();
-mov (ecx, ptr[rsp+rbx*1-1]); dump();
-mov (ecx, ptr[rsp+rbx*1-1000]); dump();
-mov (ecx, ptr[rsp+rbx*2+0]); dump();
-mov (ecx, ptr[rsp+rbx*2+1]); dump();
-mov (ecx, ptr[rsp+rbx*2+1000]); dump();
-mov (ecx, ptr[rsp+rbx*2-1]); dump();
-mov (ecx, ptr[rsp+rbx*2-1000]); dump();
-mov (ecx, ptr[rsp+rbx*4+0]); dump();
-mov (ecx, ptr[rsp+rbx*4+1]); dump();
-mov (ecx, ptr[rsp+rbx*4+1000]); dump();
-mov (ecx, ptr[rsp+rbx*4-1]); dump();
-mov (ecx, ptr[rsp+rbx*4-1000]); dump();
-mov (ecx, ptr[rsp+rbx*8+0]); dump();
-mov (ecx, ptr[rsp+rbx*8+1]); dump();
-mov (ecx, ptr[rsp+rbx*8+1000]); dump();
-mov (ecx, ptr[rsp+rbx*8-1]); dump();
-mov (ecx, ptr[rsp+rbx*8-1000]); dump();
-}
- void gen16(){
-mov (ecx, ptr[rsp+rbp+0]); dump();
-mov (ecx, ptr[rsp+rbp+1]); dump();
-mov (ecx, ptr[rsp+rbp+1000]); dump();
-mov (ecx, ptr[rsp+rbp-1]); dump();
-mov (ecx, ptr[rsp+rbp-1000]); dump();
-mov (ecx, ptr[rsp+rbp*1+0]); dump();
-mov (ecx, ptr[rsp+rbp*1+1]); dump();
-mov (ecx, ptr[rsp+rbp*1+1000]); dump();
-mov (ecx, ptr[rsp+rbp*1-1]); dump();
-mov (ecx, ptr[rsp+rbp*1-1000]); dump();
-mov (ecx, ptr[rsp+rbp*2+0]); dump();
-mov (ecx, ptr[rsp+rbp*2+1]); dump();
-mov (ecx, ptr[rsp+rbp*2+1000]); dump();
-mov (ecx, ptr[rsp+rbp*2-1]); dump();
-mov (ecx, ptr[rsp+rbp*2-1000]); dump();
-mov (ecx, ptr[rsp+rbp*4+0]); dump();
-mov (ecx, ptr[rsp+rbp*4+1]); dump();
-mov (ecx, ptr[rsp+rbp*4+1000]); dump();
-mov (ecx, ptr[rsp+rbp*4-1]); dump();
-mov (ecx, ptr[rsp+rbp*4-1000]); dump();
-mov (ecx, ptr[rsp+rbp*8+0]); dump();
-mov (ecx, ptr[rsp+rbp*8+1]); dump();
-mov (ecx, ptr[rsp+rbp*8+1000]); dump();
-mov (ecx, ptr[rsp+rbp*8-1]); dump();
-mov (ecx, ptr[rsp+rbp*8-1000]); dump();
-mov (ecx, ptr[rsp+rsi+0]); dump();
-mov (ecx, ptr[rsp+rsi+1]); dump();
-mov (ecx, ptr[rsp+rsi+1000]); dump();
-mov (ecx, ptr[rsp+rsi-1]); dump();
-mov (ecx, ptr[rsp+rsi-1000]); dump();
-mov (ecx, ptr[rsp+rsi*1+0]); dump();
-mov (ecx, ptr[rsp+rsi*1+1]); dump();
-mov (ecx, ptr[rsp+rsi*1+1000]); dump();
-mov (ecx, ptr[rsp+rsi*1-1]); dump();
-mov (ecx, ptr[rsp+rsi*1-1000]); dump();
-mov (ecx, ptr[rsp+rsi*2+0]); dump();
-mov (ecx, ptr[rsp+rsi*2+1]); dump();
-mov (ecx, ptr[rsp+rsi*2+1000]); dump();
-mov (ecx, ptr[rsp+rsi*2-1]); dump();
-mov (ecx, ptr[rsp+rsi*2-1000]); dump();
-mov (ecx, ptr[rsp+rsi*4+0]); dump();
-mov (ecx, ptr[rsp+rsi*4+1]); dump();
-mov (ecx, ptr[rsp+rsi*4+1000]); dump();
-mov (ecx, ptr[rsp+rsi*4-1]); dump();
-mov (ecx, ptr[rsp+rsi*4-1000]); dump();
-mov (ecx, ptr[rsp+rsi*8+0]); dump();
-mov (ecx, ptr[rsp+rsi*8+1]); dump();
-mov (ecx, ptr[rsp+rsi*8+1000]); dump();
-mov (ecx, ptr[rsp+rsi*8-1]); dump();
-mov (ecx, ptr[rsp+rsi*8-1000]); dump();
-mov (ecx, ptr[rsp+rdi+0]); dump();
-mov (ecx, ptr[rsp+rdi+1]); dump();
-mov (ecx, ptr[rsp+rdi+1000]); dump();
-mov (ecx, ptr[rsp+rdi-1]); dump();
-mov (ecx, ptr[rsp+rdi-1000]); dump();
-mov (ecx, ptr[rsp+rdi*1+0]); dump();
-mov (ecx, ptr[rsp+rdi*1+1]); dump();
-mov (ecx, ptr[rsp+rdi*1+1000]); dump();
-mov (ecx, ptr[rsp+rdi*1-1]); dump();
-mov (ecx, ptr[rsp+rdi*1-1000]); dump();
-mov (ecx, ptr[rsp+rdi*2+0]); dump();
-mov (ecx, ptr[rsp+rdi*2+1]); dump();
-mov (ecx, ptr[rsp+rdi*2+1000]); dump();
-mov (ecx, ptr[rsp+rdi*2-1]); dump();
-mov (ecx, ptr[rsp+rdi*2-1000]); dump();
-mov (ecx, ptr[rsp+rdi*4+0]); dump();
-mov (ecx, ptr[rsp+rdi*4+1]); dump();
-mov (ecx, ptr[rsp+rdi*4+1000]); dump();
-mov (ecx, ptr[rsp+rdi*4-1]); dump();
-mov (ecx, ptr[rsp+rdi*4-1000]); dump();
-mov (ecx, ptr[rsp+rdi*8+0]); dump();
-mov (ecx, ptr[rsp+rdi*8+1]); dump();
-mov (ecx, ptr[rsp+rdi*8+1000]); dump();
-mov (ecx, ptr[rsp+rdi*8-1]); dump();
-mov (ecx, ptr[rsp+rdi*8-1000]); dump();
-mov (ecx, ptr[rsp+r9+0]); dump();
-mov (ecx, ptr[rsp+r9+1]); dump();
-mov (ecx, ptr[rsp+r9+1000]); dump();
-mov (ecx, ptr[rsp+r9-1]); dump();
-mov (ecx, ptr[rsp+r9-1000]); dump();
-mov (ecx, ptr[rsp+r9*1+0]); dump();
-mov (ecx, ptr[rsp+r9*1+1]); dump();
-mov (ecx, ptr[rsp+r9*1+1000]); dump();
-mov (ecx, ptr[rsp+r9*1-1]); dump();
-mov (ecx, ptr[rsp+r9*1-1000]); dump();
-mov (ecx, ptr[rsp+r9*2+0]); dump();
-mov (ecx, ptr[rsp+r9*2+1]); dump();
-mov (ecx, ptr[rsp+r9*2+1000]); dump();
-mov (ecx, ptr[rsp+r9*2-1]); dump();
-mov (ecx, ptr[rsp+r9*2-1000]); dump();
-mov (ecx, ptr[rsp+r9*4+0]); dump();
-mov (ecx, ptr[rsp+r9*4+1]); dump();
-mov (ecx, ptr[rsp+r9*4+1000]); dump();
-mov (ecx, ptr[rsp+r9*4-1]); dump();
-mov (ecx, ptr[rsp+r9*4-1000]); dump();
-mov (ecx, ptr[rsp+r9*8+0]); dump();
-mov (ecx, ptr[rsp+r9*8+1]); dump();
-mov (ecx, ptr[rsp+r9*8+1000]); dump();
-mov (ecx, ptr[rsp+r9*8-1]); dump();
-mov (ecx, ptr[rsp+r9*8-1000]); dump();
-}
- void gen17(){
-mov (ecx, ptr[rsp+r10+0]); dump();
-mov (ecx, ptr[rsp+r10+1]); dump();
-mov (ecx, ptr[rsp+r10+1000]); dump();
-mov (ecx, ptr[rsp+r10-1]); dump();
-mov (ecx, ptr[rsp+r10-1000]); dump();
-mov (ecx, ptr[rsp+r10*1+0]); dump();
-mov (ecx, ptr[rsp+r10*1+1]); dump();
-mov (ecx, ptr[rsp+r10*1+1000]); dump();
-mov (ecx, ptr[rsp+r10*1-1]); dump();
-mov (ecx, ptr[rsp+r10*1-1000]); dump();
-mov (ecx, ptr[rsp+r10*2+0]); dump();
-mov (ecx, ptr[rsp+r10*2+1]); dump();
-mov (ecx, ptr[rsp+r10*2+1000]); dump();
-mov (ecx, ptr[rsp+r10*2-1]); dump();
-mov (ecx, ptr[rsp+r10*2-1000]); dump();
-mov (ecx, ptr[rsp+r10*4+0]); dump();
-mov (ecx, ptr[rsp+r10*4+1]); dump();
-mov (ecx, ptr[rsp+r10*4+1000]); dump();
-mov (ecx, ptr[rsp+r10*4-1]); dump();
-mov (ecx, ptr[rsp+r10*4-1000]); dump();
-mov (ecx, ptr[rsp+r10*8+0]); dump();
-mov (ecx, ptr[rsp+r10*8+1]); dump();
-mov (ecx, ptr[rsp+r10*8+1000]); dump();
-mov (ecx, ptr[rsp+r10*8-1]); dump();
-mov (ecx, ptr[rsp+r10*8-1000]); dump();
-mov (ecx, ptr[rsp+r11+0]); dump();
-mov (ecx, ptr[rsp+r11+1]); dump();
-mov (ecx, ptr[rsp+r11+1000]); dump();
-mov (ecx, ptr[rsp+r11-1]); dump();
-mov (ecx, ptr[rsp+r11-1000]); dump();
-mov (ecx, ptr[rsp+r11*1+0]); dump();
-mov (ecx, ptr[rsp+r11*1+1]); dump();
-mov (ecx, ptr[rsp+r11*1+1000]); dump();
-mov (ecx, ptr[rsp+r11*1-1]); dump();
-mov (ecx, ptr[rsp+r11*1-1000]); dump();
-mov (ecx, ptr[rsp+r11*2+0]); dump();
-mov (ecx, ptr[rsp+r11*2+1]); dump();
-mov (ecx, ptr[rsp+r11*2+1000]); dump();
-mov (ecx, ptr[rsp+r11*2-1]); dump();
-mov (ecx, ptr[rsp+r11*2-1000]); dump();
-mov (ecx, ptr[rsp+r11*4+0]); dump();
-mov (ecx, ptr[rsp+r11*4+1]); dump();
-mov (ecx, ptr[rsp+r11*4+1000]); dump();
-mov (ecx, ptr[rsp+r11*4-1]); dump();
-mov (ecx, ptr[rsp+r11*4-1000]); dump();
-mov (ecx, ptr[rsp+r11*8+0]); dump();
-mov (ecx, ptr[rsp+r11*8+1]); dump();
-mov (ecx, ptr[rsp+r11*8+1000]); dump();
-mov (ecx, ptr[rsp+r11*8-1]); dump();
-mov (ecx, ptr[rsp+r11*8-1000]); dump();
-mov (ecx, ptr[rsp+r12+0]); dump();
-mov (ecx, ptr[rsp+r12+1]); dump();
-mov (ecx, ptr[rsp+r12+1000]); dump();
-mov (ecx, ptr[rsp+r12-1]); dump();
-mov (ecx, ptr[rsp+r12-1000]); dump();
-mov (ecx, ptr[rsp+r12*1+0]); dump();
-mov (ecx, ptr[rsp+r12*1+1]); dump();
-mov (ecx, ptr[rsp+r12*1+1000]); dump();
-mov (ecx, ptr[rsp+r12*1-1]); dump();
-mov (ecx, ptr[rsp+r12*1-1000]); dump();
-mov (ecx, ptr[rsp+r12*2+0]); dump();
-mov (ecx, ptr[rsp+r12*2+1]); dump();
-mov (ecx, ptr[rsp+r12*2+1000]); dump();
-mov (ecx, ptr[rsp+r12*2-1]); dump();
-mov (ecx, ptr[rsp+r12*2-1000]); dump();
-mov (ecx, ptr[rsp+r12*4+0]); dump();
-mov (ecx, ptr[rsp+r12*4+1]); dump();
-mov (ecx, ptr[rsp+r12*4+1000]); dump();
-mov (ecx, ptr[rsp+r12*4-1]); dump();
-mov (ecx, ptr[rsp+r12*4-1000]); dump();
-mov (ecx, ptr[rsp+r12*8+0]); dump();
-mov (ecx, ptr[rsp+r12*8+1]); dump();
-mov (ecx, ptr[rsp+r12*8+1000]); dump();
-mov (ecx, ptr[rsp+r12*8-1]); dump();
-mov (ecx, ptr[rsp+r12*8-1000]); dump();
-mov (ecx, ptr[rsp+r13+0]); dump();
-mov (ecx, ptr[rsp+r13+1]); dump();
-mov (ecx, ptr[rsp+r13+1000]); dump();
-mov (ecx, ptr[rsp+r13-1]); dump();
-mov (ecx, ptr[rsp+r13-1000]); dump();
-mov (ecx, ptr[rsp+r13*1+0]); dump();
-mov (ecx, ptr[rsp+r13*1+1]); dump();
-mov (ecx, ptr[rsp+r13*1+1000]); dump();
-mov (ecx, ptr[rsp+r13*1-1]); dump();
-mov (ecx, ptr[rsp+r13*1-1000]); dump();
-mov (ecx, ptr[rsp+r13*2+0]); dump();
-mov (ecx, ptr[rsp+r13*2+1]); dump();
-mov (ecx, ptr[rsp+r13*2+1000]); dump();
-mov (ecx, ptr[rsp+r13*2-1]); dump();
-mov (ecx, ptr[rsp+r13*2-1000]); dump();
-mov (ecx, ptr[rsp+r13*4+0]); dump();
-mov (ecx, ptr[rsp+r13*4+1]); dump();
-mov (ecx, ptr[rsp+r13*4+1000]); dump();
-mov (ecx, ptr[rsp+r13*4-1]); dump();
-mov (ecx, ptr[rsp+r13*4-1000]); dump();
-mov (ecx, ptr[rsp+r13*8+0]); dump();
-mov (ecx, ptr[rsp+r13*8+1]); dump();
-mov (ecx, ptr[rsp+r13*8+1000]); dump();
-mov (ecx, ptr[rsp+r13*8-1]); dump();
-mov (ecx, ptr[rsp+r13*8-1000]); dump();
-}
- void gen18(){
-mov (ecx, ptr[rsp+r14+0]); dump();
-mov (ecx, ptr[rsp+r14+1]); dump();
-mov (ecx, ptr[rsp+r14+1000]); dump();
-mov (ecx, ptr[rsp+r14-1]); dump();
-mov (ecx, ptr[rsp+r14-1000]); dump();
-mov (ecx, ptr[rsp+r14*1+0]); dump();
-mov (ecx, ptr[rsp+r14*1+1]); dump();
-mov (ecx, ptr[rsp+r14*1+1000]); dump();
-mov (ecx, ptr[rsp+r14*1-1]); dump();
-mov (ecx, ptr[rsp+r14*1-1000]); dump();
-mov (ecx, ptr[rsp+r14*2+0]); dump();
-mov (ecx, ptr[rsp+r14*2+1]); dump();
-mov (ecx, ptr[rsp+r14*2+1000]); dump();
-mov (ecx, ptr[rsp+r14*2-1]); dump();
-mov (ecx, ptr[rsp+r14*2-1000]); dump();
-mov (ecx, ptr[rsp+r14*4+0]); dump();
-mov (ecx, ptr[rsp+r14*4+1]); dump();
-mov (ecx, ptr[rsp+r14*4+1000]); dump();
-mov (ecx, ptr[rsp+r14*4-1]); dump();
-mov (ecx, ptr[rsp+r14*4-1000]); dump();
-mov (ecx, ptr[rsp+r14*8+0]); dump();
-mov (ecx, ptr[rsp+r14*8+1]); dump();
-mov (ecx, ptr[rsp+r14*8+1000]); dump();
-mov (ecx, ptr[rsp+r14*8-1]); dump();
-mov (ecx, ptr[rsp+r14*8-1000]); dump();
-mov (ecx, ptr[rsp+r15+0]); dump();
-mov (ecx, ptr[rsp+r15+1]); dump();
-mov (ecx, ptr[rsp+r15+1000]); dump();
-mov (ecx, ptr[rsp+r15-1]); dump();
-mov (ecx, ptr[rsp+r15-1000]); dump();
-mov (ecx, ptr[rsp+r15*1+0]); dump();
-mov (ecx, ptr[rsp+r15*1+1]); dump();
-mov (ecx, ptr[rsp+r15*1+1000]); dump();
-mov (ecx, ptr[rsp+r15*1-1]); dump();
-mov (ecx, ptr[rsp+r15*1-1000]); dump();
-mov (ecx, ptr[rsp+r15*2+0]); dump();
-mov (ecx, ptr[rsp+r15*2+1]); dump();
-mov (ecx, ptr[rsp+r15*2+1000]); dump();
-mov (ecx, ptr[rsp+r15*2-1]); dump();
-mov (ecx, ptr[rsp+r15*2-1000]); dump();
-mov (ecx, ptr[rsp+r15*4+0]); dump();
-mov (ecx, ptr[rsp+r15*4+1]); dump();
-mov (ecx, ptr[rsp+r15*4+1000]); dump();
-mov (ecx, ptr[rsp+r15*4-1]); dump();
-mov (ecx, ptr[rsp+r15*4-1000]); dump();
-mov (ecx, ptr[rsp+r15*8+0]); dump();
-mov (ecx, ptr[rsp+r15*8+1]); dump();
-mov (ecx, ptr[rsp+r15*8+1000]); dump();
-mov (ecx, ptr[rsp+r15*8-1]); dump();
-mov (ecx, ptr[rsp+r15*8-1000]); dump();
-mov (ecx, ptr[rsp+0]); dump();
-mov (ecx, ptr[rsp+1]); dump();
-mov (ecx, ptr[rsp+1000]); dump();
-mov (ecx, ptr[rsp-1]); dump();
-mov (ecx, ptr[rsp-1000]); dump();
-mov (ecx, ptr[rsp+0]); dump();
-mov (ecx, ptr[rsp+1]); dump();
-mov (ecx, ptr[rsp+1000]); dump();
-mov (ecx, ptr[rsp-1]); dump();
-mov (ecx, ptr[rsp-1000]); dump();
-mov (ecx, ptr[rsp+0]); dump();
-mov (ecx, ptr[rsp+1]); dump();
-mov (ecx, ptr[rsp+1000]); dump();
-mov (ecx, ptr[rsp-1]); dump();
-mov (ecx, ptr[rsp-1000]); dump();
-mov (ecx, ptr[rsp+0]); dump();
-mov (ecx, ptr[rsp+1]); dump();
-mov (ecx, ptr[rsp+1000]); dump();
-mov (ecx, ptr[rsp-1]); dump();
-mov (ecx, ptr[rsp-1000]); dump();
-mov (ecx, ptr[rsp+0]); dump();
-mov (ecx, ptr[rsp+1]); dump();
-mov (ecx, ptr[rsp+1000]); dump();
-mov (ecx, ptr[rsp-1]); dump();
-mov (ecx, ptr[rsp-1000]); dump();
-mov (ecx, ptr[rbp+rax+0]); dump();
-mov (ecx, ptr[rbp+rax+1]); dump();
-mov (ecx, ptr[rbp+rax+1000]); dump();
-mov (ecx, ptr[rbp+rax-1]); dump();
-mov (ecx, ptr[rbp+rax-1000]); dump();
-mov (ecx, ptr[rbp+rax*1+0]); dump();
-mov (ecx, ptr[rbp+rax*1+1]); dump();
-mov (ecx, ptr[rbp+rax*1+1000]); dump();
-mov (ecx, ptr[rbp+rax*1-1]); dump();
-mov (ecx, ptr[rbp+rax*1-1000]); dump();
-mov (ecx, ptr[rbp+rax*2+0]); dump();
-mov (ecx, ptr[rbp+rax*2+1]); dump();
-mov (ecx, ptr[rbp+rax*2+1000]); dump();
-mov (ecx, ptr[rbp+rax*2-1]); dump();
-mov (ecx, ptr[rbp+rax*2-1000]); dump();
-mov (ecx, ptr[rbp+rax*4+0]); dump();
-mov (ecx, ptr[rbp+rax*4+1]); dump();
-mov (ecx, ptr[rbp+rax*4+1000]); dump();
-mov (ecx, ptr[rbp+rax*4-1]); dump();
-mov (ecx, ptr[rbp+rax*4-1000]); dump();
-mov (ecx, ptr[rbp+rax*8+0]); dump();
-mov (ecx, ptr[rbp+rax*8+1]); dump();
-mov (ecx, ptr[rbp+rax*8+1000]); dump();
-mov (ecx, ptr[rbp+rax*8-1]); dump();
-mov (ecx, ptr[rbp+rax*8-1000]); dump();
-}
- void gen19(){
-mov (ecx, ptr[rbp+rcx+0]); dump();
-mov (ecx, ptr[rbp+rcx+1]); dump();
-mov (ecx, ptr[rbp+rcx+1000]); dump();
-mov (ecx, ptr[rbp+rcx-1]); dump();
-mov (ecx, ptr[rbp+rcx-1000]); dump();
-mov (ecx, ptr[rbp+rcx*1+0]); dump();
-mov (ecx, ptr[rbp+rcx*1+1]); dump();
-mov (ecx, ptr[rbp+rcx*1+1000]); dump();
-mov (ecx, ptr[rbp+rcx*1-1]); dump();
-mov (ecx, ptr[rbp+rcx*1-1000]); dump();
-mov (ecx, ptr[rbp+rcx*2+0]); dump();
-mov (ecx, ptr[rbp+rcx*2+1]); dump();
-mov (ecx, ptr[rbp+rcx*2+1000]); dump();
-mov (ecx, ptr[rbp+rcx*2-1]); dump();
-mov (ecx, ptr[rbp+rcx*2-1000]); dump();
-mov (ecx, ptr[rbp+rcx*4+0]); dump();
-mov (ecx, ptr[rbp+rcx*4+1]); dump();
-mov (ecx, ptr[rbp+rcx*4+1000]); dump();
-mov (ecx, ptr[rbp+rcx*4-1]); dump();
-mov (ecx, ptr[rbp+rcx*4-1000]); dump();
-mov (ecx, ptr[rbp+rcx*8+0]); dump();
-mov (ecx, ptr[rbp+rcx*8+1]); dump();
-mov (ecx, ptr[rbp+rcx*8+1000]); dump();
-mov (ecx, ptr[rbp+rcx*8-1]); dump();
-mov (ecx, ptr[rbp+rcx*8-1000]); dump();
-mov (ecx, ptr[rbp+rdx+0]); dump();
-mov (ecx, ptr[rbp+rdx+1]); dump();
-mov (ecx, ptr[rbp+rdx+1000]); dump();
-mov (ecx, ptr[rbp+rdx-1]); dump();
-mov (ecx, ptr[rbp+rdx-1000]); dump();
-mov (ecx, ptr[rbp+rdx*1+0]); dump();
-mov (ecx, ptr[rbp+rdx*1+1]); dump();
-mov (ecx, ptr[rbp+rdx*1+1000]); dump();
-mov (ecx, ptr[rbp+rdx*1-1]); dump();
-mov (ecx, ptr[rbp+rdx*1-1000]); dump();
-mov (ecx, ptr[rbp+rdx*2+0]); dump();
-mov (ecx, ptr[rbp+rdx*2+1]); dump();
-mov (ecx, ptr[rbp+rdx*2+1000]); dump();
-mov (ecx, ptr[rbp+rdx*2-1]); dump();
-mov (ecx, ptr[rbp+rdx*2-1000]); dump();
-mov (ecx, ptr[rbp+rdx*4+0]); dump();
-mov (ecx, ptr[rbp+rdx*4+1]); dump();
-mov (ecx, ptr[rbp+rdx*4+1000]); dump();
-mov (ecx, ptr[rbp+rdx*4-1]); dump();
-mov (ecx, ptr[rbp+rdx*4-1000]); dump();
-mov (ecx, ptr[rbp+rdx*8+0]); dump();
-mov (ecx, ptr[rbp+rdx*8+1]); dump();
-mov (ecx, ptr[rbp+rdx*8+1000]); dump();
-mov (ecx, ptr[rbp+rdx*8-1]); dump();
-mov (ecx, ptr[rbp+rdx*8-1000]); dump();
-mov (ecx, ptr[rbp+rbx+0]); dump();
-mov (ecx, ptr[rbp+rbx+1]); dump();
-mov (ecx, ptr[rbp+rbx+1000]); dump();
-mov (ecx, ptr[rbp+rbx-1]); dump();
-mov (ecx, ptr[rbp+rbx-1000]); dump();
-mov (ecx, ptr[rbp+rbx*1+0]); dump();
-mov (ecx, ptr[rbp+rbx*1+1]); dump();
-mov (ecx, ptr[rbp+rbx*1+1000]); dump();
-mov (ecx, ptr[rbp+rbx*1-1]); dump();
-mov (ecx, ptr[rbp+rbx*1-1000]); dump();
-mov (ecx, ptr[rbp+rbx*2+0]); dump();
-mov (ecx, ptr[rbp+rbx*2+1]); dump();
-mov (ecx, ptr[rbp+rbx*2+1000]); dump();
-mov (ecx, ptr[rbp+rbx*2-1]); dump();
-mov (ecx, ptr[rbp+rbx*2-1000]); dump();
-mov (ecx, ptr[rbp+rbx*4+0]); dump();
-mov (ecx, ptr[rbp+rbx*4+1]); dump();
-mov (ecx, ptr[rbp+rbx*4+1000]); dump();
-mov (ecx, ptr[rbp+rbx*4-1]); dump();
-mov (ecx, ptr[rbp+rbx*4-1000]); dump();
-mov (ecx, ptr[rbp+rbx*8+0]); dump();
-mov (ecx, ptr[rbp+rbx*8+1]); dump();
-mov (ecx, ptr[rbp+rbx*8+1000]); dump();
-mov (ecx, ptr[rbp+rbx*8-1]); dump();
-mov (ecx, ptr[rbp+rbx*8-1000]); dump();
-mov (ecx, ptr[rbp+rbp+0]); dump();
-mov (ecx, ptr[rbp+rbp+1]); dump();
-mov (ecx, ptr[rbp+rbp+1000]); dump();
-mov (ecx, ptr[rbp+rbp-1]); dump();
-mov (ecx, ptr[rbp+rbp-1000]); dump();
-mov (ecx, ptr[rbp+rbp*1+0]); dump();
-mov (ecx, ptr[rbp+rbp*1+1]); dump();
-mov (ecx, ptr[rbp+rbp*1+1000]); dump();
-mov (ecx, ptr[rbp+rbp*1-1]); dump();
-mov (ecx, ptr[rbp+rbp*1-1000]); dump();
-mov (ecx, ptr[rbp+rbp*2+0]); dump();
-mov (ecx, ptr[rbp+rbp*2+1]); dump();
-mov (ecx, ptr[rbp+rbp*2+1000]); dump();
-mov (ecx, ptr[rbp+rbp*2-1]); dump();
-mov (ecx, ptr[rbp+rbp*2-1000]); dump();
-mov (ecx, ptr[rbp+rbp*4+0]); dump();
-mov (ecx, ptr[rbp+rbp*4+1]); dump();
-mov (ecx, ptr[rbp+rbp*4+1000]); dump();
-mov (ecx, ptr[rbp+rbp*4-1]); dump();
-mov (ecx, ptr[rbp+rbp*4-1000]); dump();
-mov (ecx, ptr[rbp+rbp*8+0]); dump();
-mov (ecx, ptr[rbp+rbp*8+1]); dump();
-mov (ecx, ptr[rbp+rbp*8+1000]); dump();
-mov (ecx, ptr[rbp+rbp*8-1]); dump();
-mov (ecx, ptr[rbp+rbp*8-1000]); dump();
-}
- void gen20(){
-mov (ecx, ptr[rbp+rsi+0]); dump();
-mov (ecx, ptr[rbp+rsi+1]); dump();
-mov (ecx, ptr[rbp+rsi+1000]); dump();
-mov (ecx, ptr[rbp+rsi-1]); dump();
-mov (ecx, ptr[rbp+rsi-1000]); dump();
-mov (ecx, ptr[rbp+rsi*1+0]); dump();
-mov (ecx, ptr[rbp+rsi*1+1]); dump();
-mov (ecx, ptr[rbp+rsi*1+1000]); dump();
-mov (ecx, ptr[rbp+rsi*1-1]); dump();
-mov (ecx, ptr[rbp+rsi*1-1000]); dump();
-mov (ecx, ptr[rbp+rsi*2+0]); dump();
-mov (ecx, ptr[rbp+rsi*2+1]); dump();
-mov (ecx, ptr[rbp+rsi*2+1000]); dump();
-mov (ecx, ptr[rbp+rsi*2-1]); dump();
-mov (ecx, ptr[rbp+rsi*2-1000]); dump();
-mov (ecx, ptr[rbp+rsi*4+0]); dump();
-mov (ecx, ptr[rbp+rsi*4+1]); dump();
-mov (ecx, ptr[rbp+rsi*4+1000]); dump();
-mov (ecx, ptr[rbp+rsi*4-1]); dump();
-mov (ecx, ptr[rbp+rsi*4-1000]); dump();
-mov (ecx, ptr[rbp+rsi*8+0]); dump();
-mov (ecx, ptr[rbp+rsi*8+1]); dump();
-mov (ecx, ptr[rbp+rsi*8+1000]); dump();
-mov (ecx, ptr[rbp+rsi*8-1]); dump();
-mov (ecx, ptr[rbp+rsi*8-1000]); dump();
-mov (ecx, ptr[rbp+rdi+0]); dump();
-mov (ecx, ptr[rbp+rdi+1]); dump();
-mov (ecx, ptr[rbp+rdi+1000]); dump();
-mov (ecx, ptr[rbp+rdi-1]); dump();
-mov (ecx, ptr[rbp+rdi-1000]); dump();
-mov (ecx, ptr[rbp+rdi*1+0]); dump();
-mov (ecx, ptr[rbp+rdi*1+1]); dump();
-mov (ecx, ptr[rbp+rdi*1+1000]); dump();
-mov (ecx, ptr[rbp+rdi*1-1]); dump();
-mov (ecx, ptr[rbp+rdi*1-1000]); dump();
-mov (ecx, ptr[rbp+rdi*2+0]); dump();
-mov (ecx, ptr[rbp+rdi*2+1]); dump();
-mov (ecx, ptr[rbp+rdi*2+1000]); dump();
-mov (ecx, ptr[rbp+rdi*2-1]); dump();
-mov (ecx, ptr[rbp+rdi*2-1000]); dump();
-mov (ecx, ptr[rbp+rdi*4+0]); dump();
-mov (ecx, ptr[rbp+rdi*4+1]); dump();
-mov (ecx, ptr[rbp+rdi*4+1000]); dump();
-mov (ecx, ptr[rbp+rdi*4-1]); dump();
-mov (ecx, ptr[rbp+rdi*4-1000]); dump();
-mov (ecx, ptr[rbp+rdi*8+0]); dump();
-mov (ecx, ptr[rbp+rdi*8+1]); dump();
-mov (ecx, ptr[rbp+rdi*8+1000]); dump();
-mov (ecx, ptr[rbp+rdi*8-1]); dump();
-mov (ecx, ptr[rbp+rdi*8-1000]); dump();
-mov (ecx, ptr[rbp+r9+0]); dump();
-mov (ecx, ptr[rbp+r9+1]); dump();
-mov (ecx, ptr[rbp+r9+1000]); dump();
-mov (ecx, ptr[rbp+r9-1]); dump();
-mov (ecx, ptr[rbp+r9-1000]); dump();
-mov (ecx, ptr[rbp+r9*1+0]); dump();
-mov (ecx, ptr[rbp+r9*1+1]); dump();
-mov (ecx, ptr[rbp+r9*1+1000]); dump();
-mov (ecx, ptr[rbp+r9*1-1]); dump();
-mov (ecx, ptr[rbp+r9*1-1000]); dump();
-mov (ecx, ptr[rbp+r9*2+0]); dump();
-mov (ecx, ptr[rbp+r9*2+1]); dump();
-mov (ecx, ptr[rbp+r9*2+1000]); dump();
-mov (ecx, ptr[rbp+r9*2-1]); dump();
-mov (ecx, ptr[rbp+r9*2-1000]); dump();
-mov (ecx, ptr[rbp+r9*4+0]); dump();
-mov (ecx, ptr[rbp+r9*4+1]); dump();
-mov (ecx, ptr[rbp+r9*4+1000]); dump();
-mov (ecx, ptr[rbp+r9*4-1]); dump();
-mov (ecx, ptr[rbp+r9*4-1000]); dump();
-mov (ecx, ptr[rbp+r9*8+0]); dump();
-mov (ecx, ptr[rbp+r9*8+1]); dump();
-mov (ecx, ptr[rbp+r9*8+1000]); dump();
-mov (ecx, ptr[rbp+r9*8-1]); dump();
-mov (ecx, ptr[rbp+r9*8-1000]); dump();
-mov (ecx, ptr[rbp+r10+0]); dump();
-mov (ecx, ptr[rbp+r10+1]); dump();
-mov (ecx, ptr[rbp+r10+1000]); dump();
-mov (ecx, ptr[rbp+r10-1]); dump();
-mov (ecx, ptr[rbp+r10-1000]); dump();
-mov (ecx, ptr[rbp+r10*1+0]); dump();
-mov (ecx, ptr[rbp+r10*1+1]); dump();
-mov (ecx, ptr[rbp+r10*1+1000]); dump();
-mov (ecx, ptr[rbp+r10*1-1]); dump();
-mov (ecx, ptr[rbp+r10*1-1000]); dump();
-mov (ecx, ptr[rbp+r10*2+0]); dump();
-mov (ecx, ptr[rbp+r10*2+1]); dump();
-mov (ecx, ptr[rbp+r10*2+1000]); dump();
-mov (ecx, ptr[rbp+r10*2-1]); dump();
-mov (ecx, ptr[rbp+r10*2-1000]); dump();
-mov (ecx, ptr[rbp+r10*4+0]); dump();
-mov (ecx, ptr[rbp+r10*4+1]); dump();
-mov (ecx, ptr[rbp+r10*4+1000]); dump();
-mov (ecx, ptr[rbp+r10*4-1]); dump();
-mov (ecx, ptr[rbp+r10*4-1000]); dump();
-mov (ecx, ptr[rbp+r10*8+0]); dump();
-mov (ecx, ptr[rbp+r10*8+1]); dump();
-mov (ecx, ptr[rbp+r10*8+1000]); dump();
-mov (ecx, ptr[rbp+r10*8-1]); dump();
-mov (ecx, ptr[rbp+r10*8-1000]); dump();
-}
- void gen21(){
-mov (ecx, ptr[rbp+r11+0]); dump();
-mov (ecx, ptr[rbp+r11+1]); dump();
-mov (ecx, ptr[rbp+r11+1000]); dump();
-mov (ecx, ptr[rbp+r11-1]); dump();
-mov (ecx, ptr[rbp+r11-1000]); dump();
-mov (ecx, ptr[rbp+r11*1+0]); dump();
-mov (ecx, ptr[rbp+r11*1+1]); dump();
-mov (ecx, ptr[rbp+r11*1+1000]); dump();
-mov (ecx, ptr[rbp+r11*1-1]); dump();
-mov (ecx, ptr[rbp+r11*1-1000]); dump();
-mov (ecx, ptr[rbp+r11*2+0]); dump();
-mov (ecx, ptr[rbp+r11*2+1]); dump();
-mov (ecx, ptr[rbp+r11*2+1000]); dump();
-mov (ecx, ptr[rbp+r11*2-1]); dump();
-mov (ecx, ptr[rbp+r11*2-1000]); dump();
-mov (ecx, ptr[rbp+r11*4+0]); dump();
-mov (ecx, ptr[rbp+r11*4+1]); dump();
-mov (ecx, ptr[rbp+r11*4+1000]); dump();
-mov (ecx, ptr[rbp+r11*4-1]); dump();
-mov (ecx, ptr[rbp+r11*4-1000]); dump();
-mov (ecx, ptr[rbp+r11*8+0]); dump();
-mov (ecx, ptr[rbp+r11*8+1]); dump();
-mov (ecx, ptr[rbp+r11*8+1000]); dump();
-mov (ecx, ptr[rbp+r11*8-1]); dump();
-mov (ecx, ptr[rbp+r11*8-1000]); dump();
-mov (ecx, ptr[rbp+r12+0]); dump();
-mov (ecx, ptr[rbp+r12+1]); dump();
-mov (ecx, ptr[rbp+r12+1000]); dump();
-mov (ecx, ptr[rbp+r12-1]); dump();
-mov (ecx, ptr[rbp+r12-1000]); dump();
-mov (ecx, ptr[rbp+r12*1+0]); dump();
-mov (ecx, ptr[rbp+r12*1+1]); dump();
-mov (ecx, ptr[rbp+r12*1+1000]); dump();
-mov (ecx, ptr[rbp+r12*1-1]); dump();
-mov (ecx, ptr[rbp+r12*1-1000]); dump();
-mov (ecx, ptr[rbp+r12*2+0]); dump();
-mov (ecx, ptr[rbp+r12*2+1]); dump();
-mov (ecx, ptr[rbp+r12*2+1000]); dump();
-mov (ecx, ptr[rbp+r12*2-1]); dump();
-mov (ecx, ptr[rbp+r12*2-1000]); dump();
-mov (ecx, ptr[rbp+r12*4+0]); dump();
-mov (ecx, ptr[rbp+r12*4+1]); dump();
-mov (ecx, ptr[rbp+r12*4+1000]); dump();
-mov (ecx, ptr[rbp+r12*4-1]); dump();
-mov (ecx, ptr[rbp+r12*4-1000]); dump();
-mov (ecx, ptr[rbp+r12*8+0]); dump();
-mov (ecx, ptr[rbp+r12*8+1]); dump();
-mov (ecx, ptr[rbp+r12*8+1000]); dump();
-mov (ecx, ptr[rbp+r12*8-1]); dump();
-mov (ecx, ptr[rbp+r12*8-1000]); dump();
-mov (ecx, ptr[rbp+r13+0]); dump();
-mov (ecx, ptr[rbp+r13+1]); dump();
-mov (ecx, ptr[rbp+r13+1000]); dump();
-mov (ecx, ptr[rbp+r13-1]); dump();
-mov (ecx, ptr[rbp+r13-1000]); dump();
-mov (ecx, ptr[rbp+r13*1+0]); dump();
-mov (ecx, ptr[rbp+r13*1+1]); dump();
-mov (ecx, ptr[rbp+r13*1+1000]); dump();
-mov (ecx, ptr[rbp+r13*1-1]); dump();
-mov (ecx, ptr[rbp+r13*1-1000]); dump();
-mov (ecx, ptr[rbp+r13*2+0]); dump();
-mov (ecx, ptr[rbp+r13*2+1]); dump();
-mov (ecx, ptr[rbp+r13*2+1000]); dump();
-mov (ecx, ptr[rbp+r13*2-1]); dump();
-mov (ecx, ptr[rbp+r13*2-1000]); dump();
-mov (ecx, ptr[rbp+r13*4+0]); dump();
-mov (ecx, ptr[rbp+r13*4+1]); dump();
-mov (ecx, ptr[rbp+r13*4+1000]); dump();
-mov (ecx, ptr[rbp+r13*4-1]); dump();
-mov (ecx, ptr[rbp+r13*4-1000]); dump();
-mov (ecx, ptr[rbp+r13*8+0]); dump();
-mov (ecx, ptr[rbp+r13*8+1]); dump();
-mov (ecx, ptr[rbp+r13*8+1000]); dump();
-mov (ecx, ptr[rbp+r13*8-1]); dump();
-mov (ecx, ptr[rbp+r13*8-1000]); dump();
-mov (ecx, ptr[rbp+r14+0]); dump();
-mov (ecx, ptr[rbp+r14+1]); dump();
-mov (ecx, ptr[rbp+r14+1000]); dump();
-mov (ecx, ptr[rbp+r14-1]); dump();
-mov (ecx, ptr[rbp+r14-1000]); dump();
-mov (ecx, ptr[rbp+r14*1+0]); dump();
-mov (ecx, ptr[rbp+r14*1+1]); dump();
-mov (ecx, ptr[rbp+r14*1+1000]); dump();
-mov (ecx, ptr[rbp+r14*1-1]); dump();
-mov (ecx, ptr[rbp+r14*1-1000]); dump();
-mov (ecx, ptr[rbp+r14*2+0]); dump();
-mov (ecx, ptr[rbp+r14*2+1]); dump();
-mov (ecx, ptr[rbp+r14*2+1000]); dump();
-mov (ecx, ptr[rbp+r14*2-1]); dump();
-mov (ecx, ptr[rbp+r14*2-1000]); dump();
-mov (ecx, ptr[rbp+r14*4+0]); dump();
-mov (ecx, ptr[rbp+r14*4+1]); dump();
-mov (ecx, ptr[rbp+r14*4+1000]); dump();
-mov (ecx, ptr[rbp+r14*4-1]); dump();
-mov (ecx, ptr[rbp+r14*4-1000]); dump();
-mov (ecx, ptr[rbp+r14*8+0]); dump();
-mov (ecx, ptr[rbp+r14*8+1]); dump();
-mov (ecx, ptr[rbp+r14*8+1000]); dump();
-mov (ecx, ptr[rbp+r14*8-1]); dump();
-mov (ecx, ptr[rbp+r14*8-1000]); dump();
-}
- void gen22(){
-mov (ecx, ptr[rbp+r15+0]); dump();
-mov (ecx, ptr[rbp+r15+1]); dump();
-mov (ecx, ptr[rbp+r15+1000]); dump();
-mov (ecx, ptr[rbp+r15-1]); dump();
-mov (ecx, ptr[rbp+r15-1000]); dump();
-mov (ecx, ptr[rbp+r15*1+0]); dump();
-mov (ecx, ptr[rbp+r15*1+1]); dump();
-mov (ecx, ptr[rbp+r15*1+1000]); dump();
-mov (ecx, ptr[rbp+r15*1-1]); dump();
-mov (ecx, ptr[rbp+r15*1-1000]); dump();
-mov (ecx, ptr[rbp+r15*2+0]); dump();
-mov (ecx, ptr[rbp+r15*2+1]); dump();
-mov (ecx, ptr[rbp+r15*2+1000]); dump();
-mov (ecx, ptr[rbp+r15*2-1]); dump();
-mov (ecx, ptr[rbp+r15*2-1000]); dump();
-mov (ecx, ptr[rbp+r15*4+0]); dump();
-mov (ecx, ptr[rbp+r15*4+1]); dump();
-mov (ecx, ptr[rbp+r15*4+1000]); dump();
-mov (ecx, ptr[rbp+r15*4-1]); dump();
-mov (ecx, ptr[rbp+r15*4-1000]); dump();
-mov (ecx, ptr[rbp+r15*8+0]); dump();
-mov (ecx, ptr[rbp+r15*8+1]); dump();
-mov (ecx, ptr[rbp+r15*8+1000]); dump();
-mov (ecx, ptr[rbp+r15*8-1]); dump();
-mov (ecx, ptr[rbp+r15*8-1000]); dump();
-mov (ecx, ptr[rbp+0]); dump();
-mov (ecx, ptr[rbp+1]); dump();
-mov (ecx, ptr[rbp+1000]); dump();
-mov (ecx, ptr[rbp-1]); dump();
-mov (ecx, ptr[rbp-1000]); dump();
-mov (ecx, ptr[rbp+0]); dump();
-mov (ecx, ptr[rbp+1]); dump();
-mov (ecx, ptr[rbp+1000]); dump();
-mov (ecx, ptr[rbp-1]); dump();
-mov (ecx, ptr[rbp-1000]); dump();
-mov (ecx, ptr[rbp+0]); dump();
-mov (ecx, ptr[rbp+1]); dump();
-mov (ecx, ptr[rbp+1000]); dump();
-mov (ecx, ptr[rbp-1]); dump();
-mov (ecx, ptr[rbp-1000]); dump();
-mov (ecx, ptr[rbp+0]); dump();
-mov (ecx, ptr[rbp+1]); dump();
-mov (ecx, ptr[rbp+1000]); dump();
-mov (ecx, ptr[rbp-1]); dump();
-mov (ecx, ptr[rbp-1000]); dump();
-mov (ecx, ptr[rbp+0]); dump();
-mov (ecx, ptr[rbp+1]); dump();
-mov (ecx, ptr[rbp+1000]); dump();
-mov (ecx, ptr[rbp-1]); dump();
-mov (ecx, ptr[rbp-1000]); dump();
-mov (ecx, ptr[rsi+rax+0]); dump();
-mov (ecx, ptr[rsi+rax+1]); dump();
-mov (ecx, ptr[rsi+rax+1000]); dump();
-mov (ecx, ptr[rsi+rax-1]); dump();
-mov (ecx, ptr[rsi+rax-1000]); dump();
-mov (ecx, ptr[rsi+rax*1+0]); dump();
-mov (ecx, ptr[rsi+rax*1+1]); dump();
-mov (ecx, ptr[rsi+rax*1+1000]); dump();
-mov (ecx, ptr[rsi+rax*1-1]); dump();
-mov (ecx, ptr[rsi+rax*1-1000]); dump();
-mov (ecx, ptr[rsi+rax*2+0]); dump();
-mov (ecx, ptr[rsi+rax*2+1]); dump();
-mov (ecx, ptr[rsi+rax*2+1000]); dump();
-mov (ecx, ptr[rsi+rax*2-1]); dump();
-mov (ecx, ptr[rsi+rax*2-1000]); dump();
-mov (ecx, ptr[rsi+rax*4+0]); dump();
-mov (ecx, ptr[rsi+rax*4+1]); dump();
-mov (ecx, ptr[rsi+rax*4+1000]); dump();
-mov (ecx, ptr[rsi+rax*4-1]); dump();
-mov (ecx, ptr[rsi+rax*4-1000]); dump();
-mov (ecx, ptr[rsi+rax*8+0]); dump();
-mov (ecx, ptr[rsi+rax*8+1]); dump();
-mov (ecx, ptr[rsi+rax*8+1000]); dump();
-mov (ecx, ptr[rsi+rax*8-1]); dump();
-mov (ecx, ptr[rsi+rax*8-1000]); dump();
-mov (ecx, ptr[rsi+rcx+0]); dump();
-mov (ecx, ptr[rsi+rcx+1]); dump();
-mov (ecx, ptr[rsi+rcx+1000]); dump();
-mov (ecx, ptr[rsi+rcx-1]); dump();
-mov (ecx, ptr[rsi+rcx-1000]); dump();
-mov (ecx, ptr[rsi+rcx*1+0]); dump();
-mov (ecx, ptr[rsi+rcx*1+1]); dump();
-mov (ecx, ptr[rsi+rcx*1+1000]); dump();
-mov (ecx, ptr[rsi+rcx*1-1]); dump();
-mov (ecx, ptr[rsi+rcx*1-1000]); dump();
-mov (ecx, ptr[rsi+rcx*2+0]); dump();
-mov (ecx, ptr[rsi+rcx*2+1]); dump();
-mov (ecx, ptr[rsi+rcx*2+1000]); dump();
-mov (ecx, ptr[rsi+rcx*2-1]); dump();
-mov (ecx, ptr[rsi+rcx*2-1000]); dump();
-mov (ecx, ptr[rsi+rcx*4+0]); dump();
-mov (ecx, ptr[rsi+rcx*4+1]); dump();
-mov (ecx, ptr[rsi+rcx*4+1000]); dump();
-mov (ecx, ptr[rsi+rcx*4-1]); dump();
-mov (ecx, ptr[rsi+rcx*4-1000]); dump();
-mov (ecx, ptr[rsi+rcx*8+0]); dump();
-mov (ecx, ptr[rsi+rcx*8+1]); dump();
-mov (ecx, ptr[rsi+rcx*8+1000]); dump();
-mov (ecx, ptr[rsi+rcx*8-1]); dump();
-mov (ecx, ptr[rsi+rcx*8-1000]); dump();
-}
- void gen23(){
-mov (ecx, ptr[rsi+rdx+0]); dump();
-mov (ecx, ptr[rsi+rdx+1]); dump();
-mov (ecx, ptr[rsi+rdx+1000]); dump();
-mov (ecx, ptr[rsi+rdx-1]); dump();
-mov (ecx, ptr[rsi+rdx-1000]); dump();
-mov (ecx, ptr[rsi+rdx*1+0]); dump();
-mov (ecx, ptr[rsi+rdx*1+1]); dump();
-mov (ecx, ptr[rsi+rdx*1+1000]); dump();
-mov (ecx, ptr[rsi+rdx*1-1]); dump();
-mov (ecx, ptr[rsi+rdx*1-1000]); dump();
-mov (ecx, ptr[rsi+rdx*2+0]); dump();
-mov (ecx, ptr[rsi+rdx*2+1]); dump();
-mov (ecx, ptr[rsi+rdx*2+1000]); dump();
-mov (ecx, ptr[rsi+rdx*2-1]); dump();
-mov (ecx, ptr[rsi+rdx*2-1000]); dump();
-mov (ecx, ptr[rsi+rdx*4+0]); dump();
-mov (ecx, ptr[rsi+rdx*4+1]); dump();
-mov (ecx, ptr[rsi+rdx*4+1000]); dump();
-mov (ecx, ptr[rsi+rdx*4-1]); dump();
-mov (ecx, ptr[rsi+rdx*4-1000]); dump();
-mov (ecx, ptr[rsi+rdx*8+0]); dump();
-mov (ecx, ptr[rsi+rdx*8+1]); dump();
-mov (ecx, ptr[rsi+rdx*8+1000]); dump();
-mov (ecx, ptr[rsi+rdx*8-1]); dump();
-mov (ecx, ptr[rsi+rdx*8-1000]); dump();
-mov (ecx, ptr[rsi+rbx+0]); dump();
-mov (ecx, ptr[rsi+rbx+1]); dump();
-mov (ecx, ptr[rsi+rbx+1000]); dump();
-mov (ecx, ptr[rsi+rbx-1]); dump();
-mov (ecx, ptr[rsi+rbx-1000]); dump();
-mov (ecx, ptr[rsi+rbx*1+0]); dump();
-mov (ecx, ptr[rsi+rbx*1+1]); dump();
-mov (ecx, ptr[rsi+rbx*1+1000]); dump();
-mov (ecx, ptr[rsi+rbx*1-1]); dump();
-mov (ecx, ptr[rsi+rbx*1-1000]); dump();
-mov (ecx, ptr[rsi+rbx*2+0]); dump();
-mov (ecx, ptr[rsi+rbx*2+1]); dump();
-mov (ecx, ptr[rsi+rbx*2+1000]); dump();
-mov (ecx, ptr[rsi+rbx*2-1]); dump();
-mov (ecx, ptr[rsi+rbx*2-1000]); dump();
-mov (ecx, ptr[rsi+rbx*4+0]); dump();
-mov (ecx, ptr[rsi+rbx*4+1]); dump();
-mov (ecx, ptr[rsi+rbx*4+1000]); dump();
-mov (ecx, ptr[rsi+rbx*4-1]); dump();
-mov (ecx, ptr[rsi+rbx*4-1000]); dump();
-mov (ecx, ptr[rsi+rbx*8+0]); dump();
-mov (ecx, ptr[rsi+rbx*8+1]); dump();
-mov (ecx, ptr[rsi+rbx*8+1000]); dump();
-mov (ecx, ptr[rsi+rbx*8-1]); dump();
-mov (ecx, ptr[rsi+rbx*8-1000]); dump();
-mov (ecx, ptr[rsi+rbp+0]); dump();
-mov (ecx, ptr[rsi+rbp+1]); dump();
-mov (ecx, ptr[rsi+rbp+1000]); dump();
-mov (ecx, ptr[rsi+rbp-1]); dump();
-mov (ecx, ptr[rsi+rbp-1000]); dump();
-mov (ecx, ptr[rsi+rbp*1+0]); dump();
-mov (ecx, ptr[rsi+rbp*1+1]); dump();
-mov (ecx, ptr[rsi+rbp*1+1000]); dump();
-mov (ecx, ptr[rsi+rbp*1-1]); dump();
-mov (ecx, ptr[rsi+rbp*1-1000]); dump();
-mov (ecx, ptr[rsi+rbp*2+0]); dump();
-mov (ecx, ptr[rsi+rbp*2+1]); dump();
-mov (ecx, ptr[rsi+rbp*2+1000]); dump();
-mov (ecx, ptr[rsi+rbp*2-1]); dump();
-mov (ecx, ptr[rsi+rbp*2-1000]); dump();
-mov (ecx, ptr[rsi+rbp*4+0]); dump();
-mov (ecx, ptr[rsi+rbp*4+1]); dump();
-mov (ecx, ptr[rsi+rbp*4+1000]); dump();
-mov (ecx, ptr[rsi+rbp*4-1]); dump();
-mov (ecx, ptr[rsi+rbp*4-1000]); dump();
-mov (ecx, ptr[rsi+rbp*8+0]); dump();
-mov (ecx, ptr[rsi+rbp*8+1]); dump();
-mov (ecx, ptr[rsi+rbp*8+1000]); dump();
-mov (ecx, ptr[rsi+rbp*8-1]); dump();
-mov (ecx, ptr[rsi+rbp*8-1000]); dump();
-mov (ecx, ptr[rsi+rsi+0]); dump();
-mov (ecx, ptr[rsi+rsi+1]); dump();
-mov (ecx, ptr[rsi+rsi+1000]); dump();
-mov (ecx, ptr[rsi+rsi-1]); dump();
-mov (ecx, ptr[rsi+rsi-1000]); dump();
-mov (ecx, ptr[rsi+rsi*1+0]); dump();
-mov (ecx, ptr[rsi+rsi*1+1]); dump();
-mov (ecx, ptr[rsi+rsi*1+1000]); dump();
-mov (ecx, ptr[rsi+rsi*1-1]); dump();
-mov (ecx, ptr[rsi+rsi*1-1000]); dump();
-mov (ecx, ptr[rsi+rsi*2+0]); dump();
-mov (ecx, ptr[rsi+rsi*2+1]); dump();
-mov (ecx, ptr[rsi+rsi*2+1000]); dump();
-mov (ecx, ptr[rsi+rsi*2-1]); dump();
-mov (ecx, ptr[rsi+rsi*2-1000]); dump();
-mov (ecx, ptr[rsi+rsi*4+0]); dump();
-mov (ecx, ptr[rsi+rsi*4+1]); dump();
-mov (ecx, ptr[rsi+rsi*4+1000]); dump();
-mov (ecx, ptr[rsi+rsi*4-1]); dump();
-mov (ecx, ptr[rsi+rsi*4-1000]); dump();
-mov (ecx, ptr[rsi+rsi*8+0]); dump();
-mov (ecx, ptr[rsi+rsi*8+1]); dump();
-mov (ecx, ptr[rsi+rsi*8+1000]); dump();
-mov (ecx, ptr[rsi+rsi*8-1]); dump();
-mov (ecx, ptr[rsi+rsi*8-1000]); dump();
-}
- void gen24(){
-mov (ecx, ptr[rsi+rdi+0]); dump();
-mov (ecx, ptr[rsi+rdi+1]); dump();
-mov (ecx, ptr[rsi+rdi+1000]); dump();
-mov (ecx, ptr[rsi+rdi-1]); dump();
-mov (ecx, ptr[rsi+rdi-1000]); dump();
-mov (ecx, ptr[rsi+rdi*1+0]); dump();
-mov (ecx, ptr[rsi+rdi*1+1]); dump();
-mov (ecx, ptr[rsi+rdi*1+1000]); dump();
-mov (ecx, ptr[rsi+rdi*1-1]); dump();
-mov (ecx, ptr[rsi+rdi*1-1000]); dump();
-mov (ecx, ptr[rsi+rdi*2+0]); dump();
-mov (ecx, ptr[rsi+rdi*2+1]); dump();
-mov (ecx, ptr[rsi+rdi*2+1000]); dump();
-mov (ecx, ptr[rsi+rdi*2-1]); dump();
-mov (ecx, ptr[rsi+rdi*2-1000]); dump();
-mov (ecx, ptr[rsi+rdi*4+0]); dump();
-mov (ecx, ptr[rsi+rdi*4+1]); dump();
-mov (ecx, ptr[rsi+rdi*4+1000]); dump();
-mov (ecx, ptr[rsi+rdi*4-1]); dump();
-mov (ecx, ptr[rsi+rdi*4-1000]); dump();
-mov (ecx, ptr[rsi+rdi*8+0]); dump();
-mov (ecx, ptr[rsi+rdi*8+1]); dump();
-mov (ecx, ptr[rsi+rdi*8+1000]); dump();
-mov (ecx, ptr[rsi+rdi*8-1]); dump();
-mov (ecx, ptr[rsi+rdi*8-1000]); dump();
-mov (ecx, ptr[rsi+r9+0]); dump();
-mov (ecx, ptr[rsi+r9+1]); dump();
-mov (ecx, ptr[rsi+r9+1000]); dump();
-mov (ecx, ptr[rsi+r9-1]); dump();
-mov (ecx, ptr[rsi+r9-1000]); dump();
-mov (ecx, ptr[rsi+r9*1+0]); dump();
-mov (ecx, ptr[rsi+r9*1+1]); dump();
-mov (ecx, ptr[rsi+r9*1+1000]); dump();
-mov (ecx, ptr[rsi+r9*1-1]); dump();
-mov (ecx, ptr[rsi+r9*1-1000]); dump();
-mov (ecx, ptr[rsi+r9*2+0]); dump();
-mov (ecx, ptr[rsi+r9*2+1]); dump();
-mov (ecx, ptr[rsi+r9*2+1000]); dump();
-mov (ecx, ptr[rsi+r9*2-1]); dump();
-mov (ecx, ptr[rsi+r9*2-1000]); dump();
-mov (ecx, ptr[rsi+r9*4+0]); dump();
-mov (ecx, ptr[rsi+r9*4+1]); dump();
-mov (ecx, ptr[rsi+r9*4+1000]); dump();
-mov (ecx, ptr[rsi+r9*4-1]); dump();
-mov (ecx, ptr[rsi+r9*4-1000]); dump();
-mov (ecx, ptr[rsi+r9*8+0]); dump();
-mov (ecx, ptr[rsi+r9*8+1]); dump();
-mov (ecx, ptr[rsi+r9*8+1000]); dump();
-mov (ecx, ptr[rsi+r9*8-1]); dump();
-mov (ecx, ptr[rsi+r9*8-1000]); dump();
-mov (ecx, ptr[rsi+r10+0]); dump();
-mov (ecx, ptr[rsi+r10+1]); dump();
-mov (ecx, ptr[rsi+r10+1000]); dump();
-mov (ecx, ptr[rsi+r10-1]); dump();
-mov (ecx, ptr[rsi+r10-1000]); dump();
-mov (ecx, ptr[rsi+r10*1+0]); dump();
-mov (ecx, ptr[rsi+r10*1+1]); dump();
-mov (ecx, ptr[rsi+r10*1+1000]); dump();
-mov (ecx, ptr[rsi+r10*1-1]); dump();
-mov (ecx, ptr[rsi+r10*1-1000]); dump();
-mov (ecx, ptr[rsi+r10*2+0]); dump();
-mov (ecx, ptr[rsi+r10*2+1]); dump();
-mov (ecx, ptr[rsi+r10*2+1000]); dump();
-mov (ecx, ptr[rsi+r10*2-1]); dump();
-mov (ecx, ptr[rsi+r10*2-1000]); dump();
-mov (ecx, ptr[rsi+r10*4+0]); dump();
-mov (ecx, ptr[rsi+r10*4+1]); dump();
-mov (ecx, ptr[rsi+r10*4+1000]); dump();
-mov (ecx, ptr[rsi+r10*4-1]); dump();
-mov (ecx, ptr[rsi+r10*4-1000]); dump();
-mov (ecx, ptr[rsi+r10*8+0]); dump();
-mov (ecx, ptr[rsi+r10*8+1]); dump();
-mov (ecx, ptr[rsi+r10*8+1000]); dump();
-mov (ecx, ptr[rsi+r10*8-1]); dump();
-mov (ecx, ptr[rsi+r10*8-1000]); dump();
-mov (ecx, ptr[rsi+r11+0]); dump();
-mov (ecx, ptr[rsi+r11+1]); dump();
-mov (ecx, ptr[rsi+r11+1000]); dump();
-mov (ecx, ptr[rsi+r11-1]); dump();
-mov (ecx, ptr[rsi+r11-1000]); dump();
-mov (ecx, ptr[rsi+r11*1+0]); dump();
-mov (ecx, ptr[rsi+r11*1+1]); dump();
-mov (ecx, ptr[rsi+r11*1+1000]); dump();
-mov (ecx, ptr[rsi+r11*1-1]); dump();
-mov (ecx, ptr[rsi+r11*1-1000]); dump();
-mov (ecx, ptr[rsi+r11*2+0]); dump();
-mov (ecx, ptr[rsi+r11*2+1]); dump();
-mov (ecx, ptr[rsi+r11*2+1000]); dump();
-mov (ecx, ptr[rsi+r11*2-1]); dump();
-mov (ecx, ptr[rsi+r11*2-1000]); dump();
-mov (ecx, ptr[rsi+r11*4+0]); dump();
-mov (ecx, ptr[rsi+r11*4+1]); dump();
-mov (ecx, ptr[rsi+r11*4+1000]); dump();
-mov (ecx, ptr[rsi+r11*4-1]); dump();
-mov (ecx, ptr[rsi+r11*4-1000]); dump();
-mov (ecx, ptr[rsi+r11*8+0]); dump();
-mov (ecx, ptr[rsi+r11*8+1]); dump();
-mov (ecx, ptr[rsi+r11*8+1000]); dump();
-mov (ecx, ptr[rsi+r11*8-1]); dump();
-mov (ecx, ptr[rsi+r11*8-1000]); dump();
-}
- void gen25(){
-mov (ecx, ptr[rsi+r12+0]); dump();
-mov (ecx, ptr[rsi+r12+1]); dump();
-mov (ecx, ptr[rsi+r12+1000]); dump();
-mov (ecx, ptr[rsi+r12-1]); dump();
-mov (ecx, ptr[rsi+r12-1000]); dump();
-mov (ecx, ptr[rsi+r12*1+0]); dump();
-mov (ecx, ptr[rsi+r12*1+1]); dump();
-mov (ecx, ptr[rsi+r12*1+1000]); dump();
-mov (ecx, ptr[rsi+r12*1-1]); dump();
-mov (ecx, ptr[rsi+r12*1-1000]); dump();
-mov (ecx, ptr[rsi+r12*2+0]); dump();
-mov (ecx, ptr[rsi+r12*2+1]); dump();
-mov (ecx, ptr[rsi+r12*2+1000]); dump();
-mov (ecx, ptr[rsi+r12*2-1]); dump();
-mov (ecx, ptr[rsi+r12*2-1000]); dump();
-mov (ecx, ptr[rsi+r12*4+0]); dump();
-mov (ecx, ptr[rsi+r12*4+1]); dump();
-mov (ecx, ptr[rsi+r12*4+1000]); dump();
-mov (ecx, ptr[rsi+r12*4-1]); dump();
-mov (ecx, ptr[rsi+r12*4-1000]); dump();
-mov (ecx, ptr[rsi+r12*8+0]); dump();
-mov (ecx, ptr[rsi+r12*8+1]); dump();
-mov (ecx, ptr[rsi+r12*8+1000]); dump();
-mov (ecx, ptr[rsi+r12*8-1]); dump();
-mov (ecx, ptr[rsi+r12*8-1000]); dump();
-mov (ecx, ptr[rsi+r13+0]); dump();
-mov (ecx, ptr[rsi+r13+1]); dump();
-mov (ecx, ptr[rsi+r13+1000]); dump();
-mov (ecx, ptr[rsi+r13-1]); dump();
-mov (ecx, ptr[rsi+r13-1000]); dump();
-mov (ecx, ptr[rsi+r13*1+0]); dump();
-mov (ecx, ptr[rsi+r13*1+1]); dump();
-mov (ecx, ptr[rsi+r13*1+1000]); dump();
-mov (ecx, ptr[rsi+r13*1-1]); dump();
-mov (ecx, ptr[rsi+r13*1-1000]); dump();
-mov (ecx, ptr[rsi+r13*2+0]); dump();
-mov (ecx, ptr[rsi+r13*2+1]); dump();
-mov (ecx, ptr[rsi+r13*2+1000]); dump();
-mov (ecx, ptr[rsi+r13*2-1]); dump();
-mov (ecx, ptr[rsi+r13*2-1000]); dump();
-mov (ecx, ptr[rsi+r13*4+0]); dump();
-mov (ecx, ptr[rsi+r13*4+1]); dump();
-mov (ecx, ptr[rsi+r13*4+1000]); dump();
-mov (ecx, ptr[rsi+r13*4-1]); dump();
-mov (ecx, ptr[rsi+r13*4-1000]); dump();
-mov (ecx, ptr[rsi+r13*8+0]); dump();
-mov (ecx, ptr[rsi+r13*8+1]); dump();
-mov (ecx, ptr[rsi+r13*8+1000]); dump();
-mov (ecx, ptr[rsi+r13*8-1]); dump();
-mov (ecx, ptr[rsi+r13*8-1000]); dump();
-mov (ecx, ptr[rsi+r14+0]); dump();
-mov (ecx, ptr[rsi+r14+1]); dump();
-mov (ecx, ptr[rsi+r14+1000]); dump();
-mov (ecx, ptr[rsi+r14-1]); dump();
-mov (ecx, ptr[rsi+r14-1000]); dump();
-mov (ecx, ptr[rsi+r14*1+0]); dump();
-mov (ecx, ptr[rsi+r14*1+1]); dump();
-mov (ecx, ptr[rsi+r14*1+1000]); dump();
-mov (ecx, ptr[rsi+r14*1-1]); dump();
-mov (ecx, ptr[rsi+r14*1-1000]); dump();
-mov (ecx, ptr[rsi+r14*2+0]); dump();
-mov (ecx, ptr[rsi+r14*2+1]); dump();
-mov (ecx, ptr[rsi+r14*2+1000]); dump();
-mov (ecx, ptr[rsi+r14*2-1]); dump();
-mov (ecx, ptr[rsi+r14*2-1000]); dump();
-mov (ecx, ptr[rsi+r14*4+0]); dump();
-mov (ecx, ptr[rsi+r14*4+1]); dump();
-mov (ecx, ptr[rsi+r14*4+1000]); dump();
-mov (ecx, ptr[rsi+r14*4-1]); dump();
-mov (ecx, ptr[rsi+r14*4-1000]); dump();
-mov (ecx, ptr[rsi+r14*8+0]); dump();
-mov (ecx, ptr[rsi+r14*8+1]); dump();
-mov (ecx, ptr[rsi+r14*8+1000]); dump();
-mov (ecx, ptr[rsi+r14*8-1]); dump();
-mov (ecx, ptr[rsi+r14*8-1000]); dump();
-mov (ecx, ptr[rsi+r15+0]); dump();
-mov (ecx, ptr[rsi+r15+1]); dump();
-mov (ecx, ptr[rsi+r15+1000]); dump();
-mov (ecx, ptr[rsi+r15-1]); dump();
-mov (ecx, ptr[rsi+r15-1000]); dump();
-mov (ecx, ptr[rsi+r15*1+0]); dump();
-mov (ecx, ptr[rsi+r15*1+1]); dump();
-mov (ecx, ptr[rsi+r15*1+1000]); dump();
-mov (ecx, ptr[rsi+r15*1-1]); dump();
-mov (ecx, ptr[rsi+r15*1-1000]); dump();
-mov (ecx, ptr[rsi+r15*2+0]); dump();
-mov (ecx, ptr[rsi+r15*2+1]); dump();
-mov (ecx, ptr[rsi+r15*2+1000]); dump();
-mov (ecx, ptr[rsi+r15*2-1]); dump();
-mov (ecx, ptr[rsi+r15*2-1000]); dump();
-mov (ecx, ptr[rsi+r15*4+0]); dump();
-mov (ecx, ptr[rsi+r15*4+1]); dump();
-mov (ecx, ptr[rsi+r15*4+1000]); dump();
-mov (ecx, ptr[rsi+r15*4-1]); dump();
-mov (ecx, ptr[rsi+r15*4-1000]); dump();
-mov (ecx, ptr[rsi+r15*8+0]); dump();
-mov (ecx, ptr[rsi+r15*8+1]); dump();
-mov (ecx, ptr[rsi+r15*8+1000]); dump();
-mov (ecx, ptr[rsi+r15*8-1]); dump();
-mov (ecx, ptr[rsi+r15*8-1000]); dump();
-}
- void gen26(){
-mov (ecx, ptr[rsi+0]); dump();
-mov (ecx, ptr[rsi+1]); dump();
-mov (ecx, ptr[rsi+1000]); dump();
-mov (ecx, ptr[rsi-1]); dump();
-mov (ecx, ptr[rsi-1000]); dump();
-mov (ecx, ptr[rsi+0]); dump();
-mov (ecx, ptr[rsi+1]); dump();
-mov (ecx, ptr[rsi+1000]); dump();
-mov (ecx, ptr[rsi-1]); dump();
-mov (ecx, ptr[rsi-1000]); dump();
-mov (ecx, ptr[rsi+0]); dump();
-mov (ecx, ptr[rsi+1]); dump();
-mov (ecx, ptr[rsi+1000]); dump();
-mov (ecx, ptr[rsi-1]); dump();
-mov (ecx, ptr[rsi-1000]); dump();
-mov (ecx, ptr[rsi+0]); dump();
-mov (ecx, ptr[rsi+1]); dump();
-mov (ecx, ptr[rsi+1000]); dump();
-mov (ecx, ptr[rsi-1]); dump();
-mov (ecx, ptr[rsi-1000]); dump();
-mov (ecx, ptr[rsi+0]); dump();
-mov (ecx, ptr[rsi+1]); dump();
-mov (ecx, ptr[rsi+1000]); dump();
-mov (ecx, ptr[rsi-1]); dump();
-mov (ecx, ptr[rsi-1000]); dump();
-mov (ecx, ptr[rdi+rax+0]); dump();
-mov (ecx, ptr[rdi+rax+1]); dump();
-mov (ecx, ptr[rdi+rax+1000]); dump();
-mov (ecx, ptr[rdi+rax-1]); dump();
-mov (ecx, ptr[rdi+rax-1000]); dump();
-mov (ecx, ptr[rdi+rax*1+0]); dump();
-mov (ecx, ptr[rdi+rax*1+1]); dump();
-mov (ecx, ptr[rdi+rax*1+1000]); dump();
-mov (ecx, ptr[rdi+rax*1-1]); dump();
-mov (ecx, ptr[rdi+rax*1-1000]); dump();
-mov (ecx, ptr[rdi+rax*2+0]); dump();
-mov (ecx, ptr[rdi+rax*2+1]); dump();
-mov (ecx, ptr[rdi+rax*2+1000]); dump();
-mov (ecx, ptr[rdi+rax*2-1]); dump();
-mov (ecx, ptr[rdi+rax*2-1000]); dump();
-mov (ecx, ptr[rdi+rax*4+0]); dump();
-mov (ecx, ptr[rdi+rax*4+1]); dump();
-mov (ecx, ptr[rdi+rax*4+1000]); dump();
-mov (ecx, ptr[rdi+rax*4-1]); dump();
-mov (ecx, ptr[rdi+rax*4-1000]); dump();
-mov (ecx, ptr[rdi+rax*8+0]); dump();
-mov (ecx, ptr[rdi+rax*8+1]); dump();
-mov (ecx, ptr[rdi+rax*8+1000]); dump();
-mov (ecx, ptr[rdi+rax*8-1]); dump();
-mov (ecx, ptr[rdi+rax*8-1000]); dump();
-mov (ecx, ptr[rdi+rcx+0]); dump();
-mov (ecx, ptr[rdi+rcx+1]); dump();
-mov (ecx, ptr[rdi+rcx+1000]); dump();
-mov (ecx, ptr[rdi+rcx-1]); dump();
-mov (ecx, ptr[rdi+rcx-1000]); dump();
-mov (ecx, ptr[rdi+rcx*1+0]); dump();
-mov (ecx, ptr[rdi+rcx*1+1]); dump();
-mov (ecx, ptr[rdi+rcx*1+1000]); dump();
-mov (ecx, ptr[rdi+rcx*1-1]); dump();
-mov (ecx, ptr[rdi+rcx*1-1000]); dump();
-mov (ecx, ptr[rdi+rcx*2+0]); dump();
-mov (ecx, ptr[rdi+rcx*2+1]); dump();
-mov (ecx, ptr[rdi+rcx*2+1000]); dump();
-mov (ecx, ptr[rdi+rcx*2-1]); dump();
-mov (ecx, ptr[rdi+rcx*2-1000]); dump();
-mov (ecx, ptr[rdi+rcx*4+0]); dump();
-mov (ecx, ptr[rdi+rcx*4+1]); dump();
-mov (ecx, ptr[rdi+rcx*4+1000]); dump();
-mov (ecx, ptr[rdi+rcx*4-1]); dump();
-mov (ecx, ptr[rdi+rcx*4-1000]); dump();
-mov (ecx, ptr[rdi+rcx*8+0]); dump();
-mov (ecx, ptr[rdi+rcx*8+1]); dump();
-mov (ecx, ptr[rdi+rcx*8+1000]); dump();
-mov (ecx, ptr[rdi+rcx*8-1]); dump();
-mov (ecx, ptr[rdi+rcx*8-1000]); dump();
-mov (ecx, ptr[rdi+rdx+0]); dump();
-mov (ecx, ptr[rdi+rdx+1]); dump();
-mov (ecx, ptr[rdi+rdx+1000]); dump();
-mov (ecx, ptr[rdi+rdx-1]); dump();
-mov (ecx, ptr[rdi+rdx-1000]); dump();
-mov (ecx, ptr[rdi+rdx*1+0]); dump();
-mov (ecx, ptr[rdi+rdx*1+1]); dump();
-mov (ecx, ptr[rdi+rdx*1+1000]); dump();
-mov (ecx, ptr[rdi+rdx*1-1]); dump();
-mov (ecx, ptr[rdi+rdx*1-1000]); dump();
-mov (ecx, ptr[rdi+rdx*2+0]); dump();
-mov (ecx, ptr[rdi+rdx*2+1]); dump();
-mov (ecx, ptr[rdi+rdx*2+1000]); dump();
-mov (ecx, ptr[rdi+rdx*2-1]); dump();
-mov (ecx, ptr[rdi+rdx*2-1000]); dump();
-mov (ecx, ptr[rdi+rdx*4+0]); dump();
-mov (ecx, ptr[rdi+rdx*4+1]); dump();
-mov (ecx, ptr[rdi+rdx*4+1000]); dump();
-mov (ecx, ptr[rdi+rdx*4-1]); dump();
-mov (ecx, ptr[rdi+rdx*4-1000]); dump();
-mov (ecx, ptr[rdi+rdx*8+0]); dump();
-mov (ecx, ptr[rdi+rdx*8+1]); dump();
-mov (ecx, ptr[rdi+rdx*8+1000]); dump();
-mov (ecx, ptr[rdi+rdx*8-1]); dump();
-mov (ecx, ptr[rdi+rdx*8-1000]); dump();
-}
- void gen27(){
-mov (ecx, ptr[rdi+rbx+0]); dump();
-mov (ecx, ptr[rdi+rbx+1]); dump();
-mov (ecx, ptr[rdi+rbx+1000]); dump();
-mov (ecx, ptr[rdi+rbx-1]); dump();
-mov (ecx, ptr[rdi+rbx-1000]); dump();
-mov (ecx, ptr[rdi+rbx*1+0]); dump();
-mov (ecx, ptr[rdi+rbx*1+1]); dump();
-mov (ecx, ptr[rdi+rbx*1+1000]); dump();
-mov (ecx, ptr[rdi+rbx*1-1]); dump();
-mov (ecx, ptr[rdi+rbx*1-1000]); dump();
-mov (ecx, ptr[rdi+rbx*2+0]); dump();
-mov (ecx, ptr[rdi+rbx*2+1]); dump();
-mov (ecx, ptr[rdi+rbx*2+1000]); dump();
-mov (ecx, ptr[rdi+rbx*2-1]); dump();
-mov (ecx, ptr[rdi+rbx*2-1000]); dump();
-mov (ecx, ptr[rdi+rbx*4+0]); dump();
-mov (ecx, ptr[rdi+rbx*4+1]); dump();
-mov (ecx, ptr[rdi+rbx*4+1000]); dump();
-mov (ecx, ptr[rdi+rbx*4-1]); dump();
-mov (ecx, ptr[rdi+rbx*4-1000]); dump();
-mov (ecx, ptr[rdi+rbx*8+0]); dump();
-mov (ecx, ptr[rdi+rbx*8+1]); dump();
-mov (ecx, ptr[rdi+rbx*8+1000]); dump();
-mov (ecx, ptr[rdi+rbx*8-1]); dump();
-mov (ecx, ptr[rdi+rbx*8-1000]); dump();
-mov (ecx, ptr[rdi+rbp+0]); dump();
-mov (ecx, ptr[rdi+rbp+1]); dump();
-mov (ecx, ptr[rdi+rbp+1000]); dump();
-mov (ecx, ptr[rdi+rbp-1]); dump();
-mov (ecx, ptr[rdi+rbp-1000]); dump();
-mov (ecx, ptr[rdi+rbp*1+0]); dump();
-mov (ecx, ptr[rdi+rbp*1+1]); dump();
-mov (ecx, ptr[rdi+rbp*1+1000]); dump();
-mov (ecx, ptr[rdi+rbp*1-1]); dump();
-mov (ecx, ptr[rdi+rbp*1-1000]); dump();
-mov (ecx, ptr[rdi+rbp*2+0]); dump();
-mov (ecx, ptr[rdi+rbp*2+1]); dump();
-mov (ecx, ptr[rdi+rbp*2+1000]); dump();
-mov (ecx, ptr[rdi+rbp*2-1]); dump();
-mov (ecx, ptr[rdi+rbp*2-1000]); dump();
-mov (ecx, ptr[rdi+rbp*4+0]); dump();
-mov (ecx, ptr[rdi+rbp*4+1]); dump();
-mov (ecx, ptr[rdi+rbp*4+1000]); dump();
-mov (ecx, ptr[rdi+rbp*4-1]); dump();
-mov (ecx, ptr[rdi+rbp*4-1000]); dump();
-mov (ecx, ptr[rdi+rbp*8+0]); dump();
-mov (ecx, ptr[rdi+rbp*8+1]); dump();
-mov (ecx, ptr[rdi+rbp*8+1000]); dump();
-mov (ecx, ptr[rdi+rbp*8-1]); dump();
-mov (ecx, ptr[rdi+rbp*8-1000]); dump();
-mov (ecx, ptr[rdi+rsi+0]); dump();
-mov (ecx, ptr[rdi+rsi+1]); dump();
-mov (ecx, ptr[rdi+rsi+1000]); dump();
-mov (ecx, ptr[rdi+rsi-1]); dump();
-mov (ecx, ptr[rdi+rsi-1000]); dump();
-mov (ecx, ptr[rdi+rsi*1+0]); dump();
-mov (ecx, ptr[rdi+rsi*1+1]); dump();
-mov (ecx, ptr[rdi+rsi*1+1000]); dump();
-mov (ecx, ptr[rdi+rsi*1-1]); dump();
-mov (ecx, ptr[rdi+rsi*1-1000]); dump();
-mov (ecx, ptr[rdi+rsi*2+0]); dump();
-mov (ecx, ptr[rdi+rsi*2+1]); dump();
-mov (ecx, ptr[rdi+rsi*2+1000]); dump();
-mov (ecx, ptr[rdi+rsi*2-1]); dump();
-mov (ecx, ptr[rdi+rsi*2-1000]); dump();
-mov (ecx, ptr[rdi+rsi*4+0]); dump();
-mov (ecx, ptr[rdi+rsi*4+1]); dump();
-mov (ecx, ptr[rdi+rsi*4+1000]); dump();
-mov (ecx, ptr[rdi+rsi*4-1]); dump();
-mov (ecx, ptr[rdi+rsi*4-1000]); dump();
-mov (ecx, ptr[rdi+rsi*8+0]); dump();
-mov (ecx, ptr[rdi+rsi*8+1]); dump();
-mov (ecx, ptr[rdi+rsi*8+1000]); dump();
-mov (ecx, ptr[rdi+rsi*8-1]); dump();
-mov (ecx, ptr[rdi+rsi*8-1000]); dump();
-mov (ecx, ptr[rdi+rdi+0]); dump();
-mov (ecx, ptr[rdi+rdi+1]); dump();
-mov (ecx, ptr[rdi+rdi+1000]); dump();
-mov (ecx, ptr[rdi+rdi-1]); dump();
-mov (ecx, ptr[rdi+rdi-1000]); dump();
-mov (ecx, ptr[rdi+rdi*1+0]); dump();
-mov (ecx, ptr[rdi+rdi*1+1]); dump();
-mov (ecx, ptr[rdi+rdi*1+1000]); dump();
-mov (ecx, ptr[rdi+rdi*1-1]); dump();
-mov (ecx, ptr[rdi+rdi*1-1000]); dump();
-mov (ecx, ptr[rdi+rdi*2+0]); dump();
-mov (ecx, ptr[rdi+rdi*2+1]); dump();
-mov (ecx, ptr[rdi+rdi*2+1000]); dump();
-mov (ecx, ptr[rdi+rdi*2-1]); dump();
-mov (ecx, ptr[rdi+rdi*2-1000]); dump();
-mov (ecx, ptr[rdi+rdi*4+0]); dump();
-mov (ecx, ptr[rdi+rdi*4+1]); dump();
-mov (ecx, ptr[rdi+rdi*4+1000]); dump();
-mov (ecx, ptr[rdi+rdi*4-1]); dump();
-mov (ecx, ptr[rdi+rdi*4-1000]); dump();
-mov (ecx, ptr[rdi+rdi*8+0]); dump();
-mov (ecx, ptr[rdi+rdi*8+1]); dump();
-mov (ecx, ptr[rdi+rdi*8+1000]); dump();
-mov (ecx, ptr[rdi+rdi*8-1]); dump();
-mov (ecx, ptr[rdi+rdi*8-1000]); dump();
-}
- void gen28(){
-mov (ecx, ptr[rdi+r9+0]); dump();
-mov (ecx, ptr[rdi+r9+1]); dump();
-mov (ecx, ptr[rdi+r9+1000]); dump();
-mov (ecx, ptr[rdi+r9-1]); dump();
-mov (ecx, ptr[rdi+r9-1000]); dump();
-mov (ecx, ptr[rdi+r9*1+0]); dump();
-mov (ecx, ptr[rdi+r9*1+1]); dump();
-mov (ecx, ptr[rdi+r9*1+1000]); dump();
-mov (ecx, ptr[rdi+r9*1-1]); dump();
-mov (ecx, ptr[rdi+r9*1-1000]); dump();
-mov (ecx, ptr[rdi+r9*2+0]); dump();
-mov (ecx, ptr[rdi+r9*2+1]); dump();
-mov (ecx, ptr[rdi+r9*2+1000]); dump();
-mov (ecx, ptr[rdi+r9*2-1]); dump();
-mov (ecx, ptr[rdi+r9*2-1000]); dump();
-mov (ecx, ptr[rdi+r9*4+0]); dump();
-mov (ecx, ptr[rdi+r9*4+1]); dump();
-mov (ecx, ptr[rdi+r9*4+1000]); dump();
-mov (ecx, ptr[rdi+r9*4-1]); dump();
-mov (ecx, ptr[rdi+r9*4-1000]); dump();
-mov (ecx, ptr[rdi+r9*8+0]); dump();
-mov (ecx, ptr[rdi+r9*8+1]); dump();
-mov (ecx, ptr[rdi+r9*8+1000]); dump();
-mov (ecx, ptr[rdi+r9*8-1]); dump();
-mov (ecx, ptr[rdi+r9*8-1000]); dump();
-mov (ecx, ptr[rdi+r10+0]); dump();
-mov (ecx, ptr[rdi+r10+1]); dump();
-mov (ecx, ptr[rdi+r10+1000]); dump();
-mov (ecx, ptr[rdi+r10-1]); dump();
-mov (ecx, ptr[rdi+r10-1000]); dump();
-mov (ecx, ptr[rdi+r10*1+0]); dump();
-mov (ecx, ptr[rdi+r10*1+1]); dump();
-mov (ecx, ptr[rdi+r10*1+1000]); dump();
-mov (ecx, ptr[rdi+r10*1-1]); dump();
-mov (ecx, ptr[rdi+r10*1-1000]); dump();
-mov (ecx, ptr[rdi+r10*2+0]); dump();
-mov (ecx, ptr[rdi+r10*2+1]); dump();
-mov (ecx, ptr[rdi+r10*2+1000]); dump();
-mov (ecx, ptr[rdi+r10*2-1]); dump();
-mov (ecx, ptr[rdi+r10*2-1000]); dump();
-mov (ecx, ptr[rdi+r10*4+0]); dump();
-mov (ecx, ptr[rdi+r10*4+1]); dump();
-mov (ecx, ptr[rdi+r10*4+1000]); dump();
-mov (ecx, ptr[rdi+r10*4-1]); dump();
-mov (ecx, ptr[rdi+r10*4-1000]); dump();
-mov (ecx, ptr[rdi+r10*8+0]); dump();
-mov (ecx, ptr[rdi+r10*8+1]); dump();
-mov (ecx, ptr[rdi+r10*8+1000]); dump();
-mov (ecx, ptr[rdi+r10*8-1]); dump();
-mov (ecx, ptr[rdi+r10*8-1000]); dump();
-mov (ecx, ptr[rdi+r11+0]); dump();
-mov (ecx, ptr[rdi+r11+1]); dump();
-mov (ecx, ptr[rdi+r11+1000]); dump();
-mov (ecx, ptr[rdi+r11-1]); dump();
-mov (ecx, ptr[rdi+r11-1000]); dump();
-mov (ecx, ptr[rdi+r11*1+0]); dump();
-mov (ecx, ptr[rdi+r11*1+1]); dump();
-mov (ecx, ptr[rdi+r11*1+1000]); dump();
-mov (ecx, ptr[rdi+r11*1-1]); dump();
-mov (ecx, ptr[rdi+r11*1-1000]); dump();
-mov (ecx, ptr[rdi+r11*2+0]); dump();
-mov (ecx, ptr[rdi+r11*2+1]); dump();
-mov (ecx, ptr[rdi+r11*2+1000]); dump();
-mov (ecx, ptr[rdi+r11*2-1]); dump();
-mov (ecx, ptr[rdi+r11*2-1000]); dump();
-mov (ecx, ptr[rdi+r11*4+0]); dump();
-mov (ecx, ptr[rdi+r11*4+1]); dump();
-mov (ecx, ptr[rdi+r11*4+1000]); dump();
-mov (ecx, ptr[rdi+r11*4-1]); dump();
-mov (ecx, ptr[rdi+r11*4-1000]); dump();
-mov (ecx, ptr[rdi+r11*8+0]); dump();
-mov (ecx, ptr[rdi+r11*8+1]); dump();
-mov (ecx, ptr[rdi+r11*8+1000]); dump();
-mov (ecx, ptr[rdi+r11*8-1]); dump();
-mov (ecx, ptr[rdi+r11*8-1000]); dump();
-mov (ecx, ptr[rdi+r12+0]); dump();
-mov (ecx, ptr[rdi+r12+1]); dump();
-mov (ecx, ptr[rdi+r12+1000]); dump();
-mov (ecx, ptr[rdi+r12-1]); dump();
-mov (ecx, ptr[rdi+r12-1000]); dump();
-mov (ecx, ptr[rdi+r12*1+0]); dump();
-mov (ecx, ptr[rdi+r12*1+1]); dump();
-mov (ecx, ptr[rdi+r12*1+1000]); dump();
-mov (ecx, ptr[rdi+r12*1-1]); dump();
-mov (ecx, ptr[rdi+r12*1-1000]); dump();
-mov (ecx, ptr[rdi+r12*2+0]); dump();
-mov (ecx, ptr[rdi+r12*2+1]); dump();
-mov (ecx, ptr[rdi+r12*2+1000]); dump();
-mov (ecx, ptr[rdi+r12*2-1]); dump();
-mov (ecx, ptr[rdi+r12*2-1000]); dump();
-mov (ecx, ptr[rdi+r12*4+0]); dump();
-mov (ecx, ptr[rdi+r12*4+1]); dump();
-mov (ecx, ptr[rdi+r12*4+1000]); dump();
-mov (ecx, ptr[rdi+r12*4-1]); dump();
-mov (ecx, ptr[rdi+r12*4-1000]); dump();
-mov (ecx, ptr[rdi+r12*8+0]); dump();
-mov (ecx, ptr[rdi+r12*8+1]); dump();
-mov (ecx, ptr[rdi+r12*8+1000]); dump();
-mov (ecx, ptr[rdi+r12*8-1]); dump();
-mov (ecx, ptr[rdi+r12*8-1000]); dump();
-}
- void gen29(){
-mov (ecx, ptr[rdi+r13+0]); dump();
-mov (ecx, ptr[rdi+r13+1]); dump();
-mov (ecx, ptr[rdi+r13+1000]); dump();
-mov (ecx, ptr[rdi+r13-1]); dump();
-mov (ecx, ptr[rdi+r13-1000]); dump();
-mov (ecx, ptr[rdi+r13*1+0]); dump();
-mov (ecx, ptr[rdi+r13*1+1]); dump();
-mov (ecx, ptr[rdi+r13*1+1000]); dump();
-mov (ecx, ptr[rdi+r13*1-1]); dump();
-mov (ecx, ptr[rdi+r13*1-1000]); dump();
-mov (ecx, ptr[rdi+r13*2+0]); dump();
-mov (ecx, ptr[rdi+r13*2+1]); dump();
-mov (ecx, ptr[rdi+r13*2+1000]); dump();
-mov (ecx, ptr[rdi+r13*2-1]); dump();
-mov (ecx, ptr[rdi+r13*2-1000]); dump();
-mov (ecx, ptr[rdi+r13*4+0]); dump();
-mov (ecx, ptr[rdi+r13*4+1]); dump();
-mov (ecx, ptr[rdi+r13*4+1000]); dump();
-mov (ecx, ptr[rdi+r13*4-1]); dump();
-mov (ecx, ptr[rdi+r13*4-1000]); dump();
-mov (ecx, ptr[rdi+r13*8+0]); dump();
-mov (ecx, ptr[rdi+r13*8+1]); dump();
-mov (ecx, ptr[rdi+r13*8+1000]); dump();
-mov (ecx, ptr[rdi+r13*8-1]); dump();
-mov (ecx, ptr[rdi+r13*8-1000]); dump();
-mov (ecx, ptr[rdi+r14+0]); dump();
-mov (ecx, ptr[rdi+r14+1]); dump();
-mov (ecx, ptr[rdi+r14+1000]); dump();
-mov (ecx, ptr[rdi+r14-1]); dump();
-mov (ecx, ptr[rdi+r14-1000]); dump();
-mov (ecx, ptr[rdi+r14*1+0]); dump();
-mov (ecx, ptr[rdi+r14*1+1]); dump();
-mov (ecx, ptr[rdi+r14*1+1000]); dump();
-mov (ecx, ptr[rdi+r14*1-1]); dump();
-mov (ecx, ptr[rdi+r14*1-1000]); dump();
-mov (ecx, ptr[rdi+r14*2+0]); dump();
-mov (ecx, ptr[rdi+r14*2+1]); dump();
-mov (ecx, ptr[rdi+r14*2+1000]); dump();
-mov (ecx, ptr[rdi+r14*2-1]); dump();
-mov (ecx, ptr[rdi+r14*2-1000]); dump();
-mov (ecx, ptr[rdi+r14*4+0]); dump();
-mov (ecx, ptr[rdi+r14*4+1]); dump();
-mov (ecx, ptr[rdi+r14*4+1000]); dump();
-mov (ecx, ptr[rdi+r14*4-1]); dump();
-mov (ecx, ptr[rdi+r14*4-1000]); dump();
-mov (ecx, ptr[rdi+r14*8+0]); dump();
-mov (ecx, ptr[rdi+r14*8+1]); dump();
-mov (ecx, ptr[rdi+r14*8+1000]); dump();
-mov (ecx, ptr[rdi+r14*8-1]); dump();
-mov (ecx, ptr[rdi+r14*8-1000]); dump();
-mov (ecx, ptr[rdi+r15+0]); dump();
-mov (ecx, ptr[rdi+r15+1]); dump();
-mov (ecx, ptr[rdi+r15+1000]); dump();
-mov (ecx, ptr[rdi+r15-1]); dump();
-mov (ecx, ptr[rdi+r15-1000]); dump();
-mov (ecx, ptr[rdi+r15*1+0]); dump();
-mov (ecx, ptr[rdi+r15*1+1]); dump();
-mov (ecx, ptr[rdi+r15*1+1000]); dump();
-mov (ecx, ptr[rdi+r15*1-1]); dump();
-mov (ecx, ptr[rdi+r15*1-1000]); dump();
-mov (ecx, ptr[rdi+r15*2+0]); dump();
-mov (ecx, ptr[rdi+r15*2+1]); dump();
-mov (ecx, ptr[rdi+r15*2+1000]); dump();
-mov (ecx, ptr[rdi+r15*2-1]); dump();
-mov (ecx, ptr[rdi+r15*2-1000]); dump();
-mov (ecx, ptr[rdi+r15*4+0]); dump();
-mov (ecx, ptr[rdi+r15*4+1]); dump();
-mov (ecx, ptr[rdi+r15*4+1000]); dump();
-mov (ecx, ptr[rdi+r15*4-1]); dump();
-mov (ecx, ptr[rdi+r15*4-1000]); dump();
-mov (ecx, ptr[rdi+r15*8+0]); dump();
-mov (ecx, ptr[rdi+r15*8+1]); dump();
-mov (ecx, ptr[rdi+r15*8+1000]); dump();
-mov (ecx, ptr[rdi+r15*8-1]); dump();
-mov (ecx, ptr[rdi+r15*8-1000]); dump();
-mov (ecx, ptr[rdi+0]); dump();
-mov (ecx, ptr[rdi+1]); dump();
-mov (ecx, ptr[rdi+1000]); dump();
-mov (ecx, ptr[rdi-1]); dump();
-mov (ecx, ptr[rdi-1000]); dump();
-mov (ecx, ptr[rdi+0]); dump();
-mov (ecx, ptr[rdi+1]); dump();
-mov (ecx, ptr[rdi+1000]); dump();
-mov (ecx, ptr[rdi-1]); dump();
-mov (ecx, ptr[rdi-1000]); dump();
-mov (ecx, ptr[rdi+0]); dump();
-mov (ecx, ptr[rdi+1]); dump();
-mov (ecx, ptr[rdi+1000]); dump();
-mov (ecx, ptr[rdi-1]); dump();
-mov (ecx, ptr[rdi-1000]); dump();
-mov (ecx, ptr[rdi+0]); dump();
-mov (ecx, ptr[rdi+1]); dump();
-mov (ecx, ptr[rdi+1000]); dump();
-mov (ecx, ptr[rdi-1]); dump();
-mov (ecx, ptr[rdi-1000]); dump();
-mov (ecx, ptr[rdi+0]); dump();
-mov (ecx, ptr[rdi+1]); dump();
-mov (ecx, ptr[rdi+1000]); dump();
-mov (ecx, ptr[rdi-1]); dump();
-mov (ecx, ptr[rdi-1000]); dump();
-}
- void gen30(){
-mov (ecx, ptr[r9+rax+0]); dump();
-mov (ecx, ptr[r9+rax+1]); dump();
-mov (ecx, ptr[r9+rax+1000]); dump();
-mov (ecx, ptr[r9+rax-1]); dump();
-mov (ecx, ptr[r9+rax-1000]); dump();
-mov (ecx, ptr[r9+rax*1+0]); dump();
-mov (ecx, ptr[r9+rax*1+1]); dump();
-mov (ecx, ptr[r9+rax*1+1000]); dump();
-mov (ecx, ptr[r9+rax*1-1]); dump();
-mov (ecx, ptr[r9+rax*1-1000]); dump();
-mov (ecx, ptr[r9+rax*2+0]); dump();
-mov (ecx, ptr[r9+rax*2+1]); dump();
-mov (ecx, ptr[r9+rax*2+1000]); dump();
-mov (ecx, ptr[r9+rax*2-1]); dump();
-mov (ecx, ptr[r9+rax*2-1000]); dump();
-mov (ecx, ptr[r9+rax*4+0]); dump();
-mov (ecx, ptr[r9+rax*4+1]); dump();
-mov (ecx, ptr[r9+rax*4+1000]); dump();
-mov (ecx, ptr[r9+rax*4-1]); dump();
-mov (ecx, ptr[r9+rax*4-1000]); dump();
-mov (ecx, ptr[r9+rax*8+0]); dump();
-mov (ecx, ptr[r9+rax*8+1]); dump();
-mov (ecx, ptr[r9+rax*8+1000]); dump();
-mov (ecx, ptr[r9+rax*8-1]); dump();
-mov (ecx, ptr[r9+rax*8-1000]); dump();
-mov (ecx, ptr[r9+rcx+0]); dump();
-mov (ecx, ptr[r9+rcx+1]); dump();
-mov (ecx, ptr[r9+rcx+1000]); dump();
-mov (ecx, ptr[r9+rcx-1]); dump();
-mov (ecx, ptr[r9+rcx-1000]); dump();
-mov (ecx, ptr[r9+rcx*1+0]); dump();
-mov (ecx, ptr[r9+rcx*1+1]); dump();
-mov (ecx, ptr[r9+rcx*1+1000]); dump();
-mov (ecx, ptr[r9+rcx*1-1]); dump();
-mov (ecx, ptr[r9+rcx*1-1000]); dump();
-mov (ecx, ptr[r9+rcx*2+0]); dump();
-mov (ecx, ptr[r9+rcx*2+1]); dump();
-mov (ecx, ptr[r9+rcx*2+1000]); dump();
-mov (ecx, ptr[r9+rcx*2-1]); dump();
-mov (ecx, ptr[r9+rcx*2-1000]); dump();
-mov (ecx, ptr[r9+rcx*4+0]); dump();
-mov (ecx, ptr[r9+rcx*4+1]); dump();
-mov (ecx, ptr[r9+rcx*4+1000]); dump();
-mov (ecx, ptr[r9+rcx*4-1]); dump();
-mov (ecx, ptr[r9+rcx*4-1000]); dump();
-mov (ecx, ptr[r9+rcx*8+0]); dump();
-mov (ecx, ptr[r9+rcx*8+1]); dump();
-mov (ecx, ptr[r9+rcx*8+1000]); dump();
-mov (ecx, ptr[r9+rcx*8-1]); dump();
-mov (ecx, ptr[r9+rcx*8-1000]); dump();
-mov (ecx, ptr[r9+rdx+0]); dump();
-mov (ecx, ptr[r9+rdx+1]); dump();
-mov (ecx, ptr[r9+rdx+1000]); dump();
-mov (ecx, ptr[r9+rdx-1]); dump();
-mov (ecx, ptr[r9+rdx-1000]); dump();
-mov (ecx, ptr[r9+rdx*1+0]); dump();
-mov (ecx, ptr[r9+rdx*1+1]); dump();
-mov (ecx, ptr[r9+rdx*1+1000]); dump();
-mov (ecx, ptr[r9+rdx*1-1]); dump();
-mov (ecx, ptr[r9+rdx*1-1000]); dump();
-mov (ecx, ptr[r9+rdx*2+0]); dump();
-mov (ecx, ptr[r9+rdx*2+1]); dump();
-mov (ecx, ptr[r9+rdx*2+1000]); dump();
-mov (ecx, ptr[r9+rdx*2-1]); dump();
-mov (ecx, ptr[r9+rdx*2-1000]); dump();
-mov (ecx, ptr[r9+rdx*4+0]); dump();
-mov (ecx, ptr[r9+rdx*4+1]); dump();
-mov (ecx, ptr[r9+rdx*4+1000]); dump();
-mov (ecx, ptr[r9+rdx*4-1]); dump();
-mov (ecx, ptr[r9+rdx*4-1000]); dump();
-mov (ecx, ptr[r9+rdx*8+0]); dump();
-mov (ecx, ptr[r9+rdx*8+1]); dump();
-mov (ecx, ptr[r9+rdx*8+1000]); dump();
-mov (ecx, ptr[r9+rdx*8-1]); dump();
-mov (ecx, ptr[r9+rdx*8-1000]); dump();
-mov (ecx, ptr[r9+rbx+0]); dump();
-mov (ecx, ptr[r9+rbx+1]); dump();
-mov (ecx, ptr[r9+rbx+1000]); dump();
-mov (ecx, ptr[r9+rbx-1]); dump();
-mov (ecx, ptr[r9+rbx-1000]); dump();
-mov (ecx, ptr[r9+rbx*1+0]); dump();
-mov (ecx, ptr[r9+rbx*1+1]); dump();
-mov (ecx, ptr[r9+rbx*1+1000]); dump();
-mov (ecx, ptr[r9+rbx*1-1]); dump();
-mov (ecx, ptr[r9+rbx*1-1000]); dump();
-mov (ecx, ptr[r9+rbx*2+0]); dump();
-mov (ecx, ptr[r9+rbx*2+1]); dump();
-mov (ecx, ptr[r9+rbx*2+1000]); dump();
-mov (ecx, ptr[r9+rbx*2-1]); dump();
-mov (ecx, ptr[r9+rbx*2-1000]); dump();
-mov (ecx, ptr[r9+rbx*4+0]); dump();
-mov (ecx, ptr[r9+rbx*4+1]); dump();
-mov (ecx, ptr[r9+rbx*4+1000]); dump();
-mov (ecx, ptr[r9+rbx*4-1]); dump();
-mov (ecx, ptr[r9+rbx*4-1000]); dump();
-mov (ecx, ptr[r9+rbx*8+0]); dump();
-mov (ecx, ptr[r9+rbx*8+1]); dump();
-mov (ecx, ptr[r9+rbx*8+1000]); dump();
-mov (ecx, ptr[r9+rbx*8-1]); dump();
-mov (ecx, ptr[r9+rbx*8-1000]); dump();
-}
- void gen31(){
-mov (ecx, ptr[r9+rbp+0]); dump();
-mov (ecx, ptr[r9+rbp+1]); dump();
-mov (ecx, ptr[r9+rbp+1000]); dump();
-mov (ecx, ptr[r9+rbp-1]); dump();
-mov (ecx, ptr[r9+rbp-1000]); dump();
-mov (ecx, ptr[r9+rbp*1+0]); dump();
-mov (ecx, ptr[r9+rbp*1+1]); dump();
-mov (ecx, ptr[r9+rbp*1+1000]); dump();
-mov (ecx, ptr[r9+rbp*1-1]); dump();
-mov (ecx, ptr[r9+rbp*1-1000]); dump();
-mov (ecx, ptr[r9+rbp*2+0]); dump();
-mov (ecx, ptr[r9+rbp*2+1]); dump();
-mov (ecx, ptr[r9+rbp*2+1000]); dump();
-mov (ecx, ptr[r9+rbp*2-1]); dump();
-mov (ecx, ptr[r9+rbp*2-1000]); dump();
-mov (ecx, ptr[r9+rbp*4+0]); dump();
-mov (ecx, ptr[r9+rbp*4+1]); dump();
-mov (ecx, ptr[r9+rbp*4+1000]); dump();
-mov (ecx, ptr[r9+rbp*4-1]); dump();
-mov (ecx, ptr[r9+rbp*4-1000]); dump();
-mov (ecx, ptr[r9+rbp*8+0]); dump();
-mov (ecx, ptr[r9+rbp*8+1]); dump();
-mov (ecx, ptr[r9+rbp*8+1000]); dump();
-mov (ecx, ptr[r9+rbp*8-1]); dump();
-mov (ecx, ptr[r9+rbp*8-1000]); dump();
-mov (ecx, ptr[r9+rsi+0]); dump();
-mov (ecx, ptr[r9+rsi+1]); dump();
-mov (ecx, ptr[r9+rsi+1000]); dump();
-mov (ecx, ptr[r9+rsi-1]); dump();
-mov (ecx, ptr[r9+rsi-1000]); dump();
-mov (ecx, ptr[r9+rsi*1+0]); dump();
-mov (ecx, ptr[r9+rsi*1+1]); dump();
-mov (ecx, ptr[r9+rsi*1+1000]); dump();
-mov (ecx, ptr[r9+rsi*1-1]); dump();
-mov (ecx, ptr[r9+rsi*1-1000]); dump();
-mov (ecx, ptr[r9+rsi*2+0]); dump();
-mov (ecx, ptr[r9+rsi*2+1]); dump();
-mov (ecx, ptr[r9+rsi*2+1000]); dump();
-mov (ecx, ptr[r9+rsi*2-1]); dump();
-mov (ecx, ptr[r9+rsi*2-1000]); dump();
-mov (ecx, ptr[r9+rsi*4+0]); dump();
-mov (ecx, ptr[r9+rsi*4+1]); dump();
-mov (ecx, ptr[r9+rsi*4+1000]); dump();
-mov (ecx, ptr[r9+rsi*4-1]); dump();
-mov (ecx, ptr[r9+rsi*4-1000]); dump();
-mov (ecx, ptr[r9+rsi*8+0]); dump();
-mov (ecx, ptr[r9+rsi*8+1]); dump();
-mov (ecx, ptr[r9+rsi*8+1000]); dump();
-mov (ecx, ptr[r9+rsi*8-1]); dump();
-mov (ecx, ptr[r9+rsi*8-1000]); dump();
-mov (ecx, ptr[r9+rdi+0]); dump();
-mov (ecx, ptr[r9+rdi+1]); dump();
-mov (ecx, ptr[r9+rdi+1000]); dump();
-mov (ecx, ptr[r9+rdi-1]); dump();
-mov (ecx, ptr[r9+rdi-1000]); dump();
-mov (ecx, ptr[r9+rdi*1+0]); dump();
-mov (ecx, ptr[r9+rdi*1+1]); dump();
-mov (ecx, ptr[r9+rdi*1+1000]); dump();
-mov (ecx, ptr[r9+rdi*1-1]); dump();
-mov (ecx, ptr[r9+rdi*1-1000]); dump();
-mov (ecx, ptr[r9+rdi*2+0]); dump();
-mov (ecx, ptr[r9+rdi*2+1]); dump();
-mov (ecx, ptr[r9+rdi*2+1000]); dump();
-mov (ecx, ptr[r9+rdi*2-1]); dump();
-mov (ecx, ptr[r9+rdi*2-1000]); dump();
-mov (ecx, ptr[r9+rdi*4+0]); dump();
-mov (ecx, ptr[r9+rdi*4+1]); dump();
-mov (ecx, ptr[r9+rdi*4+1000]); dump();
-mov (ecx, ptr[r9+rdi*4-1]); dump();
-mov (ecx, ptr[r9+rdi*4-1000]); dump();
-mov (ecx, ptr[r9+rdi*8+0]); dump();
-mov (ecx, ptr[r9+rdi*8+1]); dump();
-mov (ecx, ptr[r9+rdi*8+1000]); dump();
-mov (ecx, ptr[r9+rdi*8-1]); dump();
-mov (ecx, ptr[r9+rdi*8-1000]); dump();
-mov (ecx, ptr[r9+r9+0]); dump();
-mov (ecx, ptr[r9+r9+1]); dump();
-mov (ecx, ptr[r9+r9+1000]); dump();
-mov (ecx, ptr[r9+r9-1]); dump();
-mov (ecx, ptr[r9+r9-1000]); dump();
-mov (ecx, ptr[r9+r9*1+0]); dump();
-mov (ecx, ptr[r9+r9*1+1]); dump();
-mov (ecx, ptr[r9+r9*1+1000]); dump();
-mov (ecx, ptr[r9+r9*1-1]); dump();
-mov (ecx, ptr[r9+r9*1-1000]); dump();
-mov (ecx, ptr[r9+r9*2+0]); dump();
-mov (ecx, ptr[r9+r9*2+1]); dump();
-mov (ecx, ptr[r9+r9*2+1000]); dump();
-mov (ecx, ptr[r9+r9*2-1]); dump();
-mov (ecx, ptr[r9+r9*2-1000]); dump();
-mov (ecx, ptr[r9+r9*4+0]); dump();
-mov (ecx, ptr[r9+r9*4+1]); dump();
-mov (ecx, ptr[r9+r9*4+1000]); dump();
-mov (ecx, ptr[r9+r9*4-1]); dump();
-mov (ecx, ptr[r9+r9*4-1000]); dump();
-mov (ecx, ptr[r9+r9*8+0]); dump();
-mov (ecx, ptr[r9+r9*8+1]); dump();
-mov (ecx, ptr[r9+r9*8+1000]); dump();
-mov (ecx, ptr[r9+r9*8-1]); dump();
-mov (ecx, ptr[r9+r9*8-1000]); dump();
-}
- void gen32(){
-mov (ecx, ptr[r9+r10+0]); dump();
-mov (ecx, ptr[r9+r10+1]); dump();
-mov (ecx, ptr[r9+r10+1000]); dump();
-mov (ecx, ptr[r9+r10-1]); dump();
-mov (ecx, ptr[r9+r10-1000]); dump();
-mov (ecx, ptr[r9+r10*1+0]); dump();
-mov (ecx, ptr[r9+r10*1+1]); dump();
-mov (ecx, ptr[r9+r10*1+1000]); dump();
-mov (ecx, ptr[r9+r10*1-1]); dump();
-mov (ecx, ptr[r9+r10*1-1000]); dump();
-mov (ecx, ptr[r9+r10*2+0]); dump();
-mov (ecx, ptr[r9+r10*2+1]); dump();
-mov (ecx, ptr[r9+r10*2+1000]); dump();
-mov (ecx, ptr[r9+r10*2-1]); dump();
-mov (ecx, ptr[r9+r10*2-1000]); dump();
-mov (ecx, ptr[r9+r10*4+0]); dump();
-mov (ecx, ptr[r9+r10*4+1]); dump();
-mov (ecx, ptr[r9+r10*4+1000]); dump();
-mov (ecx, ptr[r9+r10*4-1]); dump();
-mov (ecx, ptr[r9+r10*4-1000]); dump();
-mov (ecx, ptr[r9+r10*8+0]); dump();
-mov (ecx, ptr[r9+r10*8+1]); dump();
-mov (ecx, ptr[r9+r10*8+1000]); dump();
-mov (ecx, ptr[r9+r10*8-1]); dump();
-mov (ecx, ptr[r9+r10*8-1000]); dump();
-mov (ecx, ptr[r9+r11+0]); dump();
-mov (ecx, ptr[r9+r11+1]); dump();
-mov (ecx, ptr[r9+r11+1000]); dump();
-mov (ecx, ptr[r9+r11-1]); dump();
-mov (ecx, ptr[r9+r11-1000]); dump();
-mov (ecx, ptr[r9+r11*1+0]); dump();
-mov (ecx, ptr[r9+r11*1+1]); dump();
-mov (ecx, ptr[r9+r11*1+1000]); dump();
-mov (ecx, ptr[r9+r11*1-1]); dump();
-mov (ecx, ptr[r9+r11*1-1000]); dump();
-mov (ecx, ptr[r9+r11*2+0]); dump();
-mov (ecx, ptr[r9+r11*2+1]); dump();
-mov (ecx, ptr[r9+r11*2+1000]); dump();
-mov (ecx, ptr[r9+r11*2-1]); dump();
-mov (ecx, ptr[r9+r11*2-1000]); dump();
-mov (ecx, ptr[r9+r11*4+0]); dump();
-mov (ecx, ptr[r9+r11*4+1]); dump();
-mov (ecx, ptr[r9+r11*4+1000]); dump();
-mov (ecx, ptr[r9+r11*4-1]); dump();
-mov (ecx, ptr[r9+r11*4-1000]); dump();
-mov (ecx, ptr[r9+r11*8+0]); dump();
-mov (ecx, ptr[r9+r11*8+1]); dump();
-mov (ecx, ptr[r9+r11*8+1000]); dump();
-mov (ecx, ptr[r9+r11*8-1]); dump();
-mov (ecx, ptr[r9+r11*8-1000]); dump();
-mov (ecx, ptr[r9+r12+0]); dump();
-mov (ecx, ptr[r9+r12+1]); dump();
-mov (ecx, ptr[r9+r12+1000]); dump();
-mov (ecx, ptr[r9+r12-1]); dump();
-mov (ecx, ptr[r9+r12-1000]); dump();
-mov (ecx, ptr[r9+r12*1+0]); dump();
-mov (ecx, ptr[r9+r12*1+1]); dump();
-mov (ecx, ptr[r9+r12*1+1000]); dump();
-mov (ecx, ptr[r9+r12*1-1]); dump();
-mov (ecx, ptr[r9+r12*1-1000]); dump();
-mov (ecx, ptr[r9+r12*2+0]); dump();
-mov (ecx, ptr[r9+r12*2+1]); dump();
-mov (ecx, ptr[r9+r12*2+1000]); dump();
-mov (ecx, ptr[r9+r12*2-1]); dump();
-mov (ecx, ptr[r9+r12*2-1000]); dump();
-mov (ecx, ptr[r9+r12*4+0]); dump();
-mov (ecx, ptr[r9+r12*4+1]); dump();
-mov (ecx, ptr[r9+r12*4+1000]); dump();
-mov (ecx, ptr[r9+r12*4-1]); dump();
-mov (ecx, ptr[r9+r12*4-1000]); dump();
-mov (ecx, ptr[r9+r12*8+0]); dump();
-mov (ecx, ptr[r9+r12*8+1]); dump();
-mov (ecx, ptr[r9+r12*8+1000]); dump();
-mov (ecx, ptr[r9+r12*8-1]); dump();
-mov (ecx, ptr[r9+r12*8-1000]); dump();
-mov (ecx, ptr[r9+r13+0]); dump();
-mov (ecx, ptr[r9+r13+1]); dump();
-mov (ecx, ptr[r9+r13+1000]); dump();
-mov (ecx, ptr[r9+r13-1]); dump();
-mov (ecx, ptr[r9+r13-1000]); dump();
-mov (ecx, ptr[r9+r13*1+0]); dump();
-mov (ecx, ptr[r9+r13*1+1]); dump();
-mov (ecx, ptr[r9+r13*1+1000]); dump();
-mov (ecx, ptr[r9+r13*1-1]); dump();
-mov (ecx, ptr[r9+r13*1-1000]); dump();
-mov (ecx, ptr[r9+r13*2+0]); dump();
-mov (ecx, ptr[r9+r13*2+1]); dump();
-mov (ecx, ptr[r9+r13*2+1000]); dump();
-mov (ecx, ptr[r9+r13*2-1]); dump();
-mov (ecx, ptr[r9+r13*2-1000]); dump();
-mov (ecx, ptr[r9+r13*4+0]); dump();
-mov (ecx, ptr[r9+r13*4+1]); dump();
-mov (ecx, ptr[r9+r13*4+1000]); dump();
-mov (ecx, ptr[r9+r13*4-1]); dump();
-mov (ecx, ptr[r9+r13*4-1000]); dump();
-mov (ecx, ptr[r9+r13*8+0]); dump();
-mov (ecx, ptr[r9+r13*8+1]); dump();
-mov (ecx, ptr[r9+r13*8+1000]); dump();
-mov (ecx, ptr[r9+r13*8-1]); dump();
-mov (ecx, ptr[r9+r13*8-1000]); dump();
-}
- void gen33(){
-mov (ecx, ptr[r9+r14+0]); dump();
-mov (ecx, ptr[r9+r14+1]); dump();
-mov (ecx, ptr[r9+r14+1000]); dump();
-mov (ecx, ptr[r9+r14-1]); dump();
-mov (ecx, ptr[r9+r14-1000]); dump();
-mov (ecx, ptr[r9+r14*1+0]); dump();
-mov (ecx, ptr[r9+r14*1+1]); dump();
-mov (ecx, ptr[r9+r14*1+1000]); dump();
-mov (ecx, ptr[r9+r14*1-1]); dump();
-mov (ecx, ptr[r9+r14*1-1000]); dump();
-mov (ecx, ptr[r9+r14*2+0]); dump();
-mov (ecx, ptr[r9+r14*2+1]); dump();
-mov (ecx, ptr[r9+r14*2+1000]); dump();
-mov (ecx, ptr[r9+r14*2-1]); dump();
-mov (ecx, ptr[r9+r14*2-1000]); dump();
-mov (ecx, ptr[r9+r14*4+0]); dump();
-mov (ecx, ptr[r9+r14*4+1]); dump();
-mov (ecx, ptr[r9+r14*4+1000]); dump();
-mov (ecx, ptr[r9+r14*4-1]); dump();
-mov (ecx, ptr[r9+r14*4-1000]); dump();
-mov (ecx, ptr[r9+r14*8+0]); dump();
-mov (ecx, ptr[r9+r14*8+1]); dump();
-mov (ecx, ptr[r9+r14*8+1000]); dump();
-mov (ecx, ptr[r9+r14*8-1]); dump();
-mov (ecx, ptr[r9+r14*8-1000]); dump();
-mov (ecx, ptr[r9+r15+0]); dump();
-mov (ecx, ptr[r9+r15+1]); dump();
-mov (ecx, ptr[r9+r15+1000]); dump();
-mov (ecx, ptr[r9+r15-1]); dump();
-mov (ecx, ptr[r9+r15-1000]); dump();
-mov (ecx, ptr[r9+r15*1+0]); dump();
-mov (ecx, ptr[r9+r15*1+1]); dump();
-mov (ecx, ptr[r9+r15*1+1000]); dump();
-mov (ecx, ptr[r9+r15*1-1]); dump();
-mov (ecx, ptr[r9+r15*1-1000]); dump();
-mov (ecx, ptr[r9+r15*2+0]); dump();
-mov (ecx, ptr[r9+r15*2+1]); dump();
-mov (ecx, ptr[r9+r15*2+1000]); dump();
-mov (ecx, ptr[r9+r15*2-1]); dump();
-mov (ecx, ptr[r9+r15*2-1000]); dump();
-mov (ecx, ptr[r9+r15*4+0]); dump();
-mov (ecx, ptr[r9+r15*4+1]); dump();
-mov (ecx, ptr[r9+r15*4+1000]); dump();
-mov (ecx, ptr[r9+r15*4-1]); dump();
-mov (ecx, ptr[r9+r15*4-1000]); dump();
-mov (ecx, ptr[r9+r15*8+0]); dump();
-mov (ecx, ptr[r9+r15*8+1]); dump();
-mov (ecx, ptr[r9+r15*8+1000]); dump();
-mov (ecx, ptr[r9+r15*8-1]); dump();
-mov (ecx, ptr[r9+r15*8-1000]); dump();
-mov (ecx, ptr[r9+0]); dump();
-mov (ecx, ptr[r9+1]); dump();
-mov (ecx, ptr[r9+1000]); dump();
-mov (ecx, ptr[r9-1]); dump();
-mov (ecx, ptr[r9-1000]); dump();
-mov (ecx, ptr[r9+0]); dump();
-mov (ecx, ptr[r9+1]); dump();
-mov (ecx, ptr[r9+1000]); dump();
-mov (ecx, ptr[r9-1]); dump();
-mov (ecx, ptr[r9-1000]); dump();
-mov (ecx, ptr[r9+0]); dump();
-mov (ecx, ptr[r9+1]); dump();
-mov (ecx, ptr[r9+1000]); dump();
-mov (ecx, ptr[r9-1]); dump();
-mov (ecx, ptr[r9-1000]); dump();
-mov (ecx, ptr[r9+0]); dump();
-mov (ecx, ptr[r9+1]); dump();
-mov (ecx, ptr[r9+1000]); dump();
-mov (ecx, ptr[r9-1]); dump();
-mov (ecx, ptr[r9-1000]); dump();
-mov (ecx, ptr[r9+0]); dump();
-mov (ecx, ptr[r9+1]); dump();
-mov (ecx, ptr[r9+1000]); dump();
-mov (ecx, ptr[r9-1]); dump();
-mov (ecx, ptr[r9-1000]); dump();
-mov (ecx, ptr[r10+rax+0]); dump();
-mov (ecx, ptr[r10+rax+1]); dump();
-mov (ecx, ptr[r10+rax+1000]); dump();
-mov (ecx, ptr[r10+rax-1]); dump();
-mov (ecx, ptr[r10+rax-1000]); dump();
-mov (ecx, ptr[r10+rax*1+0]); dump();
-mov (ecx, ptr[r10+rax*1+1]); dump();
-mov (ecx, ptr[r10+rax*1+1000]); dump();
-mov (ecx, ptr[r10+rax*1-1]); dump();
-mov (ecx, ptr[r10+rax*1-1000]); dump();
-mov (ecx, ptr[r10+rax*2+0]); dump();
-mov (ecx, ptr[r10+rax*2+1]); dump();
-mov (ecx, ptr[r10+rax*2+1000]); dump();
-mov (ecx, ptr[r10+rax*2-1]); dump();
-mov (ecx, ptr[r10+rax*2-1000]); dump();
-mov (ecx, ptr[r10+rax*4+0]); dump();
-mov (ecx, ptr[r10+rax*4+1]); dump();
-mov (ecx, ptr[r10+rax*4+1000]); dump();
-mov (ecx, ptr[r10+rax*4-1]); dump();
-mov (ecx, ptr[r10+rax*4-1000]); dump();
-mov (ecx, ptr[r10+rax*8+0]); dump();
-mov (ecx, ptr[r10+rax*8+1]); dump();
-mov (ecx, ptr[r10+rax*8+1000]); dump();
-mov (ecx, ptr[r10+rax*8-1]); dump();
-mov (ecx, ptr[r10+rax*8-1000]); dump();
-}
- void gen34(){
-mov (ecx, ptr[r10+rcx+0]); dump();
-mov (ecx, ptr[r10+rcx+1]); dump();
-mov (ecx, ptr[r10+rcx+1000]); dump();
-mov (ecx, ptr[r10+rcx-1]); dump();
-mov (ecx, ptr[r10+rcx-1000]); dump();
-mov (ecx, ptr[r10+rcx*1+0]); dump();
-mov (ecx, ptr[r10+rcx*1+1]); dump();
-mov (ecx, ptr[r10+rcx*1+1000]); dump();
-mov (ecx, ptr[r10+rcx*1-1]); dump();
-mov (ecx, ptr[r10+rcx*1-1000]); dump();
-mov (ecx, ptr[r10+rcx*2+0]); dump();
-mov (ecx, ptr[r10+rcx*2+1]); dump();
-mov (ecx, ptr[r10+rcx*2+1000]); dump();
-mov (ecx, ptr[r10+rcx*2-1]); dump();
-mov (ecx, ptr[r10+rcx*2-1000]); dump();
-mov (ecx, ptr[r10+rcx*4+0]); dump();
-mov (ecx, ptr[r10+rcx*4+1]); dump();
-mov (ecx, ptr[r10+rcx*4+1000]); dump();
-mov (ecx, ptr[r10+rcx*4-1]); dump();
-mov (ecx, ptr[r10+rcx*4-1000]); dump();
-mov (ecx, ptr[r10+rcx*8+0]); dump();
-mov (ecx, ptr[r10+rcx*8+1]); dump();
-mov (ecx, ptr[r10+rcx*8+1000]); dump();
-mov (ecx, ptr[r10+rcx*8-1]); dump();
-mov (ecx, ptr[r10+rcx*8-1000]); dump();
-mov (ecx, ptr[r10+rdx+0]); dump();
-mov (ecx, ptr[r10+rdx+1]); dump();
-mov (ecx, ptr[r10+rdx+1000]); dump();
-mov (ecx, ptr[r10+rdx-1]); dump();
-mov (ecx, ptr[r10+rdx-1000]); dump();
-mov (ecx, ptr[r10+rdx*1+0]); dump();
-mov (ecx, ptr[r10+rdx*1+1]); dump();
-mov (ecx, ptr[r10+rdx*1+1000]); dump();
-mov (ecx, ptr[r10+rdx*1-1]); dump();
-mov (ecx, ptr[r10+rdx*1-1000]); dump();
-mov (ecx, ptr[r10+rdx*2+0]); dump();
-mov (ecx, ptr[r10+rdx*2+1]); dump();
-mov (ecx, ptr[r10+rdx*2+1000]); dump();
-mov (ecx, ptr[r10+rdx*2-1]); dump();
-mov (ecx, ptr[r10+rdx*2-1000]); dump();
-mov (ecx, ptr[r10+rdx*4+0]); dump();
-mov (ecx, ptr[r10+rdx*4+1]); dump();
-mov (ecx, ptr[r10+rdx*4+1000]); dump();
-mov (ecx, ptr[r10+rdx*4-1]); dump();
-mov (ecx, ptr[r10+rdx*4-1000]); dump();
-mov (ecx, ptr[r10+rdx*8+0]); dump();
-mov (ecx, ptr[r10+rdx*8+1]); dump();
-mov (ecx, ptr[r10+rdx*8+1000]); dump();
-mov (ecx, ptr[r10+rdx*8-1]); dump();
-mov (ecx, ptr[r10+rdx*8-1000]); dump();
-mov (ecx, ptr[r10+rbx+0]); dump();
-mov (ecx, ptr[r10+rbx+1]); dump();
-mov (ecx, ptr[r10+rbx+1000]); dump();
-mov (ecx, ptr[r10+rbx-1]); dump();
-mov (ecx, ptr[r10+rbx-1000]); dump();
-mov (ecx, ptr[r10+rbx*1+0]); dump();
-mov (ecx, ptr[r10+rbx*1+1]); dump();
-mov (ecx, ptr[r10+rbx*1+1000]); dump();
-mov (ecx, ptr[r10+rbx*1-1]); dump();
-mov (ecx, ptr[r10+rbx*1-1000]); dump();
-mov (ecx, ptr[r10+rbx*2+0]); dump();
-mov (ecx, ptr[r10+rbx*2+1]); dump();
-mov (ecx, ptr[r10+rbx*2+1000]); dump();
-mov (ecx, ptr[r10+rbx*2-1]); dump();
-mov (ecx, ptr[r10+rbx*2-1000]); dump();
-mov (ecx, ptr[r10+rbx*4+0]); dump();
-mov (ecx, ptr[r10+rbx*4+1]); dump();
-mov (ecx, ptr[r10+rbx*4+1000]); dump();
-mov (ecx, ptr[r10+rbx*4-1]); dump();
-mov (ecx, ptr[r10+rbx*4-1000]); dump();
-mov (ecx, ptr[r10+rbx*8+0]); dump();
-mov (ecx, ptr[r10+rbx*8+1]); dump();
-mov (ecx, ptr[r10+rbx*8+1000]); dump();
-mov (ecx, ptr[r10+rbx*8-1]); dump();
-mov (ecx, ptr[r10+rbx*8-1000]); dump();
-mov (ecx, ptr[r10+rbp+0]); dump();
-mov (ecx, ptr[r10+rbp+1]); dump();
-mov (ecx, ptr[r10+rbp+1000]); dump();
-mov (ecx, ptr[r10+rbp-1]); dump();
-mov (ecx, ptr[r10+rbp-1000]); dump();
-mov (ecx, ptr[r10+rbp*1+0]); dump();
-mov (ecx, ptr[r10+rbp*1+1]); dump();
-mov (ecx, ptr[r10+rbp*1+1000]); dump();
-mov (ecx, ptr[r10+rbp*1-1]); dump();
-mov (ecx, ptr[r10+rbp*1-1000]); dump();
-mov (ecx, ptr[r10+rbp*2+0]); dump();
-mov (ecx, ptr[r10+rbp*2+1]); dump();
-mov (ecx, ptr[r10+rbp*2+1000]); dump();
-mov (ecx, ptr[r10+rbp*2-1]); dump();
-mov (ecx, ptr[r10+rbp*2-1000]); dump();
-mov (ecx, ptr[r10+rbp*4+0]); dump();
-mov (ecx, ptr[r10+rbp*4+1]); dump();
-mov (ecx, ptr[r10+rbp*4+1000]); dump();
-mov (ecx, ptr[r10+rbp*4-1]); dump();
-mov (ecx, ptr[r10+rbp*4-1000]); dump();
-mov (ecx, ptr[r10+rbp*8+0]); dump();
-mov (ecx, ptr[r10+rbp*8+1]); dump();
-mov (ecx, ptr[r10+rbp*8+1000]); dump();
-mov (ecx, ptr[r10+rbp*8-1]); dump();
-mov (ecx, ptr[r10+rbp*8-1000]); dump();
-}
- void gen35(){
-mov (ecx, ptr[r10+rsi+0]); dump();
-mov (ecx, ptr[r10+rsi+1]); dump();
-mov (ecx, ptr[r10+rsi+1000]); dump();
-mov (ecx, ptr[r10+rsi-1]); dump();
-mov (ecx, ptr[r10+rsi-1000]); dump();
-mov (ecx, ptr[r10+rsi*1+0]); dump();
-mov (ecx, ptr[r10+rsi*1+1]); dump();
-mov (ecx, ptr[r10+rsi*1+1000]); dump();
-mov (ecx, ptr[r10+rsi*1-1]); dump();
-mov (ecx, ptr[r10+rsi*1-1000]); dump();
-mov (ecx, ptr[r10+rsi*2+0]); dump();
-mov (ecx, ptr[r10+rsi*2+1]); dump();
-mov (ecx, ptr[r10+rsi*2+1000]); dump();
-mov (ecx, ptr[r10+rsi*2-1]); dump();
-mov (ecx, ptr[r10+rsi*2-1000]); dump();
-mov (ecx, ptr[r10+rsi*4+0]); dump();
-mov (ecx, ptr[r10+rsi*4+1]); dump();
-mov (ecx, ptr[r10+rsi*4+1000]); dump();
-mov (ecx, ptr[r10+rsi*4-1]); dump();
-mov (ecx, ptr[r10+rsi*4-1000]); dump();
-mov (ecx, ptr[r10+rsi*8+0]); dump();
-mov (ecx, ptr[r10+rsi*8+1]); dump();
-mov (ecx, ptr[r10+rsi*8+1000]); dump();
-mov (ecx, ptr[r10+rsi*8-1]); dump();
-mov (ecx, ptr[r10+rsi*8-1000]); dump();
-mov (ecx, ptr[r10+rdi+0]); dump();
-mov (ecx, ptr[r10+rdi+1]); dump();
-mov (ecx, ptr[r10+rdi+1000]); dump();
-mov (ecx, ptr[r10+rdi-1]); dump();
-mov (ecx, ptr[r10+rdi-1000]); dump();
-mov (ecx, ptr[r10+rdi*1+0]); dump();
-mov (ecx, ptr[r10+rdi*1+1]); dump();
-mov (ecx, ptr[r10+rdi*1+1000]); dump();
-mov (ecx, ptr[r10+rdi*1-1]); dump();
-mov (ecx, ptr[r10+rdi*1-1000]); dump();
-mov (ecx, ptr[r10+rdi*2+0]); dump();
-mov (ecx, ptr[r10+rdi*2+1]); dump();
-mov (ecx, ptr[r10+rdi*2+1000]); dump();
-mov (ecx, ptr[r10+rdi*2-1]); dump();
-mov (ecx, ptr[r10+rdi*2-1000]); dump();
-mov (ecx, ptr[r10+rdi*4+0]); dump();
-mov (ecx, ptr[r10+rdi*4+1]); dump();
-mov (ecx, ptr[r10+rdi*4+1000]); dump();
-mov (ecx, ptr[r10+rdi*4-1]); dump();
-mov (ecx, ptr[r10+rdi*4-1000]); dump();
-mov (ecx, ptr[r10+rdi*8+0]); dump();
-mov (ecx, ptr[r10+rdi*8+1]); dump();
-mov (ecx, ptr[r10+rdi*8+1000]); dump();
-mov (ecx, ptr[r10+rdi*8-1]); dump();
-mov (ecx, ptr[r10+rdi*8-1000]); dump();
-mov (ecx, ptr[r10+r9+0]); dump();
-mov (ecx, ptr[r10+r9+1]); dump();
-mov (ecx, ptr[r10+r9+1000]); dump();
-mov (ecx, ptr[r10+r9-1]); dump();
-mov (ecx, ptr[r10+r9-1000]); dump();
-mov (ecx, ptr[r10+r9*1+0]); dump();
-mov (ecx, ptr[r10+r9*1+1]); dump();
-mov (ecx, ptr[r10+r9*1+1000]); dump();
-mov (ecx, ptr[r10+r9*1-1]); dump();
-mov (ecx, ptr[r10+r9*1-1000]); dump();
-mov (ecx, ptr[r10+r9*2+0]); dump();
-mov (ecx, ptr[r10+r9*2+1]); dump();
-mov (ecx, ptr[r10+r9*2+1000]); dump();
-mov (ecx, ptr[r10+r9*2-1]); dump();
-mov (ecx, ptr[r10+r9*2-1000]); dump();
-mov (ecx, ptr[r10+r9*4+0]); dump();
-mov (ecx, ptr[r10+r9*4+1]); dump();
-mov (ecx, ptr[r10+r9*4+1000]); dump();
-mov (ecx, ptr[r10+r9*4-1]); dump();
-mov (ecx, ptr[r10+r9*4-1000]); dump();
-mov (ecx, ptr[r10+r9*8+0]); dump();
-mov (ecx, ptr[r10+r9*8+1]); dump();
-mov (ecx, ptr[r10+r9*8+1000]); dump();
-mov (ecx, ptr[r10+r9*8-1]); dump();
-mov (ecx, ptr[r10+r9*8-1000]); dump();
-mov (ecx, ptr[r10+r10+0]); dump();
-mov (ecx, ptr[r10+r10+1]); dump();
-mov (ecx, ptr[r10+r10+1000]); dump();
-mov (ecx, ptr[r10+r10-1]); dump();
-mov (ecx, ptr[r10+r10-1000]); dump();
-mov (ecx, ptr[r10+r10*1+0]); dump();
-mov (ecx, ptr[r10+r10*1+1]); dump();
-mov (ecx, ptr[r10+r10*1+1000]); dump();
-mov (ecx, ptr[r10+r10*1-1]); dump();
-mov (ecx, ptr[r10+r10*1-1000]); dump();
-mov (ecx, ptr[r10+r10*2+0]); dump();
-mov (ecx, ptr[r10+r10*2+1]); dump();
-mov (ecx, ptr[r10+r10*2+1000]); dump();
-mov (ecx, ptr[r10+r10*2-1]); dump();
-mov (ecx, ptr[r10+r10*2-1000]); dump();
-mov (ecx, ptr[r10+r10*4+0]); dump();
-mov (ecx, ptr[r10+r10*4+1]); dump();
-mov (ecx, ptr[r10+r10*4+1000]); dump();
-mov (ecx, ptr[r10+r10*4-1]); dump();
-mov (ecx, ptr[r10+r10*4-1000]); dump();
-mov (ecx, ptr[r10+r10*8+0]); dump();
-mov (ecx, ptr[r10+r10*8+1]); dump();
-mov (ecx, ptr[r10+r10*8+1000]); dump();
-mov (ecx, ptr[r10+r10*8-1]); dump();
-mov (ecx, ptr[r10+r10*8-1000]); dump();
-}
- void gen36(){
-mov (ecx, ptr[r10+r11+0]); dump();
-mov (ecx, ptr[r10+r11+1]); dump();
-mov (ecx, ptr[r10+r11+1000]); dump();
-mov (ecx, ptr[r10+r11-1]); dump();
-mov (ecx, ptr[r10+r11-1000]); dump();
-mov (ecx, ptr[r10+r11*1+0]); dump();
-mov (ecx, ptr[r10+r11*1+1]); dump();
-mov (ecx, ptr[r10+r11*1+1000]); dump();
-mov (ecx, ptr[r10+r11*1-1]); dump();
-mov (ecx, ptr[r10+r11*1-1000]); dump();
-mov (ecx, ptr[r10+r11*2+0]); dump();
-mov (ecx, ptr[r10+r11*2+1]); dump();
-mov (ecx, ptr[r10+r11*2+1000]); dump();
-mov (ecx, ptr[r10+r11*2-1]); dump();
-mov (ecx, ptr[r10+r11*2-1000]); dump();
-mov (ecx, ptr[r10+r11*4+0]); dump();
-mov (ecx, ptr[r10+r11*4+1]); dump();
-mov (ecx, ptr[r10+r11*4+1000]); dump();
-mov (ecx, ptr[r10+r11*4-1]); dump();
-mov (ecx, ptr[r10+r11*4-1000]); dump();
-mov (ecx, ptr[r10+r11*8+0]); dump();
-mov (ecx, ptr[r10+r11*8+1]); dump();
-mov (ecx, ptr[r10+r11*8+1000]); dump();
-mov (ecx, ptr[r10+r11*8-1]); dump();
-mov (ecx, ptr[r10+r11*8-1000]); dump();
-mov (ecx, ptr[r10+r12+0]); dump();
-mov (ecx, ptr[r10+r12+1]); dump();
-mov (ecx, ptr[r10+r12+1000]); dump();
-mov (ecx, ptr[r10+r12-1]); dump();
-mov (ecx, ptr[r10+r12-1000]); dump();
-mov (ecx, ptr[r10+r12*1+0]); dump();
-mov (ecx, ptr[r10+r12*1+1]); dump();
-mov (ecx, ptr[r10+r12*1+1000]); dump();
-mov (ecx, ptr[r10+r12*1-1]); dump();
-mov (ecx, ptr[r10+r12*1-1000]); dump();
-mov (ecx, ptr[r10+r12*2+0]); dump();
-mov (ecx, ptr[r10+r12*2+1]); dump();
-mov (ecx, ptr[r10+r12*2+1000]); dump();
-mov (ecx, ptr[r10+r12*2-1]); dump();
-mov (ecx, ptr[r10+r12*2-1000]); dump();
-mov (ecx, ptr[r10+r12*4+0]); dump();
-mov (ecx, ptr[r10+r12*4+1]); dump();
-mov (ecx, ptr[r10+r12*4+1000]); dump();
-mov (ecx, ptr[r10+r12*4-1]); dump();
-mov (ecx, ptr[r10+r12*4-1000]); dump();
-mov (ecx, ptr[r10+r12*8+0]); dump();
-mov (ecx, ptr[r10+r12*8+1]); dump();
-mov (ecx, ptr[r10+r12*8+1000]); dump();
-mov (ecx, ptr[r10+r12*8-1]); dump();
-mov (ecx, ptr[r10+r12*8-1000]); dump();
-mov (ecx, ptr[r10+r13+0]); dump();
-mov (ecx, ptr[r10+r13+1]); dump();
-mov (ecx, ptr[r10+r13+1000]); dump();
-mov (ecx, ptr[r10+r13-1]); dump();
-mov (ecx, ptr[r10+r13-1000]); dump();
-mov (ecx, ptr[r10+r13*1+0]); dump();
-mov (ecx, ptr[r10+r13*1+1]); dump();
-mov (ecx, ptr[r10+r13*1+1000]); dump();
-mov (ecx, ptr[r10+r13*1-1]); dump();
-mov (ecx, ptr[r10+r13*1-1000]); dump();
-mov (ecx, ptr[r10+r13*2+0]); dump();
-mov (ecx, ptr[r10+r13*2+1]); dump();
-mov (ecx, ptr[r10+r13*2+1000]); dump();
-mov (ecx, ptr[r10+r13*2-1]); dump();
-mov (ecx, ptr[r10+r13*2-1000]); dump();
-mov (ecx, ptr[r10+r13*4+0]); dump();
-mov (ecx, ptr[r10+r13*4+1]); dump();
-mov (ecx, ptr[r10+r13*4+1000]); dump();
-mov (ecx, ptr[r10+r13*4-1]); dump();
-mov (ecx, ptr[r10+r13*4-1000]); dump();
-mov (ecx, ptr[r10+r13*8+0]); dump();
-mov (ecx, ptr[r10+r13*8+1]); dump();
-mov (ecx, ptr[r10+r13*8+1000]); dump();
-mov (ecx, ptr[r10+r13*8-1]); dump();
-mov (ecx, ptr[r10+r13*8-1000]); dump();
-mov (ecx, ptr[r10+r14+0]); dump();
-mov (ecx, ptr[r10+r14+1]); dump();
-mov (ecx, ptr[r10+r14+1000]); dump();
-mov (ecx, ptr[r10+r14-1]); dump();
-mov (ecx, ptr[r10+r14-1000]); dump();
-mov (ecx, ptr[r10+r14*1+0]); dump();
-mov (ecx, ptr[r10+r14*1+1]); dump();
-mov (ecx, ptr[r10+r14*1+1000]); dump();
-mov (ecx, ptr[r10+r14*1-1]); dump();
-mov (ecx, ptr[r10+r14*1-1000]); dump();
-mov (ecx, ptr[r10+r14*2+0]); dump();
-mov (ecx, ptr[r10+r14*2+1]); dump();
-mov (ecx, ptr[r10+r14*2+1000]); dump();
-mov (ecx, ptr[r10+r14*2-1]); dump();
-mov (ecx, ptr[r10+r14*2-1000]); dump();
-mov (ecx, ptr[r10+r14*4+0]); dump();
-mov (ecx, ptr[r10+r14*4+1]); dump();
-mov (ecx, ptr[r10+r14*4+1000]); dump();
-mov (ecx, ptr[r10+r14*4-1]); dump();
-mov (ecx, ptr[r10+r14*4-1000]); dump();
-mov (ecx, ptr[r10+r14*8+0]); dump();
-mov (ecx, ptr[r10+r14*8+1]); dump();
-mov (ecx, ptr[r10+r14*8+1000]); dump();
-mov (ecx, ptr[r10+r14*8-1]); dump();
-mov (ecx, ptr[r10+r14*8-1000]); dump();
-}
- void gen37(){
-mov (ecx, ptr[r10+r15+0]); dump();
-mov (ecx, ptr[r10+r15+1]); dump();
-mov (ecx, ptr[r10+r15+1000]); dump();
-mov (ecx, ptr[r10+r15-1]); dump();
-mov (ecx, ptr[r10+r15-1000]); dump();
-mov (ecx, ptr[r10+r15*1+0]); dump();
-mov (ecx, ptr[r10+r15*1+1]); dump();
-mov (ecx, ptr[r10+r15*1+1000]); dump();
-mov (ecx, ptr[r10+r15*1-1]); dump();
-mov (ecx, ptr[r10+r15*1-1000]); dump();
-mov (ecx, ptr[r10+r15*2+0]); dump();
-mov (ecx, ptr[r10+r15*2+1]); dump();
-mov (ecx, ptr[r10+r15*2+1000]); dump();
-mov (ecx, ptr[r10+r15*2-1]); dump();
-mov (ecx, ptr[r10+r15*2-1000]); dump();
-mov (ecx, ptr[r10+r15*4+0]); dump();
-mov (ecx, ptr[r10+r15*4+1]); dump();
-mov (ecx, ptr[r10+r15*4+1000]); dump();
-mov (ecx, ptr[r10+r15*4-1]); dump();
-mov (ecx, ptr[r10+r15*4-1000]); dump();
-mov (ecx, ptr[r10+r15*8+0]); dump();
-mov (ecx, ptr[r10+r15*8+1]); dump();
-mov (ecx, ptr[r10+r15*8+1000]); dump();
-mov (ecx, ptr[r10+r15*8-1]); dump();
-mov (ecx, ptr[r10+r15*8-1000]); dump();
-mov (ecx, ptr[r10+0]); dump();
-mov (ecx, ptr[r10+1]); dump();
-mov (ecx, ptr[r10+1000]); dump();
-mov (ecx, ptr[r10-1]); dump();
-mov (ecx, ptr[r10-1000]); dump();
-mov (ecx, ptr[r10+0]); dump();
-mov (ecx, ptr[r10+1]); dump();
-mov (ecx, ptr[r10+1000]); dump();
-mov (ecx, ptr[r10-1]); dump();
-mov (ecx, ptr[r10-1000]); dump();
-mov (ecx, ptr[r10+0]); dump();
-mov (ecx, ptr[r10+1]); dump();
-mov (ecx, ptr[r10+1000]); dump();
-mov (ecx, ptr[r10-1]); dump();
-mov (ecx, ptr[r10-1000]); dump();
-mov (ecx, ptr[r10+0]); dump();
-mov (ecx, ptr[r10+1]); dump();
-mov (ecx, ptr[r10+1000]); dump();
-mov (ecx, ptr[r10-1]); dump();
-mov (ecx, ptr[r10-1000]); dump();
-mov (ecx, ptr[r10+0]); dump();
-mov (ecx, ptr[r10+1]); dump();
-mov (ecx, ptr[r10+1000]); dump();
-mov (ecx, ptr[r10-1]); dump();
-mov (ecx, ptr[r10-1000]); dump();
-mov (ecx, ptr[r11+rax+0]); dump();
-mov (ecx, ptr[r11+rax+1]); dump();
-mov (ecx, ptr[r11+rax+1000]); dump();
-mov (ecx, ptr[r11+rax-1]); dump();
-mov (ecx, ptr[r11+rax-1000]); dump();
-mov (ecx, ptr[r11+rax*1+0]); dump();
-mov (ecx, ptr[r11+rax*1+1]); dump();
-mov (ecx, ptr[r11+rax*1+1000]); dump();
-mov (ecx, ptr[r11+rax*1-1]); dump();
-mov (ecx, ptr[r11+rax*1-1000]); dump();
-mov (ecx, ptr[r11+rax*2+0]); dump();
-mov (ecx, ptr[r11+rax*2+1]); dump();
-mov (ecx, ptr[r11+rax*2+1000]); dump();
-mov (ecx, ptr[r11+rax*2-1]); dump();
-mov (ecx, ptr[r11+rax*2-1000]); dump();
-mov (ecx, ptr[r11+rax*4+0]); dump();
-mov (ecx, ptr[r11+rax*4+1]); dump();
-mov (ecx, ptr[r11+rax*4+1000]); dump();
-mov (ecx, ptr[r11+rax*4-1]); dump();
-mov (ecx, ptr[r11+rax*4-1000]); dump();
-mov (ecx, ptr[r11+rax*8+0]); dump();
-mov (ecx, ptr[r11+rax*8+1]); dump();
-mov (ecx, ptr[r11+rax*8+1000]); dump();
-mov (ecx, ptr[r11+rax*8-1]); dump();
-mov (ecx, ptr[r11+rax*8-1000]); dump();
-mov (ecx, ptr[r11+rcx+0]); dump();
-mov (ecx, ptr[r11+rcx+1]); dump();
-mov (ecx, ptr[r11+rcx+1000]); dump();
-mov (ecx, ptr[r11+rcx-1]); dump();
-mov (ecx, ptr[r11+rcx-1000]); dump();
-mov (ecx, ptr[r11+rcx*1+0]); dump();
-mov (ecx, ptr[r11+rcx*1+1]); dump();
-mov (ecx, ptr[r11+rcx*1+1000]); dump();
-mov (ecx, ptr[r11+rcx*1-1]); dump();
-mov (ecx, ptr[r11+rcx*1-1000]); dump();
-mov (ecx, ptr[r11+rcx*2+0]); dump();
-mov (ecx, ptr[r11+rcx*2+1]); dump();
-mov (ecx, ptr[r11+rcx*2+1000]); dump();
-mov (ecx, ptr[r11+rcx*2-1]); dump();
-mov (ecx, ptr[r11+rcx*2-1000]); dump();
-mov (ecx, ptr[r11+rcx*4+0]); dump();
-mov (ecx, ptr[r11+rcx*4+1]); dump();
-mov (ecx, ptr[r11+rcx*4+1000]); dump();
-mov (ecx, ptr[r11+rcx*4-1]); dump();
-mov (ecx, ptr[r11+rcx*4-1000]); dump();
-mov (ecx, ptr[r11+rcx*8+0]); dump();
-mov (ecx, ptr[r11+rcx*8+1]); dump();
-mov (ecx, ptr[r11+rcx*8+1000]); dump();
-mov (ecx, ptr[r11+rcx*8-1]); dump();
-mov (ecx, ptr[r11+rcx*8-1000]); dump();
-}
- void gen38(){
-mov (ecx, ptr[r11+rdx+0]); dump();
-mov (ecx, ptr[r11+rdx+1]); dump();
-mov (ecx, ptr[r11+rdx+1000]); dump();
-mov (ecx, ptr[r11+rdx-1]); dump();
-mov (ecx, ptr[r11+rdx-1000]); dump();
-mov (ecx, ptr[r11+rdx*1+0]); dump();
-mov (ecx, ptr[r11+rdx*1+1]); dump();
-mov (ecx, ptr[r11+rdx*1+1000]); dump();
-mov (ecx, ptr[r11+rdx*1-1]); dump();
-mov (ecx, ptr[r11+rdx*1-1000]); dump();
-mov (ecx, ptr[r11+rdx*2+0]); dump();
-mov (ecx, ptr[r11+rdx*2+1]); dump();
-mov (ecx, ptr[r11+rdx*2+1000]); dump();
-mov (ecx, ptr[r11+rdx*2-1]); dump();
-mov (ecx, ptr[r11+rdx*2-1000]); dump();
-mov (ecx, ptr[r11+rdx*4+0]); dump();
-mov (ecx, ptr[r11+rdx*4+1]); dump();
-mov (ecx, ptr[r11+rdx*4+1000]); dump();
-mov (ecx, ptr[r11+rdx*4-1]); dump();
-mov (ecx, ptr[r11+rdx*4-1000]); dump();
-mov (ecx, ptr[r11+rdx*8+0]); dump();
-mov (ecx, ptr[r11+rdx*8+1]); dump();
-mov (ecx, ptr[r11+rdx*8+1000]); dump();
-mov (ecx, ptr[r11+rdx*8-1]); dump();
-mov (ecx, ptr[r11+rdx*8-1000]); dump();
-mov (ecx, ptr[r11+rbx+0]); dump();
-mov (ecx, ptr[r11+rbx+1]); dump();
-mov (ecx, ptr[r11+rbx+1000]); dump();
-mov (ecx, ptr[r11+rbx-1]); dump();
-mov (ecx, ptr[r11+rbx-1000]); dump();
-mov (ecx, ptr[r11+rbx*1+0]); dump();
-mov (ecx, ptr[r11+rbx*1+1]); dump();
-mov (ecx, ptr[r11+rbx*1+1000]); dump();
-mov (ecx, ptr[r11+rbx*1-1]); dump();
-mov (ecx, ptr[r11+rbx*1-1000]); dump();
-mov (ecx, ptr[r11+rbx*2+0]); dump();
-mov (ecx, ptr[r11+rbx*2+1]); dump();
-mov (ecx, ptr[r11+rbx*2+1000]); dump();
-mov (ecx, ptr[r11+rbx*2-1]); dump();
-mov (ecx, ptr[r11+rbx*2-1000]); dump();
-mov (ecx, ptr[r11+rbx*4+0]); dump();
-mov (ecx, ptr[r11+rbx*4+1]); dump();
-mov (ecx, ptr[r11+rbx*4+1000]); dump();
-mov (ecx, ptr[r11+rbx*4-1]); dump();
-mov (ecx, ptr[r11+rbx*4-1000]); dump();
-mov (ecx, ptr[r11+rbx*8+0]); dump();
-mov (ecx, ptr[r11+rbx*8+1]); dump();
-mov (ecx, ptr[r11+rbx*8+1000]); dump();
-mov (ecx, ptr[r11+rbx*8-1]); dump();
-mov (ecx, ptr[r11+rbx*8-1000]); dump();
-mov (ecx, ptr[r11+rbp+0]); dump();
-mov (ecx, ptr[r11+rbp+1]); dump();
-mov (ecx, ptr[r11+rbp+1000]); dump();
-mov (ecx, ptr[r11+rbp-1]); dump();
-mov (ecx, ptr[r11+rbp-1000]); dump();
-mov (ecx, ptr[r11+rbp*1+0]); dump();
-mov (ecx, ptr[r11+rbp*1+1]); dump();
-mov (ecx, ptr[r11+rbp*1+1000]); dump();
-mov (ecx, ptr[r11+rbp*1-1]); dump();
-mov (ecx, ptr[r11+rbp*1-1000]); dump();
-mov (ecx, ptr[r11+rbp*2+0]); dump();
-mov (ecx, ptr[r11+rbp*2+1]); dump();
-mov (ecx, ptr[r11+rbp*2+1000]); dump();
-mov (ecx, ptr[r11+rbp*2-1]); dump();
-mov (ecx, ptr[r11+rbp*2-1000]); dump();
-mov (ecx, ptr[r11+rbp*4+0]); dump();
-mov (ecx, ptr[r11+rbp*4+1]); dump();
-mov (ecx, ptr[r11+rbp*4+1000]); dump();
-mov (ecx, ptr[r11+rbp*4-1]); dump();
-mov (ecx, ptr[r11+rbp*4-1000]); dump();
-mov (ecx, ptr[r11+rbp*8+0]); dump();
-mov (ecx, ptr[r11+rbp*8+1]); dump();
-mov (ecx, ptr[r11+rbp*8+1000]); dump();
-mov (ecx, ptr[r11+rbp*8-1]); dump();
-mov (ecx, ptr[r11+rbp*8-1000]); dump();
-mov (ecx, ptr[r11+rsi+0]); dump();
-mov (ecx, ptr[r11+rsi+1]); dump();
-mov (ecx, ptr[r11+rsi+1000]); dump();
-mov (ecx, ptr[r11+rsi-1]); dump();
-mov (ecx, ptr[r11+rsi-1000]); dump();
-mov (ecx, ptr[r11+rsi*1+0]); dump();
-mov (ecx, ptr[r11+rsi*1+1]); dump();
-mov (ecx, ptr[r11+rsi*1+1000]); dump();
-mov (ecx, ptr[r11+rsi*1-1]); dump();
-mov (ecx, ptr[r11+rsi*1-1000]); dump();
-mov (ecx, ptr[r11+rsi*2+0]); dump();
-mov (ecx, ptr[r11+rsi*2+1]); dump();
-mov (ecx, ptr[r11+rsi*2+1000]); dump();
-mov (ecx, ptr[r11+rsi*2-1]); dump();
-mov (ecx, ptr[r11+rsi*2-1000]); dump();
-mov (ecx, ptr[r11+rsi*4+0]); dump();
-mov (ecx, ptr[r11+rsi*4+1]); dump();
-mov (ecx, ptr[r11+rsi*4+1000]); dump();
-mov (ecx, ptr[r11+rsi*4-1]); dump();
-mov (ecx, ptr[r11+rsi*4-1000]); dump();
-mov (ecx, ptr[r11+rsi*8+0]); dump();
-mov (ecx, ptr[r11+rsi*8+1]); dump();
-mov (ecx, ptr[r11+rsi*8+1000]); dump();
-mov (ecx, ptr[r11+rsi*8-1]); dump();
-mov (ecx, ptr[r11+rsi*8-1000]); dump();
-}
- void gen39(){
-mov (ecx, ptr[r11+rdi+0]); dump();
-mov (ecx, ptr[r11+rdi+1]); dump();
-mov (ecx, ptr[r11+rdi+1000]); dump();
-mov (ecx, ptr[r11+rdi-1]); dump();
-mov (ecx, ptr[r11+rdi-1000]); dump();
-mov (ecx, ptr[r11+rdi*1+0]); dump();
-mov (ecx, ptr[r11+rdi*1+1]); dump();
-mov (ecx, ptr[r11+rdi*1+1000]); dump();
-mov (ecx, ptr[r11+rdi*1-1]); dump();
-mov (ecx, ptr[r11+rdi*1-1000]); dump();
-mov (ecx, ptr[r11+rdi*2+0]); dump();
-mov (ecx, ptr[r11+rdi*2+1]); dump();
-mov (ecx, ptr[r11+rdi*2+1000]); dump();
-mov (ecx, ptr[r11+rdi*2-1]); dump();
-mov (ecx, ptr[r11+rdi*2-1000]); dump();
-mov (ecx, ptr[r11+rdi*4+0]); dump();
-mov (ecx, ptr[r11+rdi*4+1]); dump();
-mov (ecx, ptr[r11+rdi*4+1000]); dump();
-mov (ecx, ptr[r11+rdi*4-1]); dump();
-mov (ecx, ptr[r11+rdi*4-1000]); dump();
-mov (ecx, ptr[r11+rdi*8+0]); dump();
-mov (ecx, ptr[r11+rdi*8+1]); dump();
-mov (ecx, ptr[r11+rdi*8+1000]); dump();
-mov (ecx, ptr[r11+rdi*8-1]); dump();
-mov (ecx, ptr[r11+rdi*8-1000]); dump();
-mov (ecx, ptr[r11+r9+0]); dump();
-mov (ecx, ptr[r11+r9+1]); dump();
-mov (ecx, ptr[r11+r9+1000]); dump();
-mov (ecx, ptr[r11+r9-1]); dump();
-mov (ecx, ptr[r11+r9-1000]); dump();
-mov (ecx, ptr[r11+r9*1+0]); dump();
-mov (ecx, ptr[r11+r9*1+1]); dump();
-mov (ecx, ptr[r11+r9*1+1000]); dump();
-mov (ecx, ptr[r11+r9*1-1]); dump();
-mov (ecx, ptr[r11+r9*1-1000]); dump();
-mov (ecx, ptr[r11+r9*2+0]); dump();
-mov (ecx, ptr[r11+r9*2+1]); dump();
-mov (ecx, ptr[r11+r9*2+1000]); dump();
-mov (ecx, ptr[r11+r9*2-1]); dump();
-mov (ecx, ptr[r11+r9*2-1000]); dump();
-mov (ecx, ptr[r11+r9*4+0]); dump();
-mov (ecx, ptr[r11+r9*4+1]); dump();
-mov (ecx, ptr[r11+r9*4+1000]); dump();
-mov (ecx, ptr[r11+r9*4-1]); dump();
-mov (ecx, ptr[r11+r9*4-1000]); dump();
-mov (ecx, ptr[r11+r9*8+0]); dump();
-mov (ecx, ptr[r11+r9*8+1]); dump();
-mov (ecx, ptr[r11+r9*8+1000]); dump();
-mov (ecx, ptr[r11+r9*8-1]); dump();
-mov (ecx, ptr[r11+r9*8-1000]); dump();
-mov (ecx, ptr[r11+r10+0]); dump();
-mov (ecx, ptr[r11+r10+1]); dump();
-mov (ecx, ptr[r11+r10+1000]); dump();
-mov (ecx, ptr[r11+r10-1]); dump();
-mov (ecx, ptr[r11+r10-1000]); dump();
-mov (ecx, ptr[r11+r10*1+0]); dump();
-mov (ecx, ptr[r11+r10*1+1]); dump();
-mov (ecx, ptr[r11+r10*1+1000]); dump();
-mov (ecx, ptr[r11+r10*1-1]); dump();
-mov (ecx, ptr[r11+r10*1-1000]); dump();
-mov (ecx, ptr[r11+r10*2+0]); dump();
-mov (ecx, ptr[r11+r10*2+1]); dump();
-mov (ecx, ptr[r11+r10*2+1000]); dump();
-mov (ecx, ptr[r11+r10*2-1]); dump();
-mov (ecx, ptr[r11+r10*2-1000]); dump();
-mov (ecx, ptr[r11+r10*4+0]); dump();
-mov (ecx, ptr[r11+r10*4+1]); dump();
-mov (ecx, ptr[r11+r10*4+1000]); dump();
-mov (ecx, ptr[r11+r10*4-1]); dump();
-mov (ecx, ptr[r11+r10*4-1000]); dump();
-mov (ecx, ptr[r11+r10*8+0]); dump();
-mov (ecx, ptr[r11+r10*8+1]); dump();
-mov (ecx, ptr[r11+r10*8+1000]); dump();
-mov (ecx, ptr[r11+r10*8-1]); dump();
-mov (ecx, ptr[r11+r10*8-1000]); dump();
-mov (ecx, ptr[r11+r11+0]); dump();
-mov (ecx, ptr[r11+r11+1]); dump();
-mov (ecx, ptr[r11+r11+1000]); dump();
-mov (ecx, ptr[r11+r11-1]); dump();
-mov (ecx, ptr[r11+r11-1000]); dump();
-mov (ecx, ptr[r11+r11*1+0]); dump();
-mov (ecx, ptr[r11+r11*1+1]); dump();
-mov (ecx, ptr[r11+r11*1+1000]); dump();
-mov (ecx, ptr[r11+r11*1-1]); dump();
-mov (ecx, ptr[r11+r11*1-1000]); dump();
-mov (ecx, ptr[r11+r11*2+0]); dump();
-mov (ecx, ptr[r11+r11*2+1]); dump();
-mov (ecx, ptr[r11+r11*2+1000]); dump();
-mov (ecx, ptr[r11+r11*2-1]); dump();
-mov (ecx, ptr[r11+r11*2-1000]); dump();
-mov (ecx, ptr[r11+r11*4+0]); dump();
-mov (ecx, ptr[r11+r11*4+1]); dump();
-mov (ecx, ptr[r11+r11*4+1000]); dump();
-mov (ecx, ptr[r11+r11*4-1]); dump();
-mov (ecx, ptr[r11+r11*4-1000]); dump();
-mov (ecx, ptr[r11+r11*8+0]); dump();
-mov (ecx, ptr[r11+r11*8+1]); dump();
-mov (ecx, ptr[r11+r11*8+1000]); dump();
-mov (ecx, ptr[r11+r11*8-1]); dump();
-mov (ecx, ptr[r11+r11*8-1000]); dump();
-}
- void gen40(){
-mov (ecx, ptr[r11+r12+0]); dump();
-mov (ecx, ptr[r11+r12+1]); dump();
-mov (ecx, ptr[r11+r12+1000]); dump();
-mov (ecx, ptr[r11+r12-1]); dump();
-mov (ecx, ptr[r11+r12-1000]); dump();
-mov (ecx, ptr[r11+r12*1+0]); dump();
-mov (ecx, ptr[r11+r12*1+1]); dump();
-mov (ecx, ptr[r11+r12*1+1000]); dump();
-mov (ecx, ptr[r11+r12*1-1]); dump();
-mov (ecx, ptr[r11+r12*1-1000]); dump();
-mov (ecx, ptr[r11+r12*2+0]); dump();
-mov (ecx, ptr[r11+r12*2+1]); dump();
-mov (ecx, ptr[r11+r12*2+1000]); dump();
-mov (ecx, ptr[r11+r12*2-1]); dump();
-mov (ecx, ptr[r11+r12*2-1000]); dump();
-mov (ecx, ptr[r11+r12*4+0]); dump();
-mov (ecx, ptr[r11+r12*4+1]); dump();
-mov (ecx, ptr[r11+r12*4+1000]); dump();
-mov (ecx, ptr[r11+r12*4-1]); dump();
-mov (ecx, ptr[r11+r12*4-1000]); dump();
-mov (ecx, ptr[r11+r12*8+0]); dump();
-mov (ecx, ptr[r11+r12*8+1]); dump();
-mov (ecx, ptr[r11+r12*8+1000]); dump();
-mov (ecx, ptr[r11+r12*8-1]); dump();
-mov (ecx, ptr[r11+r12*8-1000]); dump();
-mov (ecx, ptr[r11+r13+0]); dump();
-mov (ecx, ptr[r11+r13+1]); dump();
-mov (ecx, ptr[r11+r13+1000]); dump();
-mov (ecx, ptr[r11+r13-1]); dump();
-mov (ecx, ptr[r11+r13-1000]); dump();
-mov (ecx, ptr[r11+r13*1+0]); dump();
-mov (ecx, ptr[r11+r13*1+1]); dump();
-mov (ecx, ptr[r11+r13*1+1000]); dump();
-mov (ecx, ptr[r11+r13*1-1]); dump();
-mov (ecx, ptr[r11+r13*1-1000]); dump();
-mov (ecx, ptr[r11+r13*2+0]); dump();
-mov (ecx, ptr[r11+r13*2+1]); dump();
-mov (ecx, ptr[r11+r13*2+1000]); dump();
-mov (ecx, ptr[r11+r13*2-1]); dump();
-mov (ecx, ptr[r11+r13*2-1000]); dump();
-mov (ecx, ptr[r11+r13*4+0]); dump();
-mov (ecx, ptr[r11+r13*4+1]); dump();
-mov (ecx, ptr[r11+r13*4+1000]); dump();
-mov (ecx, ptr[r11+r13*4-1]); dump();
-mov (ecx, ptr[r11+r13*4-1000]); dump();
-mov (ecx, ptr[r11+r13*8+0]); dump();
-mov (ecx, ptr[r11+r13*8+1]); dump();
-mov (ecx, ptr[r11+r13*8+1000]); dump();
-mov (ecx, ptr[r11+r13*8-1]); dump();
-mov (ecx, ptr[r11+r13*8-1000]); dump();
-mov (ecx, ptr[r11+r14+0]); dump();
-mov (ecx, ptr[r11+r14+1]); dump();
-mov (ecx, ptr[r11+r14+1000]); dump();
-mov (ecx, ptr[r11+r14-1]); dump();
-mov (ecx, ptr[r11+r14-1000]); dump();
-mov (ecx, ptr[r11+r14*1+0]); dump();
-mov (ecx, ptr[r11+r14*1+1]); dump();
-mov (ecx, ptr[r11+r14*1+1000]); dump();
-mov (ecx, ptr[r11+r14*1-1]); dump();
-mov (ecx, ptr[r11+r14*1-1000]); dump();
-mov (ecx, ptr[r11+r14*2+0]); dump();
-mov (ecx, ptr[r11+r14*2+1]); dump();
-mov (ecx, ptr[r11+r14*2+1000]); dump();
-mov (ecx, ptr[r11+r14*2-1]); dump();
-mov (ecx, ptr[r11+r14*2-1000]); dump();
-mov (ecx, ptr[r11+r14*4+0]); dump();
-mov (ecx, ptr[r11+r14*4+1]); dump();
-mov (ecx, ptr[r11+r14*4+1000]); dump();
-mov (ecx, ptr[r11+r14*4-1]); dump();
-mov (ecx, ptr[r11+r14*4-1000]); dump();
-mov (ecx, ptr[r11+r14*8+0]); dump();
-mov (ecx, ptr[r11+r14*8+1]); dump();
-mov (ecx, ptr[r11+r14*8+1000]); dump();
-mov (ecx, ptr[r11+r14*8-1]); dump();
-mov (ecx, ptr[r11+r14*8-1000]); dump();
-mov (ecx, ptr[r11+r15+0]); dump();
-mov (ecx, ptr[r11+r15+1]); dump();
-mov (ecx, ptr[r11+r15+1000]); dump();
-mov (ecx, ptr[r11+r15-1]); dump();
-mov (ecx, ptr[r11+r15-1000]); dump();
-mov (ecx, ptr[r11+r15*1+0]); dump();
-mov (ecx, ptr[r11+r15*1+1]); dump();
-mov (ecx, ptr[r11+r15*1+1000]); dump();
-mov (ecx, ptr[r11+r15*1-1]); dump();
-mov (ecx, ptr[r11+r15*1-1000]); dump();
-mov (ecx, ptr[r11+r15*2+0]); dump();
-mov (ecx, ptr[r11+r15*2+1]); dump();
-mov (ecx, ptr[r11+r15*2+1000]); dump();
-mov (ecx, ptr[r11+r15*2-1]); dump();
-mov (ecx, ptr[r11+r15*2-1000]); dump();
-mov (ecx, ptr[r11+r15*4+0]); dump();
-mov (ecx, ptr[r11+r15*4+1]); dump();
-mov (ecx, ptr[r11+r15*4+1000]); dump();
-mov (ecx, ptr[r11+r15*4-1]); dump();
-mov (ecx, ptr[r11+r15*4-1000]); dump();
-mov (ecx, ptr[r11+r15*8+0]); dump();
-mov (ecx, ptr[r11+r15*8+1]); dump();
-mov (ecx, ptr[r11+r15*8+1000]); dump();
-mov (ecx, ptr[r11+r15*8-1]); dump();
-mov (ecx, ptr[r11+r15*8-1000]); dump();
-}
- void gen41(){
-mov (ecx, ptr[r11+0]); dump();
-mov (ecx, ptr[r11+1]); dump();
-mov (ecx, ptr[r11+1000]); dump();
-mov (ecx, ptr[r11-1]); dump();
-mov (ecx, ptr[r11-1000]); dump();
-mov (ecx, ptr[r11+0]); dump();
-mov (ecx, ptr[r11+1]); dump();
-mov (ecx, ptr[r11+1000]); dump();
-mov (ecx, ptr[r11-1]); dump();
-mov (ecx, ptr[r11-1000]); dump();
-mov (ecx, ptr[r11+0]); dump();
-mov (ecx, ptr[r11+1]); dump();
-mov (ecx, ptr[r11+1000]); dump();
-mov (ecx, ptr[r11-1]); dump();
-mov (ecx, ptr[r11-1000]); dump();
-mov (ecx, ptr[r11+0]); dump();
-mov (ecx, ptr[r11+1]); dump();
-mov (ecx, ptr[r11+1000]); dump();
-mov (ecx, ptr[r11-1]); dump();
-mov (ecx, ptr[r11-1000]); dump();
-mov (ecx, ptr[r11+0]); dump();
-mov (ecx, ptr[r11+1]); dump();
-mov (ecx, ptr[r11+1000]); dump();
-mov (ecx, ptr[r11-1]); dump();
-mov (ecx, ptr[r11-1000]); dump();
-mov (ecx, ptr[r12+rax+0]); dump();
-mov (ecx, ptr[r12+rax+1]); dump();
-mov (ecx, ptr[r12+rax+1000]); dump();
-mov (ecx, ptr[r12+rax-1]); dump();
-mov (ecx, ptr[r12+rax-1000]); dump();
-mov (ecx, ptr[r12+rax*1+0]); dump();
-mov (ecx, ptr[r12+rax*1+1]); dump();
-mov (ecx, ptr[r12+rax*1+1000]); dump();
-mov (ecx, ptr[r12+rax*1-1]); dump();
-mov (ecx, ptr[r12+rax*1-1000]); dump();
-mov (ecx, ptr[r12+rax*2+0]); dump();
-mov (ecx, ptr[r12+rax*2+1]); dump();
-mov (ecx, ptr[r12+rax*2+1000]); dump();
-mov (ecx, ptr[r12+rax*2-1]); dump();
-mov (ecx, ptr[r12+rax*2-1000]); dump();
-mov (ecx, ptr[r12+rax*4+0]); dump();
-mov (ecx, ptr[r12+rax*4+1]); dump();
-mov (ecx, ptr[r12+rax*4+1000]); dump();
-mov (ecx, ptr[r12+rax*4-1]); dump();
-mov (ecx, ptr[r12+rax*4-1000]); dump();
-mov (ecx, ptr[r12+rax*8+0]); dump();
-mov (ecx, ptr[r12+rax*8+1]); dump();
-mov (ecx, ptr[r12+rax*8+1000]); dump();
-mov (ecx, ptr[r12+rax*8-1]); dump();
-mov (ecx, ptr[r12+rax*8-1000]); dump();
-mov (ecx, ptr[r12+rcx+0]); dump();
-mov (ecx, ptr[r12+rcx+1]); dump();
-mov (ecx, ptr[r12+rcx+1000]); dump();
-mov (ecx, ptr[r12+rcx-1]); dump();
-mov (ecx, ptr[r12+rcx-1000]); dump();
-mov (ecx, ptr[r12+rcx*1+0]); dump();
-mov (ecx, ptr[r12+rcx*1+1]); dump();
-mov (ecx, ptr[r12+rcx*1+1000]); dump();
-mov (ecx, ptr[r12+rcx*1-1]); dump();
-mov (ecx, ptr[r12+rcx*1-1000]); dump();
-mov (ecx, ptr[r12+rcx*2+0]); dump();
-mov (ecx, ptr[r12+rcx*2+1]); dump();
-mov (ecx, ptr[r12+rcx*2+1000]); dump();
-mov (ecx, ptr[r12+rcx*2-1]); dump();
-mov (ecx, ptr[r12+rcx*2-1000]); dump();
-mov (ecx, ptr[r12+rcx*4+0]); dump();
-mov (ecx, ptr[r12+rcx*4+1]); dump();
-mov (ecx, ptr[r12+rcx*4+1000]); dump();
-mov (ecx, ptr[r12+rcx*4-1]); dump();
-mov (ecx, ptr[r12+rcx*4-1000]); dump();
-mov (ecx, ptr[r12+rcx*8+0]); dump();
-mov (ecx, ptr[r12+rcx*8+1]); dump();
-mov (ecx, ptr[r12+rcx*8+1000]); dump();
-mov (ecx, ptr[r12+rcx*8-1]); dump();
-mov (ecx, ptr[r12+rcx*8-1000]); dump();
-mov (ecx, ptr[r12+rdx+0]); dump();
-mov (ecx, ptr[r12+rdx+1]); dump();
-mov (ecx, ptr[r12+rdx+1000]); dump();
-mov (ecx, ptr[r12+rdx-1]); dump();
-mov (ecx, ptr[r12+rdx-1000]); dump();
-mov (ecx, ptr[r12+rdx*1+0]); dump();
-mov (ecx, ptr[r12+rdx*1+1]); dump();
-mov (ecx, ptr[r12+rdx*1+1000]); dump();
-mov (ecx, ptr[r12+rdx*1-1]); dump();
-mov (ecx, ptr[r12+rdx*1-1000]); dump();
-mov (ecx, ptr[r12+rdx*2+0]); dump();
-mov (ecx, ptr[r12+rdx*2+1]); dump();
-mov (ecx, ptr[r12+rdx*2+1000]); dump();
-mov (ecx, ptr[r12+rdx*2-1]); dump();
-mov (ecx, ptr[r12+rdx*2-1000]); dump();
-mov (ecx, ptr[r12+rdx*4+0]); dump();
-mov (ecx, ptr[r12+rdx*4+1]); dump();
-mov (ecx, ptr[r12+rdx*4+1000]); dump();
-mov (ecx, ptr[r12+rdx*4-1]); dump();
-mov (ecx, ptr[r12+rdx*4-1000]); dump();
-mov (ecx, ptr[r12+rdx*8+0]); dump();
-mov (ecx, ptr[r12+rdx*8+1]); dump();
-mov (ecx, ptr[r12+rdx*8+1000]); dump();
-mov (ecx, ptr[r12+rdx*8-1]); dump();
-mov (ecx, ptr[r12+rdx*8-1000]); dump();
-}
- void gen42(){
-mov (ecx, ptr[r12+rbx+0]); dump();
-mov (ecx, ptr[r12+rbx+1]); dump();
-mov (ecx, ptr[r12+rbx+1000]); dump();
-mov (ecx, ptr[r12+rbx-1]); dump();
-mov (ecx, ptr[r12+rbx-1000]); dump();
-mov (ecx, ptr[r12+rbx*1+0]); dump();
-mov (ecx, ptr[r12+rbx*1+1]); dump();
-mov (ecx, ptr[r12+rbx*1+1000]); dump();
-mov (ecx, ptr[r12+rbx*1-1]); dump();
-mov (ecx, ptr[r12+rbx*1-1000]); dump();
-mov (ecx, ptr[r12+rbx*2+0]); dump();
-mov (ecx, ptr[r12+rbx*2+1]); dump();
-mov (ecx, ptr[r12+rbx*2+1000]); dump();
-mov (ecx, ptr[r12+rbx*2-1]); dump();
-mov (ecx, ptr[r12+rbx*2-1000]); dump();
-mov (ecx, ptr[r12+rbx*4+0]); dump();
-mov (ecx, ptr[r12+rbx*4+1]); dump();
-mov (ecx, ptr[r12+rbx*4+1000]); dump();
-mov (ecx, ptr[r12+rbx*4-1]); dump();
-mov (ecx, ptr[r12+rbx*4-1000]); dump();
-mov (ecx, ptr[r12+rbx*8+0]); dump();
-mov (ecx, ptr[r12+rbx*8+1]); dump();
-mov (ecx, ptr[r12+rbx*8+1000]); dump();
-mov (ecx, ptr[r12+rbx*8-1]); dump();
-mov (ecx, ptr[r12+rbx*8-1000]); dump();
-mov (ecx, ptr[r12+rbp+0]); dump();
-mov (ecx, ptr[r12+rbp+1]); dump();
-mov (ecx, ptr[r12+rbp+1000]); dump();
-mov (ecx, ptr[r12+rbp-1]); dump();
-mov (ecx, ptr[r12+rbp-1000]); dump();
-mov (ecx, ptr[r12+rbp*1+0]); dump();
-mov (ecx, ptr[r12+rbp*1+1]); dump();
-mov (ecx, ptr[r12+rbp*1+1000]); dump();
-mov (ecx, ptr[r12+rbp*1-1]); dump();
-mov (ecx, ptr[r12+rbp*1-1000]); dump();
-mov (ecx, ptr[r12+rbp*2+0]); dump();
-mov (ecx, ptr[r12+rbp*2+1]); dump();
-mov (ecx, ptr[r12+rbp*2+1000]); dump();
-mov (ecx, ptr[r12+rbp*2-1]); dump();
-mov (ecx, ptr[r12+rbp*2-1000]); dump();
-mov (ecx, ptr[r12+rbp*4+0]); dump();
-mov (ecx, ptr[r12+rbp*4+1]); dump();
-mov (ecx, ptr[r12+rbp*4+1000]); dump();
-mov (ecx, ptr[r12+rbp*4-1]); dump();
-mov (ecx, ptr[r12+rbp*4-1000]); dump();
-mov (ecx, ptr[r12+rbp*8+0]); dump();
-mov (ecx, ptr[r12+rbp*8+1]); dump();
-mov (ecx, ptr[r12+rbp*8+1000]); dump();
-mov (ecx, ptr[r12+rbp*8-1]); dump();
-mov (ecx, ptr[r12+rbp*8-1000]); dump();
-mov (ecx, ptr[r12+rsi+0]); dump();
-mov (ecx, ptr[r12+rsi+1]); dump();
-mov (ecx, ptr[r12+rsi+1000]); dump();
-mov (ecx, ptr[r12+rsi-1]); dump();
-mov (ecx, ptr[r12+rsi-1000]); dump();
-mov (ecx, ptr[r12+rsi*1+0]); dump();
-mov (ecx, ptr[r12+rsi*1+1]); dump();
-mov (ecx, ptr[r12+rsi*1+1000]); dump();
-mov (ecx, ptr[r12+rsi*1-1]); dump();
-mov (ecx, ptr[r12+rsi*1-1000]); dump();
-mov (ecx, ptr[r12+rsi*2+0]); dump();
-mov (ecx, ptr[r12+rsi*2+1]); dump();
-mov (ecx, ptr[r12+rsi*2+1000]); dump();
-mov (ecx, ptr[r12+rsi*2-1]); dump();
-mov (ecx, ptr[r12+rsi*2-1000]); dump();
-mov (ecx, ptr[r12+rsi*4+0]); dump();
-mov (ecx, ptr[r12+rsi*4+1]); dump();
-mov (ecx, ptr[r12+rsi*4+1000]); dump();
-mov (ecx, ptr[r12+rsi*4-1]); dump();
-mov (ecx, ptr[r12+rsi*4-1000]); dump();
-mov (ecx, ptr[r12+rsi*8+0]); dump();
-mov (ecx, ptr[r12+rsi*8+1]); dump();
-mov (ecx, ptr[r12+rsi*8+1000]); dump();
-mov (ecx, ptr[r12+rsi*8-1]); dump();
-mov (ecx, ptr[r12+rsi*8-1000]); dump();
-mov (ecx, ptr[r12+rdi+0]); dump();
-mov (ecx, ptr[r12+rdi+1]); dump();
-mov (ecx, ptr[r12+rdi+1000]); dump();
-mov (ecx, ptr[r12+rdi-1]); dump();
-mov (ecx, ptr[r12+rdi-1000]); dump();
-mov (ecx, ptr[r12+rdi*1+0]); dump();
-mov (ecx, ptr[r12+rdi*1+1]); dump();
-mov (ecx, ptr[r12+rdi*1+1000]); dump();
-mov (ecx, ptr[r12+rdi*1-1]); dump();
-mov (ecx, ptr[r12+rdi*1-1000]); dump();
-mov (ecx, ptr[r12+rdi*2+0]); dump();
-mov (ecx, ptr[r12+rdi*2+1]); dump();
-mov (ecx, ptr[r12+rdi*2+1000]); dump();
-mov (ecx, ptr[r12+rdi*2-1]); dump();
-mov (ecx, ptr[r12+rdi*2-1000]); dump();
-mov (ecx, ptr[r12+rdi*4+0]); dump();
-mov (ecx, ptr[r12+rdi*4+1]); dump();
-mov (ecx, ptr[r12+rdi*4+1000]); dump();
-mov (ecx, ptr[r12+rdi*4-1]); dump();
-mov (ecx, ptr[r12+rdi*4-1000]); dump();
-mov (ecx, ptr[r12+rdi*8+0]); dump();
-mov (ecx, ptr[r12+rdi*8+1]); dump();
-mov (ecx, ptr[r12+rdi*8+1000]); dump();
-mov (ecx, ptr[r12+rdi*8-1]); dump();
-mov (ecx, ptr[r12+rdi*8-1000]); dump();
-}
- void gen43(){
-mov (ecx, ptr[r12+r9+0]); dump();
-mov (ecx, ptr[r12+r9+1]); dump();
-mov (ecx, ptr[r12+r9+1000]); dump();
-mov (ecx, ptr[r12+r9-1]); dump();
-mov (ecx, ptr[r12+r9-1000]); dump();
-mov (ecx, ptr[r12+r9*1+0]); dump();
-mov (ecx, ptr[r12+r9*1+1]); dump();
-mov (ecx, ptr[r12+r9*1+1000]); dump();
-mov (ecx, ptr[r12+r9*1-1]); dump();
-mov (ecx, ptr[r12+r9*1-1000]); dump();
-mov (ecx, ptr[r12+r9*2+0]); dump();
-mov (ecx, ptr[r12+r9*2+1]); dump();
-mov (ecx, ptr[r12+r9*2+1000]); dump();
-mov (ecx, ptr[r12+r9*2-1]); dump();
-mov (ecx, ptr[r12+r9*2-1000]); dump();
-mov (ecx, ptr[r12+r9*4+0]); dump();
-mov (ecx, ptr[r12+r9*4+1]); dump();
-mov (ecx, ptr[r12+r9*4+1000]); dump();
-mov (ecx, ptr[r12+r9*4-1]); dump();
-mov (ecx, ptr[r12+r9*4-1000]); dump();
-mov (ecx, ptr[r12+r9*8+0]); dump();
-mov (ecx, ptr[r12+r9*8+1]); dump();
-mov (ecx, ptr[r12+r9*8+1000]); dump();
-mov (ecx, ptr[r12+r9*8-1]); dump();
-mov (ecx, ptr[r12+r9*8-1000]); dump();
-mov (ecx, ptr[r12+r10+0]); dump();
-mov (ecx, ptr[r12+r10+1]); dump();
-mov (ecx, ptr[r12+r10+1000]); dump();
-mov (ecx, ptr[r12+r10-1]); dump();
-mov (ecx, ptr[r12+r10-1000]); dump();
-mov (ecx, ptr[r12+r10*1+0]); dump();
-mov (ecx, ptr[r12+r10*1+1]); dump();
-mov (ecx, ptr[r12+r10*1+1000]); dump();
-mov (ecx, ptr[r12+r10*1-1]); dump();
-mov (ecx, ptr[r12+r10*1-1000]); dump();
-mov (ecx, ptr[r12+r10*2+0]); dump();
-mov (ecx, ptr[r12+r10*2+1]); dump();
-mov (ecx, ptr[r12+r10*2+1000]); dump();
-mov (ecx, ptr[r12+r10*2-1]); dump();
-mov (ecx, ptr[r12+r10*2-1000]); dump();
-mov (ecx, ptr[r12+r10*4+0]); dump();
-mov (ecx, ptr[r12+r10*4+1]); dump();
-mov (ecx, ptr[r12+r10*4+1000]); dump();
-mov (ecx, ptr[r12+r10*4-1]); dump();
-mov (ecx, ptr[r12+r10*4-1000]); dump();
-mov (ecx, ptr[r12+r10*8+0]); dump();
-mov (ecx, ptr[r12+r10*8+1]); dump();
-mov (ecx, ptr[r12+r10*8+1000]); dump();
-mov (ecx, ptr[r12+r10*8-1]); dump();
-mov (ecx, ptr[r12+r10*8-1000]); dump();
-mov (ecx, ptr[r12+r11+0]); dump();
-mov (ecx, ptr[r12+r11+1]); dump();
-mov (ecx, ptr[r12+r11+1000]); dump();
-mov (ecx, ptr[r12+r11-1]); dump();
-mov (ecx, ptr[r12+r11-1000]); dump();
-mov (ecx, ptr[r12+r11*1+0]); dump();
-mov (ecx, ptr[r12+r11*1+1]); dump();
-mov (ecx, ptr[r12+r11*1+1000]); dump();
-mov (ecx, ptr[r12+r11*1-1]); dump();
-mov (ecx, ptr[r12+r11*1-1000]); dump();
-mov (ecx, ptr[r12+r11*2+0]); dump();
-mov (ecx, ptr[r12+r11*2+1]); dump();
-mov (ecx, ptr[r12+r11*2+1000]); dump();
-mov (ecx, ptr[r12+r11*2-1]); dump();
-mov (ecx, ptr[r12+r11*2-1000]); dump();
-mov (ecx, ptr[r12+r11*4+0]); dump();
-mov (ecx, ptr[r12+r11*4+1]); dump();
-mov (ecx, ptr[r12+r11*4+1000]); dump();
-mov (ecx, ptr[r12+r11*4-1]); dump();
-mov (ecx, ptr[r12+r11*4-1000]); dump();
-mov (ecx, ptr[r12+r11*8+0]); dump();
-mov (ecx, ptr[r12+r11*8+1]); dump();
-mov (ecx, ptr[r12+r11*8+1000]); dump();
-mov (ecx, ptr[r12+r11*8-1]); dump();
-mov (ecx, ptr[r12+r11*8-1000]); dump();
-mov (ecx, ptr[r12+r12+0]); dump();
-mov (ecx, ptr[r12+r12+1]); dump();
-mov (ecx, ptr[r12+r12+1000]); dump();
-mov (ecx, ptr[r12+r12-1]); dump();
-mov (ecx, ptr[r12+r12-1000]); dump();
-mov (ecx, ptr[r12+r12*1+0]); dump();
-mov (ecx, ptr[r12+r12*1+1]); dump();
-mov (ecx, ptr[r12+r12*1+1000]); dump();
-mov (ecx, ptr[r12+r12*1-1]); dump();
-mov (ecx, ptr[r12+r12*1-1000]); dump();
-mov (ecx, ptr[r12+r12*2+0]); dump();
-mov (ecx, ptr[r12+r12*2+1]); dump();
-mov (ecx, ptr[r12+r12*2+1000]); dump();
-mov (ecx, ptr[r12+r12*2-1]); dump();
-mov (ecx, ptr[r12+r12*2-1000]); dump();
-mov (ecx, ptr[r12+r12*4+0]); dump();
-mov (ecx, ptr[r12+r12*4+1]); dump();
-mov (ecx, ptr[r12+r12*4+1000]); dump();
-mov (ecx, ptr[r12+r12*4-1]); dump();
-mov (ecx, ptr[r12+r12*4-1000]); dump();
-mov (ecx, ptr[r12+r12*8+0]); dump();
-mov (ecx, ptr[r12+r12*8+1]); dump();
-mov (ecx, ptr[r12+r12*8+1000]); dump();
-mov (ecx, ptr[r12+r12*8-1]); dump();
-mov (ecx, ptr[r12+r12*8-1000]); dump();
-}
- void gen44(){
-mov (ecx, ptr[r12+r13+0]); dump();
-mov (ecx, ptr[r12+r13+1]); dump();
-mov (ecx, ptr[r12+r13+1000]); dump();
-mov (ecx, ptr[r12+r13-1]); dump();
-mov (ecx, ptr[r12+r13-1000]); dump();
-mov (ecx, ptr[r12+r13*1+0]); dump();
-mov (ecx, ptr[r12+r13*1+1]); dump();
-mov (ecx, ptr[r12+r13*1+1000]); dump();
-mov (ecx, ptr[r12+r13*1-1]); dump();
-mov (ecx, ptr[r12+r13*1-1000]); dump();
-mov (ecx, ptr[r12+r13*2+0]); dump();
-mov (ecx, ptr[r12+r13*2+1]); dump();
-mov (ecx, ptr[r12+r13*2+1000]); dump();
-mov (ecx, ptr[r12+r13*2-1]); dump();
-mov (ecx, ptr[r12+r13*2-1000]); dump();
-mov (ecx, ptr[r12+r13*4+0]); dump();
-mov (ecx, ptr[r12+r13*4+1]); dump();
-mov (ecx, ptr[r12+r13*4+1000]); dump();
-mov (ecx, ptr[r12+r13*4-1]); dump();
-mov (ecx, ptr[r12+r13*4-1000]); dump();
-mov (ecx, ptr[r12+r13*8+0]); dump();
-mov (ecx, ptr[r12+r13*8+1]); dump();
-mov (ecx, ptr[r12+r13*8+1000]); dump();
-mov (ecx, ptr[r12+r13*8-1]); dump();
-mov (ecx, ptr[r12+r13*8-1000]); dump();
-mov (ecx, ptr[r12+r14+0]); dump();
-mov (ecx, ptr[r12+r14+1]); dump();
-mov (ecx, ptr[r12+r14+1000]); dump();
-mov (ecx, ptr[r12+r14-1]); dump();
-mov (ecx, ptr[r12+r14-1000]); dump();
-mov (ecx, ptr[r12+r14*1+0]); dump();
-mov (ecx, ptr[r12+r14*1+1]); dump();
-mov (ecx, ptr[r12+r14*1+1000]); dump();
-mov (ecx, ptr[r12+r14*1-1]); dump();
-mov (ecx, ptr[r12+r14*1-1000]); dump();
-mov (ecx, ptr[r12+r14*2+0]); dump();
-mov (ecx, ptr[r12+r14*2+1]); dump();
-mov (ecx, ptr[r12+r14*2+1000]); dump();
-mov (ecx, ptr[r12+r14*2-1]); dump();
-mov (ecx, ptr[r12+r14*2-1000]); dump();
-mov (ecx, ptr[r12+r14*4+0]); dump();
-mov (ecx, ptr[r12+r14*4+1]); dump();
-mov (ecx, ptr[r12+r14*4+1000]); dump();
-mov (ecx, ptr[r12+r14*4-1]); dump();
-mov (ecx, ptr[r12+r14*4-1000]); dump();
-mov (ecx, ptr[r12+r14*8+0]); dump();
-mov (ecx, ptr[r12+r14*8+1]); dump();
-mov (ecx, ptr[r12+r14*8+1000]); dump();
-mov (ecx, ptr[r12+r14*8-1]); dump();
-mov (ecx, ptr[r12+r14*8-1000]); dump();
-mov (ecx, ptr[r12+r15+0]); dump();
-mov (ecx, ptr[r12+r15+1]); dump();
-mov (ecx, ptr[r12+r15+1000]); dump();
-mov (ecx, ptr[r12+r15-1]); dump();
-mov (ecx, ptr[r12+r15-1000]); dump();
-mov (ecx, ptr[r12+r15*1+0]); dump();
-mov (ecx, ptr[r12+r15*1+1]); dump();
-mov (ecx, ptr[r12+r15*1+1000]); dump();
-mov (ecx, ptr[r12+r15*1-1]); dump();
-mov (ecx, ptr[r12+r15*1-1000]); dump();
-mov (ecx, ptr[r12+r15*2+0]); dump();
-mov (ecx, ptr[r12+r15*2+1]); dump();
-mov (ecx, ptr[r12+r15*2+1000]); dump();
-mov (ecx, ptr[r12+r15*2-1]); dump();
-mov (ecx, ptr[r12+r15*2-1000]); dump();
-mov (ecx, ptr[r12+r15*4+0]); dump();
-mov (ecx, ptr[r12+r15*4+1]); dump();
-mov (ecx, ptr[r12+r15*4+1000]); dump();
-mov (ecx, ptr[r12+r15*4-1]); dump();
-mov (ecx, ptr[r12+r15*4-1000]); dump();
-mov (ecx, ptr[r12+r15*8+0]); dump();
-mov (ecx, ptr[r12+r15*8+1]); dump();
-mov (ecx, ptr[r12+r15*8+1000]); dump();
-mov (ecx, ptr[r12+r15*8-1]); dump();
-mov (ecx, ptr[r12+r15*8-1000]); dump();
-mov (ecx, ptr[r12+0]); dump();
-mov (ecx, ptr[r12+1]); dump();
-mov (ecx, ptr[r12+1000]); dump();
-mov (ecx, ptr[r12-1]); dump();
-mov (ecx, ptr[r12-1000]); dump();
-mov (ecx, ptr[r12+0]); dump();
-mov (ecx, ptr[r12+1]); dump();
-mov (ecx, ptr[r12+1000]); dump();
-mov (ecx, ptr[r12-1]); dump();
-mov (ecx, ptr[r12-1000]); dump();
-mov (ecx, ptr[r12+0]); dump();
-mov (ecx, ptr[r12+1]); dump();
-mov (ecx, ptr[r12+1000]); dump();
-mov (ecx, ptr[r12-1]); dump();
-mov (ecx, ptr[r12-1000]); dump();
-mov (ecx, ptr[r12+0]); dump();
-mov (ecx, ptr[r12+1]); dump();
-mov (ecx, ptr[r12+1000]); dump();
-mov (ecx, ptr[r12-1]); dump();
-mov (ecx, ptr[r12-1000]); dump();
-mov (ecx, ptr[r12+0]); dump();
-mov (ecx, ptr[r12+1]); dump();
-mov (ecx, ptr[r12+1000]); dump();
-mov (ecx, ptr[r12-1]); dump();
-mov (ecx, ptr[r12-1000]); dump();
-}
- void gen45(){
-mov (ecx, ptr[r13+rax+0]); dump();
-mov (ecx, ptr[r13+rax+1]); dump();
-mov (ecx, ptr[r13+rax+1000]); dump();
-mov (ecx, ptr[r13+rax-1]); dump();
-mov (ecx, ptr[r13+rax-1000]); dump();
-mov (ecx, ptr[r13+rax*1+0]); dump();
-mov (ecx, ptr[r13+rax*1+1]); dump();
-mov (ecx, ptr[r13+rax*1+1000]); dump();
-mov (ecx, ptr[r13+rax*1-1]); dump();
-mov (ecx, ptr[r13+rax*1-1000]); dump();
-mov (ecx, ptr[r13+rax*2+0]); dump();
-mov (ecx, ptr[r13+rax*2+1]); dump();
-mov (ecx, ptr[r13+rax*2+1000]); dump();
-mov (ecx, ptr[r13+rax*2-1]); dump();
-mov (ecx, ptr[r13+rax*2-1000]); dump();
-mov (ecx, ptr[r13+rax*4+0]); dump();
-mov (ecx, ptr[r13+rax*4+1]); dump();
-mov (ecx, ptr[r13+rax*4+1000]); dump();
-mov (ecx, ptr[r13+rax*4-1]); dump();
-mov (ecx, ptr[r13+rax*4-1000]); dump();
-mov (ecx, ptr[r13+rax*8+0]); dump();
-mov (ecx, ptr[r13+rax*8+1]); dump();
-mov (ecx, ptr[r13+rax*8+1000]); dump();
-mov (ecx, ptr[r13+rax*8-1]); dump();
-mov (ecx, ptr[r13+rax*8-1000]); dump();
-mov (ecx, ptr[r13+rcx+0]); dump();
-mov (ecx, ptr[r13+rcx+1]); dump();
-mov (ecx, ptr[r13+rcx+1000]); dump();
-mov (ecx, ptr[r13+rcx-1]); dump();
-mov (ecx, ptr[r13+rcx-1000]); dump();
-mov (ecx, ptr[r13+rcx*1+0]); dump();
-mov (ecx, ptr[r13+rcx*1+1]); dump();
-mov (ecx, ptr[r13+rcx*1+1000]); dump();
-mov (ecx, ptr[r13+rcx*1-1]); dump();
-mov (ecx, ptr[r13+rcx*1-1000]); dump();
-mov (ecx, ptr[r13+rcx*2+0]); dump();
-mov (ecx, ptr[r13+rcx*2+1]); dump();
-mov (ecx, ptr[r13+rcx*2+1000]); dump();
-mov (ecx, ptr[r13+rcx*2-1]); dump();
-mov (ecx, ptr[r13+rcx*2-1000]); dump();
-mov (ecx, ptr[r13+rcx*4+0]); dump();
-mov (ecx, ptr[r13+rcx*4+1]); dump();
-mov (ecx, ptr[r13+rcx*4+1000]); dump();
-mov (ecx, ptr[r13+rcx*4-1]); dump();
-mov (ecx, ptr[r13+rcx*4-1000]); dump();
-mov (ecx, ptr[r13+rcx*8+0]); dump();
-mov (ecx, ptr[r13+rcx*8+1]); dump();
-mov (ecx, ptr[r13+rcx*8+1000]); dump();
-mov (ecx, ptr[r13+rcx*8-1]); dump();
-mov (ecx, ptr[r13+rcx*8-1000]); dump();
-mov (ecx, ptr[r13+rdx+0]); dump();
-mov (ecx, ptr[r13+rdx+1]); dump();
-mov (ecx, ptr[r13+rdx+1000]); dump();
-mov (ecx, ptr[r13+rdx-1]); dump();
-mov (ecx, ptr[r13+rdx-1000]); dump();
-mov (ecx, ptr[r13+rdx*1+0]); dump();
-mov (ecx, ptr[r13+rdx*1+1]); dump();
-mov (ecx, ptr[r13+rdx*1+1000]); dump();
-mov (ecx, ptr[r13+rdx*1-1]); dump();
-mov (ecx, ptr[r13+rdx*1-1000]); dump();
-mov (ecx, ptr[r13+rdx*2+0]); dump();
-mov (ecx, ptr[r13+rdx*2+1]); dump();
-mov (ecx, ptr[r13+rdx*2+1000]); dump();
-mov (ecx, ptr[r13+rdx*2-1]); dump();
-mov (ecx, ptr[r13+rdx*2-1000]); dump();
-mov (ecx, ptr[r13+rdx*4+0]); dump();
-mov (ecx, ptr[r13+rdx*4+1]); dump();
-mov (ecx, ptr[r13+rdx*4+1000]); dump();
-mov (ecx, ptr[r13+rdx*4-1]); dump();
-mov (ecx, ptr[r13+rdx*4-1000]); dump();
-mov (ecx, ptr[r13+rdx*8+0]); dump();
-mov (ecx, ptr[r13+rdx*8+1]); dump();
-mov (ecx, ptr[r13+rdx*8+1000]); dump();
-mov (ecx, ptr[r13+rdx*8-1]); dump();
-mov (ecx, ptr[r13+rdx*8-1000]); dump();
-mov (ecx, ptr[r13+rbx+0]); dump();
-mov (ecx, ptr[r13+rbx+1]); dump();
-mov (ecx, ptr[r13+rbx+1000]); dump();
-mov (ecx, ptr[r13+rbx-1]); dump();
-mov (ecx, ptr[r13+rbx-1000]); dump();
-mov (ecx, ptr[r13+rbx*1+0]); dump();
-mov (ecx, ptr[r13+rbx*1+1]); dump();
-mov (ecx, ptr[r13+rbx*1+1000]); dump();
-mov (ecx, ptr[r13+rbx*1-1]); dump();
-mov (ecx, ptr[r13+rbx*1-1000]); dump();
-mov (ecx, ptr[r13+rbx*2+0]); dump();
-mov (ecx, ptr[r13+rbx*2+1]); dump();
-mov (ecx, ptr[r13+rbx*2+1000]); dump();
-mov (ecx, ptr[r13+rbx*2-1]); dump();
-mov (ecx, ptr[r13+rbx*2-1000]); dump();
-mov (ecx, ptr[r13+rbx*4+0]); dump();
-mov (ecx, ptr[r13+rbx*4+1]); dump();
-mov (ecx, ptr[r13+rbx*4+1000]); dump();
-mov (ecx, ptr[r13+rbx*4-1]); dump();
-mov (ecx, ptr[r13+rbx*4-1000]); dump();
-mov (ecx, ptr[r13+rbx*8+0]); dump();
-mov (ecx, ptr[r13+rbx*8+1]); dump();
-mov (ecx, ptr[r13+rbx*8+1000]); dump();
-mov (ecx, ptr[r13+rbx*8-1]); dump();
-mov (ecx, ptr[r13+rbx*8-1000]); dump();
-}
- void gen46(){
-mov (ecx, ptr[r13+rbp+0]); dump();
-mov (ecx, ptr[r13+rbp+1]); dump();
-mov (ecx, ptr[r13+rbp+1000]); dump();
-mov (ecx, ptr[r13+rbp-1]); dump();
-mov (ecx, ptr[r13+rbp-1000]); dump();
-mov (ecx, ptr[r13+rbp*1+0]); dump();
-mov (ecx, ptr[r13+rbp*1+1]); dump();
-mov (ecx, ptr[r13+rbp*1+1000]); dump();
-mov (ecx, ptr[r13+rbp*1-1]); dump();
-mov (ecx, ptr[r13+rbp*1-1000]); dump();
-mov (ecx, ptr[r13+rbp*2+0]); dump();
-mov (ecx, ptr[r13+rbp*2+1]); dump();
-mov (ecx, ptr[r13+rbp*2+1000]); dump();
-mov (ecx, ptr[r13+rbp*2-1]); dump();
-mov (ecx, ptr[r13+rbp*2-1000]); dump();
-mov (ecx, ptr[r13+rbp*4+0]); dump();
-mov (ecx, ptr[r13+rbp*4+1]); dump();
-mov (ecx, ptr[r13+rbp*4+1000]); dump();
-mov (ecx, ptr[r13+rbp*4-1]); dump();
-mov (ecx, ptr[r13+rbp*4-1000]); dump();
-mov (ecx, ptr[r13+rbp*8+0]); dump();
-mov (ecx, ptr[r13+rbp*8+1]); dump();
-mov (ecx, ptr[r13+rbp*8+1000]); dump();
-mov (ecx, ptr[r13+rbp*8-1]); dump();
-mov (ecx, ptr[r13+rbp*8-1000]); dump();
-mov (ecx, ptr[r13+rsi+0]); dump();
-mov (ecx, ptr[r13+rsi+1]); dump();
-mov (ecx, ptr[r13+rsi+1000]); dump();
-mov (ecx, ptr[r13+rsi-1]); dump();
-mov (ecx, ptr[r13+rsi-1000]); dump();
-mov (ecx, ptr[r13+rsi*1+0]); dump();
-mov (ecx, ptr[r13+rsi*1+1]); dump();
-mov (ecx, ptr[r13+rsi*1+1000]); dump();
-mov (ecx, ptr[r13+rsi*1-1]); dump();
-mov (ecx, ptr[r13+rsi*1-1000]); dump();
-mov (ecx, ptr[r13+rsi*2+0]); dump();
-mov (ecx, ptr[r13+rsi*2+1]); dump();
-mov (ecx, ptr[r13+rsi*2+1000]); dump();
-mov (ecx, ptr[r13+rsi*2-1]); dump();
-mov (ecx, ptr[r13+rsi*2-1000]); dump();
-mov (ecx, ptr[r13+rsi*4+0]); dump();
-mov (ecx, ptr[r13+rsi*4+1]); dump();
-mov (ecx, ptr[r13+rsi*4+1000]); dump();
-mov (ecx, ptr[r13+rsi*4-1]); dump();
-mov (ecx, ptr[r13+rsi*4-1000]); dump();
-mov (ecx, ptr[r13+rsi*8+0]); dump();
-mov (ecx, ptr[r13+rsi*8+1]); dump();
-mov (ecx, ptr[r13+rsi*8+1000]); dump();
-mov (ecx, ptr[r13+rsi*8-1]); dump();
-mov (ecx, ptr[r13+rsi*8-1000]); dump();
-mov (ecx, ptr[r13+rdi+0]); dump();
-mov (ecx, ptr[r13+rdi+1]); dump();
-mov (ecx, ptr[r13+rdi+1000]); dump();
-mov (ecx, ptr[r13+rdi-1]); dump();
-mov (ecx, ptr[r13+rdi-1000]); dump();
-mov (ecx, ptr[r13+rdi*1+0]); dump();
-mov (ecx, ptr[r13+rdi*1+1]); dump();
-mov (ecx, ptr[r13+rdi*1+1000]); dump();
-mov (ecx, ptr[r13+rdi*1-1]); dump();
-mov (ecx, ptr[r13+rdi*1-1000]); dump();
-mov (ecx, ptr[r13+rdi*2+0]); dump();
-mov (ecx, ptr[r13+rdi*2+1]); dump();
-mov (ecx, ptr[r13+rdi*2+1000]); dump();
-mov (ecx, ptr[r13+rdi*2-1]); dump();
-mov (ecx, ptr[r13+rdi*2-1000]); dump();
-mov (ecx, ptr[r13+rdi*4+0]); dump();
-mov (ecx, ptr[r13+rdi*4+1]); dump();
-mov (ecx, ptr[r13+rdi*4+1000]); dump();
-mov (ecx, ptr[r13+rdi*4-1]); dump();
-mov (ecx, ptr[r13+rdi*4-1000]); dump();
-mov (ecx, ptr[r13+rdi*8+0]); dump();
-mov (ecx, ptr[r13+rdi*8+1]); dump();
-mov (ecx, ptr[r13+rdi*8+1000]); dump();
-mov (ecx, ptr[r13+rdi*8-1]); dump();
-mov (ecx, ptr[r13+rdi*8-1000]); dump();
-mov (ecx, ptr[r13+r9+0]); dump();
-mov (ecx, ptr[r13+r9+1]); dump();
-mov (ecx, ptr[r13+r9+1000]); dump();
-mov (ecx, ptr[r13+r9-1]); dump();
-mov (ecx, ptr[r13+r9-1000]); dump();
-mov (ecx, ptr[r13+r9*1+0]); dump();
-mov (ecx, ptr[r13+r9*1+1]); dump();
-mov (ecx, ptr[r13+r9*1+1000]); dump();
-mov (ecx, ptr[r13+r9*1-1]); dump();
-mov (ecx, ptr[r13+r9*1-1000]); dump();
-mov (ecx, ptr[r13+r9*2+0]); dump();
-mov (ecx, ptr[r13+r9*2+1]); dump();
-mov (ecx, ptr[r13+r9*2+1000]); dump();
-mov (ecx, ptr[r13+r9*2-1]); dump();
-mov (ecx, ptr[r13+r9*2-1000]); dump();
-mov (ecx, ptr[r13+r9*4+0]); dump();
-mov (ecx, ptr[r13+r9*4+1]); dump();
-mov (ecx, ptr[r13+r9*4+1000]); dump();
-mov (ecx, ptr[r13+r9*4-1]); dump();
-mov (ecx, ptr[r13+r9*4-1000]); dump();
-mov (ecx, ptr[r13+r9*8+0]); dump();
-mov (ecx, ptr[r13+r9*8+1]); dump();
-mov (ecx, ptr[r13+r9*8+1000]); dump();
-mov (ecx, ptr[r13+r9*8-1]); dump();
-mov (ecx, ptr[r13+r9*8-1000]); dump();
-}
- void gen47(){
-mov (ecx, ptr[r13+r10+0]); dump();
-mov (ecx, ptr[r13+r10+1]); dump();
-mov (ecx, ptr[r13+r10+1000]); dump();
-mov (ecx, ptr[r13+r10-1]); dump();
-mov (ecx, ptr[r13+r10-1000]); dump();
-mov (ecx, ptr[r13+r10*1+0]); dump();
-mov (ecx, ptr[r13+r10*1+1]); dump();
-mov (ecx, ptr[r13+r10*1+1000]); dump();
-mov (ecx, ptr[r13+r10*1-1]); dump();
-mov (ecx, ptr[r13+r10*1-1000]); dump();
-mov (ecx, ptr[r13+r10*2+0]); dump();
-mov (ecx, ptr[r13+r10*2+1]); dump();
-mov (ecx, ptr[r13+r10*2+1000]); dump();
-mov (ecx, ptr[r13+r10*2-1]); dump();
-mov (ecx, ptr[r13+r10*2-1000]); dump();
-mov (ecx, ptr[r13+r10*4+0]); dump();
-mov (ecx, ptr[r13+r10*4+1]); dump();
-mov (ecx, ptr[r13+r10*4+1000]); dump();
-mov (ecx, ptr[r13+r10*4-1]); dump();
-mov (ecx, ptr[r13+r10*4-1000]); dump();
-mov (ecx, ptr[r13+r10*8+0]); dump();
-mov (ecx, ptr[r13+r10*8+1]); dump();
-mov (ecx, ptr[r13+r10*8+1000]); dump();
-mov (ecx, ptr[r13+r10*8-1]); dump();
-mov (ecx, ptr[r13+r10*8-1000]); dump();
-mov (ecx, ptr[r13+r11+0]); dump();
-mov (ecx, ptr[r13+r11+1]); dump();
-mov (ecx, ptr[r13+r11+1000]); dump();
-mov (ecx, ptr[r13+r11-1]); dump();
-mov (ecx, ptr[r13+r11-1000]); dump();
-mov (ecx, ptr[r13+r11*1+0]); dump();
-mov (ecx, ptr[r13+r11*1+1]); dump();
-mov (ecx, ptr[r13+r11*1+1000]); dump();
-mov (ecx, ptr[r13+r11*1-1]); dump();
-mov (ecx, ptr[r13+r11*1-1000]); dump();
-mov (ecx, ptr[r13+r11*2+0]); dump();
-mov (ecx, ptr[r13+r11*2+1]); dump();
-mov (ecx, ptr[r13+r11*2+1000]); dump();
-mov (ecx, ptr[r13+r11*2-1]); dump();
-mov (ecx, ptr[r13+r11*2-1000]); dump();
-mov (ecx, ptr[r13+r11*4+0]); dump();
-mov (ecx, ptr[r13+r11*4+1]); dump();
-mov (ecx, ptr[r13+r11*4+1000]); dump();
-mov (ecx, ptr[r13+r11*4-1]); dump();
-mov (ecx, ptr[r13+r11*4-1000]); dump();
-mov (ecx, ptr[r13+r11*8+0]); dump();
-mov (ecx, ptr[r13+r11*8+1]); dump();
-mov (ecx, ptr[r13+r11*8+1000]); dump();
-mov (ecx, ptr[r13+r11*8-1]); dump();
-mov (ecx, ptr[r13+r11*8-1000]); dump();
-mov (ecx, ptr[r13+r12+0]); dump();
-mov (ecx, ptr[r13+r12+1]); dump();
-mov (ecx, ptr[r13+r12+1000]); dump();
-mov (ecx, ptr[r13+r12-1]); dump();
-mov (ecx, ptr[r13+r12-1000]); dump();
-mov (ecx, ptr[r13+r12*1+0]); dump();
-mov (ecx, ptr[r13+r12*1+1]); dump();
-mov (ecx, ptr[r13+r12*1+1000]); dump();
-mov (ecx, ptr[r13+r12*1-1]); dump();
-mov (ecx, ptr[r13+r12*1-1000]); dump();
-mov (ecx, ptr[r13+r12*2+0]); dump();
-mov (ecx, ptr[r13+r12*2+1]); dump();
-mov (ecx, ptr[r13+r12*2+1000]); dump();
-mov (ecx, ptr[r13+r12*2-1]); dump();
-mov (ecx, ptr[r13+r12*2-1000]); dump();
-mov (ecx, ptr[r13+r12*4+0]); dump();
-mov (ecx, ptr[r13+r12*4+1]); dump();
-mov (ecx, ptr[r13+r12*4+1000]); dump();
-mov (ecx, ptr[r13+r12*4-1]); dump();
-mov (ecx, ptr[r13+r12*4-1000]); dump();
-mov (ecx, ptr[r13+r12*8+0]); dump();
-mov (ecx, ptr[r13+r12*8+1]); dump();
-mov (ecx, ptr[r13+r12*8+1000]); dump();
-mov (ecx, ptr[r13+r12*8-1]); dump();
-mov (ecx, ptr[r13+r12*8-1000]); dump();
-mov (ecx, ptr[r13+r13+0]); dump();
-mov (ecx, ptr[r13+r13+1]); dump();
-mov (ecx, ptr[r13+r13+1000]); dump();
-mov (ecx, ptr[r13+r13-1]); dump();
-mov (ecx, ptr[r13+r13-1000]); dump();
-mov (ecx, ptr[r13+r13*1+0]); dump();
-mov (ecx, ptr[r13+r13*1+1]); dump();
-mov (ecx, ptr[r13+r13*1+1000]); dump();
-mov (ecx, ptr[r13+r13*1-1]); dump();
-mov (ecx, ptr[r13+r13*1-1000]); dump();
-mov (ecx, ptr[r13+r13*2+0]); dump();
-mov (ecx, ptr[r13+r13*2+1]); dump();
-mov (ecx, ptr[r13+r13*2+1000]); dump();
-mov (ecx, ptr[r13+r13*2-1]); dump();
-mov (ecx, ptr[r13+r13*2-1000]); dump();
-mov (ecx, ptr[r13+r13*4+0]); dump();
-mov (ecx, ptr[r13+r13*4+1]); dump();
-mov (ecx, ptr[r13+r13*4+1000]); dump();
-mov (ecx, ptr[r13+r13*4-1]); dump();
-mov (ecx, ptr[r13+r13*4-1000]); dump();
-mov (ecx, ptr[r13+r13*8+0]); dump();
-mov (ecx, ptr[r13+r13*8+1]); dump();
-mov (ecx, ptr[r13+r13*8+1000]); dump();
-mov (ecx, ptr[r13+r13*8-1]); dump();
-mov (ecx, ptr[r13+r13*8-1000]); dump();
-}
- void gen48(){
-mov (ecx, ptr[r13+r14+0]); dump();
-mov (ecx, ptr[r13+r14+1]); dump();
-mov (ecx, ptr[r13+r14+1000]); dump();
-mov (ecx, ptr[r13+r14-1]); dump();
-mov (ecx, ptr[r13+r14-1000]); dump();
-mov (ecx, ptr[r13+r14*1+0]); dump();
-mov (ecx, ptr[r13+r14*1+1]); dump();
-mov (ecx, ptr[r13+r14*1+1000]); dump();
-mov (ecx, ptr[r13+r14*1-1]); dump();
-mov (ecx, ptr[r13+r14*1-1000]); dump();
-mov (ecx, ptr[r13+r14*2+0]); dump();
-mov (ecx, ptr[r13+r14*2+1]); dump();
-mov (ecx, ptr[r13+r14*2+1000]); dump();
-mov (ecx, ptr[r13+r14*2-1]); dump();
-mov (ecx, ptr[r13+r14*2-1000]); dump();
-mov (ecx, ptr[r13+r14*4+0]); dump();
-mov (ecx, ptr[r13+r14*4+1]); dump();
-mov (ecx, ptr[r13+r14*4+1000]); dump();
-mov (ecx, ptr[r13+r14*4-1]); dump();
-mov (ecx, ptr[r13+r14*4-1000]); dump();
-mov (ecx, ptr[r13+r14*8+0]); dump();
-mov (ecx, ptr[r13+r14*8+1]); dump();
-mov (ecx, ptr[r13+r14*8+1000]); dump();
-mov (ecx, ptr[r13+r14*8-1]); dump();
-mov (ecx, ptr[r13+r14*8-1000]); dump();
-mov (ecx, ptr[r13+r15+0]); dump();
-mov (ecx, ptr[r13+r15+1]); dump();
-mov (ecx, ptr[r13+r15+1000]); dump();
-mov (ecx, ptr[r13+r15-1]); dump();
-mov (ecx, ptr[r13+r15-1000]); dump();
-mov (ecx, ptr[r13+r15*1+0]); dump();
-mov (ecx, ptr[r13+r15*1+1]); dump();
-mov (ecx, ptr[r13+r15*1+1000]); dump();
-mov (ecx, ptr[r13+r15*1-1]); dump();
-mov (ecx, ptr[r13+r15*1-1000]); dump();
-mov (ecx, ptr[r13+r15*2+0]); dump();
-mov (ecx, ptr[r13+r15*2+1]); dump();
-mov (ecx, ptr[r13+r15*2+1000]); dump();
-mov (ecx, ptr[r13+r15*2-1]); dump();
-mov (ecx, ptr[r13+r15*2-1000]); dump();
-mov (ecx, ptr[r13+r15*4+0]); dump();
-mov (ecx, ptr[r13+r15*4+1]); dump();
-mov (ecx, ptr[r13+r15*4+1000]); dump();
-mov (ecx, ptr[r13+r15*4-1]); dump();
-mov (ecx, ptr[r13+r15*4-1000]); dump();
-mov (ecx, ptr[r13+r15*8+0]); dump();
-mov (ecx, ptr[r13+r15*8+1]); dump();
-mov (ecx, ptr[r13+r15*8+1000]); dump();
-mov (ecx, ptr[r13+r15*8-1]); dump();
-mov (ecx, ptr[r13+r15*8-1000]); dump();
-mov (ecx, ptr[r13+0]); dump();
-mov (ecx, ptr[r13+1]); dump();
-mov (ecx, ptr[r13+1000]); dump();
-mov (ecx, ptr[r13-1]); dump();
-mov (ecx, ptr[r13-1000]); dump();
-mov (ecx, ptr[r13+0]); dump();
-mov (ecx, ptr[r13+1]); dump();
-mov (ecx, ptr[r13+1000]); dump();
-mov (ecx, ptr[r13-1]); dump();
-mov (ecx, ptr[r13-1000]); dump();
-mov (ecx, ptr[r13+0]); dump();
-mov (ecx, ptr[r13+1]); dump();
-mov (ecx, ptr[r13+1000]); dump();
-mov (ecx, ptr[r13-1]); dump();
-mov (ecx, ptr[r13-1000]); dump();
-mov (ecx, ptr[r13+0]); dump();
-mov (ecx, ptr[r13+1]); dump();
-mov (ecx, ptr[r13+1000]); dump();
-mov (ecx, ptr[r13-1]); dump();
-mov (ecx, ptr[r13-1000]); dump();
-mov (ecx, ptr[r13+0]); dump();
-mov (ecx, ptr[r13+1]); dump();
-mov (ecx, ptr[r13+1000]); dump();
-mov (ecx, ptr[r13-1]); dump();
-mov (ecx, ptr[r13-1000]); dump();
-mov (ecx, ptr[r14+rax+0]); dump();
-mov (ecx, ptr[r14+rax+1]); dump();
-mov (ecx, ptr[r14+rax+1000]); dump();
-mov (ecx, ptr[r14+rax-1]); dump();
-mov (ecx, ptr[r14+rax-1000]); dump();
-mov (ecx, ptr[r14+rax*1+0]); dump();
-mov (ecx, ptr[r14+rax*1+1]); dump();
-mov (ecx, ptr[r14+rax*1+1000]); dump();
-mov (ecx, ptr[r14+rax*1-1]); dump();
-mov (ecx, ptr[r14+rax*1-1000]); dump();
-mov (ecx, ptr[r14+rax*2+0]); dump();
-mov (ecx, ptr[r14+rax*2+1]); dump();
-mov (ecx, ptr[r14+rax*2+1000]); dump();
-mov (ecx, ptr[r14+rax*2-1]); dump();
-mov (ecx, ptr[r14+rax*2-1000]); dump();
-mov (ecx, ptr[r14+rax*4+0]); dump();
-mov (ecx, ptr[r14+rax*4+1]); dump();
-mov (ecx, ptr[r14+rax*4+1000]); dump();
-mov (ecx, ptr[r14+rax*4-1]); dump();
-mov (ecx, ptr[r14+rax*4-1000]); dump();
-mov (ecx, ptr[r14+rax*8+0]); dump();
-mov (ecx, ptr[r14+rax*8+1]); dump();
-mov (ecx, ptr[r14+rax*8+1000]); dump();
-mov (ecx, ptr[r14+rax*8-1]); dump();
-mov (ecx, ptr[r14+rax*8-1000]); dump();
-}
- void gen49(){
-mov (ecx, ptr[r14+rcx+0]); dump();
-mov (ecx, ptr[r14+rcx+1]); dump();
-mov (ecx, ptr[r14+rcx+1000]); dump();
-mov (ecx, ptr[r14+rcx-1]); dump();
-mov (ecx, ptr[r14+rcx-1000]); dump();
-mov (ecx, ptr[r14+rcx*1+0]); dump();
-mov (ecx, ptr[r14+rcx*1+1]); dump();
-mov (ecx, ptr[r14+rcx*1+1000]); dump();
-mov (ecx, ptr[r14+rcx*1-1]); dump();
-mov (ecx, ptr[r14+rcx*1-1000]); dump();
-mov (ecx, ptr[r14+rcx*2+0]); dump();
-mov (ecx, ptr[r14+rcx*2+1]); dump();
-mov (ecx, ptr[r14+rcx*2+1000]); dump();
-mov (ecx, ptr[r14+rcx*2-1]); dump();
-mov (ecx, ptr[r14+rcx*2-1000]); dump();
-mov (ecx, ptr[r14+rcx*4+0]); dump();
-mov (ecx, ptr[r14+rcx*4+1]); dump();
-mov (ecx, ptr[r14+rcx*4+1000]); dump();
-mov (ecx, ptr[r14+rcx*4-1]); dump();
-mov (ecx, ptr[r14+rcx*4-1000]); dump();
-mov (ecx, ptr[r14+rcx*8+0]); dump();
-mov (ecx, ptr[r14+rcx*8+1]); dump();
-mov (ecx, ptr[r14+rcx*8+1000]); dump();
-mov (ecx, ptr[r14+rcx*8-1]); dump();
-mov (ecx, ptr[r14+rcx*8-1000]); dump();
-mov (ecx, ptr[r14+rdx+0]); dump();
-mov (ecx, ptr[r14+rdx+1]); dump();
-mov (ecx, ptr[r14+rdx+1000]); dump();
-mov (ecx, ptr[r14+rdx-1]); dump();
-mov (ecx, ptr[r14+rdx-1000]); dump();
-mov (ecx, ptr[r14+rdx*1+0]); dump();
-mov (ecx, ptr[r14+rdx*1+1]); dump();
-mov (ecx, ptr[r14+rdx*1+1000]); dump();
-mov (ecx, ptr[r14+rdx*1-1]); dump();
-mov (ecx, ptr[r14+rdx*1-1000]); dump();
-mov (ecx, ptr[r14+rdx*2+0]); dump();
-mov (ecx, ptr[r14+rdx*2+1]); dump();
-mov (ecx, ptr[r14+rdx*2+1000]); dump();
-mov (ecx, ptr[r14+rdx*2-1]); dump();
-mov (ecx, ptr[r14+rdx*2-1000]); dump();
-mov (ecx, ptr[r14+rdx*4+0]); dump();
-mov (ecx, ptr[r14+rdx*4+1]); dump();
-mov (ecx, ptr[r14+rdx*4+1000]); dump();
-mov (ecx, ptr[r14+rdx*4-1]); dump();
-mov (ecx, ptr[r14+rdx*4-1000]); dump();
-mov (ecx, ptr[r14+rdx*8+0]); dump();
-mov (ecx, ptr[r14+rdx*8+1]); dump();
-mov (ecx, ptr[r14+rdx*8+1000]); dump();
-mov (ecx, ptr[r14+rdx*8-1]); dump();
-mov (ecx, ptr[r14+rdx*8-1000]); dump();
-mov (ecx, ptr[r14+rbx+0]); dump();
-mov (ecx, ptr[r14+rbx+1]); dump();
-mov (ecx, ptr[r14+rbx+1000]); dump();
-mov (ecx, ptr[r14+rbx-1]); dump();
-mov (ecx, ptr[r14+rbx-1000]); dump();
-mov (ecx, ptr[r14+rbx*1+0]); dump();
-mov (ecx, ptr[r14+rbx*1+1]); dump();
-mov (ecx, ptr[r14+rbx*1+1000]); dump();
-mov (ecx, ptr[r14+rbx*1-1]); dump();
-mov (ecx, ptr[r14+rbx*1-1000]); dump();
-mov (ecx, ptr[r14+rbx*2+0]); dump();
-mov (ecx, ptr[r14+rbx*2+1]); dump();
-mov (ecx, ptr[r14+rbx*2+1000]); dump();
-mov (ecx, ptr[r14+rbx*2-1]); dump();
-mov (ecx, ptr[r14+rbx*2-1000]); dump();
-mov (ecx, ptr[r14+rbx*4+0]); dump();
-mov (ecx, ptr[r14+rbx*4+1]); dump();
-mov (ecx, ptr[r14+rbx*4+1000]); dump();
-mov (ecx, ptr[r14+rbx*4-1]); dump();
-mov (ecx, ptr[r14+rbx*4-1000]); dump();
-mov (ecx, ptr[r14+rbx*8+0]); dump();
-mov (ecx, ptr[r14+rbx*8+1]); dump();
-mov (ecx, ptr[r14+rbx*8+1000]); dump();
-mov (ecx, ptr[r14+rbx*8-1]); dump();
-mov (ecx, ptr[r14+rbx*8-1000]); dump();
-mov (ecx, ptr[r14+rbp+0]); dump();
-mov (ecx, ptr[r14+rbp+1]); dump();
-mov (ecx, ptr[r14+rbp+1000]); dump();
-mov (ecx, ptr[r14+rbp-1]); dump();
-mov (ecx, ptr[r14+rbp-1000]); dump();
-mov (ecx, ptr[r14+rbp*1+0]); dump();
-mov (ecx, ptr[r14+rbp*1+1]); dump();
-mov (ecx, ptr[r14+rbp*1+1000]); dump();
-mov (ecx, ptr[r14+rbp*1-1]); dump();
-mov (ecx, ptr[r14+rbp*1-1000]); dump();
-mov (ecx, ptr[r14+rbp*2+0]); dump();
-mov (ecx, ptr[r14+rbp*2+1]); dump();
-mov (ecx, ptr[r14+rbp*2+1000]); dump();
-mov (ecx, ptr[r14+rbp*2-1]); dump();
-mov (ecx, ptr[r14+rbp*2-1000]); dump();
-mov (ecx, ptr[r14+rbp*4+0]); dump();
-mov (ecx, ptr[r14+rbp*4+1]); dump();
-mov (ecx, ptr[r14+rbp*4+1000]); dump();
-mov (ecx, ptr[r14+rbp*4-1]); dump();
-mov (ecx, ptr[r14+rbp*4-1000]); dump();
-mov (ecx, ptr[r14+rbp*8+0]); dump();
-mov (ecx, ptr[r14+rbp*8+1]); dump();
-mov (ecx, ptr[r14+rbp*8+1000]); dump();
-mov (ecx, ptr[r14+rbp*8-1]); dump();
-mov (ecx, ptr[r14+rbp*8-1000]); dump();
-}
- void gen50(){
-mov (ecx, ptr[r14+rsi+0]); dump();
-mov (ecx, ptr[r14+rsi+1]); dump();
-mov (ecx, ptr[r14+rsi+1000]); dump();
-mov (ecx, ptr[r14+rsi-1]); dump();
-mov (ecx, ptr[r14+rsi-1000]); dump();
-mov (ecx, ptr[r14+rsi*1+0]); dump();
-mov (ecx, ptr[r14+rsi*1+1]); dump();
-mov (ecx, ptr[r14+rsi*1+1000]); dump();
-mov (ecx, ptr[r14+rsi*1-1]); dump();
-mov (ecx, ptr[r14+rsi*1-1000]); dump();
-mov (ecx, ptr[r14+rsi*2+0]); dump();
-mov (ecx, ptr[r14+rsi*2+1]); dump();
-mov (ecx, ptr[r14+rsi*2+1000]); dump();
-mov (ecx, ptr[r14+rsi*2-1]); dump();
-mov (ecx, ptr[r14+rsi*2-1000]); dump();
-mov (ecx, ptr[r14+rsi*4+0]); dump();
-mov (ecx, ptr[r14+rsi*4+1]); dump();
-mov (ecx, ptr[r14+rsi*4+1000]); dump();
-mov (ecx, ptr[r14+rsi*4-1]); dump();
-mov (ecx, ptr[r14+rsi*4-1000]); dump();
-mov (ecx, ptr[r14+rsi*8+0]); dump();
-mov (ecx, ptr[r14+rsi*8+1]); dump();
-mov (ecx, ptr[r14+rsi*8+1000]); dump();
-mov (ecx, ptr[r14+rsi*8-1]); dump();
-mov (ecx, ptr[r14+rsi*8-1000]); dump();
-mov (ecx, ptr[r14+rdi+0]); dump();
-mov (ecx, ptr[r14+rdi+1]); dump();
-mov (ecx, ptr[r14+rdi+1000]); dump();
-mov (ecx, ptr[r14+rdi-1]); dump();
-mov (ecx, ptr[r14+rdi-1000]); dump();
-mov (ecx, ptr[r14+rdi*1+0]); dump();
-mov (ecx, ptr[r14+rdi*1+1]); dump();
-mov (ecx, ptr[r14+rdi*1+1000]); dump();
-mov (ecx, ptr[r14+rdi*1-1]); dump();
-mov (ecx, ptr[r14+rdi*1-1000]); dump();
-mov (ecx, ptr[r14+rdi*2+0]); dump();
-mov (ecx, ptr[r14+rdi*2+1]); dump();
-mov (ecx, ptr[r14+rdi*2+1000]); dump();
-mov (ecx, ptr[r14+rdi*2-1]); dump();
-mov (ecx, ptr[r14+rdi*2-1000]); dump();
-mov (ecx, ptr[r14+rdi*4+0]); dump();
-mov (ecx, ptr[r14+rdi*4+1]); dump();
-mov (ecx, ptr[r14+rdi*4+1000]); dump();
-mov (ecx, ptr[r14+rdi*4-1]); dump();
-mov (ecx, ptr[r14+rdi*4-1000]); dump();
-mov (ecx, ptr[r14+rdi*8+0]); dump();
-mov (ecx, ptr[r14+rdi*8+1]); dump();
-mov (ecx, ptr[r14+rdi*8+1000]); dump();
-mov (ecx, ptr[r14+rdi*8-1]); dump();
-mov (ecx, ptr[r14+rdi*8-1000]); dump();
-mov (ecx, ptr[r14+r9+0]); dump();
-mov (ecx, ptr[r14+r9+1]); dump();
-mov (ecx, ptr[r14+r9+1000]); dump();
-mov (ecx, ptr[r14+r9-1]); dump();
-mov (ecx, ptr[r14+r9-1000]); dump();
-mov (ecx, ptr[r14+r9*1+0]); dump();
-mov (ecx, ptr[r14+r9*1+1]); dump();
-mov (ecx, ptr[r14+r9*1+1000]); dump();
-mov (ecx, ptr[r14+r9*1-1]); dump();
-mov (ecx, ptr[r14+r9*1-1000]); dump();
-mov (ecx, ptr[r14+r9*2+0]); dump();
-mov (ecx, ptr[r14+r9*2+1]); dump();
-mov (ecx, ptr[r14+r9*2+1000]); dump();
-mov (ecx, ptr[r14+r9*2-1]); dump();
-mov (ecx, ptr[r14+r9*2-1000]); dump();
-mov (ecx, ptr[r14+r9*4+0]); dump();
-mov (ecx, ptr[r14+r9*4+1]); dump();
-mov (ecx, ptr[r14+r9*4+1000]); dump();
-mov (ecx, ptr[r14+r9*4-1]); dump();
-mov (ecx, ptr[r14+r9*4-1000]); dump();
-mov (ecx, ptr[r14+r9*8+0]); dump();
-mov (ecx, ptr[r14+r9*8+1]); dump();
-mov (ecx, ptr[r14+r9*8+1000]); dump();
-mov (ecx, ptr[r14+r9*8-1]); dump();
-mov (ecx, ptr[r14+r9*8-1000]); dump();
-mov (ecx, ptr[r14+r10+0]); dump();
-mov (ecx, ptr[r14+r10+1]); dump();
-mov (ecx, ptr[r14+r10+1000]); dump();
-mov (ecx, ptr[r14+r10-1]); dump();
-mov (ecx, ptr[r14+r10-1000]); dump();
-mov (ecx, ptr[r14+r10*1+0]); dump();
-mov (ecx, ptr[r14+r10*1+1]); dump();
-mov (ecx, ptr[r14+r10*1+1000]); dump();
-mov (ecx, ptr[r14+r10*1-1]); dump();
-mov (ecx, ptr[r14+r10*1-1000]); dump();
-mov (ecx, ptr[r14+r10*2+0]); dump();
-mov (ecx, ptr[r14+r10*2+1]); dump();
-mov (ecx, ptr[r14+r10*2+1000]); dump();
-mov (ecx, ptr[r14+r10*2-1]); dump();
-mov (ecx, ptr[r14+r10*2-1000]); dump();
-mov (ecx, ptr[r14+r10*4+0]); dump();
-mov (ecx, ptr[r14+r10*4+1]); dump();
-mov (ecx, ptr[r14+r10*4+1000]); dump();
-mov (ecx, ptr[r14+r10*4-1]); dump();
-mov (ecx, ptr[r14+r10*4-1000]); dump();
-mov (ecx, ptr[r14+r10*8+0]); dump();
-mov (ecx, ptr[r14+r10*8+1]); dump();
-mov (ecx, ptr[r14+r10*8+1000]); dump();
-mov (ecx, ptr[r14+r10*8-1]); dump();
-mov (ecx, ptr[r14+r10*8-1000]); dump();
-}
- void gen51(){
-mov (ecx, ptr[r14+r11+0]); dump();
-mov (ecx, ptr[r14+r11+1]); dump();
-mov (ecx, ptr[r14+r11+1000]); dump();
-mov (ecx, ptr[r14+r11-1]); dump();
-mov (ecx, ptr[r14+r11-1000]); dump();
-mov (ecx, ptr[r14+r11*1+0]); dump();
-mov (ecx, ptr[r14+r11*1+1]); dump();
-mov (ecx, ptr[r14+r11*1+1000]); dump();
-mov (ecx, ptr[r14+r11*1-1]); dump();
-mov (ecx, ptr[r14+r11*1-1000]); dump();
-mov (ecx, ptr[r14+r11*2+0]); dump();
-mov (ecx, ptr[r14+r11*2+1]); dump();
-mov (ecx, ptr[r14+r11*2+1000]); dump();
-mov (ecx, ptr[r14+r11*2-1]); dump();
-mov (ecx, ptr[r14+r11*2-1000]); dump();
-mov (ecx, ptr[r14+r11*4+0]); dump();
-mov (ecx, ptr[r14+r11*4+1]); dump();
-mov (ecx, ptr[r14+r11*4+1000]); dump();
-mov (ecx, ptr[r14+r11*4-1]); dump();
-mov (ecx, ptr[r14+r11*4-1000]); dump();
-mov (ecx, ptr[r14+r11*8+0]); dump();
-mov (ecx, ptr[r14+r11*8+1]); dump();
-mov (ecx, ptr[r14+r11*8+1000]); dump();
-mov (ecx, ptr[r14+r11*8-1]); dump();
-mov (ecx, ptr[r14+r11*8-1000]); dump();
-mov (ecx, ptr[r14+r12+0]); dump();
-mov (ecx, ptr[r14+r12+1]); dump();
-mov (ecx, ptr[r14+r12+1000]); dump();
-mov (ecx, ptr[r14+r12-1]); dump();
-mov (ecx, ptr[r14+r12-1000]); dump();
-mov (ecx, ptr[r14+r12*1+0]); dump();
-mov (ecx, ptr[r14+r12*1+1]); dump();
-mov (ecx, ptr[r14+r12*1+1000]); dump();
-mov (ecx, ptr[r14+r12*1-1]); dump();
-mov (ecx, ptr[r14+r12*1-1000]); dump();
-mov (ecx, ptr[r14+r12*2+0]); dump();
-mov (ecx, ptr[r14+r12*2+1]); dump();
-mov (ecx, ptr[r14+r12*2+1000]); dump();
-mov (ecx, ptr[r14+r12*2-1]); dump();
-mov (ecx, ptr[r14+r12*2-1000]); dump();
-mov (ecx, ptr[r14+r12*4+0]); dump();
-mov (ecx, ptr[r14+r12*4+1]); dump();
-mov (ecx, ptr[r14+r12*4+1000]); dump();
-mov (ecx, ptr[r14+r12*4-1]); dump();
-mov (ecx, ptr[r14+r12*4-1000]); dump();
-mov (ecx, ptr[r14+r12*8+0]); dump();
-mov (ecx, ptr[r14+r12*8+1]); dump();
-mov (ecx, ptr[r14+r12*8+1000]); dump();
-mov (ecx, ptr[r14+r12*8-1]); dump();
-mov (ecx, ptr[r14+r12*8-1000]); dump();
-mov (ecx, ptr[r14+r13+0]); dump();
-mov (ecx, ptr[r14+r13+1]); dump();
-mov (ecx, ptr[r14+r13+1000]); dump();
-mov (ecx, ptr[r14+r13-1]); dump();
-mov (ecx, ptr[r14+r13-1000]); dump();
-mov (ecx, ptr[r14+r13*1+0]); dump();
-mov (ecx, ptr[r14+r13*1+1]); dump();
-mov (ecx, ptr[r14+r13*1+1000]); dump();
-mov (ecx, ptr[r14+r13*1-1]); dump();
-mov (ecx, ptr[r14+r13*1-1000]); dump();
-mov (ecx, ptr[r14+r13*2+0]); dump();
-mov (ecx, ptr[r14+r13*2+1]); dump();
-mov (ecx, ptr[r14+r13*2+1000]); dump();
-mov (ecx, ptr[r14+r13*2-1]); dump();
-mov (ecx, ptr[r14+r13*2-1000]); dump();
-mov (ecx, ptr[r14+r13*4+0]); dump();
-mov (ecx, ptr[r14+r13*4+1]); dump();
-mov (ecx, ptr[r14+r13*4+1000]); dump();
-mov (ecx, ptr[r14+r13*4-1]); dump();
-mov (ecx, ptr[r14+r13*4-1000]); dump();
-mov (ecx, ptr[r14+r13*8+0]); dump();
-mov (ecx, ptr[r14+r13*8+1]); dump();
-mov (ecx, ptr[r14+r13*8+1000]); dump();
-mov (ecx, ptr[r14+r13*8-1]); dump();
-mov (ecx, ptr[r14+r13*8-1000]); dump();
-mov (ecx, ptr[r14+r14+0]); dump();
-mov (ecx, ptr[r14+r14+1]); dump();
-mov (ecx, ptr[r14+r14+1000]); dump();
-mov (ecx, ptr[r14+r14-1]); dump();
-mov (ecx, ptr[r14+r14-1000]); dump();
-mov (ecx, ptr[r14+r14*1+0]); dump();
-mov (ecx, ptr[r14+r14*1+1]); dump();
-mov (ecx, ptr[r14+r14*1+1000]); dump();
-mov (ecx, ptr[r14+r14*1-1]); dump();
-mov (ecx, ptr[r14+r14*1-1000]); dump();
-mov (ecx, ptr[r14+r14*2+0]); dump();
-mov (ecx, ptr[r14+r14*2+1]); dump();
-mov (ecx, ptr[r14+r14*2+1000]); dump();
-mov (ecx, ptr[r14+r14*2-1]); dump();
-mov (ecx, ptr[r14+r14*2-1000]); dump();
-mov (ecx, ptr[r14+r14*4+0]); dump();
-mov (ecx, ptr[r14+r14*4+1]); dump();
-mov (ecx, ptr[r14+r14*4+1000]); dump();
-mov (ecx, ptr[r14+r14*4-1]); dump();
-mov (ecx, ptr[r14+r14*4-1000]); dump();
-mov (ecx, ptr[r14+r14*8+0]); dump();
-mov (ecx, ptr[r14+r14*8+1]); dump();
-mov (ecx, ptr[r14+r14*8+1000]); dump();
-mov (ecx, ptr[r14+r14*8-1]); dump();
-mov (ecx, ptr[r14+r14*8-1000]); dump();
-}
- void gen52(){
-mov (ecx, ptr[r14+r15+0]); dump();
-mov (ecx, ptr[r14+r15+1]); dump();
-mov (ecx, ptr[r14+r15+1000]); dump();
-mov (ecx, ptr[r14+r15-1]); dump();
-mov (ecx, ptr[r14+r15-1000]); dump();
-mov (ecx, ptr[r14+r15*1+0]); dump();
-mov (ecx, ptr[r14+r15*1+1]); dump();
-mov (ecx, ptr[r14+r15*1+1000]); dump();
-mov (ecx, ptr[r14+r15*1-1]); dump();
-mov (ecx, ptr[r14+r15*1-1000]); dump();
-mov (ecx, ptr[r14+r15*2+0]); dump();
-mov (ecx, ptr[r14+r15*2+1]); dump();
-mov (ecx, ptr[r14+r15*2+1000]); dump();
-mov (ecx, ptr[r14+r15*2-1]); dump();
-mov (ecx, ptr[r14+r15*2-1000]); dump();
-mov (ecx, ptr[r14+r15*4+0]); dump();
-mov (ecx, ptr[r14+r15*4+1]); dump();
-mov (ecx, ptr[r14+r15*4+1000]); dump();
-mov (ecx, ptr[r14+r15*4-1]); dump();
-mov (ecx, ptr[r14+r15*4-1000]); dump();
-mov (ecx, ptr[r14+r15*8+0]); dump();
-mov (ecx, ptr[r14+r15*8+1]); dump();
-mov (ecx, ptr[r14+r15*8+1000]); dump();
-mov (ecx, ptr[r14+r15*8-1]); dump();
-mov (ecx, ptr[r14+r15*8-1000]); dump();
-mov (ecx, ptr[r14+0]); dump();
-mov (ecx, ptr[r14+1]); dump();
-mov (ecx, ptr[r14+1000]); dump();
-mov (ecx, ptr[r14-1]); dump();
-mov (ecx, ptr[r14-1000]); dump();
-mov (ecx, ptr[r14+0]); dump();
-mov (ecx, ptr[r14+1]); dump();
-mov (ecx, ptr[r14+1000]); dump();
-mov (ecx, ptr[r14-1]); dump();
-mov (ecx, ptr[r14-1000]); dump();
-mov (ecx, ptr[r14+0]); dump();
-mov (ecx, ptr[r14+1]); dump();
-mov (ecx, ptr[r14+1000]); dump();
-mov (ecx, ptr[r14-1]); dump();
-mov (ecx, ptr[r14-1000]); dump();
-mov (ecx, ptr[r14+0]); dump();
-mov (ecx, ptr[r14+1]); dump();
-mov (ecx, ptr[r14+1000]); dump();
-mov (ecx, ptr[r14-1]); dump();
-mov (ecx, ptr[r14-1000]); dump();
-mov (ecx, ptr[r14+0]); dump();
-mov (ecx, ptr[r14+1]); dump();
-mov (ecx, ptr[r14+1000]); dump();
-mov (ecx, ptr[r14-1]); dump();
-mov (ecx, ptr[r14-1000]); dump();
-mov (ecx, ptr[r15+rax+0]); dump();
-mov (ecx, ptr[r15+rax+1]); dump();
-mov (ecx, ptr[r15+rax+1000]); dump();
-mov (ecx, ptr[r15+rax-1]); dump();
-mov (ecx, ptr[r15+rax-1000]); dump();
-mov (ecx, ptr[r15+rax*1+0]); dump();
-mov (ecx, ptr[r15+rax*1+1]); dump();
-mov (ecx, ptr[r15+rax*1+1000]); dump();
-mov (ecx, ptr[r15+rax*1-1]); dump();
-mov (ecx, ptr[r15+rax*1-1000]); dump();
-mov (ecx, ptr[r15+rax*2+0]); dump();
-mov (ecx, ptr[r15+rax*2+1]); dump();
-mov (ecx, ptr[r15+rax*2+1000]); dump();
-mov (ecx, ptr[r15+rax*2-1]); dump();
-mov (ecx, ptr[r15+rax*2-1000]); dump();
-mov (ecx, ptr[r15+rax*4+0]); dump();
-mov (ecx, ptr[r15+rax*4+1]); dump();
-mov (ecx, ptr[r15+rax*4+1000]); dump();
-mov (ecx, ptr[r15+rax*4-1]); dump();
-mov (ecx, ptr[r15+rax*4-1000]); dump();
-mov (ecx, ptr[r15+rax*8+0]); dump();
-mov (ecx, ptr[r15+rax*8+1]); dump();
-mov (ecx, ptr[r15+rax*8+1000]); dump();
-mov (ecx, ptr[r15+rax*8-1]); dump();
-mov (ecx, ptr[r15+rax*8-1000]); dump();
-mov (ecx, ptr[r15+rcx+0]); dump();
-mov (ecx, ptr[r15+rcx+1]); dump();
-mov (ecx, ptr[r15+rcx+1000]); dump();
-mov (ecx, ptr[r15+rcx-1]); dump();
-mov (ecx, ptr[r15+rcx-1000]); dump();
-mov (ecx, ptr[r15+rcx*1+0]); dump();
-mov (ecx, ptr[r15+rcx*1+1]); dump();
-mov (ecx, ptr[r15+rcx*1+1000]); dump();
-mov (ecx, ptr[r15+rcx*1-1]); dump();
-mov (ecx, ptr[r15+rcx*1-1000]); dump();
-mov (ecx, ptr[r15+rcx*2+0]); dump();
-mov (ecx, ptr[r15+rcx*2+1]); dump();
-mov (ecx, ptr[r15+rcx*2+1000]); dump();
-mov (ecx, ptr[r15+rcx*2-1]); dump();
-mov (ecx, ptr[r15+rcx*2-1000]); dump();
-mov (ecx, ptr[r15+rcx*4+0]); dump();
-mov (ecx, ptr[r15+rcx*4+1]); dump();
-mov (ecx, ptr[r15+rcx*4+1000]); dump();
-mov (ecx, ptr[r15+rcx*4-1]); dump();
-mov (ecx, ptr[r15+rcx*4-1000]); dump();
-mov (ecx, ptr[r15+rcx*8+0]); dump();
-mov (ecx, ptr[r15+rcx*8+1]); dump();
-mov (ecx, ptr[r15+rcx*8+1000]); dump();
-mov (ecx, ptr[r15+rcx*8-1]); dump();
-mov (ecx, ptr[r15+rcx*8-1000]); dump();
-}
- void gen53(){
-mov (ecx, ptr[r15+rdx+0]); dump();
-mov (ecx, ptr[r15+rdx+1]); dump();
-mov (ecx, ptr[r15+rdx+1000]); dump();
-mov (ecx, ptr[r15+rdx-1]); dump();
-mov (ecx, ptr[r15+rdx-1000]); dump();
-mov (ecx, ptr[r15+rdx*1+0]); dump();
-mov (ecx, ptr[r15+rdx*1+1]); dump();
-mov (ecx, ptr[r15+rdx*1+1000]); dump();
-mov (ecx, ptr[r15+rdx*1-1]); dump();
-mov (ecx, ptr[r15+rdx*1-1000]); dump();
-mov (ecx, ptr[r15+rdx*2+0]); dump();
-mov (ecx, ptr[r15+rdx*2+1]); dump();
-mov (ecx, ptr[r15+rdx*2+1000]); dump();
-mov (ecx, ptr[r15+rdx*2-1]); dump();
-mov (ecx, ptr[r15+rdx*2-1000]); dump();
-mov (ecx, ptr[r15+rdx*4+0]); dump();
-mov (ecx, ptr[r15+rdx*4+1]); dump();
-mov (ecx, ptr[r15+rdx*4+1000]); dump();
-mov (ecx, ptr[r15+rdx*4-1]); dump();
-mov (ecx, ptr[r15+rdx*4-1000]); dump();
-mov (ecx, ptr[r15+rdx*8+0]); dump();
-mov (ecx, ptr[r15+rdx*8+1]); dump();
-mov (ecx, ptr[r15+rdx*8+1000]); dump();
-mov (ecx, ptr[r15+rdx*8-1]); dump();
-mov (ecx, ptr[r15+rdx*8-1000]); dump();
-mov (ecx, ptr[r15+rbx+0]); dump();
-mov (ecx, ptr[r15+rbx+1]); dump();
-mov (ecx, ptr[r15+rbx+1000]); dump();
-mov (ecx, ptr[r15+rbx-1]); dump();
-mov (ecx, ptr[r15+rbx-1000]); dump();
-mov (ecx, ptr[r15+rbx*1+0]); dump();
-mov (ecx, ptr[r15+rbx*1+1]); dump();
-mov (ecx, ptr[r15+rbx*1+1000]); dump();
-mov (ecx, ptr[r15+rbx*1-1]); dump();
-mov (ecx, ptr[r15+rbx*1-1000]); dump();
-mov (ecx, ptr[r15+rbx*2+0]); dump();
-mov (ecx, ptr[r15+rbx*2+1]); dump();
-mov (ecx, ptr[r15+rbx*2+1000]); dump();
-mov (ecx, ptr[r15+rbx*2-1]); dump();
-mov (ecx, ptr[r15+rbx*2-1000]); dump();
-mov (ecx, ptr[r15+rbx*4+0]); dump();
-mov (ecx, ptr[r15+rbx*4+1]); dump();
-mov (ecx, ptr[r15+rbx*4+1000]); dump();
-mov (ecx, ptr[r15+rbx*4-1]); dump();
-mov (ecx, ptr[r15+rbx*4-1000]); dump();
-mov (ecx, ptr[r15+rbx*8+0]); dump();
-mov (ecx, ptr[r15+rbx*8+1]); dump();
-mov (ecx, ptr[r15+rbx*8+1000]); dump();
-mov (ecx, ptr[r15+rbx*8-1]); dump();
-mov (ecx, ptr[r15+rbx*8-1000]); dump();
-mov (ecx, ptr[r15+rbp+0]); dump();
-mov (ecx, ptr[r15+rbp+1]); dump();
-mov (ecx, ptr[r15+rbp+1000]); dump();
-mov (ecx, ptr[r15+rbp-1]); dump();
-mov (ecx, ptr[r15+rbp-1000]); dump();
-mov (ecx, ptr[r15+rbp*1+0]); dump();
-mov (ecx, ptr[r15+rbp*1+1]); dump();
-mov (ecx, ptr[r15+rbp*1+1000]); dump();
-mov (ecx, ptr[r15+rbp*1-1]); dump();
-mov (ecx, ptr[r15+rbp*1-1000]); dump();
-mov (ecx, ptr[r15+rbp*2+0]); dump();
-mov (ecx, ptr[r15+rbp*2+1]); dump();
-mov (ecx, ptr[r15+rbp*2+1000]); dump();
-mov (ecx, ptr[r15+rbp*2-1]); dump();
-mov (ecx, ptr[r15+rbp*2-1000]); dump();
-mov (ecx, ptr[r15+rbp*4+0]); dump();
-mov (ecx, ptr[r15+rbp*4+1]); dump();
-mov (ecx, ptr[r15+rbp*4+1000]); dump();
-mov (ecx, ptr[r15+rbp*4-1]); dump();
-mov (ecx, ptr[r15+rbp*4-1000]); dump();
-mov (ecx, ptr[r15+rbp*8+0]); dump();
-mov (ecx, ptr[r15+rbp*8+1]); dump();
-mov (ecx, ptr[r15+rbp*8+1000]); dump();
-mov (ecx, ptr[r15+rbp*8-1]); dump();
-mov (ecx, ptr[r15+rbp*8-1000]); dump();
-mov (ecx, ptr[r15+rsi+0]); dump();
-mov (ecx, ptr[r15+rsi+1]); dump();
-mov (ecx, ptr[r15+rsi+1000]); dump();
-mov (ecx, ptr[r15+rsi-1]); dump();
-mov (ecx, ptr[r15+rsi-1000]); dump();
-mov (ecx, ptr[r15+rsi*1+0]); dump();
-mov (ecx, ptr[r15+rsi*1+1]); dump();
-mov (ecx, ptr[r15+rsi*1+1000]); dump();
-mov (ecx, ptr[r15+rsi*1-1]); dump();
-mov (ecx, ptr[r15+rsi*1-1000]); dump();
-mov (ecx, ptr[r15+rsi*2+0]); dump();
-mov (ecx, ptr[r15+rsi*2+1]); dump();
-mov (ecx, ptr[r15+rsi*2+1000]); dump();
-mov (ecx, ptr[r15+rsi*2-1]); dump();
-mov (ecx, ptr[r15+rsi*2-1000]); dump();
-mov (ecx, ptr[r15+rsi*4+0]); dump();
-mov (ecx, ptr[r15+rsi*4+1]); dump();
-mov (ecx, ptr[r15+rsi*4+1000]); dump();
-mov (ecx, ptr[r15+rsi*4-1]); dump();
-mov (ecx, ptr[r15+rsi*4-1000]); dump();
-mov (ecx, ptr[r15+rsi*8+0]); dump();
-mov (ecx, ptr[r15+rsi*8+1]); dump();
-mov (ecx, ptr[r15+rsi*8+1000]); dump();
-mov (ecx, ptr[r15+rsi*8-1]); dump();
-mov (ecx, ptr[r15+rsi*8-1000]); dump();
-}
- void gen54(){
-mov (ecx, ptr[r15+rdi+0]); dump();
-mov (ecx, ptr[r15+rdi+1]); dump();
-mov (ecx, ptr[r15+rdi+1000]); dump();
-mov (ecx, ptr[r15+rdi-1]); dump();
-mov (ecx, ptr[r15+rdi-1000]); dump();
-mov (ecx, ptr[r15+rdi*1+0]); dump();
-mov (ecx, ptr[r15+rdi*1+1]); dump();
-mov (ecx, ptr[r15+rdi*1+1000]); dump();
-mov (ecx, ptr[r15+rdi*1-1]); dump();
-mov (ecx, ptr[r15+rdi*1-1000]); dump();
-mov (ecx, ptr[r15+rdi*2+0]); dump();
-mov (ecx, ptr[r15+rdi*2+1]); dump();
-mov (ecx, ptr[r15+rdi*2+1000]); dump();
-mov (ecx, ptr[r15+rdi*2-1]); dump();
-mov (ecx, ptr[r15+rdi*2-1000]); dump();
-mov (ecx, ptr[r15+rdi*4+0]); dump();
-mov (ecx, ptr[r15+rdi*4+1]); dump();
-mov (ecx, ptr[r15+rdi*4+1000]); dump();
-mov (ecx, ptr[r15+rdi*4-1]); dump();
-mov (ecx, ptr[r15+rdi*4-1000]); dump();
-mov (ecx, ptr[r15+rdi*8+0]); dump();
-mov (ecx, ptr[r15+rdi*8+1]); dump();
-mov (ecx, ptr[r15+rdi*8+1000]); dump();
-mov (ecx, ptr[r15+rdi*8-1]); dump();
-mov (ecx, ptr[r15+rdi*8-1000]); dump();
-mov (ecx, ptr[r15+r9+0]); dump();
-mov (ecx, ptr[r15+r9+1]); dump();
-mov (ecx, ptr[r15+r9+1000]); dump();
-mov (ecx, ptr[r15+r9-1]); dump();
-mov (ecx, ptr[r15+r9-1000]); dump();
-mov (ecx, ptr[r15+r9*1+0]); dump();
-mov (ecx, ptr[r15+r9*1+1]); dump();
-mov (ecx, ptr[r15+r9*1+1000]); dump();
-mov (ecx, ptr[r15+r9*1-1]); dump();
-mov (ecx, ptr[r15+r9*1-1000]); dump();
-mov (ecx, ptr[r15+r9*2+0]); dump();
-mov (ecx, ptr[r15+r9*2+1]); dump();
-mov (ecx, ptr[r15+r9*2+1000]); dump();
-mov (ecx, ptr[r15+r9*2-1]); dump();
-mov (ecx, ptr[r15+r9*2-1000]); dump();
-mov (ecx, ptr[r15+r9*4+0]); dump();
-mov (ecx, ptr[r15+r9*4+1]); dump();
-mov (ecx, ptr[r15+r9*4+1000]); dump();
-mov (ecx, ptr[r15+r9*4-1]); dump();
-mov (ecx, ptr[r15+r9*4-1000]); dump();
-mov (ecx, ptr[r15+r9*8+0]); dump();
-mov (ecx, ptr[r15+r9*8+1]); dump();
-mov (ecx, ptr[r15+r9*8+1000]); dump();
-mov (ecx, ptr[r15+r9*8-1]); dump();
-mov (ecx, ptr[r15+r9*8-1000]); dump();
-mov (ecx, ptr[r15+r10+0]); dump();
-mov (ecx, ptr[r15+r10+1]); dump();
-mov (ecx, ptr[r15+r10+1000]); dump();
-mov (ecx, ptr[r15+r10-1]); dump();
-mov (ecx, ptr[r15+r10-1000]); dump();
-mov (ecx, ptr[r15+r10*1+0]); dump();
-mov (ecx, ptr[r15+r10*1+1]); dump();
-mov (ecx, ptr[r15+r10*1+1000]); dump();
-mov (ecx, ptr[r15+r10*1-1]); dump();
-mov (ecx, ptr[r15+r10*1-1000]); dump();
-mov (ecx, ptr[r15+r10*2+0]); dump();
-mov (ecx, ptr[r15+r10*2+1]); dump();
-mov (ecx, ptr[r15+r10*2+1000]); dump();
-mov (ecx, ptr[r15+r10*2-1]); dump();
-mov (ecx, ptr[r15+r10*2-1000]); dump();
-mov (ecx, ptr[r15+r10*4+0]); dump();
-mov (ecx, ptr[r15+r10*4+1]); dump();
-mov (ecx, ptr[r15+r10*4+1000]); dump();
-mov (ecx, ptr[r15+r10*4-1]); dump();
-mov (ecx, ptr[r15+r10*4-1000]); dump();
-mov (ecx, ptr[r15+r10*8+0]); dump();
-mov (ecx, ptr[r15+r10*8+1]); dump();
-mov (ecx, ptr[r15+r10*8+1000]); dump();
-mov (ecx, ptr[r15+r10*8-1]); dump();
-mov (ecx, ptr[r15+r10*8-1000]); dump();
-mov (ecx, ptr[r15+r11+0]); dump();
-mov (ecx, ptr[r15+r11+1]); dump();
-mov (ecx, ptr[r15+r11+1000]); dump();
-mov (ecx, ptr[r15+r11-1]); dump();
-mov (ecx, ptr[r15+r11-1000]); dump();
-mov (ecx, ptr[r15+r11*1+0]); dump();
-mov (ecx, ptr[r15+r11*1+1]); dump();
-mov (ecx, ptr[r15+r11*1+1000]); dump();
-mov (ecx, ptr[r15+r11*1-1]); dump();
-mov (ecx, ptr[r15+r11*1-1000]); dump();
-mov (ecx, ptr[r15+r11*2+0]); dump();
-mov (ecx, ptr[r15+r11*2+1]); dump();
-mov (ecx, ptr[r15+r11*2+1000]); dump();
-mov (ecx, ptr[r15+r11*2-1]); dump();
-mov (ecx, ptr[r15+r11*2-1000]); dump();
-mov (ecx, ptr[r15+r11*4+0]); dump();
-mov (ecx, ptr[r15+r11*4+1]); dump();
-mov (ecx, ptr[r15+r11*4+1000]); dump();
-mov (ecx, ptr[r15+r11*4-1]); dump();
-mov (ecx, ptr[r15+r11*4-1000]); dump();
-mov (ecx, ptr[r15+r11*8+0]); dump();
-mov (ecx, ptr[r15+r11*8+1]); dump();
-mov (ecx, ptr[r15+r11*8+1000]); dump();
-mov (ecx, ptr[r15+r11*8-1]); dump();
-mov (ecx, ptr[r15+r11*8-1000]); dump();
-}
- void gen55(){
-mov (ecx, ptr[r15+r12+0]); dump();
-mov (ecx, ptr[r15+r12+1]); dump();
-mov (ecx, ptr[r15+r12+1000]); dump();
-mov (ecx, ptr[r15+r12-1]); dump();
-mov (ecx, ptr[r15+r12-1000]); dump();
-mov (ecx, ptr[r15+r12*1+0]); dump();
-mov (ecx, ptr[r15+r12*1+1]); dump();
-mov (ecx, ptr[r15+r12*1+1000]); dump();
-mov (ecx, ptr[r15+r12*1-1]); dump();
-mov (ecx, ptr[r15+r12*1-1000]); dump();
-mov (ecx, ptr[r15+r12*2+0]); dump();
-mov (ecx, ptr[r15+r12*2+1]); dump();
-mov (ecx, ptr[r15+r12*2+1000]); dump();
-mov (ecx, ptr[r15+r12*2-1]); dump();
-mov (ecx, ptr[r15+r12*2-1000]); dump();
-mov (ecx, ptr[r15+r12*4+0]); dump();
-mov (ecx, ptr[r15+r12*4+1]); dump();
-mov (ecx, ptr[r15+r12*4+1000]); dump();
-mov (ecx, ptr[r15+r12*4-1]); dump();
-mov (ecx, ptr[r15+r12*4-1000]); dump();
-mov (ecx, ptr[r15+r12*8+0]); dump();
-mov (ecx, ptr[r15+r12*8+1]); dump();
-mov (ecx, ptr[r15+r12*8+1000]); dump();
-mov (ecx, ptr[r15+r12*8-1]); dump();
-mov (ecx, ptr[r15+r12*8-1000]); dump();
-mov (ecx, ptr[r15+r13+0]); dump();
-mov (ecx, ptr[r15+r13+1]); dump();
-mov (ecx, ptr[r15+r13+1000]); dump();
-mov (ecx, ptr[r15+r13-1]); dump();
-mov (ecx, ptr[r15+r13-1000]); dump();
-mov (ecx, ptr[r15+r13*1+0]); dump();
-mov (ecx, ptr[r15+r13*1+1]); dump();
-mov (ecx, ptr[r15+r13*1+1000]); dump();
-mov (ecx, ptr[r15+r13*1-1]); dump();
-mov (ecx, ptr[r15+r13*1-1000]); dump();
-mov (ecx, ptr[r15+r13*2+0]); dump();
-mov (ecx, ptr[r15+r13*2+1]); dump();
-mov (ecx, ptr[r15+r13*2+1000]); dump();
-mov (ecx, ptr[r15+r13*2-1]); dump();
-mov (ecx, ptr[r15+r13*2-1000]); dump();
-mov (ecx, ptr[r15+r13*4+0]); dump();
-mov (ecx, ptr[r15+r13*4+1]); dump();
-mov (ecx, ptr[r15+r13*4+1000]); dump();
-mov (ecx, ptr[r15+r13*4-1]); dump();
-mov (ecx, ptr[r15+r13*4-1000]); dump();
-mov (ecx, ptr[r15+r13*8+0]); dump();
-mov (ecx, ptr[r15+r13*8+1]); dump();
-mov (ecx, ptr[r15+r13*8+1000]); dump();
-mov (ecx, ptr[r15+r13*8-1]); dump();
-mov (ecx, ptr[r15+r13*8-1000]); dump();
-mov (ecx, ptr[r15+r14+0]); dump();
-mov (ecx, ptr[r15+r14+1]); dump();
-mov (ecx, ptr[r15+r14+1000]); dump();
-mov (ecx, ptr[r15+r14-1]); dump();
-mov (ecx, ptr[r15+r14-1000]); dump();
-mov (ecx, ptr[r15+r14*1+0]); dump();
-mov (ecx, ptr[r15+r14*1+1]); dump();
-mov (ecx, ptr[r15+r14*1+1000]); dump();
-mov (ecx, ptr[r15+r14*1-1]); dump();
-mov (ecx, ptr[r15+r14*1-1000]); dump();
-mov (ecx, ptr[r15+r14*2+0]); dump();
-mov (ecx, ptr[r15+r14*2+1]); dump();
-mov (ecx, ptr[r15+r14*2+1000]); dump();
-mov (ecx, ptr[r15+r14*2-1]); dump();
-mov (ecx, ptr[r15+r14*2-1000]); dump();
-mov (ecx, ptr[r15+r14*4+0]); dump();
-mov (ecx, ptr[r15+r14*4+1]); dump();
-mov (ecx, ptr[r15+r14*4+1000]); dump();
-mov (ecx, ptr[r15+r14*4-1]); dump();
-mov (ecx, ptr[r15+r14*4-1000]); dump();
-mov (ecx, ptr[r15+r14*8+0]); dump();
-mov (ecx, ptr[r15+r14*8+1]); dump();
-mov (ecx, ptr[r15+r14*8+1000]); dump();
-mov (ecx, ptr[r15+r14*8-1]); dump();
-mov (ecx, ptr[r15+r14*8-1000]); dump();
-mov (ecx, ptr[r15+r15+0]); dump();
-mov (ecx, ptr[r15+r15+1]); dump();
-mov (ecx, ptr[r15+r15+1000]); dump();
-mov (ecx, ptr[r15+r15-1]); dump();
-mov (ecx, ptr[r15+r15-1000]); dump();
-mov (ecx, ptr[r15+r15*1+0]); dump();
-mov (ecx, ptr[r15+r15*1+1]); dump();
-mov (ecx, ptr[r15+r15*1+1000]); dump();
-mov (ecx, ptr[r15+r15*1-1]); dump();
-mov (ecx, ptr[r15+r15*1-1000]); dump();
-mov (ecx, ptr[r15+r15*2+0]); dump();
-mov (ecx, ptr[r15+r15*2+1]); dump();
-mov (ecx, ptr[r15+r15*2+1000]); dump();
-mov (ecx, ptr[r15+r15*2-1]); dump();
-mov (ecx, ptr[r15+r15*2-1000]); dump();
-mov (ecx, ptr[r15+r15*4+0]); dump();
-mov (ecx, ptr[r15+r15*4+1]); dump();
-mov (ecx, ptr[r15+r15*4+1000]); dump();
-mov (ecx, ptr[r15+r15*4-1]); dump();
-mov (ecx, ptr[r15+r15*4-1000]); dump();
-mov (ecx, ptr[r15+r15*8+0]); dump();
-mov (ecx, ptr[r15+r15*8+1]); dump();
-mov (ecx, ptr[r15+r15*8+1000]); dump();
-mov (ecx, ptr[r15+r15*8-1]); dump();
-mov (ecx, ptr[r15+r15*8-1000]); dump();
-}
- void gen56(){
-mov (ecx, ptr[r15+0]); dump();
-mov (ecx, ptr[r15+1]); dump();
-mov (ecx, ptr[r15+1000]); dump();
-mov (ecx, ptr[r15-1]); dump();
-mov (ecx, ptr[r15-1000]); dump();
-mov (ecx, ptr[r15+0]); dump();
-mov (ecx, ptr[r15+1]); dump();
-mov (ecx, ptr[r15+1000]); dump();
-mov (ecx, ptr[r15-1]); dump();
-mov (ecx, ptr[r15-1000]); dump();
-mov (ecx, ptr[r15+0]); dump();
-mov (ecx, ptr[r15+1]); dump();
-mov (ecx, ptr[r15+1000]); dump();
-mov (ecx, ptr[r15-1]); dump();
-mov (ecx, ptr[r15-1000]); dump();
-mov (ecx, ptr[r15+0]); dump();
-mov (ecx, ptr[r15+1]); dump();
-mov (ecx, ptr[r15+1000]); dump();
-mov (ecx, ptr[r15-1]); dump();
-mov (ecx, ptr[r15-1000]); dump();
-mov (ecx, ptr[r15+0]); dump();
-mov (ecx, ptr[r15+1]); dump();
-mov (ecx, ptr[r15+1000]); dump();
-mov (ecx, ptr[r15-1]); dump();
-mov (ecx, ptr[r15-1000]); dump();
-mov (ecx, ptr[rax+0]); dump();
-mov (ecx, ptr[rax+1]); dump();
-mov (ecx, ptr[rax+1000]); dump();
-mov (ecx, ptr[rax-1]); dump();
-mov (ecx, ptr[rax-1000]); dump();
-mov (ecx, ptr[rax*1+0]); dump();
-mov (ecx, ptr[rax*1+1]); dump();
-mov (ecx, ptr[rax*1+1000]); dump();
-mov (ecx, ptr[rax*1-1]); dump();
-mov (ecx, ptr[rax*1-1000]); dump();
-mov (ecx, ptr[rax*2+0]); dump();
-mov (ecx, ptr[rax*2+1]); dump();
-mov (ecx, ptr[rax*2+1000]); dump();
-mov (ecx, ptr[rax*2-1]); dump();
-mov (ecx, ptr[rax*2-1000]); dump();
-mov (ecx, ptr[rax*4+0]); dump();
-mov (ecx, ptr[rax*4+1]); dump();
-mov (ecx, ptr[rax*4+1000]); dump();
-mov (ecx, ptr[rax*4-1]); dump();
-mov (ecx, ptr[rax*4-1000]); dump();
-mov (ecx, ptr[rax*8+0]); dump();
-mov (ecx, ptr[rax*8+1]); dump();
-mov (ecx, ptr[rax*8+1000]); dump();
-mov (ecx, ptr[rax*8-1]); dump();
-mov (ecx, ptr[rax*8-1000]); dump();
-mov (ecx, ptr[rcx+0]); dump();
-mov (ecx, ptr[rcx+1]); dump();
-mov (ecx, ptr[rcx+1000]); dump();
-mov (ecx, ptr[rcx-1]); dump();
-mov (ecx, ptr[rcx-1000]); dump();
-mov (ecx, ptr[rcx*1+0]); dump();
-mov (ecx, ptr[rcx*1+1]); dump();
-mov (ecx, ptr[rcx*1+1000]); dump();
-mov (ecx, ptr[rcx*1-1]); dump();
-mov (ecx, ptr[rcx*1-1000]); dump();
-mov (ecx, ptr[rcx*2+0]); dump();
-mov (ecx, ptr[rcx*2+1]); dump();
-mov (ecx, ptr[rcx*2+1000]); dump();
-mov (ecx, ptr[rcx*2-1]); dump();
-mov (ecx, ptr[rcx*2-1000]); dump();
-mov (ecx, ptr[rcx*4+0]); dump();
-mov (ecx, ptr[rcx*4+1]); dump();
-mov (ecx, ptr[rcx*4+1000]); dump();
-mov (ecx, ptr[rcx*4-1]); dump();
-mov (ecx, ptr[rcx*4-1000]); dump();
-mov (ecx, ptr[rcx*8+0]); dump();
-mov (ecx, ptr[rcx*8+1]); dump();
-mov (ecx, ptr[rcx*8+1000]); dump();
-mov (ecx, ptr[rcx*8-1]); dump();
-mov (ecx, ptr[rcx*8-1000]); dump();
-mov (ecx, ptr[rdx+0]); dump();
-mov (ecx, ptr[rdx+1]); dump();
-mov (ecx, ptr[rdx+1000]); dump();
-mov (ecx, ptr[rdx-1]); dump();
-mov (ecx, ptr[rdx-1000]); dump();
-mov (ecx, ptr[rdx*1+0]); dump();
-mov (ecx, ptr[rdx*1+1]); dump();
-mov (ecx, ptr[rdx*1+1000]); dump();
-mov (ecx, ptr[rdx*1-1]); dump();
-mov (ecx, ptr[rdx*1-1000]); dump();
-mov (ecx, ptr[rdx*2+0]); dump();
-mov (ecx, ptr[rdx*2+1]); dump();
-mov (ecx, ptr[rdx*2+1000]); dump();
-mov (ecx, ptr[rdx*2-1]); dump();
-mov (ecx, ptr[rdx*2-1000]); dump();
-mov (ecx, ptr[rdx*4+0]); dump();
-mov (ecx, ptr[rdx*4+1]); dump();
-mov (ecx, ptr[rdx*4+1000]); dump();
-mov (ecx, ptr[rdx*4-1]); dump();
-mov (ecx, ptr[rdx*4-1000]); dump();
-mov (ecx, ptr[rdx*8+0]); dump();
-mov (ecx, ptr[rdx*8+1]); dump();
-mov (ecx, ptr[rdx*8+1000]); dump();
-mov (ecx, ptr[rdx*8-1]); dump();
-mov (ecx, ptr[rdx*8-1000]); dump();
-}
- void gen57(){
-mov (ecx, ptr[rbx+0]); dump();
-mov (ecx, ptr[rbx+1]); dump();
-mov (ecx, ptr[rbx+1000]); dump();
-mov (ecx, ptr[rbx-1]); dump();
-mov (ecx, ptr[rbx-1000]); dump();
-mov (ecx, ptr[rbx*1+0]); dump();
-mov (ecx, ptr[rbx*1+1]); dump();
-mov (ecx, ptr[rbx*1+1000]); dump();
-mov (ecx, ptr[rbx*1-1]); dump();
-mov (ecx, ptr[rbx*1-1000]); dump();
-mov (ecx, ptr[rbx*2+0]); dump();
-mov (ecx, ptr[rbx*2+1]); dump();
-mov (ecx, ptr[rbx*2+1000]); dump();
-mov (ecx, ptr[rbx*2-1]); dump();
-mov (ecx, ptr[rbx*2-1000]); dump();
-mov (ecx, ptr[rbx*4+0]); dump();
-mov (ecx, ptr[rbx*4+1]); dump();
-mov (ecx, ptr[rbx*4+1000]); dump();
-mov (ecx, ptr[rbx*4-1]); dump();
-mov (ecx, ptr[rbx*4-1000]); dump();
-mov (ecx, ptr[rbx*8+0]); dump();
-mov (ecx, ptr[rbx*8+1]); dump();
-mov (ecx, ptr[rbx*8+1000]); dump();
-mov (ecx, ptr[rbx*8-1]); dump();
-mov (ecx, ptr[rbx*8-1000]); dump();
-mov (ecx, ptr[rbp+0]); dump();
-mov (ecx, ptr[rbp+1]); dump();
-mov (ecx, ptr[rbp+1000]); dump();
-mov (ecx, ptr[rbp-1]); dump();
-mov (ecx, ptr[rbp-1000]); dump();
-mov (ecx, ptr[rbp*1+0]); dump();
-mov (ecx, ptr[rbp*1+1]); dump();
-mov (ecx, ptr[rbp*1+1000]); dump();
-mov (ecx, ptr[rbp*1-1]); dump();
-mov (ecx, ptr[rbp*1-1000]); dump();
-mov (ecx, ptr[rbp*2+0]); dump();
-mov (ecx, ptr[rbp*2+1]); dump();
-mov (ecx, ptr[rbp*2+1000]); dump();
-mov (ecx, ptr[rbp*2-1]); dump();
-mov (ecx, ptr[rbp*2-1000]); dump();
-mov (ecx, ptr[rbp*4+0]); dump();
-mov (ecx, ptr[rbp*4+1]); dump();
-mov (ecx, ptr[rbp*4+1000]); dump();
-mov (ecx, ptr[rbp*4-1]); dump();
-mov (ecx, ptr[rbp*4-1000]); dump();
-mov (ecx, ptr[rbp*8+0]); dump();
-mov (ecx, ptr[rbp*8+1]); dump();
-mov (ecx, ptr[rbp*8+1000]); dump();
-mov (ecx, ptr[rbp*8-1]); dump();
-mov (ecx, ptr[rbp*8-1000]); dump();
-mov (ecx, ptr[rsi+0]); dump();
-mov (ecx, ptr[rsi+1]); dump();
-mov (ecx, ptr[rsi+1000]); dump();
-mov (ecx, ptr[rsi-1]); dump();
-mov (ecx, ptr[rsi-1000]); dump();
-mov (ecx, ptr[rsi*1+0]); dump();
-mov (ecx, ptr[rsi*1+1]); dump();
-mov (ecx, ptr[rsi*1+1000]); dump();
-mov (ecx, ptr[rsi*1-1]); dump();
-mov (ecx, ptr[rsi*1-1000]); dump();
-mov (ecx, ptr[rsi*2+0]); dump();
-mov (ecx, ptr[rsi*2+1]); dump();
-mov (ecx, ptr[rsi*2+1000]); dump();
-mov (ecx, ptr[rsi*2-1]); dump();
-mov (ecx, ptr[rsi*2-1000]); dump();
-mov (ecx, ptr[rsi*4+0]); dump();
-mov (ecx, ptr[rsi*4+1]); dump();
-mov (ecx, ptr[rsi*4+1000]); dump();
-mov (ecx, ptr[rsi*4-1]); dump();
-mov (ecx, ptr[rsi*4-1000]); dump();
-mov (ecx, ptr[rsi*8+0]); dump();
-mov (ecx, ptr[rsi*8+1]); dump();
-mov (ecx, ptr[rsi*8+1000]); dump();
-mov (ecx, ptr[rsi*8-1]); dump();
-mov (ecx, ptr[rsi*8-1000]); dump();
-mov (ecx, ptr[rdi+0]); dump();
-mov (ecx, ptr[rdi+1]); dump();
-mov (ecx, ptr[rdi+1000]); dump();
-mov (ecx, ptr[rdi-1]); dump();
-mov (ecx, ptr[rdi-1000]); dump();
-mov (ecx, ptr[rdi*1+0]); dump();
-mov (ecx, ptr[rdi*1+1]); dump();
-mov (ecx, ptr[rdi*1+1000]); dump();
-mov (ecx, ptr[rdi*1-1]); dump();
-mov (ecx, ptr[rdi*1-1000]); dump();
-mov (ecx, ptr[rdi*2+0]); dump();
-mov (ecx, ptr[rdi*2+1]); dump();
-mov (ecx, ptr[rdi*2+1000]); dump();
-mov (ecx, ptr[rdi*2-1]); dump();
-mov (ecx, ptr[rdi*2-1000]); dump();
-mov (ecx, ptr[rdi*4+0]); dump();
-mov (ecx, ptr[rdi*4+1]); dump();
-mov (ecx, ptr[rdi*4+1000]); dump();
-mov (ecx, ptr[rdi*4-1]); dump();
-mov (ecx, ptr[rdi*4-1000]); dump();
-mov (ecx, ptr[rdi*8+0]); dump();
-mov (ecx, ptr[rdi*8+1]); dump();
-mov (ecx, ptr[rdi*8+1000]); dump();
-mov (ecx, ptr[rdi*8-1]); dump();
-mov (ecx, ptr[rdi*8-1000]); dump();
-}
- void gen58(){
-mov (ecx, ptr[r9+0]); dump();
-mov (ecx, ptr[r9+1]); dump();
-mov (ecx, ptr[r9+1000]); dump();
-mov (ecx, ptr[r9-1]); dump();
-mov (ecx, ptr[r9-1000]); dump();
-mov (ecx, ptr[r9*1+0]); dump();
-mov (ecx, ptr[r9*1+1]); dump();
-mov (ecx, ptr[r9*1+1000]); dump();
-mov (ecx, ptr[r9*1-1]); dump();
-mov (ecx, ptr[r9*1-1000]); dump();
-mov (ecx, ptr[r9*2+0]); dump();
-mov (ecx, ptr[r9*2+1]); dump();
-mov (ecx, ptr[r9*2+1000]); dump();
-mov (ecx, ptr[r9*2-1]); dump();
-mov (ecx, ptr[r9*2-1000]); dump();
-mov (ecx, ptr[r9*4+0]); dump();
-mov (ecx, ptr[r9*4+1]); dump();
-mov (ecx, ptr[r9*4+1000]); dump();
-mov (ecx, ptr[r9*4-1]); dump();
-mov (ecx, ptr[r9*4-1000]); dump();
-mov (ecx, ptr[r9*8+0]); dump();
-mov (ecx, ptr[r9*8+1]); dump();
-mov (ecx, ptr[r9*8+1000]); dump();
-mov (ecx, ptr[r9*8-1]); dump();
-mov (ecx, ptr[r9*8-1000]); dump();
-mov (ecx, ptr[r10+0]); dump();
-mov (ecx, ptr[r10+1]); dump();
-mov (ecx, ptr[r10+1000]); dump();
-mov (ecx, ptr[r10-1]); dump();
-mov (ecx, ptr[r10-1000]); dump();
-mov (ecx, ptr[r10*1+0]); dump();
-mov (ecx, ptr[r10*1+1]); dump();
-mov (ecx, ptr[r10*1+1000]); dump();
-mov (ecx, ptr[r10*1-1]); dump();
-mov (ecx, ptr[r10*1-1000]); dump();
-mov (ecx, ptr[r10*2+0]); dump();
-mov (ecx, ptr[r10*2+1]); dump();
-mov (ecx, ptr[r10*2+1000]); dump();
-mov (ecx, ptr[r10*2-1]); dump();
-mov (ecx, ptr[r10*2-1000]); dump();
-mov (ecx, ptr[r10*4+0]); dump();
-mov (ecx, ptr[r10*4+1]); dump();
-mov (ecx, ptr[r10*4+1000]); dump();
-mov (ecx, ptr[r10*4-1]); dump();
-mov (ecx, ptr[r10*4-1000]); dump();
-mov (ecx, ptr[r10*8+0]); dump();
-mov (ecx, ptr[r10*8+1]); dump();
-mov (ecx, ptr[r10*8+1000]); dump();
-mov (ecx, ptr[r10*8-1]); dump();
-mov (ecx, ptr[r10*8-1000]); dump();
-mov (ecx, ptr[r11+0]); dump();
-mov (ecx, ptr[r11+1]); dump();
-mov (ecx, ptr[r11+1000]); dump();
-mov (ecx, ptr[r11-1]); dump();
-mov (ecx, ptr[r11-1000]); dump();
-mov (ecx, ptr[r11*1+0]); dump();
-mov (ecx, ptr[r11*1+1]); dump();
-mov (ecx, ptr[r11*1+1000]); dump();
-mov (ecx, ptr[r11*1-1]); dump();
-mov (ecx, ptr[r11*1-1000]); dump();
-mov (ecx, ptr[r11*2+0]); dump();
-mov (ecx, ptr[r11*2+1]); dump();
-mov (ecx, ptr[r11*2+1000]); dump();
-mov (ecx, ptr[r11*2-1]); dump();
-mov (ecx, ptr[r11*2-1000]); dump();
-mov (ecx, ptr[r11*4+0]); dump();
-mov (ecx, ptr[r11*4+1]); dump();
-mov (ecx, ptr[r11*4+1000]); dump();
-mov (ecx, ptr[r11*4-1]); dump();
-mov (ecx, ptr[r11*4-1000]); dump();
-mov (ecx, ptr[r11*8+0]); dump();
-mov (ecx, ptr[r11*8+1]); dump();
-mov (ecx, ptr[r11*8+1000]); dump();
-mov (ecx, ptr[r11*8-1]); dump();
-mov (ecx, ptr[r11*8-1000]); dump();
-mov (ecx, ptr[r12+0]); dump();
-mov (ecx, ptr[r12+1]); dump();
-mov (ecx, ptr[r12+1000]); dump();
-mov (ecx, ptr[r12-1]); dump();
-mov (ecx, ptr[r12-1000]); dump();
-mov (ecx, ptr[r12*1+0]); dump();
-mov (ecx, ptr[r12*1+1]); dump();
-mov (ecx, ptr[r12*1+1000]); dump();
-mov (ecx, ptr[r12*1-1]); dump();
-mov (ecx, ptr[r12*1-1000]); dump();
-mov (ecx, ptr[r12*2+0]); dump();
-mov (ecx, ptr[r12*2+1]); dump();
-mov (ecx, ptr[r12*2+1000]); dump();
-mov (ecx, ptr[r12*2-1]); dump();
-mov (ecx, ptr[r12*2-1000]); dump();
-mov (ecx, ptr[r12*4+0]); dump();
-mov (ecx, ptr[r12*4+1]); dump();
-mov (ecx, ptr[r12*4+1000]); dump();
-mov (ecx, ptr[r12*4-1]); dump();
-mov (ecx, ptr[r12*4-1000]); dump();
-mov (ecx, ptr[r12*8+0]); dump();
-mov (ecx, ptr[r12*8+1]); dump();
-mov (ecx, ptr[r12*8+1000]); dump();
-mov (ecx, ptr[r12*8-1]); dump();
-mov (ecx, ptr[r12*8-1000]); dump();
-}
- void gen59(){
-mov (ecx, ptr[r13+0]); dump();
-mov (ecx, ptr[r13+1]); dump();
-mov (ecx, ptr[r13+1000]); dump();
-mov (ecx, ptr[r13-1]); dump();
-mov (ecx, ptr[r13-1000]); dump();
-mov (ecx, ptr[r13*1+0]); dump();
-mov (ecx, ptr[r13*1+1]); dump();
-mov (ecx, ptr[r13*1+1000]); dump();
-mov (ecx, ptr[r13*1-1]); dump();
-mov (ecx, ptr[r13*1-1000]); dump();
-mov (ecx, ptr[r13*2+0]); dump();
-mov (ecx, ptr[r13*2+1]); dump();
-mov (ecx, ptr[r13*2+1000]); dump();
-mov (ecx, ptr[r13*2-1]); dump();
-mov (ecx, ptr[r13*2-1000]); dump();
-mov (ecx, ptr[r13*4+0]); dump();
-mov (ecx, ptr[r13*4+1]); dump();
-mov (ecx, ptr[r13*4+1000]); dump();
-mov (ecx, ptr[r13*4-1]); dump();
-mov (ecx, ptr[r13*4-1000]); dump();
-mov (ecx, ptr[r13*8+0]); dump();
-mov (ecx, ptr[r13*8+1]); dump();
-mov (ecx, ptr[r13*8+1000]); dump();
-mov (ecx, ptr[r13*8-1]); dump();
-mov (ecx, ptr[r13*8-1000]); dump();
-mov (ecx, ptr[r14+0]); dump();
-mov (ecx, ptr[r14+1]); dump();
-mov (ecx, ptr[r14+1000]); dump();
-mov (ecx, ptr[r14-1]); dump();
-mov (ecx, ptr[r14-1000]); dump();
-mov (ecx, ptr[r14*1+0]); dump();
-mov (ecx, ptr[r14*1+1]); dump();
-mov (ecx, ptr[r14*1+1000]); dump();
-mov (ecx, ptr[r14*1-1]); dump();
-mov (ecx, ptr[r14*1-1000]); dump();
-mov (ecx, ptr[r14*2+0]); dump();
-mov (ecx, ptr[r14*2+1]); dump();
-mov (ecx, ptr[r14*2+1000]); dump();
-mov (ecx, ptr[r14*2-1]); dump();
-mov (ecx, ptr[r14*2-1000]); dump();
-mov (ecx, ptr[r14*4+0]); dump();
-mov (ecx, ptr[r14*4+1]); dump();
-mov (ecx, ptr[r14*4+1000]); dump();
-mov (ecx, ptr[r14*4-1]); dump();
-mov (ecx, ptr[r14*4-1000]); dump();
-mov (ecx, ptr[r14*8+0]); dump();
-mov (ecx, ptr[r14*8+1]); dump();
-mov (ecx, ptr[r14*8+1000]); dump();
-mov (ecx, ptr[r14*8-1]); dump();
-mov (ecx, ptr[r14*8-1000]); dump();
-mov (ecx, ptr[r15+0]); dump();
-mov (ecx, ptr[r15+1]); dump();
-mov (ecx, ptr[r15+1000]); dump();
-mov (ecx, ptr[r15-1]); dump();
-mov (ecx, ptr[r15-1000]); dump();
-mov (ecx, ptr[r15*1+0]); dump();
-mov (ecx, ptr[r15*1+1]); dump();
-mov (ecx, ptr[r15*1+1000]); dump();
-mov (ecx, ptr[r15*1-1]); dump();
-mov (ecx, ptr[r15*1-1000]); dump();
-mov (ecx, ptr[r15*2+0]); dump();
-mov (ecx, ptr[r15*2+1]); dump();
-mov (ecx, ptr[r15*2+1000]); dump();
-mov (ecx, ptr[r15*2-1]); dump();
-mov (ecx, ptr[r15*2-1000]); dump();
-mov (ecx, ptr[r15*4+0]); dump();
-mov (ecx, ptr[r15*4+1]); dump();
-mov (ecx, ptr[r15*4+1000]); dump();
-mov (ecx, ptr[r15*4-1]); dump();
-mov (ecx, ptr[r15*4-1000]); dump();
-mov (ecx, ptr[r15*8+0]); dump();
-mov (ecx, ptr[r15*8+1]); dump();
-mov (ecx, ptr[r15*8+1000]); dump();
-mov (ecx, ptr[r15*8-1]); dump();
-mov (ecx, ptr[r15*8-1000]); dump();
-mov (ecx, ptr[(void*)0x00000000]); dump();
-mov (ecx, ptr[(void*)0x00000001]); dump();
-mov (ecx, ptr[(void*)0x000003E8]); dump();
-mov (ecx, ptr[(void*)0xFFFFFFFF]); dump();
-mov (ecx, ptr[(void*)0xFFFFFC18]); dump();
-mov (ecx, ptr[(void*)0x00000000]); dump();
-mov (ecx, ptr[(void*)0x00000001]); dump();
-mov (ecx, ptr[(void*)0x000003E8]); dump();
-mov (ecx, ptr[(void*)0xFFFFFFFF]); dump();
-mov (ecx, ptr[(void*)0xFFFFFC18]); dump();
-mov (ecx, ptr[(void*)0x00000000]); dump();
-mov (ecx, ptr[(void*)0x00000001]); dump();
-mov (ecx, ptr[(void*)0x000003E8]); dump();
-mov (ecx, ptr[(void*)0xFFFFFFFF]); dump();
-mov (ecx, ptr[(void*)0xFFFFFC18]); dump();
-mov (ecx, ptr[(void*)0x00000000]); dump();
-mov (ecx, ptr[(void*)0x00000001]); dump();
-mov (ecx, ptr[(void*)0x000003E8]); dump();
-mov (ecx, ptr[(void*)0xFFFFFFFF]); dump();
-mov (ecx, ptr[(void*)0xFFFFFC18]); dump();
-mov (ecx, ptr[(void*)0x00000000]); dump();
-mov (ecx, ptr[(void*)0x00000001]); dump();
-mov (ecx, ptr[(void*)0x000003E8]); dump();
-mov (ecx, ptr[(void*)0xFFFFFFFF]); dump();
-mov (ecx, ptr[(void*)0xFFFFFC18]); dump();
-}
- void gen60(){
-}
-void gen(){
- gen0();
- gen1();
- gen2();
- gen3();
- gen4();
- gen5();
- gen6();
- gen7();
- gen8();
- gen9();
- gen10();
- gen11();
- gen12();
- gen13();
- gen14();
- gen15();
- gen16();
- gen17();
- gen18();
- gen19();
- gen20();
- gen21();
- gen22();
- gen23();
- gen24();
- gen25();
- gen26();
- gen27();
- gen28();
- gen29();
- gen30();
- gen31();
- gen32();
- gen33();
- gen34();
- gen35();
- gen36();
- gen37();
- gen38();
- gen39();
- gen40();
- gen41();
- gen42();
- gen43();
- gen44();
- gen45();
- gen46();
- gen47();
- gen48();
- gen49();
- gen50();
- gen51();
- gen52();
- gen53();
- gen54();
- gen55();
- gen56();
- gen57();
- gen58();
- gen59();
- gen60();
-}
+ void gen0()
+ {
+vaddpd (xmm3, xmm7); dump();
+vaddpd (xmm2, ptr[eax+ecx+3]); dump();
+vaddpd (xmm2, xmm3, xmm5); dump();
+vaddpd (xmm0, xmm0, ptr[eax+ecx+3]); dump();
+vaddpd (ymm3, ptr[eax+ecx+3]); dump();
+vaddpd (ymm5, ymm3); dump();
+vaddpd (ymm3, ymm7, ptr[eax+ecx+3]); dump();
+vaddpd (ymm3, ymm0, ymm7); dump();
+vaddps (xmm0, xmm1); dump();
+vaddps (xmm6, ptr[eax+ecx+3]); dump();
+vaddps (xmm6, xmm0, xmm4); dump();
+vaddps (xmm0, xmm3, ptr[eax+ecx+3]); dump();
+vaddps (ymm3, ptr[eax+ecx+3]); dump();
+vaddps (ymm7, ymm3); dump();
+vaddps (ymm6, ymm7, ptr[eax+ecx+3]); dump();
+vaddps (ymm4, ymm6, ymm7); dump();
+vaddsd (xmm3, xmm1); dump();
+vaddsd (xmm7, ptr[eax+ecx+3]); dump();
+vaddsd (xmm3, xmm1, xmm6); dump();
+vaddsd (xmm5, xmm3, ptr[eax+ecx+3]); dump();
+vaddss (xmm2, xmm4); dump();
+vaddss (xmm5, ptr[eax+ecx+3]); dump();
+vaddss (xmm4, xmm4, xmm6); dump();
+vaddss (xmm6, xmm5, ptr[eax+ecx+3]); dump();
+vsubpd (xmm5, xmm0); dump();
+vsubpd (xmm4, ptr[eax+ecx+3]); dump();
+vsubpd (xmm2, xmm1, xmm2); dump();
+vsubpd (xmm1, xmm3, ptr[eax+ecx+3]); dump();
+vsubpd (ymm6, ptr[eax+ecx+3]); dump();
+vsubpd (ymm0, ymm6); dump();
+vsubpd (ymm6, ymm3, ptr[eax+ecx+3]); dump();
+vsubpd (ymm3, ymm6, ymm2); dump();
+vsubps (xmm0, xmm6); dump();
+vsubps (xmm6, ptr[eax+ecx+3]); dump();
+vsubps (xmm7, xmm0, xmm0); dump();
+vsubps (xmm6, xmm6, ptr[eax+ecx+3]); dump();
+vsubps (ymm6, ptr[eax+ecx+3]); dump();
+vsubps (ymm4, ymm1); dump();
+vsubps (ymm7, ymm6, ptr[eax+ecx+3]); dump();
+vsubps (ymm1, ymm5, ymm4); dump();
+vsubsd (xmm0, xmm2); dump();
+vsubsd (xmm1, ptr[eax+ecx+3]); dump();
+vsubsd (xmm6, xmm6, xmm3); dump();
+vsubsd (xmm4, xmm7, ptr[eax+ecx+3]); dump();
+vsubss (xmm6, xmm6); dump();
+vsubss (xmm6, ptr[eax+ecx+3]); dump();
+vsubss (xmm2, xmm4, xmm2); dump();
+vsubss (xmm2, xmm0, ptr[eax+ecx+3]); dump();
+vmulpd (xmm6, xmm4); dump();
+vmulpd (xmm2, ptr[eax+ecx+3]); dump();
+vmulpd (xmm5, xmm1, xmm7); dump();
+vmulpd (xmm4, xmm1, ptr[eax+ecx+3]); dump();
+vmulpd (ymm6, ptr[eax+ecx+3]); dump();
+vmulpd (ymm5, ymm6); dump();
+vmulpd (ymm7, ymm3, ptr[eax+ecx+3]); dump();
+vmulpd (ymm2, ymm6, ymm2); dump();
+vmulps (xmm0, xmm5); dump();
+vmulps (xmm6, ptr[eax+ecx+3]); dump();
+vmulps (xmm6, xmm0, xmm3); dump();
+vmulps (xmm1, xmm3, ptr[eax+ecx+3]); dump();
+vmulps (ymm7, ptr[eax+ecx+3]); dump();
+vmulps (ymm7, ymm0); dump();
+vmulps (ymm2, ymm3, ptr[eax+ecx+3]); dump();
+vmulps (ymm0, ymm7, ymm2); dump();
+vmulsd (xmm3, xmm6); dump();
+vmulsd (xmm0, ptr[eax+ecx+3]); dump();
+vmulsd (xmm4, xmm7, xmm2); dump();
+vmulsd (xmm5, xmm2, ptr[eax+ecx+3]); dump();
+vmulss (xmm7, xmm1); dump();
+vmulss (xmm1, ptr[eax+ecx+3]); dump();
+vmulss (xmm0, xmm0, xmm5); dump();
+vmulss (xmm2, xmm1, ptr[eax+ecx+3]); dump();
+vdivpd (xmm4, xmm6); dump();
+vdivpd (xmm7, ptr[eax+ecx+3]); dump();
+vdivpd (xmm7, xmm0, xmm7); dump();
+vdivpd (xmm0, xmm0, ptr[eax+ecx+3]); dump();
+vdivpd (ymm0, ptr[eax+ecx+3]); dump();
+vdivpd (ymm3, ymm0); dump();
+vdivpd (ymm0, ymm6, ptr[eax+ecx+3]); dump();
+vdivpd (ymm2, ymm3, ymm1); dump();
+vdivps (xmm0, xmm1); dump();
+vdivps (xmm2, ptr[eax+ecx+3]); dump();
+vdivps (xmm5, xmm0, xmm0); dump();
+vdivps (xmm2, xmm2, ptr[eax+ecx+3]); dump();
+vdivps (ymm0, ptr[eax+ecx+3]); dump();
+vdivps (ymm6, ymm6); dump();
+vdivps (ymm1, ymm4, ptr[eax+ecx+3]); dump();
+vdivps (ymm6, ymm2, ymm7); dump();
+vdivsd (xmm3, xmm2); dump();
+vdivsd (xmm1, ptr[eax+ecx+3]); dump();
+vdivsd (xmm0, xmm1, xmm3); dump();
+vdivsd (xmm7, xmm1, ptr[eax+ecx+3]); dump();
+vdivss (xmm0, xmm0); dump();
+vdivss (xmm3, ptr[eax+ecx+3]); dump();
+vdivss (xmm0, xmm7, xmm7); dump();
+vdivss (xmm1, xmm1, ptr[eax+ecx+3]); dump();
+vmaxpd (xmm1, xmm0); dump();
+vmaxpd (xmm5, ptr[eax+ecx+3]); dump();
+vmaxpd (xmm7, xmm4, xmm2); dump();
+vmaxpd (xmm4, xmm3, ptr[eax+ecx+3]); dump();
+vmaxpd (ymm3, ptr[eax+ecx+3]); dump();
+vmaxpd (ymm5, ymm3); dump();
+vmaxpd (ymm4, ymm5, ptr[eax+ecx+3]); dump();
+vmaxpd (ymm5, ymm5, ymm4); dump();
+vmaxps (xmm1, xmm3); dump();
+vmaxps (xmm4, ptr[eax+ecx+3]); dump();
+vmaxps (xmm2, xmm3, xmm2); dump();
+vmaxps (xmm1, xmm5, ptr[eax+ecx+3]); dump();
+vmaxps (ymm6, ptr[eax+ecx+3]); dump();
+vmaxps (ymm2, ymm4); dump();
+vmaxps (ymm2, ymm7, ptr[eax+ecx+3]); dump();
+vmaxps (ymm3, ymm3, ymm2); dump();
+vmaxsd (xmm7, xmm4); dump();
+vmaxsd (xmm1, ptr[eax+ecx+3]); dump();
+vmaxsd (xmm0, xmm3, xmm0); dump();
+vmaxsd (xmm4, xmm0, ptr[eax+ecx+3]); dump();
+vmaxss (xmm6, xmm7); dump();
+vmaxss (xmm5, ptr[eax+ecx+3]); dump();
+vmaxss (xmm3, xmm7, xmm6); dump();
+vmaxss (xmm3, xmm6, ptr[eax+ecx+3]); dump();
+vminpd (xmm4, xmm5); dump();
+vminpd (xmm6, ptr[eax+ecx+3]); dump();
+vminpd (xmm0, xmm7, xmm4); dump();
+vminpd (xmm6, xmm2, ptr[eax+ecx+3]); dump();
+vminpd (ymm1, ptr[eax+ecx+3]); dump();
+vminpd (ymm4, ymm0); dump();
+vminpd (ymm0, ymm4, ptr[eax+ecx+3]); dump();
+vminpd (ymm7, ymm7, ymm1); dump();
+vminps (xmm3, xmm6); dump();
+vminps (xmm7, ptr[eax+ecx+3]); dump();
+vminps (xmm7, xmm0, xmm4); dump();
+vminps (xmm4, xmm3, ptr[eax+ecx+3]); dump();
+vminps (ymm6, ptr[eax+ecx+3]); dump();
+vminps (ymm7, ymm2); dump();
+vminps (ymm5, ymm5, ptr[eax+ecx+3]); dump();
+vminps (ymm2, ymm3, ymm0); dump();
+vminsd (xmm7, xmm2); dump();
+vminsd (xmm5, ptr[eax+ecx+3]); dump();
+vminsd (xmm2, xmm6, xmm6); dump();
+vminsd (xmm4, xmm5, ptr[eax+ecx+3]); dump();
+vminss (xmm5, xmm7); dump();
+vminss (xmm2, ptr[eax+ecx+3]); dump();
+vminss (xmm5, xmm0, xmm5); dump();
+vminss (xmm2, xmm4, ptr[eax+ecx+3]); dump();
+vandpd (xmm3, xmm1); dump();
+vandpd (xmm0, ptr[eax+ecx+3]); dump();
+vandpd (xmm2, xmm3, xmm5); dump();
+vandpd (xmm2, xmm5, ptr[eax+ecx+3]); dump();
+vandpd (ymm2, ptr[eax+ecx+3]); dump();
+vandpd (ymm2, ymm5); dump();
+vandpd (ymm7, ymm5, ptr[eax+ecx+3]); dump();
+vandpd (ymm3, ymm1, ymm2); dump();
+vandps (xmm7, xmm5); dump();
+vandps (xmm1, ptr[eax+ecx+3]); dump();
+vandps (xmm0, xmm5, xmm2); dump();
+vandps (xmm4, xmm5, ptr[eax+ecx+3]); dump();
+vandps (ymm4, ptr[eax+ecx+3]); dump();
+vandps (ymm6, ymm2); dump();
+vandps (ymm7, ymm6, ptr[eax+ecx+3]); dump();
+vandps (ymm5, ymm0, ymm1); dump();
+vandnpd (xmm3, xmm0); dump();
+vandnpd (xmm5, ptr[eax+ecx+3]); dump();
+vandnpd (xmm6, xmm2, xmm0); dump();
+vandnpd (xmm2, xmm6, ptr[eax+ecx+3]); dump();
+vandnpd (ymm3, ptr[eax+ecx+3]); dump();
+vandnpd (ymm6, ymm2); dump();
+vandnpd (ymm6, ymm7, ptr[eax+ecx+3]); dump();
+vandnpd (ymm6, ymm3, ymm2); dump();
+vandnps (xmm3, xmm6); dump();
+vandnps (xmm4, ptr[eax+ecx+3]); dump();
+vandnps (xmm0, xmm3, xmm5); dump();
+vandnps (xmm6, xmm7, ptr[eax+ecx+3]); dump();
+vandnps (ymm6, ptr[eax+ecx+3]); dump();
+vandnps (ymm4, ymm3); dump();
+vandnps (ymm5, ymm0, ptr[eax+ecx+3]); dump();
+vandnps (ymm6, ymm1, ymm2); dump();
+vorpd (xmm7, xmm4); dump();
+vorpd (xmm6, ptr[eax+ecx+3]); dump();
+vorpd (xmm5, xmm4, xmm0); dump();
+vorpd (xmm2, xmm3, ptr[eax+ecx+3]); dump();
+vorpd (ymm5, ptr[eax+ecx+3]); dump();
+vorpd (ymm0, ymm7); dump();
+vorpd (ymm4, ymm0, ptr[eax+ecx+3]); dump();
+vorpd (ymm2, ymm5, ymm0); dump();
+vorps (xmm6, xmm4); dump();
+vorps (xmm0, ptr[eax+ecx+3]); dump();
+vorps (xmm5, xmm4, xmm1); dump();
+vorps (xmm2, xmm3, ptr[eax+ecx+3]); dump();
+vorps (ymm2, ptr[eax+ecx+3]); dump();
+vorps (ymm6, ymm0); dump();
+vorps (ymm4, ymm3, ptr[eax+ecx+3]); dump();
+vorps (ymm2, ymm3, ymm6); dump();
+vxorpd (xmm4, xmm0); dump();
+vxorpd (xmm3, ptr[eax+ecx+3]); dump();
+vxorpd (xmm6, xmm5, xmm3); dump();
+vxorpd (xmm7, xmm7, ptr[eax+ecx+3]); dump();
+vxorpd (ymm5, ptr[eax+ecx+3]); dump();
+vxorpd (ymm3, ymm6); dump();
+vxorpd (ymm4, ymm7, ptr[eax+ecx+3]); dump();
+vxorpd (ymm4, ymm7, ymm4); dump();
+vxorps (xmm7, xmm1); dump();
+vxorps (xmm4, ptr[eax+ecx+3]); dump();
+vxorps (xmm0, xmm7, xmm7); dump();
+vxorps (xmm3, xmm1, ptr[eax+ecx+3]); dump();
+vxorps (ymm7, ptr[eax+ecx+3]); dump();
+vxorps (ymm1, ymm2); dump();
+vxorps (ymm1, ymm7, ptr[eax+ecx+3]); dump();
+vxorps (ymm4, ymm6, ymm5); dump();
+vaddsubpd (xmm4, xmm4); dump();
+vaddsubpd (xmm1, ptr[eax+ecx+3]); dump();
+vaddsubpd (xmm0, xmm3, xmm5); dump();
+vaddsubpd (xmm0, xmm7, ptr[eax+ecx+3]); dump();
+vaddsubpd (ymm2, ptr[eax+ecx+3]); dump();
+vaddsubpd (ymm3, ymm5); dump();
+vaddsubpd (ymm1, ymm4, ptr[eax+ecx+3]); dump();
+vaddsubpd (ymm5, ymm5, ymm4); dump();
+vaddsubps (xmm6, xmm5); dump();
+vaddsubps (xmm0, ptr[eax+ecx+3]); dump();
+vaddsubps (xmm6, xmm7, xmm5); dump();
+vaddsubps (xmm4, xmm4, ptr[eax+ecx+3]); dump();
+vaddsubps (ymm7, ptr[eax+ecx+3]); dump();
+vaddsubps (ymm4, ymm6); dump();
+vaddsubps (ymm4, ymm2, ptr[eax+ecx+3]); dump();
+vaddsubps (ymm7, ymm0, ymm7); dump();
+vhaddpd (xmm1, xmm3); dump();
+vhaddpd (xmm2, ptr[eax+ecx+3]); dump();
+vhaddpd (xmm1, xmm3, xmm7); dump();
+vhaddpd (xmm4, xmm7, ptr[eax+ecx+3]); dump();
+vhaddpd (ymm6, ptr[eax+ecx+3]); dump();
+vhaddpd (ymm0, ymm6); dump();
+vhaddpd (ymm2, ymm5, ptr[eax+ecx+3]); dump();
+vhaddpd (ymm7, ymm1, ymm0); dump();
+vhaddps (xmm7, xmm1); dump();
+vhaddps (xmm6, ptr[eax+ecx+3]); dump();
+vhaddps (xmm0, xmm0, xmm3); dump();
+vhaddps (xmm0, xmm6, ptr[eax+ecx+3]); dump();
+vhaddps (ymm0, ptr[eax+ecx+3]); dump();
+vhaddps (ymm0, ymm2); dump();
+vhaddps (ymm3, ymm7, ptr[eax+ecx+3]); dump();
+vhaddps (ymm2, ymm4, ymm2); dump();
+vhsubpd (xmm6, xmm2); dump();
+vhsubpd (xmm6, ptr[eax+ecx+3]); dump();
+vhsubpd (xmm7, xmm0, xmm2); dump();
+vhsubpd (xmm2, xmm6, ptr[eax+ecx+3]); dump();
+vhsubpd (ymm3, ptr[eax+ecx+3]); dump();
+vhsubpd (ymm0, ymm7); dump();
+vhsubpd (ymm7, ymm6, ptr[eax+ecx+3]); dump();
+vhsubpd (ymm0, ymm7, ymm4); dump();
+vhsubps (xmm5, xmm5); dump();
+vhsubps (xmm2, ptr[eax+ecx+3]); dump();
+vhsubps (xmm6, xmm5, xmm1); dump();
+vhsubps (xmm0, xmm6, ptr[eax+ecx+3]); dump();
+vhsubps (ymm3, ptr[eax+ecx+3]); dump();
+vhsubps (ymm5, ymm2); dump();
+vhsubps (ymm7, ymm2, ptr[eax+ecx+3]); dump();
+vhsubps (ymm1, ymm5, ymm7); dump();
+vextractps (ptr[eax+ecx+3], xmm6, 4); dump();
+vextractps (edx, xmm6, 4); dump();
+vextractps (eax, xmm2, 4); dump();
+vldmxcsr (ptr[eax+ecx+3]); dump();
+vstmxcsr (ptr[eax+ecx+3]); dump();
+vmaskmovdqu (xmm4, xmm2); dump();
+vmovd (xmm1, ptr[eax+ecx+3]); dump();
+vmovd (xmm6, ebp); dump();
+vmovd (xmm7, eax); dump();
+vmovd (ptr[eax+ecx+3], xmm2); dump();
+vmovd (edx, xmm7); dump();
+vmovd (eax, xmm1); dump();
+vmovhlps (xmm4, xmm1); dump();
+vmovhlps (xmm2, xmm5, xmm4); dump();
+vmovlhps (xmm7, xmm3); dump();
+vmovlhps (xmm3, xmm0, xmm5); dump();
+vmovhpd (xmm7, xmm7, ptr[eax+ecx+3]); dump();
+vmovhpd (xmm2, ptr[eax+ecx+3]); dump();
+vmovhpd (ptr[eax+ecx+3], xmm7); dump();
+vmovhps (xmm3, xmm4, ptr[eax+ecx+3]); dump();
+vmovhps (xmm1, ptr[eax+ecx+3]); dump();
+vmovhps (ptr[eax+ecx+3], xmm6); dump();
+vmovlpd (xmm0, xmm6, ptr[eax+ecx+3]); dump();
+vmovlpd (xmm2, ptr[eax+ecx+3]); dump();
+vmovlpd (ptr[eax+ecx+3], xmm1); dump();
+vmovlps (xmm7, xmm1, ptr[eax+ecx+3]); dump();
+vmovlps (xmm2, ptr[eax+ecx+3]); dump();
+vmovlps (ptr[eax+ecx+3], xmm6); dump();
+vmovmskpd (edi, xmm2); dump();
+vmovmskpd (edx, ymm6); dump();
+vmovmskpd (eax, xmm5); dump();
+vmovmskpd (eax, ymm5); dump();
+vmovmskps (edi, xmm5); dump();
+vmovmskps (edi, ymm2); dump();
+vmovmskps (eax, xmm5); dump();
+vmovmskps (eax, ymm5); dump();
+vmovntdq (ptr[eax+ecx+3], xmm2); dump();
+vmovntdq (ptr[eax+ecx+3], ymm5); dump();
+vmovntpd (ptr[eax+ecx+3], xmm4); dump();
+vmovntpd (ptr[eax+ecx+3], ymm3); dump();
+vmovntps (ptr[eax+ecx+3], xmm4); dump();
+vmovntps (ptr[eax+ecx+3], ymm2); dump();
+vmovntdqa (xmm0, ptr[eax+ecx+3]); dump();
+vmovsd (xmm6, xmm7, xmm6); dump();
+vmovsd (xmm0, xmm3); dump();
+vmovsd (xmm5, ptr[eax+ecx+3]); dump();
+vmovsd (ptr[eax+ecx+3], xmm2); dump();
+vmovss (xmm4, xmm5, xmm1); dump();
+vmovss (xmm4, xmm7); dump();
+vmovss (xmm6, ptr[eax+ecx+3]); dump();
+vmovss (ptr[eax+ecx+3], xmm1); dump();
+vpextrb (ptr[eax+ecx+3], xmm6, 4); dump();
+vpextrb (ecx, xmm0, 4); dump();
+vpextrb (eax, xmm0, 4); dump();
+vpextrw (edi, xmm3, 4); dump();
+vpextrw (eax, xmm2, 4); dump();
+vpextrd (ptr[eax+ecx+3], xmm2, 4); dump();
+vpextrd (edi, xmm6, 4); dump();
+vpextrd (eax, xmm2, 4); dump();
+vpinsrb (xmm0, xmm6, ptr[eax+ecx+3], 4); dump();
+vpinsrb (xmm2, xmm2, edi, 4); dump();
+vpinsrb (xmm6, xmm3, eax, 4); dump();
+vpinsrb (xmm5, ptr[eax+ecx+3], 4); dump();
+vpinsrb (xmm2, ecx, 4); dump();
+vpinsrb (xmm5, eax, 4); dump();
+vpinsrw (xmm6, xmm6, ptr[eax+ecx+3], 4); dump();
+vpinsrw (xmm2, xmm2, esi, 4); dump();
+vpinsrw (xmm3, xmm3, eax, 4); dump();
+vpinsrw (xmm3, ptr[eax+ecx+3], 4); dump();
+vpinsrw (xmm6, ebp, 4); dump();
+vpinsrw (xmm4, eax, 4); dump();
+vpinsrd (xmm2, xmm2, ptr[eax+ecx+3], 4); dump();
+vpinsrd (xmm3, xmm5, edx, 4); dump();
+vpinsrd (xmm0, xmm3, eax, 4); dump();
+vpinsrd (xmm0, ptr[eax+ecx+3], 4); dump();
+vpinsrd (xmm0, ecx, 4); dump();
+vpinsrd (xmm3, eax, 4); dump();
+vpmovmskb (edx, xmm5); dump();
+vpmovmskb (eax, xmm3); dump();
+vblendvpd (xmm1, xmm1, xmm5, xmm3); dump();
+vblendvpd (xmm6, xmm0, ptr[eax+ecx+3], xmm1); dump();
+vblendvpd (xmm2, xmm5, xmm4); dump();
+vblendvpd (xmm7, ptr[eax+ecx+3], xmm3); dump();
+vblendvpd (ymm6, ymm0, ptr[eax+ecx+3], ymm2); dump();
+vblendvpd (ymm0, ymm1, ymm2, ymm7); dump();
+vblendvpd (ymm1, ptr[eax+ecx+3], ymm0); dump();
+vblendvpd (ymm3, ymm6, ymm2); dump();
+vblendvps (xmm0, xmm3, xmm5, xmm7); dump();
+vblendvps (xmm5, xmm1, ptr[eax+ecx+3], xmm4); dump();
+vblendvps (xmm1, xmm0, xmm5); dump();
+vblendvps (xmm4, ptr[eax+ecx+3], xmm0); dump();
+vblendvps (ymm2, ymm0, ptr[eax+ecx+3], ymm1); dump();
+vblendvps (ymm0, ymm6, ymm3, ymm6); dump();
+vblendvps (ymm7, ptr[eax+ecx+3], ymm3); dump();
+vblendvps (ymm1, ymm0, ymm4); dump();
+vpblendvb (xmm2, xmm4, xmm5, xmm1); dump();
+vpblendvb (xmm0, xmm1, ptr[eax+ecx+3], xmm4); dump();
+vpblendvb (xmm2, xmm3, xmm0); dump();
+vpblendvb (xmm4, ptr[eax+ecx+3], xmm4); dump();
+vcvtss2si (ecx, xmm5); dump();
+vcvtss2si (ebx, ptr[eax+ecx+3]); dump();
+vcvtss2si (eax, xmm4); dump();
+vcvtss2si (eax, ptr[eax+ecx+3]); dump();
+vcvttss2si (ebx, xmm3); dump();
+vcvttss2si (edx, ptr[eax+ecx+3]); dump();
+vcvttss2si (eax, xmm3); dump();
+vcvttss2si (eax, ptr[eax+ecx+3]); dump();
+vcvtsd2si (ecx, xmm3); dump();
+vcvtsd2si (ecx, ptr[eax+ecx+3]); dump();
+vcvtsd2si (eax, xmm7); dump();
+vcvtsd2si (eax, ptr[eax+ecx+3]); dump();
+vcvttsd2si (esp, xmm7); dump();
+vcvttsd2si (ecx, ptr[eax+ecx+3]); dump();
+vcvttsd2si (eax, xmm1); dump();
+vcvttsd2si (eax, ptr[eax+ecx+3]); dump();
+vcvtsi2ss (xmm4, xmm1, ptr[eax+ecx+3]); dump();
+vcvtsi2ss (xmm6, xmm3, edi); dump();
+vcvtsi2ss (xmm1, xmm3, eax); dump();
+vcvtsi2ss (xmm1, ptr[eax+ecx+3]); dump();
+vcvtsi2ss (xmm7, ebp); dump();
+vcvtsi2ss (xmm4, eax); dump();
+vcvtsi2sd (xmm3, xmm6, ptr[eax+ecx+3]); dump();
+vcvtsi2sd (xmm6, xmm1, esp); dump();
+vcvtsi2sd (xmm3, xmm6, eax); dump();
+vcvtsi2sd (xmm3, ptr[eax+ecx+3]); dump();
+vcvtsi2sd (xmm6, esp); dump();
+vcvtsi2sd (xmm3, eax); dump();
+vcvtps2pd (xmm2, xmm0); dump();
+vcvtps2pd (xmm4, ptr[eax+ecx+3]); dump();
+vcvtps2pd (ymm4, xmm6); dump();
+vcvtps2pd (ymm1, ptr[eax+ecx+3]); dump();
+vcvtdq2pd (xmm2, xmm0); dump();
+vcvtdq2pd (xmm5, ptr[eax+ecx+3]); dump();
+vcvtdq2pd (ymm5, xmm1); dump();
+vcvtdq2pd (ymm2, ptr[eax+ecx+3]); dump();
+vcvtpd2ps (xmm5, xmm0); dump();
+vcvtpd2ps (xmm2, ptr[eax+ecx+3]); dump();
+vcvtpd2ps (xmm2, ymm3); dump();
+vcvtpd2dq (xmm5, xmm7); dump();
+vcvtpd2dq (xmm0, ptr[eax+ecx+3]); dump();
+vcvtpd2dq (xmm3, ymm7); dump();
+vcvttpd2dq (xmm2, xmm7); dump();
+vcvttpd2dq (xmm3, ptr[eax+ecx+3]); dump();
+vcvttpd2dq (xmm5, ymm6); dump();
+vaesenc (xmm5, xmm2); dump();
+vaesenc (xmm4, ptr[eax+ecx+3]); dump();
+vaesenc (xmm6, xmm6, xmm3); dump();
+vaesenc (xmm3, xmm4, ptr[eax+ecx+3]); dump();
+vaesenclast (xmm3, xmm6); dump();
+vaesenclast (xmm0, ptr[eax+ecx+3]); dump();
+vaesenclast (xmm5, xmm1, xmm0); dump();
+vaesenclast (xmm6, xmm5, ptr[eax+ecx+3]); dump();
+vaesdec (xmm5, xmm5); dump();
+vaesdec (xmm3, ptr[eax+ecx+3]); dump();
+vaesdec (xmm3, xmm4, xmm6); dump();
+vaesdec (xmm6, xmm7, ptr[eax+ecx+3]); dump();
+vaesdeclast (xmm2, xmm5); dump();
+vaesdeclast (xmm3, ptr[eax+ecx+3]); dump();
+vaesdeclast (xmm0, xmm2, xmm5); dump();
+vaesdeclast (xmm3, xmm6, ptr[eax+ecx+3]); dump();
+vcvtsd2ss (xmm0, xmm0); dump();
+vcvtsd2ss (xmm6, ptr[eax+ecx+3]); dump();
+vcvtsd2ss (xmm7, xmm2, xmm0); dump();
+vcvtsd2ss (xmm0, xmm0, ptr[eax+ecx+3]); dump();
+vcvtss2sd (xmm4, xmm4); dump();
+vcvtss2sd (xmm1, ptr[eax+ecx+3]); dump();
+vcvtss2sd (xmm3, xmm4, xmm4); dump();
+vcvtss2sd (xmm7, xmm1, ptr[eax+ecx+3]); dump();
+vpacksswb (xmm0, xmm3); dump();
+vpacksswb (xmm7, ptr[eax+ecx+3]); dump();
+vpacksswb (xmm1, xmm7, xmm7); dump();
+vpacksswb (xmm4, xmm1, ptr[eax+ecx+3]); dump();
+vpackssdw (xmm4, xmm1); dump();
+vpackssdw (xmm4, ptr[eax+ecx+3]); dump();
+vpackssdw (xmm0, xmm3, xmm4); dump();
+vpackssdw (xmm6, xmm1, ptr[eax+ecx+3]); dump();
+vpackuswb (xmm4, xmm5); dump();
+vpackuswb (xmm7, ptr[eax+ecx+3]); dump();
+vpackuswb (xmm6, xmm0, xmm7); dump();
+vpackuswb (xmm0, xmm7, ptr[eax+ecx+3]); dump();
+vpackusdw (xmm5, xmm0); dump();
+vpackusdw (xmm0, ptr[eax+ecx+3]); dump();
+vpackusdw (xmm3, xmm1, xmm0); dump();
+vpackusdw (xmm2, xmm4, ptr[eax+ecx+3]); dump();
+vpaddb (xmm4, xmm1); dump();
+vpaddb (xmm6, ptr[eax+ecx+3]); dump();
+vpaddb (xmm2, xmm5, xmm7); dump();
+vpaddb (xmm7, xmm4, ptr[eax+ecx+3]); dump();
+vpaddw (xmm7, xmm0); dump();
+vpaddw (xmm4, ptr[eax+ecx+3]); dump();
+vpaddw (xmm3, xmm3, xmm5); dump();
+vpaddw (xmm1, xmm2, ptr[eax+ecx+3]); dump();
+vpaddd (xmm5, xmm5); dump();
+vpaddd (xmm3, ptr[eax+ecx+3]); dump();
+vpaddd (xmm0, xmm6, xmm5); dump();
+vpaddd (xmm0, xmm7, ptr[eax+ecx+3]); dump();
+vpaddq (xmm5, xmm1); dump();
+vpaddq (xmm0, ptr[eax+ecx+3]); dump();
+vpaddq (xmm0, xmm3, xmm2); dump();
+vpaddq (xmm6, xmm0, ptr[eax+ecx+3]); dump();
+vpaddsb (xmm5, xmm0); dump();
+vpaddsb (xmm5, ptr[eax+ecx+3]); dump();
+vpaddsb (xmm5, xmm0, xmm3); dump();
+vpaddsb (xmm2, xmm7, ptr[eax+ecx+3]); dump();
+vpaddsw (xmm5, xmm5); dump();
+vpaddsw (xmm3, ptr[eax+ecx+3]); dump();
+vpaddsw (xmm1, xmm1, xmm5); dump();
+vpaddsw (xmm4, xmm7, ptr[eax+ecx+3]); dump();
+vpaddusb (xmm4, xmm5); dump();
+vpaddusb (xmm4, ptr[eax+ecx+3]); dump();
+vpaddusb (xmm1, xmm3, xmm6); dump();
+vpaddusb (xmm1, xmm1, ptr[eax+ecx+3]); dump();
+vpaddusw (xmm0, xmm4); dump();
+vpaddusw (xmm5, ptr[eax+ecx+3]); dump();
+vpaddusw (xmm7, xmm3, xmm3); dump();
+vpaddusw (xmm0, xmm3, ptr[eax+ecx+3]); dump();
+vpand (xmm4, xmm7); dump();
+vpand (xmm1, ptr[eax+ecx+3]); dump();
+vpand (xmm5, xmm0, xmm6); dump();
+vpand (xmm1, xmm5, ptr[eax+ecx+3]); dump();
+vpandn (xmm3, xmm2); dump();
+vpandn (xmm3, ptr[eax+ecx+3]); dump();
+vpandn (xmm7, xmm3, xmm3); dump();
+vpandn (xmm6, xmm4, ptr[eax+ecx+3]); dump();
+vpavgb (xmm4, xmm2); dump();
+vpavgb (xmm7, ptr[eax+ecx+3]); dump();
+vpavgb (xmm0, xmm4, xmm3); dump();
+vpavgb (xmm1, xmm4, ptr[eax+ecx+3]); dump();
+vpavgw (xmm5, xmm6); dump();
+vpavgw (xmm4, ptr[eax+ecx+3]); dump();
+vpavgw (xmm6, xmm7, xmm6); dump();
+vpavgw (xmm3, xmm0, ptr[eax+ecx+3]); dump();
+vpcmpeqb (xmm1, xmm2); dump();
+vpcmpeqb (xmm4, ptr[eax+ecx+3]); dump();
+vpcmpeqb (xmm2, xmm1, xmm4); dump();
+vpcmpeqb (xmm3, xmm6, ptr[eax+ecx+3]); dump();
+vpcmpeqw (xmm6, xmm0); dump();
+vpcmpeqw (xmm2, ptr[eax+ecx+3]); dump();
+vpcmpeqw (xmm0, xmm0, xmm7); dump();
+vpcmpeqw (xmm3, xmm2, ptr[eax+ecx+3]); dump();
+vpcmpeqd (xmm0, xmm7); dump();
+vpcmpeqd (xmm1, ptr[eax+ecx+3]); dump();
+vpcmpeqd (xmm2, xmm5, xmm7); dump();
+vpcmpeqd (xmm6, xmm0, ptr[eax+ecx+3]); dump();
+vpcmpgtb (xmm0, xmm0); dump();
+vpcmpgtb (xmm2, ptr[eax+ecx+3]); dump();
+vpcmpgtb (xmm4, xmm3, xmm4); dump();
+vpcmpgtb (xmm1, xmm7, ptr[eax+ecx+3]); dump();
+vpcmpgtw (xmm0, xmm3); dump();
+vpcmpgtw (xmm7, ptr[eax+ecx+3]); dump();
+vpcmpgtw (xmm6, xmm7, xmm1); dump();
+vpcmpgtw (xmm4, xmm2, ptr[eax+ecx+3]); dump();
+vpcmpgtd (xmm6, xmm1); dump();
+vpcmpgtd (xmm1, ptr[eax+ecx+3]); dump();
+vpcmpgtd (xmm1, xmm4, xmm0); dump();
+vpcmpgtd (xmm1, xmm3, ptr[eax+ecx+3]); dump();
+vphaddw (xmm7, xmm4); dump();
+vphaddw (xmm0, ptr[eax+ecx+3]); dump();
+vphaddw (xmm5, xmm2, xmm3); dump();
+vphaddw (xmm7, xmm1, ptr[eax+ecx+3]); dump();
+vphaddd (xmm1, xmm2); dump();
+vphaddd (xmm3, ptr[eax+ecx+3]); dump();
+vphaddd (xmm1, xmm2, xmm0); dump();
+vphaddd (xmm2, xmm6, ptr[eax+ecx+3]); dump();
+vphaddsw (xmm6, xmm3); dump();
+vphaddsw (xmm7, ptr[eax+ecx+3]); dump();
+vphaddsw (xmm0, xmm1, xmm2); dump();
+vphaddsw (xmm1, xmm2, ptr[eax+ecx+3]); dump();
+vphsubw (xmm1, xmm7); dump();
+vphsubw (xmm6, ptr[eax+ecx+3]); dump();
+vphsubw (xmm7, xmm3, xmm1); dump();
+vphsubw (xmm3, xmm3, ptr[eax+ecx+3]); dump();
+vphsubd (xmm2, xmm2); dump();
+vphsubd (xmm4, ptr[eax+ecx+3]); dump();
+vphsubd (xmm0, xmm5, xmm0); dump();
+vphsubd (xmm0, xmm0, ptr[eax+ecx+3]); dump();
+vphsubsw (xmm7, xmm4); dump();
+vphsubsw (xmm0, ptr[eax+ecx+3]); dump();
+vphsubsw (xmm2, xmm7, xmm0); dump();
+vphsubsw (xmm3, xmm6, ptr[eax+ecx+3]); dump();
+vpmaddwd (xmm7, xmm5); dump();
+vpmaddwd (xmm0, ptr[eax+ecx+3]); dump();
+vpmaddwd (xmm5, xmm6, xmm7); dump();
+vpmaddwd (xmm7, xmm1, ptr[eax+ecx+3]); dump();
+vpmaddubsw (xmm2, xmm1); dump();
+vpmaddubsw (xmm3, ptr[eax+ecx+3]); dump();
+vpmaddubsw (xmm0, xmm4, xmm4); dump();
+vpmaddubsw (xmm6, xmm3, ptr[eax+ecx+3]); dump();
+vpmaxsb (xmm4, xmm0); dump();
+vpmaxsb (xmm7, ptr[eax+ecx+3]); dump();
+vpmaxsb (xmm0, xmm0, xmm0); dump();
+vpmaxsb (xmm6, xmm3, ptr[eax+ecx+3]); dump();
+vpmaxsw (xmm7, xmm1); dump();
+vpmaxsw (xmm4, ptr[eax+ecx+3]); dump();
+vpmaxsw (xmm5, xmm2, xmm3); dump();
+vpmaxsw (xmm2, xmm1, ptr[eax+ecx+3]); dump();
+vpmaxsd (xmm1, xmm3); dump();
+vpmaxsd (xmm5, ptr[eax+ecx+3]); dump();
+vpmaxsd (xmm0, xmm5, xmm6); dump();
+vpmaxsd (xmm4, xmm2, ptr[eax+ecx+3]); dump();
+vpmaxub (xmm7, xmm6); dump();
+vpmaxub (xmm0, ptr[eax+ecx+3]); dump();
+vpmaxub (xmm0, xmm0, xmm3); dump();
+vpmaxub (xmm0, xmm7, ptr[eax+ecx+3]); dump();
+vpmaxuw (xmm7, xmm4); dump();
+vpmaxuw (xmm6, ptr[eax+ecx+3]); dump();
+vpmaxuw (xmm2, xmm1, xmm4); dump();
+vpmaxuw (xmm4, xmm1, ptr[eax+ecx+3]); dump();
+vpmaxud (xmm0, xmm2); dump();
+vpmaxud (xmm5, ptr[eax+ecx+3]); dump();
+vpmaxud (xmm5, xmm6, xmm0); dump();
+vpmaxud (xmm3, xmm3, ptr[eax+ecx+3]); dump();
+vpminsb (xmm2, xmm0); dump();
+vpminsb (xmm7, ptr[eax+ecx+3]); dump();
+vpminsb (xmm3, xmm7, xmm3); dump();
+vpminsb (xmm6, xmm6, ptr[eax+ecx+3]); dump();
+vpminsw (xmm3, xmm4); dump();
+vpminsw (xmm5, ptr[eax+ecx+3]); dump();
+vpminsw (xmm6, xmm6, xmm1); dump();
+vpminsw (xmm1, xmm2, ptr[eax+ecx+3]); dump();
+vpminsd (xmm3, xmm0); dump();
+vpminsd (xmm4, ptr[eax+ecx+3]); dump();
+vpminsd (xmm6, xmm1, xmm0); dump();
+vpminsd (xmm4, xmm4, ptr[eax+ecx+3]); dump();
+vpminub (xmm5, xmm5); dump();
+vpminub (xmm0, ptr[eax+ecx+3]); dump();
+vpminub (xmm6, xmm3, xmm1); dump();
+vpminub (xmm7, xmm2, ptr[eax+ecx+3]); dump();
+vpminuw (xmm0, xmm6); dump();
+vpminuw (xmm3, ptr[eax+ecx+3]); dump();
+vpminuw (xmm6, xmm0, xmm2); dump();
+vpminuw (xmm5, xmm2, ptr[eax+ecx+3]); dump();
+vpminud (xmm6, xmm6); dump();
+vpminud (xmm4, ptr[eax+ecx+3]); dump();
+vpminud (xmm5, xmm1, xmm3); dump();
+vpminud (xmm5, xmm3, ptr[eax+ecx+3]); dump();
+vpmulhuw (xmm5, xmm1); dump();
+vpmulhuw (xmm2, ptr[eax+ecx+3]); dump();
+vpmulhuw (xmm5, xmm0, xmm1); dump();
+vpmulhuw (xmm6, xmm0, ptr[eax+ecx+3]); dump();
+vpmulhrsw (xmm4, xmm7); dump();
+vpmulhrsw (xmm0, ptr[eax+ecx+3]); dump();
+vpmulhrsw (xmm4, xmm4, xmm0); dump();
+vpmulhrsw (xmm4, xmm2, ptr[eax+ecx+3]); dump();
+vpmulhw (xmm0, xmm0); dump();
+vpmulhw (xmm5, ptr[eax+ecx+3]); dump();
+vpmulhw (xmm3, xmm3, xmm4); dump();
+vpmulhw (xmm5, xmm6, ptr[eax+ecx+3]); dump();
+vpmullw (xmm1, xmm4); dump();
+vpmullw (xmm2, ptr[eax+ecx+3]); dump();
+vpmullw (xmm7, xmm5, xmm3); dump();
+vpmullw (xmm1, xmm2, ptr[eax+ecx+3]); dump();
+vpmulld (xmm4, xmm6); dump();
+vpmulld (xmm1, ptr[eax+ecx+3]); dump();
+vpmulld (xmm5, xmm5, xmm7); dump();
+vpmulld (xmm3, xmm0, ptr[eax+ecx+3]); dump();
+vpmuludq (xmm5, xmm1); dump();
+vpmuludq (xmm0, ptr[eax+ecx+3]); dump();
+vpmuludq (xmm4, xmm1, xmm1); dump();
+vpmuludq (xmm7, xmm6, ptr[eax+ecx+3]); dump();
+vpmuldq (xmm7, xmm6); dump();
+vpmuldq (xmm2, ptr[eax+ecx+3]); dump();
+vpmuldq (xmm0, xmm2, xmm5); dump();
+vpmuldq (xmm1, xmm3, ptr[eax+ecx+3]); dump();
+vpor (xmm1, xmm5); dump();
+vpor (xmm4, ptr[eax+ecx+3]); dump();
+vpor (xmm6, xmm7, xmm6); dump();
+vpor (xmm5, xmm3, ptr[eax+ecx+3]); dump();
+vpsadbw (xmm5, xmm6); dump();
+vpsadbw (xmm5, ptr[eax+ecx+3]); dump();
+vpsadbw (xmm6, xmm0, xmm5); dump();
+vpsadbw (xmm0, xmm7, ptr[eax+ecx+3]); dump();
+vpsignb (xmm6, xmm6); dump();
+vpsignb (xmm0, ptr[eax+ecx+3]); dump();
+vpsignb (xmm4, xmm7, xmm0); dump();
+vpsignb (xmm7, xmm7, ptr[eax+ecx+3]); dump();
+vpsignw (xmm5, xmm0); dump();
+vpsignw (xmm7, ptr[eax+ecx+3]); dump();
+vpsignw (xmm3, xmm6, xmm0); dump();
+vpsignw (xmm7, xmm1, ptr[eax+ecx+3]); dump();
+vpsignd (xmm4, xmm4); dump();
+vpsignd (xmm2, ptr[eax+ecx+3]); dump();
+vpsignd (xmm0, xmm7, xmm0); dump();
+vpsignd (xmm5, xmm7, ptr[eax+ecx+3]); dump();
+vpsllw (xmm7, xmm3); dump();
+vpsllw (xmm3, ptr[eax+ecx+3]); dump();
+vpsllw (xmm2, xmm0, xmm5); dump();
+vpsllw (xmm2, xmm0, ptr[eax+ecx+3]); dump();
+vpslld (xmm4, xmm3); dump();
+vpslld (xmm2, ptr[eax+ecx+3]); dump();
+vpslld (xmm4, xmm4, xmm0); dump();
+vpslld (xmm5, xmm3, ptr[eax+ecx+3]); dump();
+vpsllq (xmm1, xmm0); dump();
+vpsllq (xmm3, ptr[eax+ecx+3]); dump();
+vpsllq (xmm0, xmm3, xmm3); dump();
+vpsllq (xmm6, xmm7, ptr[eax+ecx+3]); dump();
+vpsraw (xmm3, xmm4); dump();
+vpsraw (xmm2, ptr[eax+ecx+3]); dump();
+vpsraw (xmm1, xmm4, xmm5); dump();
+vpsraw (xmm6, xmm6, ptr[eax+ecx+3]); dump();
+vpsrad (xmm0, xmm3); dump();
+vpsrad (xmm6, ptr[eax+ecx+3]); dump();
+vpsrad (xmm6, xmm3, xmm5); dump();
+vpsrad (xmm4, xmm0, ptr[eax+ecx+3]); dump();
+vpsrlw (xmm2, xmm7); dump();
+vpsrlw (xmm7, ptr[eax+ecx+3]); dump();
+vpsrlw (xmm1, xmm5, xmm7); dump();
+vpsrlw (xmm2, xmm1, ptr[eax+ecx+3]); dump();
+vpsrld (xmm3, xmm4); dump();
+vpsrld (xmm3, ptr[eax+ecx+3]); dump();
+vpsrld (xmm1, xmm3, xmm7); dump();
+vpsrld (xmm6, xmm7, ptr[eax+ecx+3]); dump();
+vpsrlq (xmm7, xmm0); dump();
+vpsrlq (xmm6, ptr[eax+ecx+3]); dump();
+vpsrlq (xmm2, xmm2, xmm7); dump();
+vpsrlq (xmm5, xmm6, ptr[eax+ecx+3]); dump();
+vpsubb (xmm5, xmm7); dump();
+vpsubb (xmm5, ptr[eax+ecx+3]); dump();
+vpsubb (xmm3, xmm7, xmm0); dump();
+vpsubb (xmm3, xmm1, ptr[eax+ecx+3]); dump();
+vpsubw (xmm0, xmm2); dump();
+vpsubw (xmm4, ptr[eax+ecx+3]); dump();
+vpsubw (xmm3, xmm5, xmm4); dump();
+vpsubw (xmm3, xmm2, ptr[eax+ecx+3]); dump();
+vpsubd (xmm6, xmm1); dump();
+vpsubd (xmm3, ptr[eax+ecx+3]); dump();
+vpsubd (xmm6, xmm3, xmm6); dump();
+vpsubd (xmm5, xmm1, ptr[eax+ecx+3]); dump();
+vpsubq (xmm2, xmm6); dump();
+vpsubq (xmm1, ptr[eax+ecx+3]); dump();
+vpsubq (xmm1, xmm5, xmm4); dump();
+vpsubq (xmm7, xmm0, ptr[eax+ecx+3]); dump();
+vpsubsb (xmm0, xmm1); dump();
+vpsubsb (xmm4, ptr[eax+ecx+3]); dump();
+vpsubsb (xmm0, xmm6, xmm0); dump();
+vpsubsb (xmm5, xmm7, ptr[eax+ecx+3]); dump();
+vpsubsw (xmm0, xmm6); dump();
+vpsubsw (xmm4, ptr[eax+ecx+3]); dump();
+vpsubsw (xmm2, xmm2, xmm5); dump();
+vpsubsw (xmm7, xmm6, ptr[eax+ecx+3]); dump();
+vpsubusb (xmm3, xmm0); dump();
+vpsubusb (xmm4, ptr[eax+ecx+3]); dump();
+vpsubusb (xmm6, xmm5, xmm7); dump();
+vpsubusb (xmm0, xmm4, ptr[eax+ecx+3]); dump();
+vpsubusw (xmm3, xmm2); dump();
+vpsubusw (xmm7, ptr[eax+ecx+3]); dump();
+vpsubusw (xmm5, xmm0, xmm3); dump();
+vpsubusw (xmm6, xmm3, ptr[eax+ecx+3]); dump();
+vpunpckhbw (xmm0, xmm4); dump();
+vpunpckhbw (xmm7, ptr[eax+ecx+3]); dump();
+vpunpckhbw (xmm6, xmm2, xmm3); dump();
+vpunpckhbw (xmm3, xmm7, ptr[eax+ecx+3]); dump();
+vpunpckhwd (xmm1, xmm0); dump();
+vpunpckhwd (xmm0, ptr[eax+ecx+3]); dump();
+vpunpckhwd (xmm2, xmm4, xmm0); dump();
+vpunpckhwd (xmm2, xmm3, ptr[eax+ecx+3]); dump();
+vpunpckhdq (xmm2, xmm6); dump();
+vpunpckhdq (xmm3, ptr[eax+ecx+3]); dump();
+vpunpckhdq (xmm1, xmm1, xmm5); dump();
+vpunpckhdq (xmm3, xmm5, ptr[eax+ecx+3]); dump();
+vpunpckhqdq (xmm4, xmm4); dump();
+vpunpckhqdq (xmm1, ptr[eax+ecx+3]); dump();
+vpunpckhqdq (xmm7, xmm7, xmm4); dump();
+vpunpckhqdq (xmm3, xmm1, ptr[eax+ecx+3]); dump();
+vpunpcklbw (xmm2, xmm2); dump();
+vpunpcklbw (xmm4, ptr[eax+ecx+3]); dump();
+vpunpcklbw (xmm5, xmm7, xmm7); dump();
+vpunpcklbw (xmm4, xmm1, ptr[eax+ecx+3]); dump();
+vpunpcklwd (xmm6, xmm1); dump();
+vpunpcklwd (xmm6, ptr[eax+ecx+3]); dump();
+vpunpcklwd (xmm6, xmm6, xmm2); dump();
+vpunpcklwd (xmm3, xmm1, ptr[eax+ecx+3]); dump();
+vpunpckldq (xmm0, xmm6); dump();
+vpunpckldq (xmm2, ptr[eax+ecx+3]); dump();
+vpunpckldq (xmm2, xmm1, xmm6); dump();
+vpunpckldq (xmm4, xmm2, ptr[eax+ecx+3]); dump();
+vpunpcklqdq (xmm0, xmm5); dump();
+vpunpcklqdq (xmm0, ptr[eax+ecx+3]); dump();
+vpunpcklqdq (xmm6, xmm3, xmm1); dump();
+vpunpcklqdq (xmm5, xmm7, ptr[eax+ecx+3]); dump();
+vpxor (xmm6, xmm6); dump();
+vpxor (xmm1, ptr[eax+ecx+3]); dump();
+vpxor (xmm7, xmm7, xmm1); dump();
+vpxor (xmm1, xmm1, ptr[eax+ecx+3]); dump();
+vsqrtsd (xmm7, xmm1); dump();
+vsqrtsd (xmm5, ptr[eax+ecx+3]); dump();
+vsqrtsd (xmm3, xmm7, xmm0); dump();
+vsqrtsd (xmm2, xmm1, ptr[eax+ecx+3]); dump();
+vsqrtss (xmm0, xmm1); dump();
+vsqrtss (xmm6, ptr[eax+ecx+3]); dump();
+vsqrtss (xmm4, xmm5, xmm3); dump();
+vsqrtss (xmm5, xmm0, ptr[eax+ecx+3]); dump();
+vunpckhpd (xmm6, xmm5); dump();
+vunpckhpd (xmm7, ptr[eax+ecx+3]); dump();
+vunpckhpd (xmm0, xmm5, xmm5); dump();
+vunpckhpd (xmm7, xmm6, ptr[eax+ecx+3]); dump();
+vunpckhpd (ymm1, ptr[eax+ecx+3]); dump();
+vunpckhpd (ymm7, ymm6); dump();
+vunpckhpd (ymm3, ymm2, ptr[eax+ecx+3]); dump();
+vunpckhpd (ymm1, ymm2, ymm6); dump();
+vunpckhps (xmm3, xmm0); dump();
+vunpckhps (xmm5, ptr[eax+ecx+3]); dump();
+vunpckhps (xmm6, xmm2, xmm4); dump();
+vunpckhps (xmm0, xmm7, ptr[eax+ecx+3]); dump();
+vunpckhps (ymm1, ptr[eax+ecx+3]); dump();
+vunpckhps (ymm0, ymm7); dump();
+vunpckhps (ymm4, ymm0, ptr[eax+ecx+3]); dump();
+vunpckhps (ymm1, ymm6, ymm1); dump();
+vunpcklpd (xmm1, xmm5); dump();
+vunpcklpd (xmm4, ptr[eax+ecx+3]); dump();
+vunpcklpd (xmm4, xmm5, xmm0); dump();
+vunpcklpd (xmm6, xmm7, ptr[eax+ecx+3]); dump();
+vunpcklpd (ymm2, ptr[eax+ecx+3]); dump();
+vunpcklpd (ymm2, ymm0); dump();
+vunpcklpd (ymm0, ymm6, ptr[eax+ecx+3]); dump();
+vunpcklpd (ymm5, ymm7, ymm0); dump();
+vunpcklps (xmm0, xmm0); dump();
+vunpcklps (xmm6, ptr[eax+ecx+3]); dump();
+vunpcklps (xmm0, xmm2, xmm0); dump();
+vunpcklps (xmm4, xmm4, ptr[eax+ecx+3]); dump();
+vunpcklps (ymm5, ptr[eax+ecx+3]); dump();
+vunpcklps (ymm2, ymm0); dump();
+vunpcklps (ymm1, ymm5, ptr[eax+ecx+3]); dump();
+vunpcklps (ymm2, ymm4, ymm1); dump();
+vblendpd (xmm1, xmm5, xmm2, 4); dump();
+vblendpd (xmm5, xmm2, ptr[eax+ecx+3], 4); dump();
+vblendpd (xmm5, xmm7, 4); dump();
+vblendpd (xmm4, ptr[eax+ecx+3], 4); dump();
+vblendpd (ymm3, ymm7, ptr[eax+ecx+3], 4); dump();
+vblendpd (ymm3, ymm2, ymm6, 4); dump();
+vblendpd (ymm5, ptr[eax+ecx+3], 4); dump();
+vblendpd (ymm7, ymm4, 4); dump();
+vblendps (xmm0, xmm0, xmm4, 4); dump();
+vblendps (xmm5, xmm4, ptr[eax+ecx+3], 4); dump();
+vblendps (xmm4, xmm2, 4); dump();
+vblendps (xmm0, ptr[eax+ecx+3], 4); dump();
+vblendps (ymm2, ymm1, ptr[eax+ecx+3], 4); dump();
+vblendps (ymm0, ymm3, ymm4, 4); dump();
+vblendps (ymm3, ptr[eax+ecx+3], 4); dump();
+vblendps (ymm1, ymm5, 4); dump();
+vdppd (xmm6, xmm2, xmm0, 4); dump();
+vdppd (xmm0, xmm4, ptr[eax+ecx+3], 4); dump();
+vdppd (xmm6, xmm6, 4); dump();
+vdppd (xmm2, ptr[eax+ecx+3], 4); dump();
+vdpps (xmm2, xmm1, xmm3, 4); dump();
+vdpps (xmm3, xmm5, ptr[eax+ecx+3], 4); dump();
+vdpps (xmm0, xmm2, 4); dump();
+vdpps (xmm2, ptr[eax+ecx+3], 4); dump();
+vdpps (ymm3, ymm7, ptr[eax+ecx+3], 4); dump();
+vdpps (ymm2, ymm2, ymm3, 4); dump();
+vdpps (ymm4, ptr[eax+ecx+3], 4); dump();
+vdpps (ymm2, ymm5, 4); dump();
+vmpsadbw (xmm3, xmm4, xmm5, 4); dump();
+vmpsadbw (xmm4, xmm6, ptr[eax+ecx+3], 4); dump();
+vmpsadbw (xmm4, xmm1, 4); dump();
+vmpsadbw (xmm3, ptr[eax+ecx+3], 4); dump();
+vpblendw (xmm5, xmm2, xmm5, 4); dump();
+vpblendw (xmm1, xmm7, ptr[eax+ecx+3], 4); dump();
+vpblendw (xmm0, xmm0, 4); dump();
+vpblendw (xmm5, ptr[eax+ecx+3], 4); dump();
+vroundsd (xmm5, xmm4, xmm7, 4); dump();
+vroundsd (xmm6, xmm5, ptr[eax+ecx+3], 4); dump();
+vroundsd (xmm2, xmm6, 4); dump();
+vroundsd (xmm6, ptr[eax+ecx+3], 4); dump();
+vroundss (xmm7, xmm6, xmm6, 4); dump();
+vroundss (xmm0, xmm3, ptr[eax+ecx+3], 4); dump();
+vroundss (xmm3, xmm7, 4); dump();
+vroundss (xmm2, ptr[eax+ecx+3], 4); dump();
+vpclmulqdq (xmm5, xmm7, xmm1, 4); dump();
+vpclmulqdq (xmm1, xmm0, ptr[eax+ecx+3], 4); dump();
+vpclmulqdq (xmm3, xmm5, 4); dump();
+vpclmulqdq (xmm5, ptr[eax+ecx+3], 4); dump();
+vcmppd (xmm2, xmm0, xmm5, 4); dump();
+vcmppd (xmm7, xmm1, ptr[eax+ecx+3], 4); dump();
+vcmppd (xmm5, xmm5, 4); dump();
+vcmppd (xmm7, ptr[eax+ecx+3], 4); dump();
+vcmppd (ymm1, ymm3, ptr[eax+ecx+3], 4); dump();
+vcmppd (ymm0, ymm5, ymm7, 4); dump();
+vcmppd (ymm6, ptr[eax+ecx+3], 4); dump();
+vcmppd (ymm2, ymm6, 4); dump();
+vcmpps (xmm5, xmm2, xmm0, 4); dump();
+vcmpps (xmm1, xmm3, ptr[eax+ecx+3], 4); dump();
+vcmpps (xmm5, xmm3, 4); dump();
+vcmpps (xmm0, ptr[eax+ecx+3], 4); dump();
+vcmpps (ymm0, ymm3, ptr[eax+ecx+3], 4); dump();
+vcmpps (ymm5, ymm5, ymm6, 4); dump();
+vcmpps (ymm0, ptr[eax+ecx+3], 4); dump();
+vcmpps (ymm4, ymm4, 4); dump();
+vcmpsd (xmm6, xmm2, xmm7, 4); dump();
+vcmpsd (xmm3, xmm7, ptr[eax+ecx+3], 4); dump();
+vcmpsd (xmm1, xmm3, 4); dump();
+vcmpsd (xmm6, ptr[eax+ecx+3], 4); dump();
+vcmpss (xmm4, xmm5, xmm0, 4); dump();
+vcmpss (xmm6, xmm2, ptr[eax+ecx+3], 4); dump();
+vcmpss (xmm5, xmm1, 4); dump();
+vcmpss (xmm6, ptr[eax+ecx+3], 4); dump();
+vinsertps (xmm2, xmm0, xmm7, 4); dump();
+vinsertps (xmm0, xmm6, ptr[eax+ecx+3], 4); dump();
+vinsertps (xmm4, xmm2, 4); dump();
+vinsertps (xmm5, ptr[eax+ecx+3], 4); dump();
+vpalignr (xmm1, xmm2, xmm5, 4); dump();
+vpalignr (xmm5, xmm4, ptr[eax+ecx+3], 4); dump();
+vpalignr (xmm6, xmm4, 4); dump();
+vpalignr (xmm1, ptr[eax+ecx+3], 4); dump();
+vshufpd (xmm7, xmm7, xmm7, 4); dump();
+vshufpd (xmm0, xmm4, ptr[eax+ecx+3], 4); dump();
+vshufpd (xmm1, xmm0, 4); dump();
+vshufpd (xmm5, ptr[eax+ecx+3], 4); dump();
+vshufpd (ymm1, ymm6, ptr[eax+ecx+3], 4); dump();
+vshufpd (ymm6, ymm3, ymm6, 4); dump();
+vshufpd (ymm7, ptr[eax+ecx+3], 4); dump();
+vshufpd (ymm3, ymm2, 4); dump();
+vshufps (xmm5, xmm5, xmm0, 4); dump();
+vshufps (xmm3, xmm6, ptr[eax+ecx+3], 4); dump();
+vshufps (xmm0, xmm7, 4); dump();
+vshufps (xmm1, ptr[eax+ecx+3], 4); dump();
+vshufps (ymm7, ymm6, ptr[eax+ecx+3], 4); dump();
+vshufps (ymm5, ymm4, ymm1, 4); dump();
+vshufps (ymm5, ptr[eax+ecx+3], 4); dump();
+vshufps (ymm3, ymm4, 4); dump();
+vroundpd (xmm6, xmm4, 4); dump();
+vroundpd (xmm2, ptr[eax+ecx+3], 4); dump();
+vroundpd (ymm5, ptr[eax+ecx+3], 4); dump();
+vroundpd (ymm7, ymm2, 4); dump();
+vroundps (xmm5, xmm2, 4); dump();
+vroundps (xmm3, ptr[eax+ecx+3], 4); dump();
+vroundps (ymm2, ptr[eax+ecx+3], 4); dump();
+vroundps (ymm5, ymm1, 4); dump();
+vpcmpestri (xmm6, xmm7, 4); dump();
+vpcmpestri (xmm2, ptr[eax+ecx+3], 4); dump();
+vpcmpestrm (xmm7, xmm7, 4); dump();
+vpcmpestrm (xmm1, ptr[eax+ecx+3], 4); dump();
+vpcmpistri (xmm1, xmm5, 4); dump();
+vpcmpistri (xmm7, ptr[eax+ecx+3], 4); dump();
+vpcmpistrm (xmm4, xmm1, 4); dump();
+vpcmpistrm (xmm4, ptr[eax+ecx+3], 4); dump();
+vpermilpd (xmm0, xmm4, 4); dump();
+vpermilpd (xmm5, ptr[eax+ecx+3], 4); dump();
+vpermilpd (ymm0, ptr[eax+ecx+3], 4); dump();
+vpermilpd (ymm2, ymm7, 4); dump();
+vpermilps (xmm6, xmm7, 4); dump();
+vpermilps (xmm4, ptr[eax+ecx+3], 4); dump();
+vpermilps (ymm7, ptr[eax+ecx+3], 4); dump();
+vpermilps (ymm7, ymm4, 4); dump();
+vaeskeygenassist (xmm7, xmm6, 4); dump();
+vaeskeygenassist (xmm7, ptr[eax+ecx+3], 4); dump();
+vpshufd (xmm4, xmm2, 4); dump();
+vpshufd (xmm3, ptr[eax+ecx+3], 4); dump();
+vpshufhw (xmm7, xmm0, 4); dump();
+vpshufhw (xmm6, ptr[eax+ecx+3], 4); dump();
+vpshuflw (xmm0, xmm6, 4); dump();
+vpshuflw (xmm0, ptr[eax+ecx+3], 4); dump();
+vpermilpd (xmm3, xmm0, xmm1); dump();
+vpermilpd (xmm1, xmm5, ptr[eax+ecx+3]); dump();
+vpermilpd (ymm5, ymm3, ptr[eax+ecx+3]); dump();
+vpermilpd (ymm7, ymm2, ymm4); dump();
+vpermilps (xmm7, xmm5, xmm7); dump();
+vpermilps (xmm3, xmm0, ptr[eax+ecx+3]); dump();
+vpermilps (ymm6, ymm6, ptr[eax+ecx+3]); dump();
+vpermilps (ymm0, ymm4, ymm7); dump();
+vpshufb (xmm0, xmm5, xmm3); dump();
+vpshufb (xmm6, xmm4, ptr[eax+ecx+3]); dump();
+vaesimc (xmm0, xmm5); dump();
+vaesimc (xmm3, ptr[eax+ecx+3]); dump();
+vtestps (xmm6, xmm1); dump();
+vtestps (xmm4, ptr[eax+ecx+3]); dump();
+vtestps (ymm2, ptr[eax+ecx+3]); dump();
+vtestps (ymm1, ymm4); dump();
+vtestpd (xmm2, xmm0); dump();
+vtestpd (xmm2, ptr[eax+ecx+3]); dump();
+vtestpd (ymm2, ptr[eax+ecx+3]); dump();
+vtestpd (ymm5, ymm7); dump();
+vcomisd (xmm7, xmm2); dump();
+vcomisd (xmm6, ptr[eax+ecx+3]); dump();
+vcomiss (xmm7, xmm6); dump();
+vcomiss (xmm7, ptr[eax+ecx+3]); dump();
+vcvtdq2ps (xmm4, xmm2); dump();
+vcvtdq2ps (xmm6, ptr[eax+ecx+3]); dump();
+vcvtdq2ps (ymm7, ptr[eax+ecx+3]); dump();
+vcvtdq2ps (ymm5, ymm4); dump();
+vcvtps2dq (xmm6, xmm2); dump();
+vcvtps2dq (xmm6, ptr[eax+ecx+3]); dump();
+vcvtps2dq (ymm2, ptr[eax+ecx+3]); dump();
+vcvtps2dq (ymm3, ymm2); dump();
+vcvttps2dq (xmm4, xmm6); dump();
+vcvttps2dq (xmm4, ptr[eax+ecx+3]); dump();
+vcvttps2dq (ymm4, ptr[eax+ecx+3]); dump();
+vcvttps2dq (ymm4, ymm4); dump();
+vmovapd (xmm0, xmm3); dump();
+vmovapd (xmm6, ptr[eax+ecx+3]); dump();
+vmovapd (ymm1, ptr[eax+ecx+3]); dump();
+vmovapd (ymm0, ymm4); dump();
+vmovaps (xmm4, xmm4); dump();
+vmovaps (xmm7, ptr[eax+ecx+3]); dump();
+vmovaps (ymm4, ptr[eax+ecx+3]); dump();
+vmovaps (ymm6, ymm0); dump();
+vmovddup (xmm5, xmm4); dump();
+vmovddup (xmm2, ptr[eax+ecx+3]); dump();
+vmovddup (ymm0, ptr[eax+ecx+3]); dump();
+vmovddup (ymm0, ymm4); dump();
+vmovdqa (xmm1, xmm5); dump();
+vmovdqa (xmm7, ptr[eax+ecx+3]); dump();
+vmovdqa (ymm3, ptr[eax+ecx+3]); dump();
+vmovdqa (ymm0, ymm2); dump();
+vmovdqu (xmm5, xmm5); dump();
+vmovdqu (xmm0, ptr[eax+ecx+3]); dump();
+vmovdqu (ymm7, ptr[eax+ecx+3]); dump();
+vmovdqu (ymm1, ymm3); dump();
+vmovupd (xmm3, xmm6); dump();
+vmovupd (xmm7, ptr[eax+ecx+3]); dump();
+vmovupd (ymm4, ptr[eax+ecx+3]); dump();
+vmovupd (ymm6, ymm1); dump();
+vmovups (xmm0, xmm6); dump();
+vmovups (xmm7, ptr[eax+ecx+3]); dump();
+vmovups (ymm4, ptr[eax+ecx+3]); dump();
+vmovups (ymm0, ymm4); dump();
+vpabsb (xmm3, xmm0); dump();
+vpabsb (xmm0, ptr[eax+ecx+3]); dump();
+vpabsw (xmm5, xmm1); dump();
+vpabsw (xmm6, ptr[eax+ecx+3]); dump();
+vpabsd (xmm4, xmm5); dump();
+vpabsd (xmm6, ptr[eax+ecx+3]); dump();
+vphminposuw (xmm4, xmm5); dump();
+vphminposuw (xmm7, ptr[eax+ecx+3]); dump();
+vpmovsxbw (xmm4, xmm4); dump();
+vpmovsxbw (xmm0, ptr[eax+ecx+3]); dump();
+vpmovsxbd (xmm0, xmm5); dump();
+vpmovsxbd (xmm6, ptr[eax+ecx+3]); dump();
+vpmovsxbq (xmm3, xmm3); dump();
+vpmovsxbq (xmm2, ptr[eax+ecx+3]); dump();
+vpmovsxwd (xmm4, xmm3); dump();
+vpmovsxwd (xmm7, ptr[eax+ecx+3]); dump();
+vpmovsxwq (xmm4, xmm0); dump();
+vpmovsxwq (xmm0, ptr[eax+ecx+3]); dump();
+vpmovsxdq (xmm0, xmm7); dump();
+vpmovsxdq (xmm0, ptr[eax+ecx+3]); dump();
+vpmovzxbw (xmm5, xmm5); dump();
+vpmovzxbw (xmm1, ptr[eax+ecx+3]); dump();
+vpmovzxbd (xmm2, xmm6); dump();
+vpmovzxbd (xmm5, ptr[eax+ecx+3]); dump();
+vpmovzxbq (xmm1, xmm5); dump();
+vpmovzxbq (xmm3, ptr[eax+ecx+3]); dump();
+vpmovzxwd (xmm0, xmm1); dump();
+vpmovzxwd (xmm4, ptr[eax+ecx+3]); dump();
+vpmovzxwq (xmm3, xmm6); dump();
+vpmovzxwq (xmm7, ptr[eax+ecx+3]); dump();
+vpmovzxdq (xmm1, xmm7); dump();
+vpmovzxdq (xmm4, ptr[eax+ecx+3]); dump();
+vptest (xmm5, xmm2); dump();
+vptest (xmm5, ptr[eax+ecx+3]); dump();
+vrcpps (xmm2, xmm4); dump();
+vrcpps (xmm2, ptr[eax+ecx+3]); dump();
+vrcpps (ymm1, ptr[eax+ecx+3]); dump();
+vrcpps (ymm3, ymm2); dump();
+vrcpss (xmm6, xmm0); dump();
+vrcpss (xmm7, ptr[eax+ecx+3]); dump();
+vrsqrtps (xmm4, xmm0); dump();
+vrsqrtps (xmm7, ptr[eax+ecx+3]); dump();
+vrsqrtps (ymm0, ptr[eax+ecx+3]); dump();
+vrsqrtps (ymm7, ymm4); dump();
+vrsqrtss (xmm7, xmm5); dump();
+vrsqrtss (xmm2, ptr[eax+ecx+3]); dump();
+vsqrtpd (xmm2, xmm4); dump();
+vsqrtpd (xmm5, ptr[eax+ecx+3]); dump();
+vsqrtpd (ymm6, ptr[eax+ecx+3]); dump();
+vsqrtpd (ymm5, ymm7); dump();
+vsqrtps (xmm6, xmm6); dump();
+vsqrtps (xmm2, ptr[eax+ecx+3]); dump();
+vsqrtps (ymm7, ptr[eax+ecx+3]); dump();
+vsqrtps (ymm2, ymm5); dump();
+vucomisd (xmm4, xmm7); dump();
+vucomisd (xmm3, ptr[eax+ecx+3]); dump();
+vucomiss (xmm6, xmm7); dump();
+vucomiss (xmm1, ptr[eax+ecx+3]); dump();
+vmovapd (ptr[eax+ecx+3], xmm6); dump();
+vmovapd (ptr[eax+ecx+3], ymm0); dump();
+vmovaps (ptr[eax+ecx+3], xmm3); dump();
+vmovaps (ptr[eax+ecx+3], ymm3); dump();
+vmovdqa (ptr[eax+ecx+3], xmm5); dump();
+vmovdqa (ptr[eax+ecx+3], ymm4); dump();
+vmovdqu (ptr[eax+ecx+3], xmm6); dump();
+vmovdqu (ptr[eax+ecx+3], ymm6); dump();
+vmovupd (ptr[eax+ecx+3], xmm4); dump();
+vmovupd (ptr[eax+ecx+3], ymm2); dump();
+vmovups (ptr[eax+ecx+3], xmm4); dump();
+vmovups (ptr[eax+ecx+3], ymm4); dump();
+vpslldq (xmm2, xmm1, 4); dump();
+vpslldq (xmm0, 4); dump();
+vpsrldq (xmm3, xmm7, 4); dump();
+vpsrldq (xmm2, 4); dump();
+vpsllw (xmm0, xmm3, 4); dump();
+vpsllw (xmm0, 4); dump();
+vpslld (xmm1, xmm6, 4); dump();
+vpslld (xmm3, 4); dump();
+vpsllq (xmm0, xmm4, 4); dump();
+vpsllq (xmm5, 4); dump();
+vpsraw (xmm4, xmm5, 4); dump();
+vpsraw (xmm1, 4); dump();
+vpsrad (xmm5, xmm1, 4); dump();
+vpsrad (xmm0, 4); dump();
+vpsrlw (xmm4, xmm1, 4); dump();
+vpsrlw (xmm5, 4); dump();
+vpsrld (xmm1, xmm3, 4); dump();
+vpsrld (xmm3, 4); dump();
+vpsrlq (xmm5, xmm2, 4); dump();
+vpsrlq (xmm4, 4); dump();
+vfmadd132pd (xmm4, xmm5, xmm2); dump();
+vfmadd132pd (xmm3, xmm0, ptr[eax+ecx+3]); dump();
+vfmadd132pd (ymm6, ymm5, ptr[eax+ecx+3]); dump();
+vfmadd132pd (ymm5, ymm1, ymm0); dump();
+vfmadd132ps (xmm7, xmm7, xmm0); dump();
+vfmadd132ps (xmm2, xmm4, ptr[eax+ecx+3]); dump();
+vfmadd132ps (ymm2, ymm7, ptr[eax+ecx+3]); dump();
+vfmadd132ps (ymm3, ymm3, ymm0); dump();
+vfmadd213pd (xmm7, xmm5, xmm4); dump();
+vfmadd213pd (xmm0, xmm6, ptr[eax+ecx+3]); dump();
+vfmadd213pd (ymm6, ymm0, ptr[eax+ecx+3]); dump();
+vfmadd213pd (ymm1, ymm2, ymm4); dump();
+vfmadd213ps (xmm3, xmm1, xmm2); dump();
+vfmadd213ps (xmm5, xmm6, ptr[eax+ecx+3]); dump();
+vfmadd213ps (ymm5, ymm6, ptr[eax+ecx+3]); dump();
+vfmadd213ps (ymm4, ymm0, ymm3); dump();
+vfmadd231pd (xmm3, xmm0, xmm2); dump();
+vfmadd231pd (xmm6, xmm4, ptr[eax+ecx+3]); dump();
+vfmadd231pd (ymm4, ymm1, ptr[eax+ecx+3]); dump();
+vfmadd231pd (ymm7, ymm2, ymm6); dump();
+vfmadd231ps (xmm6, xmm0, xmm7); dump();
+vfmadd231ps (xmm2, xmm7, ptr[eax+ecx+3]); dump();
+vfmadd231ps (ymm4, ymm0, ptr[eax+ecx+3]); dump();
+vfmadd231ps (ymm4, ymm6, ymm7); dump();
+vfmadd132sd (xmm6, xmm4, xmm3); dump();
+vfmadd132sd (xmm5, xmm6, ptr[eax+ecx+3]); dump();
+vfmadd132ss (xmm6, xmm2, xmm4); dump();
+vfmadd132ss (xmm7, xmm6, ptr[eax+ecx+3]); dump();
+vfmadd213sd (xmm2, xmm1, xmm0); dump();
+vfmadd213sd (xmm4, xmm6, ptr[eax+ecx+3]); dump();
+vfmadd213ss (xmm2, xmm4, xmm6); dump();
+vfmadd213ss (xmm0, xmm5, ptr[eax+ecx+3]); dump();
+vfmadd231sd (xmm0, xmm2, xmm5); dump();
+vfmadd231sd (xmm0, xmm7, ptr[eax+ecx+3]); dump();
+vfmadd231ss (xmm0, xmm5, xmm6); dump();
+vfmadd231ss (xmm2, xmm1, ptr[eax+ecx+3]); dump();
+vfmaddsub132pd (xmm3, xmm0, xmm5); dump();
+vfmaddsub132pd (xmm6, xmm7, ptr[eax+ecx+3]); dump();
+vfmaddsub132pd (ymm4, ymm7, ptr[eax+ecx+3]); dump();
+vfmaddsub132pd (ymm3, ymm4, ymm0); dump();
+vfmaddsub132ps (xmm3, xmm5, xmm5); dump();
+vfmaddsub132ps (xmm0, xmm5, ptr[eax+ecx+3]); dump();
+vfmaddsub132ps (ymm5, ymm5, ptr[eax+ecx+3]); dump();
+vfmaddsub132ps (ymm2, ymm6, ymm2); dump();
+vfmaddsub213pd (xmm6, xmm4, xmm6); dump();
+vfmaddsub213pd (xmm5, xmm6, ptr[eax+ecx+3]); dump();
+vfmaddsub213pd (ymm0, ymm2, ptr[eax+ecx+3]); dump();
+vfmaddsub213pd (ymm4, ymm0, ymm2); dump();
+vfmaddsub213ps (xmm7, xmm2, xmm2); dump();
+vfmaddsub213ps (xmm7, xmm6, ptr[eax+ecx+3]); dump();
+vfmaddsub213ps (ymm0, ymm0, ptr[eax+ecx+3]); dump();
+vfmaddsub213ps (ymm3, ymm0, ymm1); dump();
+vfmaddsub231pd (xmm4, xmm5, xmm4); dump();
+vfmaddsub231pd (xmm0, xmm0, ptr[eax+ecx+3]); dump();
+vfmaddsub231pd (ymm3, ymm5, ptr[eax+ecx+3]); dump();
+vfmaddsub231pd (ymm7, ymm0, ymm3); dump();
+vfmaddsub231ps (xmm7, xmm1, xmm3); dump();
+vfmaddsub231ps (xmm3, xmm5, ptr[eax+ecx+3]); dump();
+vfmaddsub231ps (ymm6, ymm3, ptr[eax+ecx+3]); dump();
+vfmaddsub231ps (ymm0, ymm2, ymm2); dump();
+vfmsubadd132pd (xmm5, xmm0, xmm0); dump();
+vfmsubadd132pd (xmm7, xmm4, ptr[eax+ecx+3]); dump();
+vfmsubadd132pd (ymm0, ymm1, ptr[eax+ecx+3]); dump();
+vfmsubadd132pd (ymm2, ymm7, ymm5); dump();
+vfmsubadd132ps (xmm4, xmm2, xmm2); dump();
+vfmsubadd132ps (xmm7, xmm0, ptr[eax+ecx+3]); dump();
+vfmsubadd132ps (ymm0, ymm5, ptr[eax+ecx+3]); dump();
+vfmsubadd132ps (ymm3, ymm0, ymm6); dump();
+vfmsubadd213pd (xmm5, xmm7, xmm7); dump();
+vfmsubadd213pd (xmm1, xmm5, ptr[eax+ecx+3]); dump();
+vfmsubadd213pd (ymm2, ymm3, ptr[eax+ecx+3]); dump();
+vfmsubadd213pd (ymm2, ymm3, ymm5); dump();
+vfmsubadd213ps (xmm2, xmm2, xmm4); dump();
+vfmsubadd213ps (xmm7, xmm4, ptr[eax+ecx+3]); dump();
+vfmsubadd213ps (ymm4, ymm7, ptr[eax+ecx+3]); dump();
+vfmsubadd213ps (ymm5, ymm7, ymm5); dump();
+vfmsubadd231pd (xmm6, xmm5, xmm1); dump();
+vfmsubadd231pd (xmm6, xmm1, ptr[eax+ecx+3]); dump();
+vfmsubadd231pd (ymm2, ymm4, ptr[eax+ecx+3]); dump();
+vfmsubadd231pd (ymm1, ymm3, ymm4); dump();
+vfmsubadd231ps (xmm1, xmm5, xmm0); dump();
+vfmsubadd231ps (xmm7, xmm6, ptr[eax+ecx+3]); dump();
+vfmsubadd231ps (ymm3, ymm0, ptr[eax+ecx+3]); dump();
+vfmsubadd231ps (ymm7, ymm5, ymm0); dump();
+vfmsub132pd (xmm2, xmm0, xmm0); dump();
+vfmsub132pd (xmm5, xmm5, ptr[eax+ecx+3]); dump();
+vfmsub132pd (ymm1, ymm1, ptr[eax+ecx+3]); dump();
+vfmsub132pd (ymm2, ymm0, ymm2); dump();
+vfmsub132ps (xmm4, xmm0, xmm6); dump();
+vfmsub132ps (xmm3, xmm2, ptr[eax+ecx+3]); dump();
+vfmsub132ps (ymm0, ymm1, ptr[eax+ecx+3]); dump();
+vfmsub132ps (ymm1, ymm1, ymm1); dump();
+vfmsub213pd (xmm3, xmm5, xmm7); dump();
+vfmsub213pd (xmm7, xmm2, ptr[eax+ecx+3]); dump();
+vfmsub213pd (ymm5, ymm3, ptr[eax+ecx+3]); dump();
+vfmsub213pd (ymm4, ymm0, ymm0); dump();
+vfmsub213ps (xmm2, xmm2, xmm2); dump();
+vfmsub213ps (xmm3, xmm4, ptr[eax+ecx+3]); dump();
+vfmsub213ps (ymm3, ymm7, ptr[eax+ecx+3]); dump();
+vfmsub213ps (ymm7, ymm2, ymm2); dump();
+vfmsub231pd (xmm6, xmm1, xmm2); dump();
+vfmsub231pd (xmm1, xmm0, ptr[eax+ecx+3]); dump();
+vfmsub231pd (ymm0, ymm3, ptr[eax+ecx+3]); dump();
+vfmsub231pd (ymm6, ymm0, ymm0); dump();
+vfmsub231ps (xmm3, xmm6, xmm3); dump();
+vfmsub231ps (xmm6, xmm3, ptr[eax+ecx+3]); dump();
+vfmsub231ps (ymm7, ymm3, ptr[eax+ecx+3]); dump();
+vfmsub231ps (ymm0, ymm4, ymm0); dump();
+vfmsub132sd (xmm6, xmm7, xmm7); dump();
+vfmsub132sd (xmm6, xmm6, ptr[eax+ecx+3]); dump();
+vfmsub132ss (xmm6, xmm4, xmm7); dump();
+vfmsub132ss (xmm1, xmm4, ptr[eax+ecx+3]); dump();
+vfmsub213sd (xmm3, xmm3, xmm1); dump();
+vfmsub213sd (xmm0, xmm1, ptr[eax+ecx+3]); dump();
+vfmsub213ss (xmm0, xmm5, xmm7); dump();
+vfmsub213ss (xmm1, xmm4, ptr[eax+ecx+3]); dump();
+vfmsub231sd (xmm3, xmm2, xmm3); dump();
+vfmsub231sd (xmm7, xmm0, ptr[eax+ecx+3]); dump();
+vfmsub231ss (xmm0, xmm6, xmm6); dump();
+vfmsub231ss (xmm5, xmm3, ptr[eax+ecx+3]); dump();
+vfnmadd132pd (xmm4, xmm2, xmm5); dump();
+vfnmadd132pd (xmm3, xmm1, ptr[eax+ecx+3]); dump();
+vfnmadd132pd (ymm1, ymm2, ptr[eax+ecx+3]); dump();
+vfnmadd132pd (ymm1, ymm2, ymm7); dump();
+vfnmadd132ps (xmm2, xmm0, xmm2); dump();
+vfnmadd132ps (xmm1, xmm7, ptr[eax+ecx+3]); dump();
+vfnmadd132ps (ymm1, ymm3, ptr[eax+ecx+3]); dump();
+vfnmadd132ps (ymm2, ymm2, ymm4); dump();
+vfnmadd213pd (xmm1, xmm2, xmm1); dump();
+vfnmadd213pd (xmm6, xmm6, ptr[eax+ecx+3]); dump();
+vfnmadd213pd (ymm1, ymm0, ptr[eax+ecx+3]); dump();
+vfnmadd213pd (ymm5, ymm1, ymm6); dump();
+vfnmadd213ps (xmm7, xmm3, xmm1); dump();
+vfnmadd213ps (xmm2, xmm5, ptr[eax+ecx+3]); dump();
+vfnmadd213ps (ymm0, ymm7, ptr[eax+ecx+3]); dump();
+vfnmadd213ps (ymm0, ymm6, ymm1); dump();
+vfnmadd231pd (xmm5, xmm0, xmm5); dump();
+vfnmadd231pd (xmm0, xmm0, ptr[eax+ecx+3]); dump();
+vfnmadd231pd (ymm5, ymm2, ptr[eax+ecx+3]); dump();
+vfnmadd231pd (ymm4, ymm7, ymm4); dump();
+vfnmadd231ps (xmm2, xmm6, xmm4); dump();
+vfnmadd231ps (xmm5, xmm3, ptr[eax+ecx+3]); dump();
+vfnmadd231ps (ymm4, ymm1, ptr[eax+ecx+3]); dump();
+vfnmadd231ps (ymm3, ymm2, ymm4); dump();
+vfnmadd132sd (xmm4, xmm2, xmm4); dump();
+vfnmadd132sd (xmm4, xmm2, ptr[eax+ecx+3]); dump();
+vfnmadd132ss (xmm4, xmm6, xmm1); dump();
+vfnmadd132ss (xmm1, xmm6, ptr[eax+ecx+3]); dump();
+vfnmadd213sd (xmm7, xmm1, xmm2); dump();
+vfnmadd213sd (xmm5, xmm6, ptr[eax+ecx+3]); dump();
+vfnmadd213ss (xmm0, xmm6, xmm4); dump();
+vfnmadd213ss (xmm2, xmm4, ptr[eax+ecx+3]); dump();
+vfnmadd231sd (xmm7, xmm6, xmm7); dump();
+vfnmadd231sd (xmm0, xmm1, ptr[eax+ecx+3]); dump();
+vfnmadd231ss (xmm4, xmm4, xmm4); dump();
+vfnmadd231ss (xmm6, xmm0, ptr[eax+ecx+3]); dump();
+vfnmsub132pd (xmm7, xmm5, xmm1); dump();
+vfnmsub132pd (xmm6, xmm4, ptr[eax+ecx+3]); dump();
+vfnmsub132pd (ymm6, ymm1, ptr[eax+ecx+3]); dump();
+vfnmsub132pd (ymm7, ymm5, ymm4); dump();
+vfnmsub132ps (xmm6, xmm3, xmm0); dump();
+vfnmsub132ps (xmm2, xmm5, ptr[eax+ecx+3]); dump();
+vfnmsub132ps (ymm0, ymm5, ptr[eax+ecx+3]); dump();
+vfnmsub132ps (ymm7, ymm3, ymm0); dump();
+vfnmsub213pd (xmm1, xmm6, xmm2); dump();
+vfnmsub213pd (xmm3, xmm4, ptr[eax+ecx+3]); dump();
+vfnmsub213pd (ymm0, ymm2, ptr[eax+ecx+3]); dump();
+vfnmsub213pd (ymm2, ymm1, ymm1); dump();
+vfnmsub213ps (xmm6, xmm7, xmm3); dump();
+vfnmsub213ps (xmm5, xmm4, ptr[eax+ecx+3]); dump();
+vfnmsub213ps (ymm7, ymm3, ptr[eax+ecx+3]); dump();
+vfnmsub213ps (ymm6, ymm4, ymm5); dump();
+vfnmsub231pd (xmm6, xmm2, xmm2); dump();
+vfnmsub231pd (xmm5, xmm2, ptr[eax+ecx+3]); dump();
+vfnmsub231pd (ymm6, ymm1, ptr[eax+ecx+3]); dump();
+vfnmsub231pd (ymm0, ymm5, ymm5); dump();
+vfnmsub231ps (xmm2, xmm4, xmm7); dump();
+vfnmsub231ps (xmm6, xmm4, ptr[eax+ecx+3]); dump();
+vfnmsub231ps (ymm7, ymm2, ptr[eax+ecx+3]); dump();
+vfnmsub231ps (ymm0, ymm5, ymm1); dump();
+vfnmsub132sd (xmm7, xmm5, xmm4); dump();
+vfnmsub132sd (xmm6, xmm1, ptr[eax+ecx+3]); dump();
+vfnmsub132ss (xmm3, xmm0, xmm1); dump();
+vfnmsub132ss (xmm4, xmm6, ptr[eax+ecx+3]); dump();
+vfnmsub213sd (xmm0, xmm2, xmm3); dump();
+vfnmsub213sd (xmm3, xmm1, ptr[eax+ecx+3]); dump();
+vfnmsub213ss (xmm0, xmm1, xmm5); dump();
+vfnmsub213ss (xmm6, xmm0, ptr[eax+ecx+3]); dump();
+vfnmsub231sd (xmm4, xmm0, xmm3); dump();
+vfnmsub231sd (xmm1, xmm6, ptr[eax+ecx+3]); dump();
+vfnmsub231ss (xmm3, xmm3, xmm2); dump();
+vfnmsub231ss (xmm6, xmm2, ptr[eax+ecx+3]); dump();
+vmaskmovps (xmm4, xmm3, ptr[eax+ecx+3]); dump();
+vmaskmovps (ymm4, ymm7, ptr[eax+ecx+3]); dump();
+vmaskmovpd (ymm5, ymm5, ptr[eax+ecx+3]); dump();
+vmaskmovpd (xmm1, xmm1, ptr[eax+ecx+3]); dump();
+vmaskmovps (ptr[eax+ecx+3], xmm7, xmm4); dump();
+vmaskmovpd (ptr[eax+ecx+3], xmm5, xmm2); dump();
+vbroadcastf128 (ymm2, ptr[eax+ecx+3]); dump();
+vbroadcastsd (ymm0, ptr[eax+ecx+3]); dump();
+vbroadcastss (xmm2, ptr[eax+ecx+3]); dump();
+vbroadcastss (ymm3, ptr[eax+ecx+3]); dump();
+vinsertf128 (ymm1, ymm6, xmm1, 4); dump();
+vinsertf128 (ymm3, ymm4, ptr[eax+ecx+3], 4); dump();
+vperm2f128 (ymm0, ymm2, ptr[eax+ecx+3], 4); dump();
+vperm2f128 (ymm0, ymm0, ymm5, 4); dump();
+ }
+ void gen()
+ {
+ gen0();
+ }
diff --git a/test/test_address.bat b/test/test_address.bat
index 36240dd..fe1b437 100644
--- a/test/test_address.bat
+++ b/test/test_address.bat
@@ -25,7 +25,7 @@ cl address.cpp %OPT% %OPT2%
address %1% > a.asm
echo nasm -f %OPT3% -l a.lst a.asm
nasm -f %OPT3% -l a.lst a.asm
-awk "{print $3}" < a.lst > ok.lst
+awk "!/warning:/ {print $3}" < a.lst > ok.lst
echo address %1% jit > nm.cpp
address %1% jit > nm.cpp
echo cl -I../ -DXBYAK_TEST nm_frame.cpp %OPT% %OPT2%
diff --git a/test/test_nm.sh b/test/test_nm.sh
index b3eca1e..f85e3d0 100755
--- a/test/test_nm.sh
+++ b/test/test_nm.sh
@@ -1,5 +1,7 @@
#!/bin/tcsh
+
set FILTER=cat
+
if ($1 == "Y") then
echo "yasm(32bit)"
set EXE=yasm
diff --git a/test/test_nm_all.bat b/test/test_nm_all.bat
index 698b093..af6cb77 100644
--- a/test/test_nm_all.bat
+++ b/test/test_nm_all.bat
@@ -7,3 +7,5 @@ echo *** nasm(64bit) ***
call test_nm 64
echo *** yasm(64bit) ***
call test_nm Y64
+
+call test_avx_all
diff --git a/xbyak.sln b/xbyak.sln
index 0c5abab..0f23415 100644
--- a/xbyak.sln
+++ b/xbyak.sln
@@ -13,6 +13,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toyvm", "sample\toyvm.vcpro
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_util", "sample\test_util.vcproj", "{CFC9B272-FDA1-4C87-B4EF-CDCA9B57F4DD}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "calc2", "sample\calc2.vcproj", "{8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -69,6 +71,14 @@ Global
{CFC9B272-FDA1-4C87-B4EF-CDCA9B57F4DD}.Release|Win32.Build.0 = Release|Win32
{CFC9B272-FDA1-4C87-B4EF-CDCA9B57F4DD}.Release|x64.ActiveCfg = Release|x64
{CFC9B272-FDA1-4C87-B4EF-CDCA9B57F4DD}.Release|x64.Build.0 = Release|x64
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Debug|Win32.Build.0 = Debug|Win32
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Debug|x64.ActiveCfg = Debug|x64
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Debug|x64.Build.0 = Debug|x64
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Release|Win32.ActiveCfg = Release|Win32
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Release|Win32.Build.0 = Release|Win32
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Release|x64.ActiveCfg = Release|x64
+ {8EC11C7F-1B5C-4787-8940-B9B3AAF1D204}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index e6d269e..f4822f9 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -4,9 +4,9 @@
@file xbyak.h
@brief Xbyak ; JIT assembler for x86(IA32)/x64 by C++
@author herumi
- @version $Revision: 1.196 $
+ @version $Revision: 1.238 $
@url http://homepage1.nifty.com/herumi/soft/xbyak.html
- @date $Date: 2010/07/07 01:00:04 $
+ @date $Date: 2011/02/04 03:46:09 $
@note modified new BSD license
http://www.opensource.org/licenses/bsd-license.php
*/
@@ -15,6 +15,7 @@
#include <assert.h>
#include <map>
#include <string>
+#include <algorithm>
#ifdef _WIN32
#include <windows.h>
#elif defined(__GNUC__)
@@ -55,7 +56,7 @@ namespace Xbyak {
enum {
DEFAULT_MAX_CODE_SIZE = 4096,
- VERSION = 0x2290, /* 0xABCD = A.BC(D) */
+ VERSION = 0x2990, /* 0xABCD = A.BC(D) */
};
#ifndef MIE_INTEGER_TYPE_DEFINED
@@ -173,7 +174,8 @@ public:
REG = 1 << 3,
MMX = 1 << 4,
XMM = 1 << 5,
- FPU = 1 << 6
+ FPU = 1 << 6,
+ YMM = 1 << 7
};
enum Code {
#ifdef XBYAK64
@@ -201,11 +203,11 @@ public:
bool isNone() const { return kind_ == 0; }
bool isMMX() const { return is(MMX); }
bool isXMM() const { return is(XMM); }
+ bool isYMM() const { return is(YMM); }
bool isREG(int bit = 0) const { return is(REG, bit); }
bool isMEM(int bit = 0) const { return is(MEM, bit); }
bool isFPU() const { return is(FPU); }
bool isExt8bit() const { return ext8bit_ != 0; }
- Operand changeBit(int bit) const { return Operand(idx_, static_cast<Kind>(kind_), bit, ext8bit_); }
// any bit is accetable if bit == 0
bool is(int kind, uint32 bit = 0) const
{
@@ -227,12 +229,15 @@ public:
{ "rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi", "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15" },
};
return tbl[bit_ == 8 ? 0 : bit_ == 16 ? 1 : bit_ == 32 ? 2 : 3][idx_];
- } else if (isMMX()) {
- static const char tbl[8][4] = { "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7" };
+ } else if (isYMM()) {
+ static const char tbl[16][5] = { "ym0", "ym1", "ym2", "ym3", "ym4", "ym5", "ym6", "ym7", "ym8", "ym9", "ym10", "ym11", "ym12", "ym13", "ym14", "ym15" };
return tbl[idx_];
} else if (isXMM()) {
static const char tbl[16][5] = { "xm0", "xm1", "xm2", "xm3", "xm4", "xm5", "xm6", "xm7", "xm8", "xm9", "xm10", "xm11", "xm12", "xm13", "xm14", "xm15" };
return tbl[idx_];
+ } else if (isMMX()) {
+ static const char tbl[8][4] = { "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7" };
+ return tbl[idx_];
} else if (isFPU()) {
static const char tbl[8][4] = { "st0", "st1", "st2", "st3", "st4", "st5", "st6", "st7" };
return tbl[idx_];
@@ -243,14 +248,15 @@ public:
class Reg : public Operand {
void operator=(const Reg&);
+ bool hasRex() const { return isExt8bit() | isREG(64) | isExtIdx(); }
public:
Reg() { }
Reg(int idx, Kind kind, int bit = 0, int ext8bit = 0) : Operand(idx, kind, bit, ext8bit) { }
- // reg = this
- uint8 getRex(const Reg& index = Reg(), const Reg& base = Reg()) const
+ Reg changeBit(int bit) const { return Reg(getIdx(), getKind(), bit, isExt8bit()); }
+ bool isExtIdx() const { return getIdx() > 7; }
+ uint8 getRex(const Reg& base = Reg()) const
{
- if ((!isExt8bit() && !index.isExt8bit() && !base.isExt8bit()) && (getIdx() | index.getIdx() | base.getIdx()) < 8) return 0;
- return uint8(0x40 | ((getIdx() >> 3) << 2)| ((index.getIdx() >> 3) << 1) | (base.getIdx() >> 3));
+ return (hasRex() || base.hasRex()) ? uint8(0x40 | ((isREG(64) | base.isREG(64)) ? 8 : 0) | (isExtIdx() ? 4 : 0)| (base.isExtIdx() ? 1 : 0)) : 0;
}
};
@@ -275,7 +281,13 @@ public:
class Xmm : public Mmx {
void operator=(const Xmm&);
public:
- explicit Xmm(int idx) : Mmx(idx, Operand::XMM, 128) { }
+ explicit Xmm(int idx, Kind kind = Operand::XMM, int bit = 128) : Mmx(idx, kind, bit) { }
+};
+
+class Ymm : public Xmm {
+ void operator=(const Ymm&);
+public:
+ explicit Ymm(int idx) : Xmm(idx, Operand::YMM, 256) { }
};
class Fpu : public Reg {
@@ -327,7 +339,7 @@ private:
{
return operator+(r, -static_cast<int>(disp));
}
- void operator=(const Reg32e&); // don't call
+ void operator=(const Reg32e&);
public:
explicit Reg32e(int idx, int bit)
: Reg(idx, REG, bit)
@@ -407,7 +419,6 @@ public:
, size_(0)
{
if (type_ == ALLOC_BUF && !protect(top_, maxSize, true)) {
-// fprintf(stderr, "can't protect (addr=%p, size=%u, canExec=%d)\n", addr, size, canExec);
throw ERR_CANT_PROTECT;
}
}
@@ -541,11 +552,7 @@ public:
uint64 getDisp() const { return disp_; }
uint8 getRex() const { return rex_; }
bool is64bitDisp() const { return is64bitDisp_; } // for moffset
-#ifdef XBYAK64
void setRex(uint8 rex) { rex_ = rex; }
-#else
- void setRex(uint8) { }
-#endif
};
class AddressFrame {
@@ -611,7 +618,8 @@ public:
} else if (mod == mod10 || (mod == mod00 && r.isNone())) {
frame.dd(r.disp_);
}
- frame.setRex(Reg().getRex(r.index_, r));
+ uint8 rex = ((r.getIdx() | r.index_.getIdx()) < 8) ? 0 : uint8(0x40 | ((r.index_.getIdx() >> 3) << 1) | (r.getIdx() >> 3));
+ frame.setRex(rex);
return frame;
}
};
@@ -785,35 +793,43 @@ private:
{
return op1.isREG(i32e) && (op2.isXMM() || op2.isMEM());
}
- void if16bit(const Operand& reg1, const Operand& reg2)
+ void rex(const Operand& op1, const Operand& op2 = Operand())
{
+ uint8 rex = 0;
+ const Operand *p1 = &op1, *p2 = &op2;
+ if (p1->isMEM()) std::swap(p1, p2);
+ if (p1->isMEM()) throw ERR_BAD_COMBINATION;
+ if (p2->isMEM()) {
+ const Address& addr = static_cast<const Address&>(*p2);
+ if (BIT == 64 && addr.is32bit_) db(0x67);
+ rex = addr.getRex() | static_cast<const Reg&>(*p1).getRex();
+ } else {
+ // ModRM(reg, base);
+ rex = static_cast<const Reg&>(op2).getRex(static_cast<const Reg&>(op1));
+ }
// except movsx(16bit, 32/64bit)
- if ((reg1.isBit(16) && !reg2.isBit(i32e)) || (reg2.isBit(16) && !reg1.isBit(i32e))) db(0x66);
- }
- void rexAddr(const Address& addr, const Reg& reg = Reg())
- {
-#ifdef XBYAK64
- if (addr.is32bit_) db(0x67);
-#endif
- if16bit(reg, addr);
- uint32 rex = addr.getRex() | reg.getRex();
- if (reg.isREG(64)) rex |= 0x48;
+ if ((op1.isBit(16) && !op2.isBit(i32e)) || (op2.isBit(16) && !op1.isBit(i32e))) db(0x66);
if (rex) db(rex);
}
- void rex(const Operand& op1, const Operand& op2 = Operand())
+ enum AVXtype {
+ PP_NONE = 1 << 0,
+ PP_66 = 1 << 1,
+ PP_F3 = 1 << 2,
+ PP_F2 = 1 << 3,
+ MM_RESERVED = 1 << 4,
+ MM_0F = 1 << 5,
+ MM_0F38 = 1 << 6,
+ MM_0F3A = 1 << 7
+ };
+ void vex(bool r, int idx, bool is256, int type, bool x = false, bool b = false, int w = 1)
{
- if (op1.isMEM()) {
- rexAddr(static_cast<const Address&>(op1), static_cast<const Reg&>(op2));
- } else if (op2.isMEM()) {
- rexAddr(static_cast<const Address&>(op2), static_cast<const Reg&>(op1));
+ uint32 pp = (type & PP_66) ? 1 : (type & PP_F3) ? 2 : (type & PP_F2) ? 3 : 0;
+ uint32 vvvv = (((~idx) & 15) << 3) | (is256 ? 4 : 0) | pp;
+ if (!b && !x && !w && (type & MM_0F)) {
+ db(0xC5); db((r ? 0 : 0x80) | vvvv);
} else {
- const Reg& reg1 = static_cast<const Reg&>(op1);
- const Reg& reg2 = static_cast<const Reg&>(op2);
- // ModRM(reg, base);
- if16bit(reg1, reg2);
- uint8 rex = reg2.getRex(Reg(), reg1);
- if (reg1.isREG(64) || reg2.isREG(64)) rex |= 0x48;
- if (rex) db(rex);
+ uint32 mmmm = (type & MM_0F) ? 1 : (type & MM_0F38) ? 2 : (type & MM_0F3A) ? 3 : 0;
+ db(0xC4); db((r ? 0 : 0x80) | (x ? 0 : 0x40) | (b ? 0 : 0x20) | mmmm); db((w << 7) | vvvv);
}
}
Label label_;
@@ -900,8 +916,7 @@ private:
}
void opMMX(const Mmx& mmx, const Operand& op, int code, int pref = 0x66, int imm8 = NONE, int preCode = NONE)
{
- pref = mmx.isXMM() ? pref : NONE;
- opGen(mmx, op, code, pref, isXMMorMMX_MEM, imm8, preCode);
+ opGen(mmx, op, code, mmx.isXMM() ? pref : NONE, isXMMorMMX_MEM, imm8, preCode);
}
void opMovXMM(const Operand& op1, const Operand& op2, int code, int pref)
{
@@ -923,28 +938,14 @@ private:
opGen(mmx, op, code, 0x66, isXMM_REG32orMEM, imm, B00111010);
}
}
- void opR_ModM(const Operand& op, int bit, uint8 mod, int ext, int code0, int code1 = NONE, int code2 = NONE,
- bool
-#ifdef XBYAK64
- disableRex // avoid warning
-#endif
- = false)
+ void opR_ModM(const Operand& op, int bit, int ext, int code0, int code1 = NONE, int code2 = NONE, bool disableRex = false)
{
+ int opBit = op.getBit();
+ if (disableRex && opBit == 64) opBit = 32;
if (op.isREG(bit)) {
-#ifdef XBYAK64 // append for call/jmp(dirty hack)
- if (disableRex) {
- uint8 rex = Reg().getRex(Reg(), static_cast<const Reg&>(op));
- if (op.isREG(16)) db(0x66);
- if (rex) db(rex);
- } else
-#endif
- {
- rex(op);
- }
- db(code0 | (op.isBit(8) ? 0 : 1)); if (code1 != NONE) db(code1); if (code2 != NONE) db(code2);
- db(getModRM(mod, ext, op.getIdx()));
+ opModR(Reg(ext, Operand::REG, opBit), static_cast<const Reg&>(op).changeBit(opBit), code0, code1, code2);
} else if (op.isMEM()) {
- opModM(static_cast<const Address&>(op), Reg(ext, Operand::REG, op.getBit()), code0, code1, code2);
+ opModM(static_cast<const Address&>(op), Reg(ext, Operand::REG, opBit), code0, code1, code2);
} else {
throw ERR_BAD_COMBINATION;
}
@@ -952,13 +953,13 @@ private:
void opShift(const Operand& op, int imm, int ext)
{
verifyMemHasSize(op);
- opR_ModM(op, 0, 3, ext, (B11000000 | ((imm == 1 ? 1 : 0) << 4)));
+ opR_ModM(op, 0, ext, (B11000000 | ((imm == 1 ? 1 : 0) << 4)));
if (imm != 1) db(imm);
}
void opShift(const Operand& op, const Reg8& cl, int ext)
{
if (cl.getIdx() != Operand::CL) throw ERR_BAD_COMBINATION;
- opR_ModM(op, 0, 3, ext, B11010010);
+ opR_ModM(op, 0, ext, B11010010);
}
void opModRM(const Operand& op1, const Operand& op2, bool condR, bool condM, int code0, int code1 = NONE, int code2 = NONE)
{
@@ -991,20 +992,19 @@ private:
verifyMemHasSize(op);
uint32 immBit = inner::IsInDisp8(imm) ? 8 : isInDisp16(imm) ? 16 : 32;
if (op.getBit() < immBit) throw ERR_IMM_IS_TOO_BIG;
- if (op.isREG()) {
- if (immBit == 16 && op.isBit(32|64)) immBit = 32; /* don't use MEM16 if 32/64bit mode */
- }
+ if (op.isREG(32|64) && immBit == 16) immBit = 32; /* don't use MEM16 if 32/64bit mode */
if (op.isREG() && op.getIdx() == 0 && (op.getBit() == immBit || (op.isBit(64) && immBit == 32))) { // rax, eax, ax, al
rex(op);
db(code | 4 | (immBit == 8 ? 0 : 1));
} else {
- int tmp = (op.getBit() > immBit && 32 > immBit) ? 2 : 0;
- opR_ModM(op, 0, 3, ext, B10000000 | tmp);
+ int tmp = immBit < (std::min)(op.getBit(), 32U) ? 2 : 0;
+ opR_ModM(op, 0, ext, B10000000 | tmp);
}
db(imm, immBit / 8);
}
void opIncDec(const Operand& op, int code, int ext)
{
+ verifyMemHasSize(op);
#ifndef XBYAK64
if (op.isREG() && !op.isBit(8)) {
rex(op); db(code | op.getIdx());
@@ -1014,21 +1014,15 @@ private:
code = B11111110;
if (op.isREG()) {
opModR(Reg(ext, Operand::REG, op.getBit()), static_cast<const Reg&>(op), code);
- } else if (op.isMEM() && op.getBit() > 0) {
- opModM(static_cast<const Address&>(op), Reg(ext, Operand::REG, op.getBit()), code);
} else {
- throw ERR_BAD_COMBINATION;
+ opModM(static_cast<const Address&>(op), Reg(ext, Operand::REG, op.getBit()), code);
}
}
void opPushPop(const Operand& op, int code, int ext, int alt)
{
if (op.isREG()) {
-#ifdef XBYAK64
if (op.isBit(16)) db(0x66);
if (static_cast<const Reg&>(op).getIdx() >= 8) db(0x41);
-#else
- rex(op);
-#endif
db(alt | (op.getIdx() & 7));
} else if (op.isMEM()) {
opModM(static_cast<const Address&>(op), Reg(ext, Operand::REG, op.getBit()), code);
@@ -1077,7 +1071,9 @@ public:
using CodeArray::db;
const Mmx mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;
const Xmm xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7;
+ const Ymm ymm0, ymm1, ymm2, ymm3, ymm4, ymm5, ymm6, ymm7;
const Xmm &xm0, &xm1, &xm2, &xm3, &xm4, &xm5, &xm6, &xm7;
+ const Ymm &ym0, &ym1, &ym2, &ym3, &ym4, &ym5, &ym6, &ym7;
const Reg32 eax, ecx, edx, ebx, esp, ebp, esi, edi;
const Reg16 ax, cx, dx, bx, sp, bp, si, di;
const Reg8 al, cl, dl, bl, ah, ch, dh, bh;
@@ -1090,7 +1086,9 @@ public:
const Reg8 r8b, r9b, r10b, r11b, r12b, r13b, r14b, r15b;
const Reg8 spl, bpl, sil, dil;
const Xmm xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15;
- const Xmm &xm8, &xm9, &xm10, &xm11, &xm12, &xm13, &xm14, &xm15;
+ const Ymm ymm8, ymm9, ymm10, ymm11, ymm12, ymm13, ymm14, ymm15;
+ const Xmm &xm8, &xm9, &xm10, &xm11, &xm12, &xm13, &xm14, &xm15; // for my convenience
+ const Ymm &ym8, &ym9, &ym10, &ym11, &ym12, &ym13, &ym14, &ym15;
const RegRip rip;
#endif
@@ -1110,11 +1108,11 @@ public:
}
void jmp(const Operand& op)
{
- opR_ModM(op, BIT, 3, 4, 0xFF, NONE, NONE, true);
+ opR_ModM(op, BIT, 4, 0xFF, NONE, NONE, true);
}
void call(const Operand& op)
{
- opR_ModM(op, 16 | i32e, 3, 2, 0xFF, NONE, NONE, true);
+ opR_ModM(op, 16 | i32e, 2, 0xFF, NONE, NONE, true);
}
// (REG|MEM, REG)
void test(const Operand& op, const Reg& reg)
@@ -1129,10 +1127,9 @@ public:
rex(op);
db(B10101000 | (op.isBit(8) ? 0 : 1));
} else {
- opR_ModM(op, 0, 3, 0, B11110110);
+ opR_ModM(op, 0, 0, B11110110);
}
- int size = op.getBit() / 8; if (size > 4) size = 4;
- db(imm, size);
+ db(imm, (std::min)(op.getBit() / 8, 4U));
}
void ret(int imm = 0)
{
@@ -1338,6 +1335,16 @@ public:
if (mmx.isXMM()) db(0x66);
opModR(mmx, reg, 0x0F, B01101110);
}
+ void pextrq(const Operand& op, const Xmm& xmm, uint8 imm)
+ {
+ if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION;
+ opGen(Reg64(xmm.getIdx()), op, 0x16, 0x66, 0, imm, B00111010); // force to 64bit
+ }
+ void pinsrq(const Xmm& xmm, const Operand& op, uint8 imm)
+ {
+ if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION;
+ opGen(Reg64(xmm.getIdx()), op, 0x22, 0x66, 0, imm, B00111010); // force to 64bit
+ }
#endif
// MMX2 : pextrw : reg, mmx/xmm, imm
// SSE4 : pextrw, pextrb, pextrd, extractps : reg/mem, mmx/xmm, imm
@@ -1382,7 +1389,7 @@ public:
bool is16bit = reg.isREG(16) && (op.isREG(16) || op.isMEM());
if (!is16bit && !(reg.isREG(i32e) && (op.isREG(i32e) || op.isMEM()))) throw ERR_BAD_COMBINATION;
if (is16bit) db(0x66);
- db(0xF3); opModRM(Reg(reg.getIdx(), Operand::REG, i32e == 32 ? 32 : reg.getBit()), op, op.isREG(), true, 0x0F, 0xB8);
+ db(0xF3); opModRM(reg.changeBit(i32e == 32 ? 32 : reg.getBit()), op, op.isREG(), true, 0x0F, 0xB8);
}
void crc32(const Reg32e& reg, const Operand& op)
{
@@ -1390,13 +1397,81 @@ public:
db(0xF2);
opModRM(reg, op, op.isREG(), op.isMEM(), 0x0F, 0x38, 0xF0 | (op.isBit(8) ? 0 : 1));
}
-public:
+ void vextractps(const Operand& op, const Xmm& xmm, uint8 imm)
+ {
+ if (!(op.isREG(32) || op.isMEM()) || xmm.isYMM()) throw ERR_BAD_COMBINATION;
+ opAVX_X_XM_IMM(xmm, cvtReg(op, op.isREG(), Operand::XMM), MM_0F3A | PP_66, 0x17, false, 0, imm);
+ }
+ // support (x, x, x/m), (y, y, y/m)
+ void opAVX_X_X_XM(const Xmm& xm1, const Operand& op1, const Operand& op2, int type, int code0, bool supportYMM, int w = -1)
+ {
+ const Xmm *xm2;
+ const Operand *op;
+ if (op2.isNone()) {
+ xm2 = &xm1;
+ op = &op1;
+ } else {
+ if (!(op1.isXMM() || (supportYMM && op1.isYMM()))) throw ERR_BAD_COMBINATION;
+ xm2 = static_cast<const Xmm*>(&op1);
+ op = &op2;
+ }
+ // (xm1, xm2, op)
+ if (!((xm1.isXMM() && xm2->isXMM()) || (supportYMM && xm1.isYMM() && xm2->isYMM()))) throw ERR_BAD_COMBINATION;
+ bool x, b;
+ if (op->isMEM()) {
+ const Address& addr = *static_cast<const Address*>(op);
+ uint8 rex = addr.getRex();
+ x = (rex & 2) != 0;
+ b = (rex & 1) != 0;
+ if (BIT == 64 && addr.is32bit_) db(0x67);
+ if (BIT == 64 && w == -1) w = (rex & 4) ? 1 : 0;
+ } else {
+ x = false;
+ b = static_cast<const Reg*>(op)->isExtIdx();
+ }
+ if (w == -1) w = 0;
+ vex(xm1.isExtIdx(), xm2->getIdx(), xm1.isYMM(), type, x, b, w);
+ db(code0);
+ if (op->isMEM()) {
+ const Address& addr = *static_cast<const Address*>(op);
+ addr.updateRegField(static_cast<uint8>(xm1.getIdx()));
+ db(addr.getCode(), static_cast<int>(addr.getSize()));
+ } else {
+ db(getModRM(3, xm1.getIdx(), op->getIdx()));
+ }
+ }
+ // if cvt then return pointer to Xmm(idx) (or Ymm(idx)), otherwise return op
+ const Operand& cvtReg(const Operand& op, bool cvt, Operand::Kind kind) const
+ {
+ if (!cvt) return op;
+ static const Xmm* xmTbl[] = {
+ &xm0, &xm1, &xm2, &xm3, &xm4, &xm5, &xm6, &xm7,
+#ifdef XBYAK64
+ &xm8, &xm9, &xm10, &xm11, &xm12, &xm13, &xm14, &xm15
+#endif
+ };
+ static const Ymm* ymTbl[] = {
+ &ym0, &ym1, &ym2, &ym3, &ym4, &ym5, &ym6, &ym7,
+#ifdef XBYAK64
+ &ym8, &ym9, &ym10, &ym11, &ym12, &ym13, &ym14, &ym15
+#endif
+ };
+ return (kind == Operand::XMM) ? *xmTbl[op.getIdx()] : *ymTbl[op.getIdx()];
+ }
+ // support (x, x/m, imm), (y, y/m, imm)
+ void opAVX_X_XM_IMM(const Xmm& xmm, const Operand& op, int type, int code, bool supportYMM, int w = -1, int imm = NONE)
+ {
+ opAVX_X_X_XM(xmm, xmm.isXMM() ? xm0 : ym0, op, type, code, supportYMM, w); if (imm != NONE) db((uint8)imm);
+ }
enum { NONE = 256 };
+public:
CodeGenerator(size_t maxSize = DEFAULT_MAX_CODE_SIZE, void *userPtr = 0)
: CodeArray(maxSize, userPtr)
, mm0(0), mm1(1), mm2(2), mm3(3), mm4(4), mm5(5), mm6(6), mm7(7)
, xmm0(0), xmm1(1), xmm2(2), xmm3(3), xmm4(4), xmm5(5), xmm6(6), xmm7(7)
+ , ymm0(0), ymm1(1), ymm2(2), ymm3(3), ymm4(4), ymm5(5), ymm6(6), ymm7(7)
, xm0(xmm0), xm1(xmm1), xm2(xmm2), xm3(xmm3), xm4(xmm4), xm5(xmm5), xm6(xmm6), xm7(xmm7) // for my convenience
+ , ym0(ymm0), ym1(ymm1), ym2(ymm2), ym3(ymm3), ym4(ymm4), ym5(ymm5), ym6(ymm6), ym7(ymm7) // for my convenience
, eax(Operand::EAX), ecx(Operand::ECX), edx(Operand::EDX), ebx(Operand::EBX), esp(Operand::ESP), ebp(Operand::EBP), esi(Operand::ESI), edi(Operand::EDI)
, ax(Operand::EAX), cx(Operand::ECX), dx(Operand::EDX), bx(Operand::EBX), sp(Operand::ESP), bp(Operand::EBP), si(Operand::ESI), di(Operand::EDI)
, al(Operand::AL), cl(Operand::CL), dl(Operand::DL), bl(Operand::BL), ah(Operand::AH), ch(Operand::CH), dh(Operand::DH), bh(Operand::BH)
@@ -1409,7 +1484,9 @@ public:
, r8b(Operand::R8B), r9b(Operand::R9B), r10b(Operand::R10B), r11b(Operand::R11B), r12b(Operand::R12B), r13b(Operand::R13B), r14b(Operand::R14B), r15b(Operand::R15B)
, spl(Operand::SPL, 1), bpl(Operand::BPL, 1), sil(Operand::SIL, 1), dil(Operand::DIL, 1)
, xmm8(8), xmm9(9), xmm10(10), xmm11(11), xmm12(12), xmm13(13), xmm14(14), xmm15(15)
+ , ymm8(8), ymm9(9), ymm10(10), ymm11(11), ymm12(12), ymm13(13), ymm14(14), ymm15(15)
, xm8(xmm8), xm9(xmm9), xm10(xmm10), xm11(xmm11), xm12(xmm12), xm13(xmm13), xm14(xmm14), xm15(xmm15) // for my convenience
+ , ym8(ymm8), ym9(ymm9), ym10(ymm10), ym11(ymm11), ym12(ymm12), ym13(ymm13), ym14(ymm14), ym15(ymm15) // for my convenience
, rip()
#endif
{
diff --git a/xbyak/xbyak_mnemonic.h b/xbyak/xbyak_mnemonic.h
index d44bd34..5a6e334 100644
--- a/xbyak/xbyak_mnemonic.h
+++ b/xbyak/xbyak_mnemonic.h
@@ -1,4 +1,4 @@
-const char *getVersionString() const { return "2.29"; }
+const char *getVersionString() const { return "2.99"; }
void packssdw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x6B); }
void packsswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x63); }
void packuswb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x67); }
@@ -184,94 +184,94 @@ void movhpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x16, 0
void movlpd(const Operand& op1, const Operand& op2) { opMovXMM(op1, op2, 0x12, 0x66); }
void cmovo(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 0); }
void jo(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x70, 0x80, 0x0F); }
-void seto(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 0); }
+void seto(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 0); }
void cmovno(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 1); }
void jno(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x71, 0x81, 0x0F); }
-void setno(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 1); }
+void setno(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 1); }
void cmovb(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 2); }
void jb(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
-void setb(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 2); }
+void setb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 2); }
void cmovc(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 2); }
void jc(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
-void setc(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 2); }
+void setc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 2); }
void cmovnae(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 2); }
void jnae(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x72, 0x82, 0x0F); }
-void setnae(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 2); }
+void setnae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 2); }
void cmovnb(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 3); }
void jnb(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
-void setnb(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 3); }
+void setnb(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 3); }
void cmovae(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 3); }
void jae(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
-void setae(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 3); }
+void setae(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 3); }
void cmovnc(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 3); }
void jnc(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x73, 0x83, 0x0F); }
-void setnc(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 3); }
+void setnc(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 3); }
void cmove(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 4); }
void je(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }
-void sete(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 4); }
+void sete(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 4); }
void cmovz(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 4); }
void jz(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x74, 0x84, 0x0F); }
-void setz(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 4); }
+void setz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 4); }
void cmovne(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 5); }
void jne(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }
-void setne(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 5); }
+void setne(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 5); }
void cmovnz(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 5); }
void jnz(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x75, 0x85, 0x0F); }
-void setnz(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 5); }
+void setnz(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 5); }
void cmovbe(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 6); }
void jbe(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }
-void setbe(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 6); }
+void setbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 6); }
void cmovna(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 6); }
void jna(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x76, 0x86, 0x0F); }
-void setna(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 6); }
+void setna(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 6); }
void cmovnbe(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 7); }
void jnbe(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }
-void setnbe(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 7); }
+void setnbe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 7); }
void cmova(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 7); }
void ja(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x77, 0x87, 0x0F); }
-void seta(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 7); }
+void seta(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 7); }
void cmovs(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 8); }
void js(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x78, 0x88, 0x0F); }
-void sets(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 8); }
+void sets(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 8); }
void cmovns(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 9); }
void jns(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x79, 0x89, 0x0F); }
-void setns(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 9); }
+void setns(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 9); }
void cmovp(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 10); }
void jp(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }
-void setp(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 10); }
+void setp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 10); }
void cmovpe(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 10); }
void jpe(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7A, 0x8A, 0x0F); }
-void setpe(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 10); }
+void setpe(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 10); }
void cmovnp(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 11); }
void jnp(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }
-void setnp(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 11); }
+void setnp(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 11); }
void cmovpo(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 11); }
void jpo(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7B, 0x8B, 0x0F); }
-void setpo(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 11); }
+void setpo(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 11); }
void cmovl(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 12); }
void jl(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }
-void setl(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 12); }
+void setl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 12); }
void cmovnge(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 12); }
void jnge(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7C, 0x8C, 0x0F); }
-void setnge(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 12); }
+void setnge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 12); }
void cmovnl(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 13); }
void jnl(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }
-void setnl(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 13); }
+void setnl(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 13); }
void cmovge(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 13); }
void jge(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7D, 0x8D, 0x0F); }
-void setge(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 13); }
+void setge(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 13); }
void cmovle(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 14); }
void jle(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }
-void setle(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 14); }
+void setle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 14); }
void cmovng(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 14); }
void jng(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7E, 0x8E, 0x0F); }
-void setng(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 14); }
+void setng(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 14); }
void cmovnle(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 15); }
void jnle(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }
-void setnle(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 15); }
+void setnle(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 15); }
void cmovg(const Reg32e& reg, const Operand& op) { opModRM(reg, op, op.isREG(i32e), op.isMEM(), 0x0F, B01000000 | 15); }
void jg(const char *label, LabelType type = T_AUTO) { opJmp(label, type, 0x7F, 0x8F, 0x0F); }
-void setg(const Operand& op) { opR_ModM(op, 8, 3, 0, 0x0F, B10010000 | 15); }
+void setg(const Operand& op) { opR_ModM(op, 8, 0, 0x0F, B10010000 | 15); }
#ifdef XBYAK64
void cdqe() { db(0x48); db(0x98); }
#else
@@ -314,12 +314,16 @@ void mwait() { db(0x0F); db(0x01); db(0xC9); }
void rdmsr() { db(0x0F); db(0x32); }
void rdpmc() { db(0x0F); db(0x33); }
void rdtsc() { db(0x0F); db(0x31); }
+void rdtscp() { db(0x0F); db(0x01); db(0xF9); }
void wait() { db(0x9B); }
void wbinvd() { db(0x0F); db(0x09); }
void wrmsr() { db(0x0F); db(0x30); }
void xlatb() { db(0xD7); }
void popf() { db(0x9D); }
void pushf() { db(0x9C); }
+void vzeroall() { db(0xC5); db(0xFC); db(0x77); }
+void vzeroupper() { db(0xC5); db(0xF8); db(0x77); }
+void xgetbv() { db(0x0F); db(0x01); db(0xD0); }
void f2xm1() { db(0xD9); db(0xF0); }
void fabs() { db(0xD9); db(0xE1); }
void faddp() { db(0xDE); db(0xC1); }
@@ -379,12 +383,12 @@ void xor(const Operand& op1, const Operand& op2) { opRM_RM(op1, op2, 0x30); }
void xor(const Operand& op, uint32 imm) { opRM_I(op, imm, 0x30, 6); }
void dec(const Operand& op) { opIncDec(op, 0x48, 1); }
void inc(const Operand& op) { opIncDec(op, 0x40, 0); }
-void div(const Operand& op) { opR_ModM(op, 0, 3, 6, 0xF6); }
-void idiv(const Operand& op) { opR_ModM(op, 0, 3, 7, 0xF6); }
-void imul(const Operand& op) { opR_ModM(op, 0, 3, 5, 0xF6); }
-void mul(const Operand& op) { opR_ModM(op, 0, 3, 4, 0xF6); }
-void neg(const Operand& op) { opR_ModM(op, 0, 3, 3, 0xF6); }
-void not(const Operand& op) { opR_ModM(op, 0, 3, 2, 0xF6); }
+void div(const Operand& op) { opR_ModM(op, 0, 6, 0xF6); }
+void idiv(const Operand& op) { opR_ModM(op, 0, 7, 0xF6); }
+void imul(const Operand& op) { opR_ModM(op, 0, 5, 0xF6); }
+void mul(const Operand& op) { opR_ModM(op, 0, 4, 0xF6); }
+void neg(const Operand& op) { opR_ModM(op, 0, 3, 0xF6); }
+void not(const Operand& op) { opR_ModM(op, 0, 2, 0xF6); }
void rcl(const Operand& op, int imm) { opShift(op, imm, 2); }
void rcl(const Operand& op, const Reg8& cl) { opShift(op, cl, 2); }
void rcr(const Operand& op, int imm) { opShift(op, imm, 3); }
@@ -407,52 +411,57 @@ void shrd(const Operand& op, const Reg& reg, uint8 imm) { opShxd(op, reg, imm, 0
void shrd(const Operand& op, const Reg& reg, const Reg8& cl) { opShxd(op, reg, 0, 0xAC, &cl); }
void bsf(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0xBC); }
void bsr(const Reg&reg, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0xBD); }
-void pshufb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x00, 0x66, 256, 0x38); }
-void phaddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x01, 0x66, 256, 0x38); }
-void phaddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x02, 0x66, 256, 0x38); }
-void phaddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x03, 0x66, 256, 0x38); }
-void pmaddubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x04, 0x66, 256, 0x38); }
-void phsubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x05, 0x66, 256, 0x38); }
-void phsubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x06, 0x66, 256, 0x38); }
-void phsubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x07, 0x66, 256, 0x38); }
-void psignb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x08, 0x66, 256, 0x38); }
-void psignw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x09, 0x66, 256, 0x38); }
-void psignd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0A, 0x66, 256, 0x38); }
-void pmulhrsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0B, 0x66, 256, 0x38); }
-void pabsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1C, 0x66, 256, 0x38); }
-void pabsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1D, 0x66, 256, 0x38); }
-void pabsd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1E, 0x66, 256, 0x38); }
+void pshufb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x00, 0x66, NONE, 0x38); }
+void phaddw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x01, 0x66, NONE, 0x38); }
+void phaddd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x02, 0x66, NONE, 0x38); }
+void phaddsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x03, 0x66, NONE, 0x38); }
+void pmaddubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x04, 0x66, NONE, 0x38); }
+void phsubw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x05, 0x66, NONE, 0x38); }
+void phsubd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x06, 0x66, NONE, 0x38); }
+void phsubsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x07, 0x66, NONE, 0x38); }
+void psignb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x08, 0x66, NONE, 0x38); }
+void psignw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x09, 0x66, NONE, 0x38); }
+void psignd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0A, 0x66, NONE, 0x38); }
+void pmulhrsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x0B, 0x66, NONE, 0x38); }
+void pabsb(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1C, 0x66, NONE, 0x38); }
+void pabsw(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1D, 0x66, NONE, 0x38); }
+void pabsd(const Mmx& mmx, const Operand& op) { opMMX(mmx, op, 0x1E, 0x66, NONE, 0x38); }
void palignr(const Mmx& mmx, const Operand& op, int imm) { opMMX(mmx, op, 0x0f, 0x66, static_cast<uint8>(imm), 0x3a); }
-void blendvpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void blendvps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void packusdw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2B, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pblendvb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x10, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pcmpeqq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x29, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void ptest(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x17, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovsxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x20, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovsxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovsxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x22, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovsxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x23, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovsxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x24, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovsxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x25, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovzxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x30, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovzxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x31, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovzxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x32, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovzxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x33, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovzxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x34, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmovzxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x35, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pminsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x38, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pminsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x39, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pminuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3A, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pminud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3B, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmaxsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3C, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmaxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3D, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmaxuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3E, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmaxud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3F, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmuldq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x28, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pmulld(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x40, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void phminposuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x41, 0x66, isXMM_XMMorMEM, 256, 0x38); }
-void pcmpgtq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x37, 0x66, isXMM_XMMorMEM, 256, 0x38); }
+void blendvpd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x15, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void blendvps(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x14, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void packusdw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x2B, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pblendvb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x10, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pcmpeqq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x29, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void ptest(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x17, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovsxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x20, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovsxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x21, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovsxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x22, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovsxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x23, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovsxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x24, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovsxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x25, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovzxbw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x30, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovzxbd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x31, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovzxbq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x32, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovzxwd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x33, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovzxwq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x34, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmovzxdq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x35, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pminsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x38, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pminsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x39, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pminuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3A, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pminud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3B, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmaxsb(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3C, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmaxsd(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3D, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmaxuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3E, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmaxud(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x3F, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmuldq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x28, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pmulld(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x40, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void phminposuw(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x41, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void pcmpgtq(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0x37, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void aesdec(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDE, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void aesdeclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDF, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void aesenc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDC, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void aesenclast(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDD, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
+void aesimc(const Xmm& xmm, const Operand& op) { opGen(xmm, op, 0xDB, 0x66, isXMM_XMMorMEM, NONE, 0x38); }
void blendpd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0D, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
void blendps(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x0C, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
void dppd(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x41, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
@@ -467,6 +476,8 @@ void pcmpestrm(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x60
void pcmpestri(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x61, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
void pcmpistrm(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x62, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
void pcmpistri(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x63, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
+void pclmulqdq(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0x44, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
+void aeskeygenassist(const Xmm& xmm, const Operand& op, int imm) { opGen(xmm, op, 0xDF, 0x66, isXMM_XMMorMEM, static_cast<uint8>(imm), 0x3A); }
void ldmxcsr(const Address& addr) { opModM(addr, Reg32(2), 0x0F, 0xAE); }
void stmxcsr(const Address& addr) { opModM(addr, Reg32(3), 0x0F, 0xAE); }
void clflush(const Address& addr) { opModM(addr, Reg32(7), 0x0F, 0xAE); }
@@ -530,3 +541,484 @@ void fstp(const Fpu& reg) { opFpu(reg, 0xDD, 0xD8); }
void fucom(const Fpu& reg) { opFpu(reg, 0xDD, 0xE0); }
void fucomp(const Fpu& reg) { opFpu(reg, 0xDD, 0xE8); }
void fxch(const Fpu& reg) { opFpu(reg, 0xD9, 0xC8); }
+void vaddpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x58, true); }
+void vaddps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x58, true); }
+void vaddsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x58, false); }
+void vaddss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F3, 0x58, false); }
+void vsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x5C, true); }
+void vsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x5C, true); }
+void vsubsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x5C, false); }
+void vsubss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F3, 0x5C, false); }
+void vmulpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x59, true); }
+void vmulps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x59, true); }
+void vmulsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x59, false); }
+void vmulss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F3, 0x59, false); }
+void vdivpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x5E, true); }
+void vdivps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x5E, true); }
+void vdivsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x5E, false); }
+void vdivss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F3, 0x5E, false); }
+void vmaxpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x5F, true); }
+void vmaxps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x5F, true); }
+void vmaxsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x5F, false); }
+void vmaxss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F3, 0x5F, false); }
+void vminpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x5D, true); }
+void vminps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x5D, true); }
+void vminsd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x5D, false); }
+void vminss(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F3, 0x5D, false); }
+void vandpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x54, true); }
+void vandps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x54, true); }
+void vandnpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x55, true); }
+void vandnps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x55, true); }
+void vorpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x56, true); }
+void vorps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x56, true); }
+void vxorpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x57, true); }
+void vxorps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F, 0x57, true); }
+void vblendpd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x0D, true, 0); db(imm); }
+void vblendpd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x0D, true, 0); db(imm); }
+void vblendps(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x0C, true, 0); db(imm); }
+void vblendps(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x0C, true, 0); db(imm); }
+void vdppd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x41, false, 0); db(imm); }
+void vdppd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x41, false, 0); db(imm); }
+void vdpps(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x40, true, 0); db(imm); }
+void vdpps(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x40, true, 0); db(imm); }
+void vmpsadbw(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x42, false, 0); db(imm); }
+void vmpsadbw(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x42, false, 0); db(imm); }
+void vpblendw(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x0E, false, 0); db(imm); }
+void vpblendw(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x0E, false, 0); db(imm); }
+void vroundsd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x0B, false, 0); db(imm); }
+void vroundsd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x0B, false, 0); db(imm); }
+void vroundss(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x0A, false, 0); db(imm); }
+void vroundss(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x0A, false, 0); db(imm); }
+void vpclmulqdq(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x44, false, 0); db(imm); }
+void vpclmulqdq(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x44, false, 0); db(imm); }
+void vpermilps(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0C, true, 0); }
+void vpermilpd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0D, true, 0); }
+void vcmppd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xC2, true, -1); db(imm); }
+void vcmppd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xC2, true, -1); db(imm); }
+void vcmpps(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F, 0xC2, true, -1); db(imm); }
+void vcmpps(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F, 0xC2, true, -1); db(imm); }
+void vcmpsd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F2, 0xC2, false, -1); db(imm); }
+void vcmpsd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F2, 0xC2, false, -1); db(imm); }
+void vcmpss(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F3, 0xC2, false, -1); db(imm); }
+void vcmpss(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F3, 0xC2, false, -1); db(imm); }
+void vcvtsd2ss(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F2, 0x5A, false, -1); }
+void vcvtsd2ss(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F2, 0x5A, false, -1); }
+void vcvtss2sd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F3, 0x5A, false, -1); }
+void vcvtss2sd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F3, 0x5A, false, -1); }
+void vinsertps(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x21, false, 0); db(imm); }
+void vinsertps(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x21, false, 0); db(imm); }
+void vpacksswb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x63, false, -1); }
+void vpacksswb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x63, false, -1); }
+void vpackssdw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x6B, false, -1); }
+void vpackssdw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x6B, false, -1); }
+void vpackuswb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x67, false, -1); }
+void vpackuswb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x67, false, -1); }
+void vpackusdw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x2B, false, -1); }
+void vpackusdw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x2B, false, -1); }
+void vpaddb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xFC, false, -1); }
+void vpaddb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xFC, false, -1); }
+void vpaddw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xFD, false, -1); }
+void vpaddw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xFD, false, -1); }
+void vpaddd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xFE, false, -1); }
+void vpaddd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xFE, false, -1); }
+void vpaddq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xD4, false, -1); }
+void vpaddq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xD4, false, -1); }
+void vpaddsb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xEC, false, -1); }
+void vpaddsb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEC, false, -1); }
+void vpaddsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xED, false, -1); }
+void vpaddsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xED, false, -1); }
+void vpaddusb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDC, false, -1); }
+void vpaddusb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDC, false, -1); }
+void vpaddusw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDD, false, -1); }
+void vpaddusw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDD, false, -1); }
+void vpalignr(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F3A | PP_66, 0x0F, false, -1); db(imm); }
+void vpalignr(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F3A | PP_66, 0x0F, false, -1); db(imm); }
+void vpand(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDB, false, -1); }
+void vpand(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDB, false, -1); }
+void vpandn(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDF, false, -1); }
+void vpandn(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDF, false, -1); }
+void vpavgb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE0, false, -1); }
+void vpavgb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE0, false, -1); }
+void vpavgw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE3, false, -1); }
+void vpavgw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE3, false, -1); }
+void vpcmpeqb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x74, false, -1); }
+void vpcmpeqb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x74, false, -1); }
+void vpcmpeqw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x75, false, -1); }
+void vpcmpeqw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x75, false, -1); }
+void vpcmpeqd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x76, false, -1); }
+void vpcmpeqd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x76, false, -1); }
+void vpcmpeqq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x29, false, -1); }
+void vpcmpeqq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x29, false, -1); }
+void vpcmpgtb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x64, false, -1); }
+void vpcmpgtb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x64, false, -1); }
+void vpcmpgtw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x65, false, -1); }
+void vpcmpgtw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x65, false, -1); }
+void vpcmpgtd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x66, false, -1); }
+void vpcmpgtd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x66, false, -1); }
+void vpcmpgtq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x37, false, -1); }
+void vpcmpgtq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x37, false, -1); }
+void vphaddw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x01, false, -1); }
+void vphaddw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x01, false, -1); }
+void vphaddd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x02, false, -1); }
+void vphaddd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x02, false, -1); }
+void vphaddsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x03, false, -1); }
+void vphaddsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x03, false, -1); }
+void vphsubw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x05, false, -1); }
+void vphsubw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x05, false, -1); }
+void vphsubd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x06, false, -1); }
+void vphsubd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x06, false, -1); }
+void vphsubsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x07, false, -1); }
+void vphsubsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x07, false, -1); }
+void vpmaddwd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF5, false, -1); }
+void vpmaddwd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF5, false, -1); }
+void vpmaddubsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x04, false, -1); }
+void vpmaddubsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x04, false, -1); }
+void vpmaxsb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3C, false, -1); }
+void vpmaxsb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3C, false, -1); }
+void vpmaxsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xEE, false, -1); }
+void vpmaxsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEE, false, -1); }
+void vpmaxsd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3D, false, -1); }
+void vpmaxsd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3D, false, -1); }
+void vpmaxub(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDE, false, -1); }
+void vpmaxub(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDE, false, -1); }
+void vpmaxuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3E, false, -1); }
+void vpmaxuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3E, false, -1); }
+void vpmaxud(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3F, false, -1); }
+void vpmaxud(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3F, false, -1); }
+void vpminsb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x38, false, -1); }
+void vpminsb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x38, false, -1); }
+void vpminsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xEA, false, -1); }
+void vpminsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEA, false, -1); }
+void vpminsd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x39, false, -1); }
+void vpminsd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x39, false, -1); }
+void vpminub(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xDA, false, -1); }
+void vpminub(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xDA, false, -1); }
+void vpminuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3A, false, -1); }
+void vpminuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3A, false, -1); }
+void vpminud(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x3B, false, -1); }
+void vpminud(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x3B, false, -1); }
+void vpmulhuw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE4, false, -1); }
+void vpmulhuw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE4, false, -1); }
+void vpmulhrsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0B, false, -1); }
+void vpmulhrsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x0B, false, -1); }
+void vpmulhw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE5, false, -1); }
+void vpmulhw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE5, false, -1); }
+void vpmullw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xD5, false, -1); }
+void vpmullw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xD5, false, -1); }
+void vpmulld(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x40, false, -1); }
+void vpmulld(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x40, false, -1); }
+void vpmuludq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF4, false, -1); }
+void vpmuludq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF4, false, -1); }
+void vpmuldq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x28, false, -1); }
+void vpmuldq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x28, false, -1); }
+void vpor(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xEB, false, -1); }
+void vpor(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEB, false, -1); }
+void vpsadbw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF6, false, -1); }
+void vpsadbw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF6, false, -1); }
+void vpshufb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x00, false, -1); }
+void vpsignb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x08, false, -1); }
+void vpsignb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x08, false, -1); }
+void vpsignw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x09, false, -1); }
+void vpsignw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x09, false, -1); }
+void vpsignd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F38 | PP_66, 0x0A, false, -1); }
+void vpsignd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F38 | PP_66, 0x0A, false, -1); }
+void vpsllw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF1, false, -1); }
+void vpsllw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF1, false, -1); }
+void vpslld(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF2, false, -1); }
+void vpslld(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF2, false, -1); }
+void vpsllq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF3, false, -1); }
+void vpsllq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF3, false, -1); }
+void vpsraw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE1, false, -1); }
+void vpsraw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE1, false, -1); }
+void vpsrad(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE2, false, -1); }
+void vpsrad(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE2, false, -1); }
+void vpsrlw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xD1, false, -1); }
+void vpsrlw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xD1, false, -1); }
+void vpsrld(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xD2, false, -1); }
+void vpsrld(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xD2, false, -1); }
+void vpsrlq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xD3, false, -1); }
+void vpsrlq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xD3, false, -1); }
+void vpsubb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF8, false, -1); }
+void vpsubb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF8, false, -1); }
+void vpsubw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xF9, false, -1); }
+void vpsubw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xF9, false, -1); }
+void vpsubd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xFA, false, -1); }
+void vpsubd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xFA, false, -1); }
+void vpsubq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xFB, false, -1); }
+void vpsubq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xFB, false, -1); }
+void vpsubsb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE8, false, -1); }
+void vpsubsb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE8, false, -1); }
+void vpsubsw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xE9, false, -1); }
+void vpsubsw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xE9, false, -1); }
+void vpsubusb(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xD8, false, -1); }
+void vpsubusb(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xD8, false, -1); }
+void vpsubusw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xD9, false, -1); }
+void vpsubusw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xD9, false, -1); }
+void vpunpckhbw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x68, false, -1); }
+void vpunpckhbw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x68, false, -1); }
+void vpunpckhwd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x69, false, -1); }
+void vpunpckhwd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x69, false, -1); }
+void vpunpckhdq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x6A, false, -1); }
+void vpunpckhdq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x6A, false, -1); }
+void vpunpckhqdq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x6D, false, -1); }
+void vpunpckhqdq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x6D, false, -1); }
+void vpunpcklbw(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x60, false, -1); }
+void vpunpcklbw(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x60, false, -1); }
+void vpunpcklwd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x61, false, -1); }
+void vpunpcklwd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x61, false, -1); }
+void vpunpckldq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x62, false, -1); }
+void vpunpckldq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x62, false, -1); }
+void vpunpcklqdq(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x6C, false, -1); }
+void vpunpcklqdq(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x6C, false, -1); }
+void vpxor(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xEF, false, -1); }
+void vpxor(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xEF, false, -1); }
+void vrcpss(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F3, 0x53, false, -1); }
+void vrcpss(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F3, 0x53, false, -1); }
+void vrsqrtss(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F3, 0x52, false, -1); }
+void vrsqrtss(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F3, 0x52, false, -1); }
+void vshufpd(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0xC6, true, -1); db(imm); }
+void vshufpd(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0xC6, true, -1); db(imm); }
+void vshufps(const Xmm& xm1, const Xmm& xm2, const Operand& op, uint8 imm) { opAVX_X_X_XM(xm1, xm2, op, MM_0F, 0xC6, true, -1); db(imm); }
+void vshufps(const Xmm& xmm, const Operand& op, uint8 imm) { opAVX_X_X_XM(xmm, xmm, op, MM_0F, 0xC6, true, -1); db(imm); }
+void vsqrtsd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F2, 0x51, false, -1); }
+void vsqrtsd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F2, 0x51, false, -1); }
+void vsqrtss(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_F3, 0x51, false, -1); }
+void vsqrtss(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_F3, 0x51, false, -1); }
+void vunpckhpd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x15, true, -1); }
+void vunpckhpd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x15, true, -1); }
+void vunpckhps(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F, 0x15, true, -1); }
+void vunpckhps(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F, 0x15, true, -1); }
+void vunpcklpd(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F | PP_66, 0x14, true, -1); }
+void vunpcklpd(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F | PP_66, 0x14, true, -1); }
+void vunpcklps(const Xmm& xm1, const Xmm& xm2, const Operand& op) { opAVX_X_X_XM(xm1, xm2, op, MM_0F, 0x14, true, -1); }
+void vunpcklps(const Xmm& xmm, const Operand& op) { opAVX_X_X_XM(xmm, xmm, op, MM_0F, 0x14, true, -1); }
+void vaeskeygenassist(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0xDF, false, 0, imm); }
+void vroundpd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x09, true, 0, imm); }
+void vroundps(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x08, true, 0, imm); }
+void vpermilpd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x05, true, 0, imm); }
+void vpermilps(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x04, true, 0, imm); }
+void vpcmpestri(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x61, false, 0, imm); }
+void vpcmpestrm(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x60, false, 0, imm); }
+void vpcmpistri(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x63, false, 0, imm); }
+void vpcmpistrm(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F3A | PP_66, 0x62, false, 0, imm); }
+void vtestps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x0E, true, 0); }
+void vtestpd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x0F, true, 0); }
+void vcomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x2F, false, -1); }
+void vcomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x2F, false, -1); }
+void vcvtdq2ps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x5B, true, -1); }
+void vcvtps2dq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x5B, true, -1); }
+void vcvttps2dq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F3, 0x5B, true, -1); }
+void vmovapd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x28, true, -1); }
+void vmovaps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x28, true, -1); }
+void vmovddup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F2, 0x12, true, -1); }
+void vmovdqa(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x6F, true, -1); }
+void vmovdqu(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F3, 0x6F, true, -1); }
+void vmovshdup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F3, 0x16, true, -1); }
+void vmovsldup(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F3, 0x12, true, -1); }
+void vmovupd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x10, true, -1); }
+void vmovups(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x10, true, -1); }
+void vpabsb(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x1C, false, -1); }
+void vpabsw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x1D, false, -1); }
+void vpabsd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x1E, false, -1); }
+void vphminposuw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x41, false, -1); }
+void vpmovsxbw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x20, false, -1); }
+void vpmovsxbd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x21, false, -1); }
+void vpmovsxbq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x22, false, -1); }
+void vpmovsxwd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x23, false, -1); }
+void vpmovsxwq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x24, false, -1); }
+void vpmovsxdq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x25, false, -1); }
+void vpmovzxbw(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x30, false, -1); }
+void vpmovzxbd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x31, false, -1); }
+void vpmovzxbq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x32, false, -1); }
+void vpmovzxwd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x33, false, -1); }
+void vpmovzxwq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x34, false, -1); }
+void vpmovzxdq(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x35, false, -1); }
+void vpshufd(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x70, false, -1, imm); }
+void vpshufhw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F3, 0x70, false, -1, imm); }
+void vpshuflw(const Xmm& xm, const Operand& op, uint8 imm) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_F2, 0x70, false, -1, imm); }
+void vptest(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F38 | PP_66, 0x17, false, -1); }
+void vrcpps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x53, true, -1); }
+void vrsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x52, true, -1); }
+void vsqrtpd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x51, true, -1); }
+void vsqrtps(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x51, true, -1); }
+void vucomisd(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F | PP_66, 0x2E, false, -1); }
+void vucomiss(const Xmm& xm, const Operand& op) { opAVX_X_XM_IMM(xm, op, MM_0F, 0x2E, false, -1); }
+void vmovapd(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, MM_0F | PP_66, 0x29, true, -1); }
+void vmovaps(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, MM_0F, 0x29, true, -1); }
+void vmovdqa(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, MM_0F | PP_66, 0x7F, true, -1); }
+void vmovdqu(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, MM_0F | PP_F3, 0x7F, true, -1); }
+void vmovupd(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, MM_0F | PP_66, 0x11, true, -1); }
+void vmovups(const Address& addr, const Xmm& xmm) { opAVX_X_XM_IMM(xmm, addr, MM_0F, 0x11, true, -1); }
+void vaddsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0xD0, true, -1); }
+void vaddsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0xD0, true, -1); }
+void vhaddpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x7C, true, -1); }
+void vhaddps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x7C, true, -1); }
+void vhsubpd(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_66, 0x7D, true, -1); }
+void vhsubps(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F | PP_F2, 0x7D, true, -1); }
+void vaesenc(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xDC, false, 0); }
+void vaesenclast(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xDD, false, 0); }
+void vaesdec(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xDE, false, 0); }
+void vaesdeclast(const Xmm& xmm, const Operand& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xDF, false, 0); }
+void vmaskmovps(const Xmm& xm1, const Xmm& xm2, const Address& addr) { opAVX_X_X_XM(xm1, xm2, addr, MM_0F38 | PP_66, 0x2C, true, 0); }
+void vmaskmovps(const Address& addr, const Xmm& xm1, const Xmm& xm2) { opAVX_X_X_XM(xm2, xm1, addr, MM_0F38 | PP_66, 0x2E, true, 0); }
+void vmaskmovpd(const Xmm& xm1, const Xmm& xm2, const Address& addr) { opAVX_X_X_XM(xm1, xm2, addr, MM_0F38 | PP_66, 0x2D, true, 0); }
+void vmaskmovpd(const Address& addr, const Xmm& xm1, const Xmm& xm2) { opAVX_X_X_XM(xm2, xm1, addr, MM_0F38 | PP_66, 0x2F, true, 0); }
+void vmovhpd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, op2, MM_0F | PP_66, 0x16, false); }
+void vmovhpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0x17, false); }
+void vmovhps(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, op2, MM_0F, 0x16, false); }
+void vmovhps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F, 0x17, false); }
+void vmovlpd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, op2, MM_0F | PP_66, 0x12, false); }
+void vmovlpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0x13, false); }
+void vmovlps(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !op2.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, op2, MM_0F, 0x12, false); }
+void vmovlps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F, 0x13, false); }
+void vfmadd132pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x98, true, 1); }
+void vfmadd213pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA8, true, 1); }
+void vfmadd231pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB8, true, 1); }
+void vfmadd132ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x98, true, 0); }
+void vfmadd213ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA8, true, 0); }
+void vfmadd231ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB8, true, 0); }
+void vfmadd132sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x99, false, 1); }
+void vfmadd213sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA9, false, 1); }
+void vfmadd231sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB9, false, 1); }
+void vfmadd132ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x99, false, 0); }
+void vfmadd213ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA9, false, 0); }
+void vfmadd231ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB9, false, 0); }
+void vfmaddsub132pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x96, true, 1); }
+void vfmaddsub213pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA6, true, 1); }
+void vfmaddsub231pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB6, true, 1); }
+void vfmaddsub132ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x96, true, 0); }
+void vfmaddsub213ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA6, true, 0); }
+void vfmaddsub231ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB6, true, 0); }
+void vfmsubadd132pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x97, true, 1); }
+void vfmsubadd213pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA7, true, 1); }
+void vfmsubadd231pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB7, true, 1); }
+void vfmsubadd132ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x97, true, 0); }
+void vfmsubadd213ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xA7, true, 0); }
+void vfmsubadd231ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xB7, true, 0); }
+void vfmsub132pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9A, true, 1); }
+void vfmsub213pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAA, true, 1); }
+void vfmsub231pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBA, true, 1); }
+void vfmsub132ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9A, true, 0); }
+void vfmsub213ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAA, true, 0); }
+void vfmsub231ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBA, true, 0); }
+void vfmsub132sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9B, false, 1); }
+void vfmsub213sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAB, false, 1); }
+void vfmsub231sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBB, false, 1); }
+void vfmsub132ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9B, false, 0); }
+void vfmsub213ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAB, false, 0); }
+void vfmsub231ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBB, false, 0); }
+void vfnmadd132pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9C, true, 1); }
+void vfnmadd213pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAC, true, 1); }
+void vfnmadd231pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBC, true, 1); }
+void vfnmadd132ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9C, true, 0); }
+void vfnmadd213ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAC, true, 0); }
+void vfnmadd231ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBC, true, 0); }
+void vfnmadd132sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9D, false, 1); }
+void vfnmadd213sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAD, false, 1); }
+void vfnmadd231sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBD, false, 1); }
+void vfnmadd132ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9D, false, 0); }
+void vfnmadd213ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAD, false, 0); }
+void vfnmadd231ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBD, false, 0); }
+void vfnmsub132pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9E, true, 1); }
+void vfnmsub213pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAE, true, 1); }
+void vfnmsub231pd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBE, true, 1); }
+void vfnmsub132ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9E, true, 0); }
+void vfnmsub213ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAE, true, 0); }
+void vfnmsub231ps(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBE, true, 0); }
+void vfnmsub132sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9F, false, 1); }
+void vfnmsub213sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAF, false, 1); }
+void vfnmsub231sd(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBF, false, 1); }
+void vfnmsub132ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0x9F, false, 0); }
+void vfnmsub213ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xAF, false, 0); }
+void vfnmsub231ss(const Xmm& xmm, const Xmm& op1, const Operand& op2 = Operand()) { opAVX_X_X_XM(xmm, op1, op2, MM_0F38 | PP_66, 0xBF, false, 0); }
+void vaesimc(const Xmm& x, const Operand& op) { opAVX_X_XM_IMM(x, op, MM_0F38 | PP_66, 0xDB, false, 0); }
+void vbroadcastf128(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, MM_0F38 | PP_66, 0x1A, true, 0); }
+void vbroadcastsd(const Ymm& y, const Address& addr) { opAVX_X_XM_IMM(y, addr, MM_0F38 | PP_66, 0x19, true, 0); }
+void vbroadcastss(const Xmm& x, const Address& addr) { opAVX_X_XM_IMM(x, addr, MM_0F38 | PP_66, 0x18, true, 0); }
+void vextractf128(const Operand& op, const Ymm& y, uint8 imm) { opAVX_X_XM_IMM(y, cvtReg(op, op.isXMM(), Operand::YMM), MM_0F3A | PP_66, 0x19, true, 0, imm); }
+void vinsertf128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, cvtReg(op, op.isXMM(), Operand::YMM), MM_0F3A | PP_66, 0x18, true, 0); db(imm); }
+void vperm2f128(const Ymm& y1, const Ymm& y2, const Operand& op, uint8 imm) { opAVX_X_X_XM(y1, y2, op, MM_0F3A | PP_66, 0x06, true, 0); db(imm); }
+void vlddqu(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F | PP_F2, 0xF0, true, 0); }
+void vldmxcsr(const Address& addr) { opAVX_X_X_XM(xm2, xm0, addr, MM_0F, 0xAE, false, -1); }
+void vstmxcsr(const Address& addr) { opAVX_X_X_XM(xm3, xm0, addr, MM_0F, 0xAE, false, -1); }
+void vmaskmovdqu(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, MM_0F | PP_66, 0xF7, false, -1); }
+void vpextrb(const Operand& op, const Xmm& x, uint8 imm) { if (!op.isREG(i32e) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, xm0, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x14, false); db(imm); }
+void vpextrw(const Reg& r, const Xmm& x, uint8 imm) { opAVX_X_X_XM(x, xm0, Xmm(r.getIdx()), MM_0F | PP_66, 0xC5, false); db(imm); }
+void vpextrw(const Address& addr, const Xmm& x, uint8 imm) { opAVX_X_X_XM(x, xm0, addr, MM_0F3A | PP_66, 0x15, false); db(imm); }
+void vpextrd(const Operand& op, const Xmm& x, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, xm0, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x16, false, 0); db(imm); }
+void vpinsrb(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x20, false); db(imm); }
+void vpinsrb(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x20, false); db(imm); }
+void vpinsrw(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F | PP_66, 0xC4, false); db(imm); }
+void vpinsrw(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F | PP_66, 0xC4, false); db(imm); }
+void vpinsrd(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 0); db(imm); }
+void vpinsrd(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(32) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 0); db(imm); }
+void vpmovmskb(const Reg32e& r, const Xmm& x) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, x, MM_0F | PP_66, 0xD7, false); }
+void vpslldq(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm7, x1, x2, MM_0F | PP_66, 0x73, false); db(imm); }
+void vpslldq(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm7, x, x, MM_0F | PP_66, 0x73, false); db(imm); }
+void vpsrldq(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm3, x1, x2, MM_0F | PP_66, 0x73, false); db(imm); }
+void vpsrldq(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm3, x, x, MM_0F | PP_66, 0x73, false); db(imm); }
+void vpsllw(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm6, x1, x2, MM_0F | PP_66, 0x71, false); db(imm); }
+void vpsllw(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm6, x, x, MM_0F | PP_66, 0x71, false); db(imm); }
+void vpslld(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm6, x1, x2, MM_0F | PP_66, 0x72, false); db(imm); }
+void vpslld(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm6, x, x, MM_0F | PP_66, 0x72, false); db(imm); }
+void vpsllq(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm6, x1, x2, MM_0F | PP_66, 0x73, false); db(imm); }
+void vpsllq(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm6, x, x, MM_0F | PP_66, 0x73, false); db(imm); }
+void vpsraw(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm4, x1, x2, MM_0F | PP_66, 0x71, false); db(imm); }
+void vpsraw(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm4, x, x, MM_0F | PP_66, 0x71, false); db(imm); }
+void vpsrad(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm4, x1, x2, MM_0F | PP_66, 0x72, false); db(imm); }
+void vpsrad(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm4, x, x, MM_0F | PP_66, 0x72, false); db(imm); }
+void vpsrlw(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm2, x1, x2, MM_0F | PP_66, 0x71, false); db(imm); }
+void vpsrlw(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm2, x, x, MM_0F | PP_66, 0x71, false); db(imm); }
+void vpsrld(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm2, x1, x2, MM_0F | PP_66, 0x72, false); db(imm); }
+void vpsrld(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm2, x, x, MM_0F | PP_66, 0x72, false); db(imm); }
+void vpsrlq(const Xmm& x1, const Xmm& x2, uint8 imm) { opAVX_X_X_XM(xm2, x1, x2, MM_0F | PP_66, 0x73, false); db(imm); }
+void vpsrlq(const Xmm& x, uint8 imm) { opAVX_X_X_XM(xm2, x, x, MM_0F | PP_66, 0x73, false); db(imm); }
+void vblendvpd(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, MM_0F3A | PP_66, 0x4B, true); db(x4.getIdx() << 4); }
+void vblendvpd(const Xmm& x1, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x1, op, MM_0F3A | PP_66, 0x4B, true); db(x4.getIdx() << 4); }
+void vblendvps(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, MM_0F3A | PP_66, 0x4A, true); db(x4.getIdx() << 4); }
+void vblendvps(const Xmm& x1, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x1, op, MM_0F3A | PP_66, 0x4A, true); db(x4.getIdx() << 4); }
+void vpblendvb(const Xmm& x1, const Xmm& x2, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x2, op, MM_0F3A | PP_66, 0x4C, false); db(x4.getIdx() << 4); }
+void vpblendvb(const Xmm& x1, const Operand& op, const Xmm& x4) { opAVX_X_X_XM(x1, x1, op, MM_0F3A | PP_66, 0x4C, false); db(x4.getIdx() << 4); }
+void vmovd(const Xmm& x, const Reg32& reg) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x6E, false, 0); }
+void vmovd(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0x6E, false, 0); }
+void vmovd(const Reg32& reg, const Xmm& x) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x7E, false, 0); }
+void vmovd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0x7E, false, 0); }
+void vmovhlps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, op, MM_0F, 0x12, false); }
+void vmovlhps(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, op, MM_0F, 0x16, false); }
+void vmovmskpd(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), x.isXMM() ? xm0 : ym0, x, MM_0F | PP_66, 0x50, true, 0); }
+void vmovmskps(const Reg& r, const Xmm& x) { if (!r.isBit(i32e)) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x.isXMM() ? Xmm(r.getIdx()) : Ymm(r.getIdx()), x.isXMM() ? xm0 : ym0, x, MM_0F, 0x50, true, 0); }
+void vmovntdq(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F | PP_66, 0xE7, true); }
+void vmovntpd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F | PP_66, 0x2B, true); }
+void vmovntps(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, addr, MM_0F, 0x2B, true); }
+void vmovntdqa(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F38 | PP_66, 0x2A, false); }
+void vmovsd(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, op, MM_0F | PP_F2, 0x10, false); }
+void vmovsd(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F2, 0x10, false); }
+void vmovsd(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F2, 0x11, false); }
+void vmovss(const Xmm& x1, const Xmm& x2, const Operand& op = Operand()) { if (!op.isNone() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, op, MM_0F | PP_F3, 0x10, false); }
+void vmovss(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F3, 0x10, false); }
+void vmovss(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F3, 0x11, false); }
+void vcvtss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2D, false, 0); }
+void vcvttss2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2C, false, 0); }
+void vcvtsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2D, false, 0); }
+void vcvttsd2si(const Reg32& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2C, false, 0); }
+void vcvtsi2ss(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !(op2.isREG(i32e) || op2.isMEM())) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, cvtReg(op2, op2.isREG(), Operand::XMM), MM_0F | PP_F3, 0x2A, false, (op1.isMEM() || op2.isMEM()) ? -1 : (op1.isREG(32) || op2.isREG(32)) ? 0 : 1); }
+void vcvtsi2sd(const Xmm& x, const Operand& op1, const Operand& op2 = Operand()) { if (!op2.isNone() && !(op2.isREG(i32e) || op2.isMEM())) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, op1, cvtReg(op2, op2.isREG(), Operand::XMM), MM_0F | PP_F2, 0x2A, false, (op1.isMEM() || op2.isMEM()) ? -1 : (op1.isREG(32) || op2.isREG(32)) ? 0 : 1); }
+void vcvtps2pd(const Xmm& x, const Operand& op) { if (!op.isMEM() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, cvtReg(op, !op.isMEM(), x.isXMM() ? Operand::XMM : Operand::YMM), MM_0F, 0x5A, true); }
+void vcvtdq2pd(const Xmm& x, const Operand& op) { if (!op.isMEM() && !op.isXMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x.isXMM() ? xm0 : ym0, cvtReg(op, !op.isMEM(), x.isXMM() ? Operand::XMM : Operand::YMM), MM_0F | PP_F3, 0xE6, true); }
+void vcvtpd2ps(const Xmm& x, const Operand& op) { if (x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(op.isYMM() ? Ymm(x.getIdx()) : x, op.isYMM() ? ym0 : xm0, op, MM_0F | PP_66, 0x5A, true); }
+void vcvtpd2dq(const Xmm& x, const Operand& op) { if (x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(op.isYMM() ? Ymm(x.getIdx()) : x, op.isYMM() ? ym0 : xm0, op, MM_0F | PP_F2, 0xE6, true); }
+void vcvttpd2dq(const Xmm& x, const Operand& op) { if (x.isYMM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(op.isYMM() ? Ymm(x.getIdx()) : x, op.isYMM() ? ym0 : xm0, op, MM_0F | PP_66, 0xE6, true); }
+#ifdef XBYAK64
+void vmovq(const Xmm& x, const Reg64& reg) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x6E, false, 1); }
+void vmovq(const Xmm& x, const Address& addr) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_F3, 0x7E, false, -1); }
+void vmovq(const Reg64& reg, const Xmm& x) { opAVX_X_X_XM(x, xm0, Xmm(reg.getIdx()), MM_0F | PP_66, 0x7E, false, 1); }
+void vmovq(const Address& addr, const Xmm& x) { opAVX_X_X_XM(x, xm0, addr, MM_0F | PP_66, 0xD6, false, -1); }
+void vmovq(const Xmm& x1, const Xmm& x2) { opAVX_X_X_XM(x1, xm0, x2, MM_0F | PP_F3, 0x7E, false, -1); }
+void vpextrq(const Operand& op, const Xmm& x, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, xm0, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x16, false, 1); db(imm); }
+void vpinsrq(const Xmm& x1, const Xmm& x2, const Operand& op, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x1, x2, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 1); db(imm); }
+void vpinsrq(const Xmm& x, const Operand& op, uint8 imm) { if (!op.isREG(64) && !op.isMEM()) throw ERR_BAD_COMBINATION; opAVX_X_X_XM(x, x, cvtReg(op, !op.isMEM(), Operand::XMM), MM_0F3A | PP_66, 0x22, false, 1); db(imm); }
+void vcvtss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2D, false, 1); }
+void vcvttss2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F3, 0x2C, false, 1); }
+void vcvtsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2D, false, 1); }
+void vcvttsd2si(const Reg64& r, const Operand& op) { opAVX_X_X_XM(Xmm(r.getIdx()), xm0, op, MM_0F | PP_F2, 0x2C, false, 1); }
+#endif
diff --git a/xbyak/xbyak_util.h b/xbyak/xbyak_util.h
index 1dc500a..65a949f 100644
--- a/xbyak/xbyak_util.h
+++ b/xbyak/xbyak_util.h
@@ -76,11 +76,17 @@ public:
tSSE41 = 1 << 7,
tSSE42 = 1 << 8,
tPOPCNT = 1 << 9,
+ tAESNI = 1 << 10,
+ tSSE5 = 1 << 11,
+ tOSXSACE = 1 << 12,
+ tPCLMULQDQ = 1 << 13,
+ tAVX = 1 << 14,
+ tFMA = 1 << 15,
t3DN = 1 << 16,
tE3DN = 1 << 17,
tSSE4a = 1 << 18,
- tSSE5 = 1 << 11,
+ tRDTSCP = 1 << 19,
tINTEL = 1 << 24,
tAMD = 1 << 25
@@ -99,9 +105,12 @@ public:
if (data[3] & (1U << 15)) type_ |= tCMOV;
if (data[3] & (1U << 30)) type_ |= tE3DN;
if (data[3] & (1U << 22)) type_ |= tMMX2;
+ if (data[3] & (1U << 27)) type_ |= tRDTSCP;
}
if (data[2] == get32bitAsBE(intel)) {
type_ |= tINTEL;
+ getCpuid(0x80000001, data);
+ if (data[3] & (1U << 27)) type_ |= tRDTSCP;
}
getCpuid(1, data);
if (data[2] & (1U << 0)) type_ |= tSSE3;
@@ -109,6 +118,13 @@ public:
if (data[2] & (1U << 19)) type_ |= tSSE41;
if (data[2] & (1U << 20)) type_ |= tSSE42;
if (data[2] & (1U << 23)) type_ |= tPOPCNT;
+ if (data[2] & (1U << 25)) type_ |= tAESNI;
+ if (data[2] & (1U << 1)) type_ |= tPCLMULQDQ;
+ if (data[2] & (1U << 27)) type_ |= tOSXSACE;
+ // QQQ
+ // should check XFEATURE_ENABLED_MASK[2:1] = '11b' by xgetvb
+ if (data[2] & (1U << 28)) type_ |= tAVX;
+ if (data[2] & (1U << 12)) type_ |= tFMA;
if (data[3] & (1U << 15)) type_ |= tCMOV;
if (data[3] & (1U << 23)) type_ |= tMMX;