diff options
-rw-r--r-- | COPYRIGHT | 2 | ||||
-rw-r--r-- | gen/gen_code.cpp | 572 | ||||
-rw-r--r-- | readme.txt | 11 | ||||
-rw-r--r-- | readme_e.txt | 15 | ||||
-rw-r--r-- | sample/Makefile | 11 | ||||
-rw-r--r-- | sample/bf.cpp | 27 | ||||
-rw-r--r-- | sample/calc.cpp | 10 | ||||
-rw-r--r-- | sample/test0.cpp | 1 | ||||
-rw-r--r-- | sample/test_util.cpp | 29 | ||||
-rw-r--r-- | test/Makefile | 5 | ||||
-rw-r--r-- | test/make_nm.cpp | 696 | ||||
-rw-r--r-- | test/nm.cpp | 7460 | ||||
-rw-r--r-- | test/test_address.bat | 2 | ||||
-rwxr-xr-x | test/test_nm.sh | 2 | ||||
-rw-r--r-- | test/test_nm_all.bat | 2 | ||||
-rw-r--r-- | xbyak.sln | 10 | ||||
-rw-r--r-- | xbyak/xbyak.h | 247 | ||||
-rw-r--r-- | xbyak/xbyak_mnemonic.h | 656 | ||||
-rw-r--r-- | xbyak/xbyak_util.h | 18 |
19 files changed, 3351 insertions, 6425 deletions
@@ -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() @@ -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 @@ -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®, const Operand& op) { opModRM(reg, op, op.isREG(16 | i32e), op.isMEM(), 0x0F, 0xBC); } void bsr(const 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; |