diff --git a/uppsrc/ide/Cpp.cpp b/uppsrc/ide/Cpp.cpp index a18a80bb1..aea1c9331 100644 --- a/uppsrc/ide/Cpp.cpp +++ b/uppsrc/ide/Cpp.cpp @@ -106,7 +106,7 @@ void ResolveTParam(Vector& type, const Vector& tparam) void AssistScanError(int line, const String& text) { -#ifdef _DEBUG +#ifdef _DEBUG_X_0 PutVerbose(String().Cat() << "(" << line << "): " << text); #endif } @@ -120,7 +120,7 @@ void AssistEditor::Context(Parser& parser, int pos) parser.Do(ss, IgnoreList(), CodeBase(), Null, callback(AssistScanError)); QualifyTypes(CodeBase(), parser.current_scope, parser.current); inbody = parser.IsInBody(); -#ifdef _DEBUG +#ifdef _DEBUG_X_0 PutVerbose("body: " + AsString(inbody)); PutVerbose("scope: " + AsString(parser.current_scope)); #endif diff --git a/uppsrc/ide/Debuggers/Pdb.cpp b/uppsrc/ide/Debuggers/Pdb.cpp index b36b20de4..67daae59f 100644 --- a/uppsrc/ide/Debuggers/Pdb.cpp +++ b/uppsrc/ide/Debuggers/Pdb.cpp @@ -103,10 +103,11 @@ bool Pdb::Create(One local, const String& exefile, const String& cmdline) Buffer env(local->GetEnvironment().GetCount() + 1); memcpy(env, ~local->GetEnvironment(), local->GetEnvironment().GetCount() + 1); bool h = CreateProcess(exefile, cmd, NULL, NULL, TRUE, - NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE|DEBUG_ONLY_THIS_PROCESS, + NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE|DEBUG_ONLY_THIS_PROCESS|DEBUG_PROCESS, ~env, NULL, &si, &pi); if(!h) { - Exclamation("Error creating process&[* " + DeQtf(exefile) + "]"); + Exclamation("Error creating process&[* " + DeQtf(exefile) + "]&" + + "Windows error: " + DeQtf(GetLastErrorMessage())); return false; } hProcess = pi.hProcess; diff --git a/uppsrc/ide/app.tpp/About$en-us.tpp b/uppsrc/ide/app.tpp/About$en-us.tpp index e928a0bee..a5723c1a4 100644 --- a/uppsrc/ide/app.tpp/About$en-us.tpp +++ b/uppsrc/ide/app.tpp/About$en-us.tpp @@ -85,10 +85,10 @@ JPEG Group]] ::^ [s0; [+75 ndisasm]] ::= [s0; [+75 Julian Hall, Simon Tatham, Nelson Rush, Frank Kotler, Stephen Silver, John Coffman, Yuri Zaporogets, H. Peter Anvin, John Fine, -Kendall Bennet, Gary Clark, Andrew Crabtree, Rafael R. Sevilla,, -Jaime Tejedor Gómez, James Seter, Edward J. Beroset, Stanislav -Karchebny, Debbie Wiles, Trevor Woerner, Michael K. Ter Louw, -Martin Wawro, Alexei Frounze]] +Kendall Bennet, Gary Clark, Andrew Crabtree, Rafael R. Sevilla, +Jaime Tejedor, James Seter, Edward J. Beroset, Stanislav Karchebny, +Debbie Wiles, Trevor Woerner, Michael K. Ter Louw, Martin Wawro, +Alexei Frounze]] ::^ [s0; [+75 PNG]] ::= [s0; [+75 Glenn Randers`-Pehrson, Andreas Dilger, Guy Eric Schalnat]] ::^ [s0; [+75 Sqlite]] diff --git a/uppsrc/ide/app.tpp/About$en-us.tppi b/uppsrc/ide/app.tpp/About$en-us.tppi index 024cceafa..fd70e50e2 100644 --- a/uppsrc/ide/app.tpp/About$en-us.tppi +++ b/uppsrc/ide/app.tpp/About$en-us.tppi @@ -1,61 +1,61 @@ TITLE("Copyright © 1999-2009 Ultimate++ team") COMPRESSED -120,156,205,125,77,115,27,73,150,216,95,201,144,119,119,200,110,16,18,217,45,117,75,154,157,24,144,132,40,116,83,36,7,0,165,209,116,168,137,2,144,32,170,89,168,66,215,7,41,104,122,14,27,62,56,236,179,47,62,142,79,118,132,29,225,136,61,250,224,8,183,247,159,216,14,239,191,240,251,200,204,202,204,170,2,73,129,135,85,204,180,4,160,42,243,229,203,247,253,94,190,252,65,252,205,223,60,105,61,249,87,79,110,249,243,226,80,206,130,34,202,63,252,240,231,139,191,252,109,247,100,231,124,32,126,200,158,188,252,162,119,36,243,227,100,18,68,135,97,250,242,203,221,221,111,196,223,125,192,31,196,15,95,208,167,131,100,185,74,195,203,121,46,254,231,127,22,187,207,159,63,31,237,236,61,121,242,173,56,143,242,112,17,228,114,244,229,232,75,145,203,96,241,129,223,11,191,121,242,245,203,211,231,47,69,167,200,231,73,154,189,248,129,134,217,249,229,131,26,240,77,152,202,171,139,87,191,254,215,105,36,211,214,7,254,89,232,95,135,201,226,215,191,254,211,95, -47,250,171,72,94,181,240,235,31,231,121,190,28,189,24,61,30,61,190,185,185,25,181,167,225,101,152,7,81,150,204,242,155,32,149,163,246,50,250,145,94,61,12,226,80,70,23,223,39,153,15,202,65,18,231,105,56,46,114,15,30,49,8,226,105,146,94,188,78,126,202,179,85,75,252,41,75,162,252,226,80,142,83,217,18,71,69,56,77,46,6,147,121,184,88,200,40,107,193,130,46,139,44,79,46,250,201,34,136,225,99,26,254,84,100,98,95,166,113,146,7,240,251,155,112,50,15,0,128,78,52,150,105,46,224,139,32,157,20,217,197,155,160,152,7,105,238,47,38,46,162,104,153,167,163,118,28,141,30,255,40,190,11,226,139,119,97,4,67,103,8,25,204,159,6,114,33,47,206,82,25,231,225,4,0,122,27,78,96,1,23,48,225,100,46,97,184,222,117,56,9,46,206,138,232,167,112,130,147,229,243,48,200,178,139,65,17,79,1,186,120,154,202,155,139,253,32,13,163,40,80,192,69,23,111,66,153,126,146,63,201,155,236,42,108,1,198,22,161,140,47,206,146,244,231,2, -71,124,7,107,145,233,197,59,25,127,146,17,194,251,183,59,21,244,207,130,40,10,227,203,105,145,79,230,176,25,18,97,223,15,50,120,233,114,206,128,191,10,198,97,114,177,95,100,50,207,19,51,243,153,188,10,254,233,63,224,156,105,26,198,128,215,36,207,171,16,124,23,44,100,38,134,115,64,113,230,35,108,254,245,199,79,163,246,56,74,46,179,101,146,143,218,147,100,241,163,24,164,97,14,216,13,98,49,8,175,131,203,34,45,90,8,5,236,78,94,164,0,216,255,250,55,45,209,15,162,153,128,141,140,101,56,5,146,19,103,193,181,140,196,105,150,7,75,25,95,37,248,64,17,137,94,18,135,121,18,22,45,113,146,164,180,131,175,147,25,62,62,68,96,62,193,91,63,5,64,145,251,50,78,194,28,72,170,200,178,4,200,96,152,202,149,120,11,243,247,195,37,13,46,115,153,34,85,92,226,167,1,254,189,18,39,225,85,152,135,49,238,82,150,133,139,68,28,2,0,175,228,84,70,176,175,189,20,161,184,22,157,72,126,4,122,196,215,142,130,113,10,180,140,64,47, -146,252,19,126,117,152,44,0,237,9,60,117,13,84,255,73,28,22,64,83,82,109,116,8,240,100,11,216,230,239,147,104,154,192,122,22,192,100,159,8,116,113,26,253,250,87,24,81,38,0,137,216,7,220,195,34,254,52,14,47,129,89,110,196,193,167,96,25,94,210,139,49,224,3,40,45,22,175,97,224,27,216,52,152,51,156,2,189,136,63,20,176,230,2,232,72,166,52,33,240,117,188,2,124,20,17,190,119,29,68,242,90,45,148,104,30,199,0,192,11,36,209,36,22,199,197,50,200,38,128,214,87,176,75,87,176,114,177,4,32,42,60,58,132,95,179,40,32,22,221,249,5,182,16,216,38,5,50,2,50,9,63,125,34,58,186,138,126,253,71,160,239,100,145,92,174,66,100,192,8,72,135,185,205,231,134,62,18,93,58,189,56,2,168,43,116,93,98,197,223,30,15,125,53,219,160,209,29,128,8,106,218,80,96,101,216,46,248,249,215,191,166,74,168,8,37,84,0,121,128,18,216,233,108,126,37,175,9,201,199,97,18,35,57,166,41,160,79,252,243,127,255,215,255,251,127, -252,187,127,254,135,127,47,182,190,15,178,100,33,183,91,98,57,15,211,228,163,222,142,150,248,127,255,237,63,254,159,255,244,15,255,247,223,254,23,177,181,159,196,0,236,118,219,199,230,89,95,140,254,78,12,186,167,140,75,162,248,139,65,158,6,121,24,249,207,158,147,8,63,78,46,19,71,54,122,92,242,161,5,26,65,244,19,196,246,197,219,52,145,139,48,203,96,69,106,180,47,119,65,39,192,63,197,159,255,252,21,252,121,241,236,217,179,111,72,193,84,21,133,144,139,0,160,120,241,130,127,255,225,71,252,152,39,163,23,197,114,57,250,125,156,131,124,25,143,218,64,174,63,10,235,27,252,226,131,121,201,25,20,164,5,16,85,112,41,173,49,61,169,133,98,80,78,88,104,140,30,227,176,143,103,73,90,128,0,193,7,95,60,126,252,193,126,5,127,111,103,51,16,205,50,255,81,192,0,237,66,205,183,92,174,129,131,70,108,134,161,28,131,86,231,67,80,157,134,31,248,240,225,47,127,113,113,236,254,83,252,64,31,92,140,4,160,152,6,135,34,2,197,17,103,242, -197,7,222,153,93,180,4,126,191,181,247,244,235,246,222,211,167,237,189,175,246,182,21,172,123,150,158,223,58,216,22,164,226,73,83,139,87,33,41,106,22,131,130,244,178,0,49,37,64,12,133,32,4,197,196,82,174,98,43,147,82,116,206,135,175,79,251,131,109,69,26,123,6,208,61,144,142,41,210,13,144,188,8,51,49,7,129,50,94,137,75,96,253,92,130,210,154,165,240,118,50,19,200,187,151,64,91,121,2,51,173,4,200,85,16,181,34,25,231,65,24,131,16,20,1,76,186,92,225,147,160,243,50,161,77,1,2,11,248,49,153,132,128,136,169,152,38,147,98,1,218,19,136,30,94,159,1,5,0,128,249,92,138,209,163,129,182,30,30,109,211,52,83,25,68,2,228,22,254,170,127,19,55,160,90,146,34,23,169,204,96,133,19,28,165,5,15,77,162,98,138,80,232,159,163,112,17,170,57,240,117,66,98,134,131,22,200,31,8,105,75,44,146,105,56,195,191,37,45,108,89,140,163,48,3,230,159,134,25,35,15,190,204,240,75,218,175,22,174,228,113,146,138,76,70,17, -142,16,2,228,180,218,18,58,122,6,103,89,34,74,115,133,36,154,247,6,24,194,93,9,32,105,86,164,49,76,41,233,29,16,114,89,66,51,254,4,92,129,223,224,227,179,36,138,146,27,92,26,236,233,52,196,21,101,47,106,54,113,8,207,6,227,228,90,210,226,152,104,192,6,2,216,25,38,220,147,101,185,209,234,167,12,172,128,72,140,165,194,32,0,2,248,14,26,215,71,67,133,128,200,3,111,142,172,45,122,240,226,148,1,100,84,78,162,149,217,109,24,56,152,92,197,201,77,36,167,151,248,133,88,128,217,134,19,95,134,215,18,247,40,200,61,186,65,118,25,75,248,13,118,12,38,157,193,76,240,99,145,78,112,133,83,89,37,52,248,247,34,128,31,130,107,16,93,193,56,146,6,140,54,96,7,126,85,107,212,90,14,177,230,2,133,143,8,9,20,4,250,181,178,66,84,43,113,17,160,209,121,70,227,134,249,138,240,1,218,245,74,230,184,67,122,181,128,183,148,152,196,37,246,101,154,92,135,136,99,36,82,102,162,52,153,22,176,215,200,174,138,141,156,53,41, -192,143,153,2,97,56,216,18,0,71,4,203,37,32,87,113,162,65,0,33,17,52,220,85,166,137,7,68,116,10,18,1,222,50,115,3,107,187,104,219,202,16,60,240,53,96,68,0,123,186,66,229,69,31,129,11,129,9,68,18,211,92,22,214,112,104,243,190,30,185,93,33,202,47,128,42,95,119,197,224,244,213,240,93,167,223,21,189,1,168,192,211,183,189,195,238,33,112,123,103,0,95,140,30,129,33,208,3,201,116,62,20,240,76,191,115,50,124,47,78,95,137,206,201,123,241,125,239,228,176,37,186,127,60,235,119,7,3,113,218,23,189,55,103,199,189,46,124,215,59,57,56,62,63,236,157,28,137,125,120,239,228,116,40,142,123,111,122,67,24,118,120,74,83,170,161,122,221,1,14,246,166,219,63,120,13,31,59,251,189,227,222,240,61,24,61,189,225,9,142,249,10,6,237,136,179,78,127,216,59,56,63,238,244,197,217,121,255,236,116,208,133,233,15,97,216,147,222,201,171,62,204,210,125,211,61,25,2,129,159,192,119,162,251,22,62,136,193,235,206,241,49,77,165,228,170, -216,239,2,16,157,253,227,46,143,10,240,31,28,119,122,111,192,64,232,188,233,28,117,105,1,167,240,66,159,30,83,128,188,123,221,165,175,96,232,14,252,239,96,216,59,61,65,136,15,78,79,134,125,248,8,2,254,180,63,52,175,190,235,13,186,96,174,244,123,3,92,251,171,254,41,12,143,152,131,55,78,105,16,120,239,164,203,163,32,86,93,244,195,35,248,249,124,208,45,97,57,236,118,142,97,172,1,190,108,63,220,174,87,112,207,203,205,197,127,59,234,77,115,151,98,82,146,29,165,240,50,148,168,213,222,222,238,179,111,95,124,243,237,87,123,243,221,151,160,253,158,124,173,181,222,151,223,60,5,130,199,167,87,165,74,167,111,149,243,138,223,254,248,251,61,235,135,79,48,58,126,251,247,214,119,223,201,32,30,237,68,73,177,4,139,49,68,226,214,188,42,58,168,59,105,20,235,249,222,119,71,226,187,179,238,145,130,116,229,143,135,246,233,113,16,131,136,63,155,135,81,8,163,70,193,20,60,79,252,230,187,112,33,246,147,2,60,64,80,201,199,160,46,15,210,100, -114,133,31,190,43,162,16,12,207,55,128,2,180,213,81,87,29,23,192,125,167,96,144,127,50,14,0,142,8,67,102,232,122,33,47,129,69,7,82,90,121,187,226,45,32,113,44,81,187,225,11,163,223,128,229,28,254,4,138,133,149,77,66,210,106,33,23,96,3,26,121,221,3,143,5,12,196,41,10,90,90,212,81,10,136,240,151,60,254,20,46,247,42,120,99,136,7,18,152,123,234,191,1,10,40,11,178,69,195,59,175,3,180,235,7,96,121,199,98,8,158,111,176,0,183,13,188,116,248,216,47,80,177,178,179,241,125,146,147,237,50,0,147,106,46,209,71,140,174,9,87,201,60,6,177,59,155,145,39,255,190,72,67,241,167,96,153,164,201,165,204,97,177,175,219,202,141,235,196,215,104,228,211,227,175,66,196,255,247,176,84,84,90,224,6,198,232,176,30,193,254,137,131,8,246,90,251,220,176,35,193,56,7,75,6,253,202,89,0,54,116,191,13,107,188,38,63,28,157,131,16,172,213,33,248,224,83,16,129,71,191,254,227,2,61,13,246,123,7,56,41,200,161,41,34,68, -124,215,70,55,50,201,112,154,1,248,102,33,184,71,215,226,251,0,221,255,113,12,198,4,248,20,227,80,138,119,104,216,144,35,122,13,35,190,75,200,217,49,225,8,241,61,72,118,88,202,113,82,220,24,247,236,93,112,147,130,254,71,143,19,156,153,87,176,99,224,25,249,59,112,118,114,228,99,255,8,60,46,192,48,121,169,217,104,231,76,206,83,114,130,105,229,160,68,15,195,136,220,222,163,98,37,186,96,50,161,231,20,68,113,144,251,99,15,126,142,194,92,250,195,31,182,181,227,38,94,135,203,10,17,229,225,204,127,99,0,238,196,177,156,205,120,151,129,89,64,189,97,228,4,92,166,9,224,164,23,79,108,241,226,201,148,14,236,35,176,121,38,141,28,65,37,163,20,36,219,39,163,71,203,168,184,12,227,209,35,48,213,82,137,1,24,80,241,125,57,3,140,34,55,160,209,148,106,51,27,38,156,39,55,18,40,140,236,154,82,35,206,193,149,66,123,124,180,3,238,199,18,84,32,90,12,234,37,214,208,242,227,68,46,73,115,3,91,29,31,157,29,235,159,167,154, -17,180,206,43,23,161,254,85,218,245,187,207,119,181,100,251,2,127,4,81,112,244,238,3,45,85,224,196,64,39,96,82,174,178,92,46,196,150,177,194,104,126,244,120,118,48,192,112,3,214,110,4,91,41,179,109,196,53,58,11,79,201,89,216,125,250,100,187,239,124,162,169,162,221,189,111,245,124,151,147,137,248,170,13,190,133,154,51,79,146,8,118,51,140,171,206,197,215,64,116,210,50,246,94,1,5,78,3,182,176,105,211,120,137,246,232,246,106,192,178,120,83,44,16,240,239,231,200,193,135,65,12,214,201,0,191,129,77,232,6,96,234,2,194,147,213,20,101,224,149,20,135,5,69,55,128,207,218,192,85,24,173,57,4,84,188,150,225,244,39,9,223,30,160,179,14,31,129,138,195,143,165,168,203,108,40,108,226,81,192,104,82,201,196,209,193,129,133,225,2,72,155,70,217,239,157,156,15,123,199,3,198,177,181,171,31,216,103,187,205,47,3,74,255,162,255,229,30,184,228,71,39,231,226,168,123,210,237,119,142,193,114,216,63,238,29,128,110,63,232,158,12,186,10,70,120, -244,177,120,11,48,35,13,237,161,54,136,37,134,107,119,181,45,165,97,127,236,109,198,238,243,111,159,183,232,201,187,109,9,142,240,244,57,136,148,197,18,136,248,44,10,48,52,57,160,37,127,245,213,147,22,96,29,53,21,72,154,142,16,79,246,118,119,119,71,59,187,95,61,249,70,128,49,208,81,67,140,191,253,138,144,216,5,78,89,129,86,19,218,95,200,115,118,79,200,187,67,4,150,238,145,128,103,199,0,205,194,113,23,224,197,200,24,172,108,255,178,33,9,100,23,95,162,49,0,158,81,168,12,89,180,15,74,219,241,239,25,138,47,30,247,191,22,103,32,188,22,192,147,30,124,195,185,225,210,140,248,124,1,107,179,188,77,248,63,24,33,225,101,204,80,231,1,80,90,112,19,172,196,10,196,9,57,179,83,116,196,18,116,125,148,67,67,112,193,130,243,182,16,251,43,246,157,131,12,128,70,85,74,155,44,65,120,131,47,202,118,191,49,199,201,165,200,81,205,210,84,151,69,64,62,179,188,125,42,242,169,77,176,124,103,180,3,15,45,16,210,172,32,59,94,58, -94,13,61,141,75,69,1,134,222,23,120,68,41,120,92,236,28,52,0,135,46,2,110,9,142,140,24,82,150,65,19,57,141,126,227,185,236,202,185,96,243,2,108,252,203,20,164,250,13,9,230,128,237,48,100,46,116,114,201,169,230,109,5,152,182,6,24,248,225,215,154,38,115,86,55,1,159,53,213,142,9,227,91,153,127,141,120,7,185,33,131,105,123,91,136,247,73,33,38,32,57,216,33,98,96,8,251,10,226,12,3,9,73,219,163,161,119,104,118,220,0,146,151,50,184,34,59,213,222,143,22,254,132,192,165,168,81,82,114,202,18,189,157,45,34,219,37,168,81,112,206,196,41,204,84,15,100,86,161,68,123,127,193,79,3,40,89,5,145,147,95,210,138,197,93,37,83,57,240,137,45,69,73,104,58,34,89,176,63,39,211,107,244,232,193,81,198,161,111,194,108,142,81,20,61,21,168,73,9,158,182,235,65,167,132,59,48,175,136,35,213,139,64,194,240,209,122,21,159,81,116,235,80,38,188,14,132,40,0,70,101,237,227,32,177,136,193,218,34,120,245,22,188,84,1,8, -53,28,58,220,102,220,41,249,169,25,142,12,120,206,252,141,26,38,56,74,142,225,16,218,85,14,227,208,6,197,210,66,171,21,12,202,120,38,192,203,56,156,34,9,163,44,163,96,82,76,50,64,205,167,2,66,136,61,32,244,236,138,127,74,112,131,82,228,232,212,10,27,161,23,78,239,56,179,168,208,56,13,62,145,41,234,28,124,98,9,63,134,99,48,122,242,80,9,40,28,89,33,183,118,115,109,164,182,16,34,245,48,135,167,144,171,60,172,188,130,103,228,199,0,101,125,107,237,200,25,184,36,34,208,27,1,104,155,75,226,203,75,12,57,211,226,73,170,136,25,218,197,52,37,6,101,48,34,195,171,151,147,16,134,194,120,70,64,86,89,25,71,179,41,184,205,108,72,239,122,68,14,175,172,136,3,91,134,0,45,162,227,133,27,122,132,113,192,100,45,225,200,192,110,195,103,22,154,68,64,27,161,144,162,81,153,140,224,95,161,166,138,10,147,203,58,218,97,173,159,223,192,78,131,251,145,189,16,91,96,158,149,17,51,119,47,144,110,183,64,237,131,79,34,83,69, -60,150,118,187,1,123,118,78,232,202,232,199,72,94,130,28,176,130,108,74,107,218,17,69,29,68,84,155,107,207,231,47,160,19,97,56,16,119,72,6,184,143,36,117,81,78,171,101,225,12,100,22,21,41,179,4,177,174,102,9,77,146,180,15,82,43,245,130,156,4,176,186,166,153,217,33,22,195,113,2,239,167,168,192,86,165,80,113,228,14,236,79,207,165,86,10,185,225,66,66,150,223,152,26,193,89,192,231,99,37,178,12,50,180,150,209,244,208,240,161,254,178,8,11,192,85,59,9,192,220,104,154,97,201,168,108,4,156,49,129,237,9,227,0,220,75,218,127,120,76,133,207,192,64,88,144,26,166,72,26,131,193,118,34,236,52,16,45,14,0,114,28,243,12,66,197,130,245,88,90,143,129,71,157,202,101,193,65,186,10,25,189,194,71,163,85,139,38,180,229,26,130,151,207,193,72,1,11,0,230,157,168,92,29,168,161,177,21,147,91,226,207,40,66,144,30,81,40,147,188,185,78,194,41,193,50,69,177,154,242,138,64,9,106,50,73,216,149,15,220,9,105,65,33,184,30, -215,225,180,224,120,29,69,223,213,36,150,199,131,97,76,160,217,9,49,36,71,21,203,97,224,111,208,95,50,15,208,107,98,17,11,244,17,115,252,149,54,138,176,79,177,84,16,233,19,240,60,82,11,231,60,151,14,223,26,143,136,232,84,145,25,18,41,65,142,250,1,190,199,77,48,15,6,100,245,85,36,61,1,8,116,97,24,157,148,156,9,121,211,248,200,76,20,6,49,136,210,60,192,84,56,81,73,5,138,58,249,54,101,255,233,157,12,246,190,24,118,251,111,6,20,2,60,56,61,57,236,97,52,141,67,133,7,167,103,239,123,39,71,224,217,244,6,195,126,111,255,156,2,109,248,224,155,211,195,222,171,222,65,7,191,208,153,60,244,79,112,106,204,230,97,29,197,211,39,226,201,135,246,206,47,180,88,43,168,107,25,106,138,166,105,151,96,185,108,68,221,36,233,149,18,53,198,181,9,116,252,126,137,166,190,177,157,74,57,54,79,34,212,97,89,176,82,246,246,2,44,96,216,174,82,16,77,89,22,208,123,140,112,109,188,215,27,52,100,110,98,150,230,140,1,196, -200,237,88,2,158,91,108,39,153,5,144,210,177,86,129,240,179,40,13,224,109,90,205,56,96,169,64,147,155,241,196,66,130,74,213,241,119,235,39,19,77,151,105,120,13,91,12,196,73,195,240,2,202,69,71,193,205,11,219,59,228,141,127,188,199,196,27,18,132,128,17,0,134,223,119,162,238,238,108,98,153,164,218,243,71,99,72,1,101,252,29,92,23,42,18,155,238,50,45,219,141,105,128,209,10,194,10,239,100,4,204,94,4,151,136,202,173,215,32,118,65,178,204,40,182,164,95,80,25,56,39,10,224,37,179,84,58,12,119,12,176,105,79,63,122,132,6,113,23,85,133,226,53,146,160,193,116,10,86,9,49,94,6,111,128,158,130,7,171,88,2,117,3,26,229,154,173,150,68,237,0,26,126,119,99,57,20,117,200,229,142,49,95,18,249,75,150,234,100,53,22,121,22,146,100,1,93,14,163,107,194,10,38,228,163,164,69,92,217,16,165,7,180,249,133,73,73,182,40,105,52,144,220,32,108,84,114,205,122,69,131,66,233,139,112,70,19,226,142,147,218,33,105,29,230,164, -144,69,35,77,98,64,166,12,164,2,116,32,24,17,56,74,75,145,124,132,117,214,64,188,221,70,23,67,35,145,73,47,45,208,29,192,177,50,156,69,171,58,51,21,230,118,218,245,178,227,169,216,85,130,131,236,172,96,117,119,95,188,100,175,223,100,142,237,31,100,142,91,128,52,142,153,63,224,178,5,168,161,2,140,69,147,49,42,29,1,64,218,50,156,20,73,145,169,112,58,200,46,82,38,64,235,240,141,74,160,226,242,200,98,81,80,218,79,213,39,39,97,21,147,8,67,176,41,66,173,205,144,151,226,74,202,37,178,16,210,134,182,64,85,54,78,171,76,138,249,37,14,177,105,247,53,167,140,104,38,227,9,37,11,113,109,229,208,248,12,25,186,165,147,107,89,37,46,238,252,212,182,153,39,74,84,198,217,126,186,150,185,204,198,177,215,70,38,183,50,179,64,136,207,87,25,102,220,52,15,144,56,208,174,103,160,76,200,64,155,198,48,74,160,76,218,68,71,39,17,11,198,122,179,204,67,180,3,62,234,152,131,54,245,27,169,108,207,163,50,101,163,210,84,140,128, -180,158,184,180,128,246,132,102,62,47,72,111,47,120,29,141,108,214,82,186,190,74,211,164,75,92,25,171,52,74,157,246,26,168,85,239,114,34,188,142,132,177,68,17,40,92,50,61,241,42,50,89,147,90,167,221,11,65,105,151,24,218,19,193,246,206,47,198,213,153,4,69,198,126,146,49,129,185,154,1,173,126,216,11,218,8,88,58,138,14,77,180,148,106,37,89,161,89,138,246,134,101,25,191,173,37,219,20,185,69,145,45,63,213,94,7,218,184,10,26,17,60,162,202,204,102,97,22,208,104,234,29,88,70,161,76,74,34,250,133,76,202,52,47,237,13,252,46,99,253,139,203,244,165,173,222,126,124,135,28,138,100,70,5,28,182,125,24,160,213,194,51,4,136,16,205,10,168,31,137,181,195,116,74,35,32,121,53,153,38,218,22,89,135,137,9,96,66,249,41,102,99,180,57,18,3,49,146,225,12,102,251,148,3,88,228,10,97,24,47,13,80,1,162,28,187,193,240,16,136,117,203,39,102,140,34,81,211,143,176,143,41,170,119,45,251,145,183,136,86,173,129,200,248,85,234, -154,35,112,233,20,52,126,138,82,136,156,98,42,185,203,41,231,30,102,96,200,177,172,140,227,164,0,137,69,53,18,101,89,203,93,164,168,49,10,155,29,187,45,52,210,35,172,101,81,150,161,33,13,197,42,184,71,234,225,237,50,108,67,241,70,18,9,150,143,34,29,167,194,236,152,195,77,74,81,75,170,78,165,231,113,40,65,142,125,34,174,177,216,177,94,182,162,137,212,213,233,151,23,168,190,29,237,158,103,50,154,233,248,171,198,55,134,152,77,133,132,217,105,70,50,71,66,92,244,182,88,178,53,107,127,99,119,252,92,132,41,71,155,120,52,111,160,246,118,157,200,215,49,35,122,153,171,66,76,217,134,67,156,4,64,201,30,236,102,135,104,114,192,239,84,199,146,73,21,116,34,44,161,163,76,175,40,155,171,137,45,149,88,5,96,199,8,71,144,37,49,140,70,241,109,180,192,82,50,79,75,243,6,31,206,36,112,32,18,24,78,144,41,234,93,0,178,175,209,171,204,231,84,169,83,238,82,203,212,3,17,155,182,48,156,231,148,167,168,68,158,6,159,120,199,19, -68,20,224,9,50,111,106,140,196,23,121,211,11,64,189,11,107,88,120,155,68,15,121,204,44,98,216,95,10,179,245,106,135,228,172,109,215,42,181,198,99,104,23,55,137,155,37,81,75,133,196,203,160,15,123,170,202,224,87,118,56,56,53,31,49,79,160,183,30,183,54,85,211,104,91,182,32,197,193,145,30,248,130,92,105,94,86,42,47,131,116,10,186,129,102,135,151,196,13,106,120,43,48,232,209,93,129,17,128,220,14,159,80,154,34,47,75,166,148,162,68,77,133,118,151,21,13,37,11,57,115,67,102,88,189,70,78,104,138,201,160,88,129,207,129,14,120,238,165,128,125,163,210,7,107,42,246,182,228,71,153,178,75,175,99,135,28,19,195,112,77,84,139,126,203,199,35,104,34,140,220,104,143,47,171,221,199,90,44,88,213,104,84,224,7,146,237,242,18,49,169,39,210,78,25,173,12,241,84,43,2,124,227,142,36,40,151,111,53,19,214,54,126,14,196,117,18,21,11,214,225,160,48,146,20,60,63,37,236,203,21,179,177,93,138,173,113,170,5,165,5,93,169,13,201,97, -106,210,134,21,123,238,171,59,120,13,254,218,252,101,161,202,227,249,181,117,181,183,141,114,33,225,34,69,157,71,128,141,158,20,57,9,43,52,248,214,88,103,25,154,103,0,195,158,170,86,108,176,209,64,146,96,36,81,49,164,169,35,186,213,60,235,76,40,155,31,83,50,200,236,30,126,23,73,82,156,41,199,232,73,171,46,128,219,192,64,27,237,160,57,192,146,182,116,145,90,74,136,104,49,112,75,232,164,97,121,68,9,106,151,39,120,82,101,129,85,207,43,46,106,36,179,193,196,82,81,149,177,165,247,18,80,218,186,205,218,171,174,52,48,28,74,30,65,75,92,7,81,200,179,96,97,32,104,128,156,34,150,82,172,100,144,82,106,172,244,129,74,3,108,213,82,190,130,178,208,98,204,32,114,68,63,214,206,0,39,20,181,227,18,81,57,176,182,244,21,14,109,58,111,145,154,87,123,80,197,122,105,1,248,59,228,236,7,91,148,255,146,246,97,210,72,113,97,140,232,96,105,99,57,218,100,7,43,45,192,110,155,159,242,107,88,61,26,68,20,54,12,34,0,47,102, -9,73,31,41,129,206,81,142,25,197,90,99,52,107,81,238,130,71,89,137,218,232,104,136,3,147,109,200,221,206,219,180,70,109,80,41,74,195,216,1,224,33,85,149,43,131,98,172,117,204,152,55,160,209,70,114,162,18,179,82,2,113,48,144,33,163,60,44,239,211,194,232,104,124,136,242,255,28,225,118,189,68,192,42,101,163,95,145,107,98,47,129,195,145,134,24,237,217,121,74,29,104,168,192,5,223,195,36,5,58,105,97,233,27,129,151,25,21,25,177,144,85,229,78,68,52,11,144,13,228,44,140,195,178,216,93,61,207,210,60,13,151,156,206,159,218,122,145,139,86,2,179,103,152,239,134,217,3,219,68,41,87,4,171,124,205,5,78,45,182,34,179,165,164,189,55,229,75,173,202,122,108,30,162,68,42,234,30,21,118,196,165,80,54,214,196,174,140,45,109,191,182,85,150,74,171,145,1,71,99,118,112,112,159,182,75,94,88,4,63,145,46,95,0,93,147,29,188,165,203,114,90,226,10,11,227,34,54,130,50,148,249,219,122,133,160,233,82,246,150,85,117,20,69,205,80, -34,187,235,71,39,44,67,37,69,22,18,193,108,166,210,158,66,160,120,148,226,236,46,246,106,141,135,89,197,46,177,230,67,243,206,226,16,93,118,142,137,39,100,6,114,215,38,19,2,70,85,205,144,101,30,168,106,0,162,143,37,151,232,144,69,109,222,66,87,1,15,110,161,49,238,14,80,161,71,109,234,147,33,76,131,193,15,5,249,24,89,173,73,235,8,82,201,37,247,73,113,57,247,28,239,50,142,187,88,130,215,102,85,254,88,131,120,113,47,11,25,141,166,200,215,31,218,128,87,21,162,0,83,132,231,176,15,97,216,7,45,108,43,201,53,81,152,166,113,145,242,227,18,227,218,228,225,41,11,66,107,3,199,141,236,32,99,130,82,92,192,107,100,83,221,144,61,154,52,78,191,102,118,24,24,51,119,76,173,148,141,11,10,212,36,186,124,30,149,80,136,27,236,152,207,117,96,25,142,213,136,71,179,158,210,110,70,40,115,164,141,144,161,203,30,104,219,81,114,87,135,44,179,157,186,168,36,44,75,32,75,192,136,201,104,251,208,229,162,76,141,2,32,197,3,96, -20,49,156,21,17,203,32,44,234,157,52,239,233,83,203,188,212,116,99,251,202,72,195,203,220,115,151,178,16,195,177,166,248,5,223,81,37,50,36,175,13,94,208,58,39,158,192,84,50,157,69,226,128,181,155,93,87,17,202,230,29,195,192,85,158,249,153,35,174,157,66,247,60,208,46,36,31,100,152,135,227,48,231,244,69,20,220,152,218,10,229,213,86,215,195,227,128,126,74,176,92,96,172,67,166,8,184,99,233,123,9,141,45,21,48,107,246,32,56,244,132,185,222,137,33,39,158,63,80,225,108,103,243,203,211,67,20,8,82,101,98,247,201,163,50,196,37,248,30,18,61,239,171,116,61,43,84,241,236,3,144,4,16,6,37,162,114,44,171,102,83,99,157,207,113,11,42,114,187,22,197,99,57,197,46,168,247,52,255,26,225,104,18,253,252,11,215,250,84,10,50,220,98,12,13,151,123,10,171,33,41,173,43,95,148,64,11,65,235,168,184,235,172,72,85,78,193,42,25,210,103,209,76,158,97,244,155,210,67,86,114,90,201,12,117,250,142,14,227,133,113,219,227,49,85,100, -196,6,25,184,227,240,223,9,159,16,211,76,171,18,112,150,100,247,146,36,141,251,247,141,218,191,222,76,153,19,24,46,2,174,54,105,20,84,52,105,46,126,42,212,65,46,54,141,44,207,90,85,8,128,5,140,90,77,234,135,102,106,167,117,178,5,227,81,98,139,75,3,22,161,42,50,213,239,102,89,33,179,237,150,77,184,100,155,19,134,137,68,144,170,182,116,65,211,120,165,160,2,11,148,236,32,112,245,205,196,70,234,111,107,235,0,235,59,129,179,114,229,112,152,41,42,193,29,202,90,42,246,7,213,131,17,93,156,215,80,88,243,187,28,197,83,101,110,20,165,179,178,26,137,242,2,50,44,195,2,194,203,194,69,17,1,103,75,206,172,113,110,7,244,209,165,178,102,107,196,61,241,121,89,159,41,241,4,1,173,183,124,77,153,23,149,77,92,89,36,219,192,149,170,70,67,84,74,205,2,175,214,4,248,182,136,216,124,84,71,30,211,100,5,46,202,106,180,67,5,32,22,223,91,198,136,158,6,182,45,48,229,254,168,1,117,58,82,101,153,184,186,159,207,165,161, -44,84,159,192,135,37,211,5,22,98,130,146,146,61,27,85,232,139,212,0,96,105,252,142,1,75,104,179,155,131,144,199,14,244,99,18,160,32,197,83,212,128,38,186,69,187,188,6,252,38,211,209,203,132,57,17,55,58,95,27,161,73,207,190,57,214,80,198,204,192,146,140,75,222,106,157,77,9,39,69,20,128,188,14,211,73,177,200,72,246,179,56,28,7,81,169,8,164,61,188,93,145,204,113,88,157,81,210,15,89,153,152,218,231,209,3,36,170,178,167,205,234,87,235,68,25,151,69,74,2,176,38,204,8,187,87,40,210,163,79,44,26,172,130,162,172,44,120,193,52,7,208,243,74,5,12,41,66,169,43,53,117,120,146,176,135,7,48,85,134,140,76,25,126,242,165,59,57,30,35,101,219,53,114,32,212,89,82,165,235,16,13,151,169,26,49,159,123,37,218,46,25,176,63,210,42,131,204,33,242,135,58,230,58,86,121,240,137,97,145,37,37,40,232,140,44,30,33,197,88,73,130,101,250,101,149,213,37,86,220,56,199,182,181,19,75,158,46,230,101,82,202,225,98,77,103, -5,36,114,224,83,101,204,3,231,42,119,137,202,81,149,54,72,98,142,250,103,196,187,84,113,52,177,220,73,243,210,75,21,55,46,150,38,129,78,53,114,143,167,73,204,27,48,5,229,53,165,42,99,82,176,34,155,19,21,161,245,169,10,165,29,65,103,78,166,50,124,165,196,82,64,114,222,202,212,171,40,89,169,20,41,75,235,121,18,78,234,221,180,161,199,89,54,41,83,13,36,130,142,243,98,210,131,170,216,110,148,71,59,6,196,200,107,126,114,44,171,74,142,213,116,150,87,164,122,147,214,252,214,104,205,106,84,91,85,5,21,165,146,183,252,137,178,168,5,55,76,23,109,146,47,71,167,148,148,139,61,118,248,100,188,42,51,128,118,176,129,69,126,105,247,84,234,193,80,198,146,183,152,57,112,212,232,23,42,51,152,78,57,120,178,164,211,206,64,166,248,56,158,226,242,35,75,86,129,18,168,73,149,179,100,177,110,150,82,150,110,58,175,58,199,76,56,58,21,147,77,177,72,200,162,209,136,96,33,83,100,106,2,57,69,13,27,43,198,15,88,89,91,240,131,155, -145,0,175,99,70,137,215,106,129,8,18,1,232,87,199,74,85,138,118,156,76,171,89,200,166,237,126,174,182,27,227,87,141,135,28,16,133,186,36,38,149,215,33,101,193,153,22,176,70,254,154,207,5,153,90,138,134,195,14,108,107,160,29,141,28,9,127,195,186,7,184,104,103,12,242,254,128,146,193,146,8,81,99,192,162,178,101,152,134,166,141,0,58,203,200,251,234,13,62,144,131,16,130,229,139,97,72,120,97,42,129,246,34,210,3,92,51,70,83,152,26,91,78,14,1,133,198,245,186,128,12,126,53,60,238,42,31,236,15,104,183,233,248,107,70,14,157,126,34,46,240,196,106,89,83,108,12,111,140,94,205,40,22,225,61,91,241,122,88,254,90,245,147,74,197,143,30,161,156,193,2,188,84,15,129,213,138,206,137,11,83,58,99,157,81,46,227,200,158,207,164,152,80,203,74,13,86,146,106,245,227,204,165,55,189,172,203,108,34,145,234,234,77,34,136,209,176,186,21,9,45,99,206,129,160,212,222,135,126,133,78,61,222,29,26,67,237,207,158,184,213,103,79,136,220,181, -65,171,171,152,45,22,35,99,165,82,21,68,197,143,44,238,157,3,33,42,103,234,136,1,207,208,103,170,164,36,61,242,169,116,213,145,62,179,129,46,69,25,16,80,230,170,81,58,70,61,219,178,242,22,28,120,211,53,61,246,146,78,15,37,11,137,12,153,177,178,49,225,214,204,212,207,171,19,66,168,51,105,63,52,151,2,51,76,75,88,240,48,194,101,18,68,25,155,37,146,78,242,40,114,100,43,4,228,86,193,5,225,240,126,25,203,160,175,244,81,51,247,244,22,27,56,139,196,216,55,120,4,141,11,73,166,32,140,148,46,50,175,92,178,236,137,86,181,52,224,159,205,163,90,230,147,83,211,176,65,191,179,247,244,153,75,55,187,20,245,19,31,126,152,236,137,125,89,22,76,89,21,244,101,253,184,223,102,166,249,96,130,25,160,101,18,234,31,201,176,41,21,9,122,22,108,229,208,169,222,224,166,125,33,184,158,132,107,10,202,72,32,34,151,149,47,238,188,70,151,175,57,73,36,32,23,60,166,197,148,182,170,242,174,117,249,140,189,186,209,163,15,63,60,134,135, -81,221,100,244,218,232,145,41,233,53,75,82,18,228,42,196,6,113,74,208,168,216,166,36,255,0,141,203,16,107,94,77,53,16,11,111,215,115,86,201,119,126,86,143,174,42,245,22,156,207,202,3,58,150,196,14,193,44,204,99,20,241,156,113,177,124,13,101,34,3,190,134,101,165,66,26,102,87,86,230,234,231,34,48,3,169,196,159,237,141,88,219,75,65,98,16,26,48,220,96,78,206,150,253,0,98,141,50,36,156,227,103,89,22,128,239,191,144,106,23,216,4,67,178,143,241,148,89,134,217,5,62,233,70,120,72,229,50,8,83,86,77,105,202,150,96,187,145,28,247,72,140,209,78,128,165,134,61,112,4,31,124,80,185,3,19,188,172,80,15,25,36,24,83,152,178,224,51,180,194,65,224,120,85,33,152,150,112,194,29,148,87,37,243,203,42,172,244,73,170,177,184,42,176,109,36,85,219,72,181,117,4,31,31,121,164,157,156,6,139,224,146,15,128,148,149,99,43,205,222,45,157,26,162,223,169,194,8,236,13,214,235,108,253,230,148,51,228,65,64,14,135,116,172,19,201, -85,237,172,58,207,1,198,165,34,37,110,168,228,0,139,75,218,162,37,149,64,84,233,85,68,9,215,179,128,64,13,40,88,138,127,143,37,62,205,7,240,136,41,131,201,164,32,5,131,7,250,225,13,172,161,44,50,213,10,128,203,79,4,11,91,43,212,197,133,174,96,203,224,57,52,143,38,81,35,81,98,73,150,93,120,156,51,174,25,194,191,77,240,171,68,73,168,14,210,41,27,218,225,253,85,217,166,40,152,178,137,167,39,196,22,30,10,75,250,40,158,194,172,115,246,197,28,60,249,162,255,181,232,158,28,98,51,151,186,19,40,222,145,113,211,99,231,49,198,204,113,89,29,114,222,57,172,61,36,43,6,190,124,143,234,225,4,204,184,51,189,58,191,73,207,227,93,173,215,167,176,218,40,89,98,29,33,219,125,101,17,153,117,48,84,185,76,106,149,151,116,254,9,184,148,151,27,49,137,104,155,147,44,89,21,176,192,135,48,58,67,137,129,57,122,95,108,199,112,161,16,105,208,48,247,52,25,107,112,115,120,13,75,217,28,30,177,78,84,219,245,135,100,195,105,36, -195,250,172,165,14,203,64,121,158,7,42,151,88,90,128,166,184,60,177,137,6,205,52,114,27,179,96,134,203,192,37,152,183,23,250,97,170,9,165,84,33,254,162,82,101,152,242,53,71,176,249,72,22,215,152,2,203,93,203,149,82,94,192,38,153,178,70,221,10,117,26,138,198,200,88,122,146,253,106,21,115,224,129,28,35,122,64,189,128,19,174,139,65,151,9,249,133,220,123,76,170,99,229,148,219,81,101,162,120,190,15,45,26,131,169,146,40,14,118,5,254,249,45,98,157,134,212,149,34,22,86,240,68,65,140,233,71,158,14,155,50,82,217,98,192,85,106,1,17,11,157,106,248,221,7,111,92,183,217,193,111,177,26,229,119,48,27,141,134,226,158,140,60,253,214,193,174,15,22,249,253,150,146,113,136,230,165,57,91,236,144,10,187,6,229,201,75,31,164,48,175,47,58,94,219,0,0,229,178,101,93,251,99,174,183,32,203,35,69,220,30,66,207,119,92,102,65,253,1,183,220,194,255,237,170,239,209,190,51,210,236,240,145,114,129,231,88,92,150,171,157,211,182,42,240,51, -16,77,203,7,5,37,186,110,220,133,205,174,180,45,248,210,88,56,42,201,92,49,74,80,28,250,163,121,29,186,80,198,222,214,163,11,221,96,73,4,233,15,182,102,195,184,95,4,29,204,71,95,55,107,70,23,38,92,108,158,43,235,119,156,106,165,230,185,124,168,156,164,121,185,21,47,185,179,157,239,231,56,100,227,15,229,55,1,105,109,218,251,195,44,223,145,149,120,254,152,98,64,118,45,19,70,84,89,223,80,1,12,31,174,70,77,44,177,80,51,77,98,192,0,159,252,93,98,91,42,64,114,189,32,238,85,76,69,171,148,187,101,244,129,58,223,21,224,94,164,166,218,61,10,175,148,246,32,99,30,158,35,225,155,241,17,38,167,40,28,184,93,234,162,193,202,38,31,197,224,34,93,179,111,166,249,240,217,243,150,39,159,80,60,9,225,10,167,10,205,89,35,77,18,244,9,105,167,59,251,131,211,227,243,97,247,248,189,237,47,189,100,91,141,73,80,228,43,224,186,209,136,78,187,223,140,126,211,246,135,30,42,45,233,245,168,208,106,153,244,164,140,112,82,206,98, -56,66,207,31,76,29,153,52,97,70,237,116,191,116,192,152,140,126,99,131,88,195,37,168,74,81,98,172,150,104,11,81,50,182,60,77,81,46,134,195,49,229,160,138,163,244,201,126,231,76,131,19,66,104,60,131,122,58,163,76,159,74,206,149,115,82,85,132,138,91,142,209,84,160,226,21,114,209,41,236,100,29,105,108,4,79,157,82,228,220,17,137,175,49,18,16,12,59,218,153,0,24,87,100,90,46,100,92,0,102,229,34,195,198,45,168,232,40,204,130,13,134,50,167,247,72,61,225,91,130,133,10,93,177,17,2,189,133,252,155,172,96,164,45,221,137,195,156,11,80,3,130,31,183,45,184,161,4,204,135,241,158,136,147,114,49,159,39,193,66,10,58,100,91,58,35,229,201,58,48,14,42,222,51,138,30,237,86,97,241,133,242,184,3,44,43,2,97,242,146,139,13,233,29,36,255,172,129,145,222,39,171,100,186,194,70,108,44,141,84,7,89,61,119,166,27,138,42,152,136,61,209,142,82,106,71,129,227,146,234,104,100,177,20,236,212,150,42,198,5,185,144,113,91,129,76, -168,74,47,44,36,203,182,77,60,23,102,230,198,109,175,3,236,193,215,36,226,127,203,181,88,202,69,24,174,128,233,147,248,119,45,1,114,15,8,50,162,22,76,46,72,234,153,22,118,38,202,66,125,36,244,45,144,102,3,127,52,55,231,49,97,62,149,52,45,67,105,72,171,54,17,113,16,205,58,178,111,252,20,147,97,78,109,41,26,96,229,66,154,96,69,135,110,255,185,178,98,132,234,232,7,157,8,71,61,200,218,221,234,88,139,237,67,17,6,123,70,43,95,148,149,101,95,106,112,29,195,100,33,117,163,139,184,117,47,138,41,152,218,218,67,188,123,107,159,106,32,254,195,95,254,98,90,198,25,134,242,123,199,13,14,143,53,88,192,99,225,114,169,59,169,129,113,63,77,110,50,211,70,13,217,170,61,5,170,68,239,205,238,236,86,105,254,245,84,53,255,122,170,155,184,29,236,241,58,122,251,253,78,255,253,250,118,2,244,244,206,47,59,191,8,254,179,166,21,216,129,101,124,239,249,22,242,125,26,129,225,219,240,71,207,186,161,101,192,227,109,210,19,204,25,104, -211,254,96,46,150,70,63,104,221,72,174,77,152,102,185,222,225,105,25,164,159,217,212,138,253,222,180,59,231,64,198,209,117,137,5,227,99,169,79,251,137,203,68,107,242,138,153,110,78,243,225,136,163,15,181,0,226,38,240,54,120,205,204,188,221,222,172,169,153,189,142,135,232,111,102,143,231,116,179,250,188,102,103,62,120,27,247,61,107,196,97,73,88,45,229,73,173,147,53,45,59,115,132,134,130,13,168,10,148,97,205,115,89,180,123,107,59,51,211,254,27,52,178,61,154,62,13,166,91,79,186,109,212,84,74,93,133,210,104,151,116,91,51,69,134,179,196,217,100,194,184,25,205,233,112,230,35,101,211,78,103,246,180,15,211,244,204,30,241,97,250,159,217,35,62,72,43,52,123,192,135,232,138,230,140,247,48,13,210,42,196,191,97,163,52,27,196,135,233,153,102,143,56,220,188,125,154,71,255,205,157,212,140,205,179,166,145,154,143,189,59,55,84,115,38,112,187,169,57,252,190,89,99,53,216,180,75,224,12,111,201,15,208,102,205,30,81,29,42,82,177,95,52,251,74,71, -163,98,228,89,139,80,153,46,119,40,117,152,70,157,4,48,109,16,188,181,234,250,15,246,178,2,174,79,138,175,40,138,106,143,87,157,157,250,228,232,147,62,204,117,94,143,251,149,202,108,178,67,0,143,57,76,151,63,80,111,57,159,112,80,20,162,135,153,232,140,171,46,41,179,235,255,169,2,173,161,225,156,43,187,236,21,127,70,235,57,71,88,223,183,11,157,54,231,27,86,234,53,163,179,58,149,185,29,233,26,27,209,185,43,221,176,39,157,61,152,231,135,148,4,113,175,230,116,14,253,109,222,167,206,30,206,148,220,108,212,186,206,167,148,187,117,177,171,72,186,141,186,217,57,4,118,247,198,118,229,217,43,231,188,129,191,145,101,218,231,206,125,238,168,32,204,52,187,115,80,68,61,116,212,137,84,39,210,232,251,211,86,123,67,191,23,158,67,20,15,210,22,175,98,12,223,222,33,207,223,194,55,232,26,160,213,94,90,113,101,162,21,137,220,54,13,171,253,117,181,223,98,67,210,28,197,214,69,174,55,120,172,76,219,117,184,38,216,66,74,109,90,209,8,52,192, -93,198,180,108,241,219,125,127,199,30,175,17,26,150,33,110,22,216,118,205,126,92,238,207,228,223,154,250,33,251,52,72,117,225,176,41,47,169,108,142,84,105,66,109,97,84,27,91,204,148,177,24,158,98,0,42,47,235,18,120,199,57,172,24,198,236,172,250,220,73,231,242,2,221,65,163,116,22,35,183,176,176,206,15,84,39,35,52,189,5,101,103,12,175,174,152,79,45,219,251,205,76,28,248,90,5,120,56,42,216,56,227,98,60,174,152,189,65,234,99,254,34,65,61,150,249,13,53,54,179,207,48,97,19,5,118,11,2,215,23,80,149,9,120,108,19,19,60,43,187,7,244,177,10,34,121,6,69,96,217,78,156,36,114,172,8,237,253,59,122,144,18,3,188,204,140,86,237,204,86,81,153,238,78,4,32,236,146,203,132,91,107,232,94,61,129,79,187,180,76,171,36,186,204,250,154,211,104,46,37,6,96,46,124,204,11,148,189,48,37,119,125,205,74,82,71,155,6,136,212,58,49,26,242,17,140,197,152,202,22,84,67,68,151,182,203,174,23,51,87,188,59,203,115,3,15, -183,228,157,80,8,130,60,167,211,202,234,180,95,19,221,233,226,44,29,159,65,122,65,153,97,145,75,203,66,185,15,130,61,103,77,198,173,164,207,105,200,103,69,236,76,56,215,169,201,90,37,163,170,214,90,38,38,67,113,17,85,168,128,138,82,15,168,67,140,182,100,120,231,25,169,186,171,162,178,177,129,228,83,187,236,112,65,225,54,3,141,170,151,3,166,200,173,32,178,135,55,67,32,69,108,21,114,235,24,106,130,153,189,88,157,132,41,139,31,41,246,63,149,203,84,185,3,54,148,220,105,137,182,129,218,202,232,151,84,17,212,24,240,61,11,45,161,230,213,7,122,163,149,136,207,77,27,31,45,50,111,11,196,58,229,244,21,203,210,217,132,250,117,170,120,6,125,105,105,36,208,39,145,107,72,148,21,143,78,40,137,50,31,212,46,74,151,207,216,67,91,174,119,189,65,24,234,30,129,28,185,50,165,170,58,219,141,252,189,245,78,90,199,80,81,246,169,220,166,170,80,169,68,22,130,76,117,227,201,140,23,2,163,205,65,107,96,141,43,31,239,199,72,166,17,222, -60,206,84,177,160,122,183,34,245,164,81,20,193,132,228,202,172,136,237,142,79,38,148,133,29,62,135,58,83,31,26,115,217,149,122,100,62,69,168,201,48,152,19,100,232,58,169,221,90,168,164,133,187,41,235,180,209,231,247,228,181,65,170,107,207,43,196,25,102,36,34,10,133,97,230,70,159,21,98,61,197,250,123,82,170,37,71,96,214,53,146,85,146,114,244,200,109,54,171,59,152,101,238,67,124,116,215,177,199,192,90,100,145,192,77,239,184,83,130,223,92,203,114,255,169,182,7,191,66,240,83,58,188,224,236,3,157,153,205,241,250,34,106,229,227,39,78,26,176,126,146,228,101,21,6,6,220,117,101,21,135,20,180,119,195,101,88,119,49,238,234,25,156,123,54,113,70,212,220,9,167,58,71,128,89,84,15,29,135,179,239,151,255,64,66,122,144,142,202,62,162,158,120,183,227,117,204,161,79,175,165,178,113,44,52,238,200,166,245,148,195,253,26,43,155,34,64,246,190,194,79,210,161,119,46,13,252,172,238,203,250,234,179,219,119,112,139,242,199,42,211,61,122,100,231,203, -70,143,182,219,213,94,192,142,13,179,166,45,112,197,247,135,7,74,230,82,93,82,76,111,46,206,177,24,28,151,162,75,197,24,176,176,211,147,247,128,30,238,68,192,37,197,68,199,49,184,93,232,106,71,43,109,64,177,205,88,53,204,156,117,168,188,112,145,113,61,126,169,58,29,56,8,136,109,146,135,216,66,166,52,205,214,202,190,209,163,99,189,234,117,189,174,43,228,165,206,203,59,178,128,160,52,181,162,181,132,96,42,23,25,227,21,1,231,230,101,220,237,176,154,102,31,151,80,52,54,205,118,105,223,238,159,45,238,214,43,219,158,196,217,220,7,105,155,237,152,128,240,53,66,7,27,135,23,176,209,249,176,251,247,212,118,67,240,159,219,94,187,129,86,240,230,90,147,74,80,117,22,247,236,98,228,40,203,91,27,26,149,74,168,185,143,145,195,236,15,208,210,200,197,224,195,116,55,114,125,181,250,70,71,183,197,37,31,160,107,185,203,13,155,53,48,183,199,42,61,78,211,37,53,243,25,168,161,183,185,213,215,220,97,6,231,66,151,207,237,114,238,70,64,28,112, -252,134,231,185,46,250,159,185,80,99,157,17,222,36,231,211,174,62,23,17,230,168,128,238,220,4,93,143,139,117,49,62,81,152,135,76,9,191,99,208,217,175,122,85,16,238,167,221,246,231,180,79,215,130,214,13,221,213,178,221,61,91,170,251,25,173,207,236,174,238,160,235,1,26,173,215,201,141,77,122,174,187,129,117,187,184,221,78,71,88,69,181,141,13,214,107,244,95,147,84,216,184,221,186,79,132,155,119,94,119,60,13,217,24,1,220,107,223,163,253,186,167,234,149,242,117,216,251,142,157,216,143,237,40,147,102,15,39,66,181,113,83,118,7,165,27,247,103,247,241,38,4,216,119,40,134,221,182,202,20,143,87,77,224,232,160,191,111,172,53,237,131,16,227,237,50,223,90,30,93,228,220,166,153,164,185,215,187,95,144,245,32,173,223,171,80,78,106,161,84,157,220,45,27,195,239,198,142,112,250,32,62,64,71,246,42,128,211,109,234,137,34,192,92,224,168,171,105,137,174,80,168,137,216,178,172,141,241,94,177,47,233,88,5,119,225,83,71,199,120,97,89,177,228,67,6, -99,125,227,132,239,53,148,106,163,50,30,110,128,130,174,101,91,17,24,129,66,35,225,146,106,212,116,190,240,70,55,156,209,239,248,227,81,232,236,58,185,66,93,158,235,6,214,101,218,62,16,151,73,50,197,243,105,120,197,236,108,134,117,237,216,42,57,54,249,252,86,101,68,158,144,51,83,222,242,202,19,227,5,29,0,35,238,180,240,87,139,189,150,179,0,160,77,12,25,169,115,113,170,105,187,58,215,201,37,157,124,144,156,207,55,85,128,203,51,211,87,133,155,200,101,100,129,2,177,207,138,198,44,22,152,235,78,213,133,181,231,100,92,88,97,14,84,182,36,119,126,46,168,86,41,73,56,169,238,3,18,24,48,180,189,97,90,249,220,200,40,26,237,144,177,234,117,61,175,6,77,105,168,18,193,110,139,55,171,177,233,222,84,31,24,213,129,198,184,66,10,214,56,163,29,67,163,54,117,51,49,147,141,172,77,78,243,51,210,140,63,226,88,183,46,8,34,211,22,127,29,57,132,170,204,143,145,231,143,134,184,116,231,83,180,80,135,243,6,255,103,184,73,159,123,199, -171,216,160,229,189,214,95,190,222,222,172,251,189,151,71,219,180,17,190,99,201,111,220,19,191,65,59,155,236,227,189,219,227,55,187,5,159,217,41,191,18,62,223,164,105,190,61,216,131,244,207,247,10,132,26,104,251,1,122,233,123,134,254,230,109,245,29,84,108,214,97,223,117,106,214,53,219,95,107,113,111,216,109,191,38,230,105,162,229,198,51,93,215,120,95,61,228,55,222,119,147,182,155,247,224,175,100,249,215,181,227,247,53,222,87,165,101,159,44,243,178,221,154,103,83,217,217,213,187,148,102,55,29,153,96,67,138,155,240,216,39,22,245,62,10,62,11,237,243,168,85,233,199,135,127,238,238,3,98,129,83,165,202,139,194,38,214,227,107,151,87,142,100,202,237,29,137,110,47,213,107,103,9,246,4,153,153,177,188,177,14,213,146,25,231,151,238,59,114,238,118,96,40,106,11,91,37,49,104,109,89,116,168,90,84,151,158,202,170,77,27,36,5,176,85,137,140,41,188,67,214,14,108,14,154,6,4,186,76,223,87,59,153,65,126,99,25,98,60,81,231,33,245,24,170,39, -53,153,82,37,13,104,81,22,166,88,229,148,154,180,82,5,126,126,56,187,243,134,57,25,151,200,169,7,200,208,98,162,222,18,218,121,37,223,223,107,200,203,224,42,117,174,0,88,91,232,175,28,240,48,211,71,152,140,30,213,181,104,68,244,90,241,113,18,103,234,11,5,55,166,69,28,227,184,11,250,20,202,109,222,226,215,235,99,75,190,28,179,174,151,116,112,239,150,129,124,222,213,27,78,53,193,38,183,112,232,107,13,92,61,249,32,119,106,56,209,238,141,175,215,112,70,187,231,13,15,77,27,90,211,1,254,126,61,223,157,112,207,3,180,127,119,88,234,150,78,240,220,246,84,247,186,183,44,115,207,118,240,173,198,123,181,136,247,195,161,27,116,139,247,145,255,180,45,58,46,31,154,252,108,156,120,76,82,105,182,90,23,38,228,162,140,48,115,142,166,176,237,229,155,25,227,149,106,66,163,78,150,78,61,22,181,115,147,20,225,205,116,6,182,161,224,192,100,234,116,223,62,135,94,185,22,12,171,8,179,36,82,199,249,140,208,241,83,119,174,6,111,249,33,186,92, -187,169,224,216,71,216,77,76,37,42,238,109,169,152,170,166,200,212,241,173,95,90,5,141,14,113,112,139,24,239,26,14,45,94,131,154,218,55,35,42,203,147,120,181,201,122,181,239,126,56,116,187,229,20,55,212,3,95,45,24,50,53,33,94,229,94,137,214,134,220,144,147,117,208,162,250,25,55,22,211,77,216,103,190,209,169,107,154,238,144,138,166,51,92,183,110,1,125,181,192,94,32,88,193,161,68,142,85,153,84,209,241,97,230,104,71,199,213,179,101,157,14,155,115,60,149,11,25,154,138,23,107,200,212,147,36,110,202,132,73,221,65,96,153,51,82,71,59,49,103,132,177,156,242,72,30,242,48,5,159,209,33,178,98,156,236,236,55,112,43,38,122,157,117,242,249,32,243,50,206,166,46,11,177,142,20,12,231,30,226,64,211,97,9,72,121,28,129,227,143,26,74,58,211,205,37,83,116,118,112,166,27,85,97,11,186,102,93,99,110,211,41,15,208,240,134,82,90,47,6,111,38,165,140,5,134,3,22,160,115,241,242,38,191,174,2,136,171,152,208,121,246,40,88,33,239, -115,14,137,52,73,146,170,168,94,182,160,156,111,48,73,147,204,250,34,140,177,203,143,163,179,76,249,196,22,250,166,248,51,249,180,228,70,131,188,2,53,117,153,243,177,58,21,14,181,210,132,188,12,103,184,144,153,201,174,147,108,85,60,115,222,121,182,81,169,172,22,19,97,22,125,249,146,147,111,137,52,12,228,22,41,160,145,104,145,49,229,165,61,137,81,163,42,184,122,142,131,96,40,70,61,11,236,89,99,17,192,105,174,58,10,182,124,178,90,35,226,204,201,252,53,106,185,145,23,215,36,91,158,57,44,133,87,160,200,38,52,153,208,26,102,94,234,86,236,158,130,80,123,164,142,44,152,164,184,98,52,211,162,189,162,87,153,183,154,88,224,25,104,124,165,33,84,19,77,237,45,26,187,79,165,140,76,34,142,106,159,88,71,215,168,232,251,171,44,193,199,66,168,77,121,69,69,219,40,107,208,58,173,170,209,175,80,91,99,145,235,253,226,220,30,117,184,246,179,97,229,190,114,193,173,99,229,218,69,12,94,37,9,219,230,100,255,74,58,155,149,220,240,57,98,62, -31,135,110,159,23,75,187,4,222,102,11,148,123,190,140,139,75,170,195,175,230,249,214,166,91,205,9,71,63,21,198,168,46,115,214,78,90,74,45,181,142,19,67,85,59,194,103,44,204,17,89,123,207,116,212,149,214,231,104,232,166,216,163,125,138,82,133,200,27,111,160,237,149,128,58,252,89,176,185,78,28,69,49,119,190,190,215,106,52,171,29,118,43,154,162,111,215,242,22,91,73,211,235,45,52,75,164,62,216,24,17,166,251,56,48,147,193,65,116,10,170,96,162,221,149,29,169,213,212,158,170,167,21,35,53,172,145,207,245,25,40,249,218,69,47,131,156,91,7,144,215,230,95,203,171,240,204,6,223,226,46,250,9,137,181,222,99,5,55,229,185,39,157,164,170,73,105,82,121,245,141,76,165,161,38,3,220,214,45,55,60,250,163,213,59,161,219,84,206,80,21,251,142,189,203,2,210,31,208,23,66,173,26,124,85,81,98,73,54,127,192,170,160,35,170,177,117,136,170,182,115,188,61,235,100,110,205,136,124,148,216,58,43,106,179,31,233,127,125,144,215,18,161,38,239,227, -15,104,33,197,43,42,244,83,194,20,212,227,251,8,248,136,104,146,84,70,51,34,129,224,196,224,190,57,30,60,151,101,37,20,197,189,117,169,90,166,242,237,97,165,172,18,255,56,134,0,93,37,173,90,36,97,48,1,109,95,213,115,85,159,53,102,45,109,229,224,42,32,150,61,82,205,10,45,96,26,45,10,42,65,104,98,169,181,119,125,250,16,172,185,250,211,132,14,88,86,32,140,202,135,168,86,48,168,206,236,196,67,86,34,244,89,208,210,218,185,238,222,208,154,29,139,213,230,168,91,68,203,171,67,73,56,217,126,210,218,194,135,154,32,141,205,128,247,136,208,224,159,198,40,13,23,249,172,191,156,143,214,223,140,48,131,211,186,120,205,218,218,137,183,240,30,113,157,77,230,20,145,142,80,30,152,11,176,188,198,132,89,5,152,18,132,36,45,163,124,124,74,69,13,149,233,131,175,60,75,176,54,10,91,185,89,83,223,211,165,122,40,219,85,174,183,57,224,86,53,179,173,42,169,124,25,107,60,80,206,248,7,78,169,175,5,207,99,15,149,74,150,64,90,166,216, -209,81,68,189,123,203,92,195,125,153,149,60,207,198,87,103,214,219,247,247,191,69,211,143,186,109,120,161,166,107,218,111,124,183,166,143,183,234,53,155,21,223,151,207,70,204,49,191,18,107,42,15,51,39,104,89,222,215,165,143,240,84,14,58,186,215,172,205,172,139,132,244,41,111,239,80,152,202,207,215,109,79,224,72,92,31,105,38,138,103,129,197,73,68,44,244,46,239,251,114,140,254,76,242,21,84,249,92,93,121,227,250,29,234,128,16,55,175,244,99,100,141,153,254,38,148,126,83,230,34,56,28,172,75,105,84,185,143,115,48,174,38,153,90,103,138,99,28,113,180,51,94,141,118,184,244,25,227,81,88,202,28,73,171,80,199,62,231,100,119,60,114,99,225,37,16,124,7,104,109,72,173,226,76,101,26,231,124,134,182,38,122,87,231,63,153,250,137,70,53,161,23,222,148,20,82,119,41,228,38,25,92,131,204,48,43,175,19,176,199,49,157,210,84,65,85,37,197,82,246,246,185,73,238,111,94,155,243,196,230,84,19,219,5,182,143,69,74,198,247,95,200,178,168,45,254, -44,226,242,144,178,219,28,189,102,39,73,103,26,44,232,99,165,119,76,231,212,216,93,174,167,191,182,46,243,168,217,205,172,197,140,194,198,204,43,111,54,246,163,142,131,134,185,95,19,83,91,31,139,23,34,177,217,90,177,231,185,209,118,2,6,166,226,114,35,77,80,132,88,248,181,213,163,217,165,166,69,127,219,118,238,153,108,190,56,151,172,112,196,131,119,135,110,19,121,127,214,117,186,142,176,188,207,205,186,30,124,107,98,94,86,8,224,30,23,238,58,26,161,249,238,221,123,92,190,235,150,10,108,124,15,175,179,13,15,112,37,175,79,39,207,253,139,66,239,125,25,175,19,80,126,128,123,121,239,176,199,247,184,162,215,145,174,155,223,214,91,9,169,53,94,220,235,36,239,235,110,171,173,81,154,27,221,225,235,240,216,230,215,249,54,241,255,186,155,125,125,226,218,125,210,22,183,92,234,251,153,104,98,191,225,222,247,251,186,204,121,135,171,126,45,249,227,221,250,91,147,182,124,152,11,128,155,141,212,207,190,11,216,30,242,33,174,5,110,140,148,54,209,193,46,222, -4,182,217,229,192,110,81,215,230,247,4,123,233,225,77,175,12,118,40,75,107,182,141,110,15,118,34,238,27,93,36,220,32,81,55,184,83,216,101,202,135,184,94,216,17,172,245,55,13,27,3,251,182,155,134,93,83,127,131,75,135,203,10,15,95,184,110,124,255,176,47,94,55,188,138,216,21,26,119,189,149,120,125,129,238,67,93,75,236,168,224,7,186,161,184,82,181,111,191,176,217,109,197,30,22,54,191,174,216,93,255,230,55,23,187,42,103,179,75,140,93,169,122,223,251,140,205,161,0,103,152,205,110,54,182,135,218,244,146,99,175,14,99,179,251,142,29,180,63,200,213,199,14,120,15,113,11,178,183,13,13,23,34,31,120,231,21,194,205,111,68,182,39,254,156,203,145,43,6,195,94,91,167,82,111,185,23,217,114,251,156,123,145,29,245,254,16,87,36,215,154,142,183,221,150,172,161,107,190,45,217,149,99,15,118,113,178,67,172,15,113,135,178,103,141,60,196,117,202,78,36,249,238,55,43,87,104,229,171,54,149,224,125,230,165,202,54,20,254,253,202,183,52,60,171,222, -179,108,15,246,0,55,46,59,108,245,0,151,47,187,168,219,240,246,229,58,7,104,227,139,152,237,209,30,228,78,230,6,51,127,131,235,153,125,203,237,246,155,154,237,126,19,238,77,205,117,150,170,139,184,251,93,214,124,103,216,154,120,233,235,187,95,217,236,28,130,40,175,108,246,2,46,119,189,189,25,167,89,128,48,38,95,84,135,101,65,166,248,66,98,163,107,157,107,171,104,228,231,220,240,236,48,250,134,151,61,59,238,217,131,220,251,236,21,227,108,124,5,180,111,108,223,225,54,104,151,178,202,91,77,170,119,64,87,104,240,105,91,236,119,15,58,231,131,174,24,190,238,154,182,113,189,129,110,21,119,40,94,245,187,93,188,245,244,224,117,167,127,212,109,225,115,253,46,62,113,114,106,195,170,103,162,198,113,214,88,240,194,41,125,238,254,113,216,61,25,138,179,110,255,77,111,56,132,129,247,223,139,206,217,25,204,211,217,63,134,199,59,239,28,145,222,253,227,65,247,108,40,222,189,238,158,136,83,156,243,93,15,128,28,12,59,248,106,239,68,188,235,247,134,189,147, -35,26,26,251,212,245,123,71,175,135,226,245,233,241,97,183,79,205,236,30,159,246,237,241,104,12,190,168,176,59,16,103,253,211,183,189,67,119,209,163,71,157,1,172,107,244,200,220,156,104,214,4,203,239,156,188,183,135,251,190,119,114,216,18,221,30,141,218,253,227,89,191,59,64,100,193,218,123,111,96,77,93,248,177,119,114,112,124,126,72,253,243,246,97,176,147,211,33,76,5,107,135,199,134,167,132,71,123,64,245,154,158,19,129,132,89,253,155,23,177,247,94,211,213,139,246,104,229,45,140,132,122,24,15,246,172,223,27,124,47,96,141,106,67,254,112,222,49,99,194,174,192,112,111,58,39,7,180,215,30,108,22,89,32,106,196,251,211,115,76,180,2,142,142,15,29,20,34,90,187,226,176,251,170,123,48,236,189,5,98,129,39,97,198,193,249,27,103,60,222,179,193,144,240,122,124,44,78,186,7,176,32,28,96,208,237,191,237,29,16,206,250,221,179,78,175,47,168,13,97,191,143,3,158,158,52,202,210,103,109,164,9,32,248,238,91,36,178,243,147,99,196,80,191,251,135, -115,88,120,13,169,225,176,157,35,160,108,220,11,120,213,161,100,69,89,239,122,0,26,94,158,233,147,87,139,222,134,31,74,154,122,15,132,122,42,222,116,222,115,103,68,135,84,152,22,1,24,211,69,209,165,59,216,145,146,41,58,251,167,136,183,125,252,153,128,5,240,0,137,246,120,184,239,135,157,55,157,163,238,192,34,50,2,72,181,123,108,137,193,89,247,160,135,255,128,223,129,206,129,128,142,133,203,15,7,167,192,221,127,56,71,210,128,223,212,120,162,3,52,130,131,33,245,51,29,8,148,13,72,214,39,154,6,1,34,37,47,234,104,100,171,132,168,74,245,226,248,116,64,116,125,216,25,118,4,173,3,254,222,239,194,211,246,88,253,238,9,160,153,248,188,115,112,112,222,7,158,199,135,241,101,128,113,112,14,82,160,119,194,219,138,4,70,2,167,215,63,52,220,141,219,227,96,172,211,59,62,239,107,202,54,160,2,60,167,128,121,28,157,200,186,220,210,193,233,171,33,48,98,119,187,69,4,37,122,175,28,37,116,126,240,90,145,2,78,101,83,193,107,216,204,253, -46,188,209,57,124,219,35,129,192,83,2,51,14,122,10,127,240,21,142,96,143,168,208,191,174,171,39,252,185,195,245,211,230,18,54,241,225,255,3,149,65,46,127, +120,156,205,125,77,115,27,73,150,216,95,201,144,119,183,201,110,16,18,217,45,117,75,154,157,24,144,132,40,116,83,36,7,0,165,209,116,168,137,2,144,0,171,89,168,66,215,7,41,104,122,14,27,62,108,172,207,190,248,56,62,217,17,118,132,35,124,244,193,17,30,239,63,177,29,222,127,225,247,145,153,149,153,85,5,146,2,15,86,204,180,4,160,42,243,229,203,247,253,94,190,252,81,252,205,223,60,105,61,249,87,79,110,249,243,226,80,206,130,34,202,63,252,248,167,139,63,255,109,247,100,231,124,32,126,204,158,188,252,178,119,36,243,227,100,18,68,135,97,250,242,171,221,221,111,197,223,125,192,31,196,143,95,210,167,131,100,185,74,195,249,101,46,254,199,127,20,187,207,159,63,31,237,236,61,121,242,157,56,143,242,112,17,228,114,244,213,232,43,145,203,96,241,129,223,11,191,125,242,205,203,211,231,47,69,167,200,47,147,52,123,241,35,13,179,243,235,7,53,224,155,48,149,87,23,175,254,250,159,167,145,76,91,31,248,103,161,127,29,38,139,191,254,229,159,255, +114,209,95,69,242,170,133,95,255,116,153,231,203,209,139,209,227,209,227,155,155,155,81,123,26,206,195,60,136,178,100,150,223,4,169,28,181,151,209,79,244,234,97,16,135,50,186,248,33,201,124,80,14,146,56,79,195,113,145,123,240,136,65,16,79,147,244,226,117,242,115,158,173,90,226,143,89,18,229,23,135,114,156,202,150,56,42,194,105,114,49,152,92,134,139,133,140,178,22,44,104,94,100,121,114,209,79,22,65,12,31,211,240,231,34,19,251,50,141,147,60,128,223,223,132,147,203,0,0,232,68,99,153,230,2,190,8,210,73,145,93,188,9,138,203,32,205,253,197,196,69,20,45,243,116,212,142,163,209,227,159,196,247,65,124,241,46,140,96,232,12,33,131,249,211,64,46,228,197,89,42,227,60,156,0,64,111,195,9,44,224,2,38,156,92,74,24,174,119,29,78,130,139,179,34,250,57,156,224,100,249,101,24,100,217,197,160,136,167,0,93,60,77,229,205,197,126,144,134,81,20,40,224,162,139,55,161,76,63,201,159,229,77,118,21,182,0,99,139,80,198,23,103,73,250,75, +129,35,190,131,181,200,244,226,157,140,63,201,8,225,253,219,157,10,250,103,65,20,133,241,124,90,228,147,75,216,12,137,176,239,7,25,188,52,191,100,192,95,5,227,48,185,216,47,50,153,231,137,153,249,76,94,5,255,252,239,112,206,52,13,99,192,107,146,231,85,8,190,15,22,50,19,195,75,64,113,230,35,236,242,155,143,159,70,237,113,148,204,179,101,146,143,218,147,100,241,147,24,164,97,14,216,13,98,49,8,175,131,121,145,22,45,132,2,118,39,47,82,0,236,127,254,99,75,244,131,104,38,96,35,99,25,78,129,228,196,89,112,45,35,113,154,229,193,82,198,87,9,62,80,68,162,151,196,97,158,132,69,75,156,36,41,237,224,235,100,134,143,15,17,152,79,240,214,207,1,80,228,190,140,147,48,7,146,42,178,44,1,50,24,166,114,37,222,194,252,253,112,73,131,203,92,166,72,21,115,252,52,192,191,87,226,36,188,10,243,48,198,93,202,178,112,145,136,67,0,224,149,156,202,8,246,181,151,34,20,215,162,19,201,143,64,143,248,218,81,48,78,129,150,17,232, +69,146,127,194,175,14,147,5,160,61,129,167,174,129,234,63,137,195,2,104,74,170,141,14,1,158,108,1,219,252,67,18,77,19,88,207,2,152,236,19,129,46,78,163,191,254,5,70,148,9,64,34,246,1,247,176,136,63,142,195,57,48,203,141,56,248,20,44,195,57,189,24,3,62,128,210,98,241,26,6,190,129,77,131,57,195,41,208,139,248,125,1,107,46,128,142,100,74,19,2,95,199,43,192,71,17,225,123,215,65,36,175,213,66,137,230,113,12,0,188,64,18,77,98,113,92,44,131,108,2,104,125,5,187,116,5,43,23,75,0,162,194,163,67,248,53,139,2,98,209,157,95,97,11,129,109,82,32,35,32,147,240,211,39,162,163,171,232,175,255,21,232,59,89,36,243,85,136,12,24,1,233,48,183,249,220,208,71,162,75,167,23,71,0,117,133,174,75,172,248,219,227,161,175,102,27,52,186,3,16,65,77,27,10,172,12,219,5,63,255,245,47,169,18,42,66,9,21,64,30,160,4,118,58,187,188,146,215,132,228,227,48,137,145,28,211,20,208,39,254,229,191,253,235,255,245, +223,255,205,191,252,195,191,21,91,63,4,89,178,144,219,45,177,188,12,211,228,163,222,142,150,248,191,255,229,223,255,239,255,240,15,255,231,159,254,147,216,218,79,98,0,118,187,237,99,243,172,47,70,127,39,6,221,83,198,37,81,252,197,32,79,131,60,140,252,103,207,73,132,31,39,243,196,145,141,30,151,124,104,129,70,16,253,4,177,125,241,54,77,228,34,204,50,88,145,26,237,171,93,208,9,240,79,241,167,63,125,13,127,94,60,123,246,236,91,82,48,85,69,33,228,34,0,40,94,188,224,223,127,252,9,63,230,201,232,69,177,92,142,126,23,231,32,95,198,163,54,144,235,79,194,250,6,191,248,96,94,114,6,5,105,1,68,21,204,165,53,166,39,181,80,12,202,9,11,141,209,99,28,246,241,44,73,11,16,32,248,224,139,199,143,63,216,175,224,239,237,108,6,162,89,230,63,9,24,160,93,168,249,150,203,53,112,208,136,205,48,148,99,208,234,124,8,170,211,240,3,31,62,252,249,207,46,142,221,127,138,31,233,131,139,145,0,20,211,224,80,68,160,56,226,76, +190,248,192,59,179,139,150,192,239,182,246,158,126,211,222,123,250,180,189,247,245,222,182,130,117,207,210,243,91,7,219,130,84,60,105,106,241,42,36,69,205,98,80,144,94,22,32,166,4,136,161,16,132,160,152,88,202,85,108,101,82,138,206,249,240,245,105,127,176,173,72,99,207,0,186,7,210,49,69,186,1,146,23,97,38,46,65,160,140,87,98,14,172,159,75,80,90,179,20,222,78,102,2,121,119,14,180,149,39,48,211,74,128,92,5,81,43,146,113,30,132,49,8,65,17,192,164,203,21,62,9,58,47,19,218,20,32,176,128,31,147,73,8,136,152,138,105,50,41,22,160,61,129,232,225,245,25,80,0,0,152,95,74,49,122,52,208,214,195,163,109,154,102,42,131,72,128,220,194,95,245,111,226,6,84,75,82,228,34,149,25,172,112,130,163,180,224,161,73,84,76,17,10,253,115,20,46,66,53,7,190,78,72,204,112,208,2,249,3,33,109,137,69,50,13,103,248,183,164,133,45,139,113,20,102,192,252,211,48,99,228,193,151,25,126,73,251,213,194,149,60,78,82,145,201,40, +194,17,66,128,156,86,91,66,71,207,224,44,75,68,105,174,144,68,243,222,0,67,184,43,1,36,205,138,52,134,41,37,189,3,66,46,75,104,198,159,129,43,240,27,124,124,150,68,81,114,131,75,131,61,157,134,184,162,236,69,205,38,14,225,217,96,156,92,75,90,28,19,13,216,64,0,59,195,132,123,178,44,55,90,253,148,129,21,16,137,177,84,24,4,64,0,223,65,227,250,104,168,16,16,121,224,205,145,181,69,15,94,156,50,128,140,202,73,180,50,187,13,3,7,147,171,56,185,137,228,116,142,95,136,5,152,109,56,241,60,188,150,184,71,65,238,209,13,178,203,88,194,111,176,99,48,233,12,102,130,31,139,116,130,43,156,202,42,161,193,191,23,1,252,16,92,131,232,10,198,145,52,96,180,1,59,240,171,90,163,214,114,136,53,23,40,124,68,72,160,32,208,175,149,21,162,90,137,139,0,141,206,51,26,55,204,87,132,15,208,174,87,50,199,29,210,171,5,188,165,196,36,46,177,47,211,228,58,68,28,35,145,50,19,165,201,180,128,189,70,118,85,108,228,172,73, +1,126,204,20,8,195,193,150,0,56,34,88,46,1,185,138,19,13,2,8,137,160,225,174,50,77,60,32,162,83,144,8,240,150,153,27,88,219,69,219,86,134,224,129,175,1,35,2,216,211,21,42,47,250,8,92,8,76,32,146,152,230,178,176,134,67,155,247,245,200,237,10,81,126,9,84,249,186,43,6,167,175,134,239,58,253,174,232,13,64,5,158,190,237,29,118,15,129,219,59,3,248,98,244,8,12,129,30,72,166,243,161,128,103,250,157,147,225,123,113,250,74,116,78,222,139,31,122,39,135,45,209,253,195,89,191,59,24,136,211,190,232,189,57,59,238,117,225,187,222,201,193,241,249,97,239,228,72,236,195,123,39,167,67,113,220,123,211,27,194,176,195,83,154,82,13,213,235,14,112,176,55,221,254,193,107,248,216,217,239,29,247,134,239,193,232,233,13,79,112,204,87,48,104,71,156,117,250,195,222,193,249,113,167,47,206,206,251,103,167,131,46,76,127,8,195,158,244,78,94,245,97,150,238,155,238,201,16,8,252,4,190,19,221,183,240,65,12,94,119,142,143,105,42,37,87, +197,126,23,128,232,236,31,119,121,84,128,255,224,184,211,123,3,6,66,231,77,231,168,75,11,56,133,23,250,244,152,2,228,221,235,46,125,5,67,119,224,127,7,195,222,233,9,66,124,112,122,50,236,195,71,16,240,167,253,161,121,245,93,111,208,5,115,165,223,27,224,218,95,245,79,97,120,196,28,188,113,74,131,192,123,39,93,30,5,177,234,162,31,30,193,207,231,131,110,9,203,97,183,115,12,99,13,240,101,251,225,118,189,130,123,94,110,46,254,219,81,111,154,187,20,147,146,236,40,133,151,161,68,173,246,246,118,159,125,247,226,219,239,190,222,187,220,125,9,218,239,201,55,90,235,125,245,237,83,32,120,124,122,85,170,116,250,86,57,175,248,237,79,191,219,179,126,248,4,163,227,183,127,111,125,247,189,12,226,209,78,148,20,75,176,24,67,36,110,205,171,162,131,186,147,70,177,158,239,125,127,36,190,63,235,30,41,72,87,254,120,104,159,30,7,49,136,248,179,203,48,10,97,212,40,152,130,231,137,223,124,31,46,196,126,82,128,7,8,42,249,24,212,229,65,154, +76,174,240,195,247,69,20,130,225,249,6,80,128,182,58,234,170,227,2,184,239,20,12,242,79,198,1,192,17,97,200,12,93,47,228,37,176,232,64,74,43,111,87,188,5,36,142,37,106,55,124,97,244,5,88,206,225,207,160,88,88,217,36,36,173,22,114,1,54,160,145,215,61,240,88,192,64,156,162,160,165,69,29,165,128,8,127,201,227,79,225,114,175,130,55,134,120,32,129,185,167,254,27,160,128,178,32,91,52,188,243,58,64,187,126,0,150,119,44,134,224,249,6,11,112,219,192,75,135,143,253,2,21,43,59,27,63,36,57,217,46,3,48,169,46,37,250,136,209,53,225,42,185,140,65,236,206,102,228,201,191,47,210,80,252,49,88,38,105,50,151,57,44,246,117,91,185,113,157,248,26,141,124,122,252,85,136,248,255,1,150,138,74,11,220,192,24,29,214,35,216,63,113,16,193,94,107,159,27,118,36,24,231,96,201,160,95,57,11,192,134,238,183,97,141,215,236,135,127,31,132,96,172,14,193,5,159,38,169,246,119,7,56,25,200,159,41,34,66,124,223,70,247,49,201,112, +248,1,248,100,33,184,69,215,226,135,0,221,254,113,12,70,4,248,18,227,80,138,119,104,208,144,3,122,13,194,244,93,66,78,142,9,67,136,31,64,162,195,18,142,147,226,198,184,101,239,130,155,20,244,62,122,154,224,196,188,130,157,2,143,200,199,252,217,201,145,143,245,35,240,180,0,179,228,157,102,163,157,51,121,153,146,243,75,43,6,229,121,24,70,228,238,30,21,43,209,5,83,9,61,166,32,138,131,220,31,123,240,75,20,230,210,31,254,176,173,29,54,241,58,92,86,136,39,15,103,254,27,3,112,35,142,229,108,198,187,11,76,2,106,13,35,38,224,42,77,0,39,189,120,98,139,21,79,150,116,96,255,128,189,51,105,228,7,42,23,165,24,217,46,25,61,90,70,197,60,140,71,143,192,68,75,37,6,94,64,181,247,229,12,48,138,92,128,198,82,170,205,107,152,240,50,185,145,64,89,100,207,148,154,240,18,92,40,180,195,71,59,224,118,44,65,245,161,165,160,94,98,205,44,63,78,228,146,52,54,176,211,241,209,217,177,254,121,170,25,64,235,186,114,17,234, +95,165,61,191,251,124,87,75,180,47,241,71,16,1,71,239,62,208,82,5,78,12,116,2,166,228,42,203,229,66,108,25,235,139,230,71,79,103,7,3,11,55,96,229,70,176,149,50,219,70,92,163,147,240,148,156,132,221,167,79,182,251,206,39,154,42,218,221,251,78,207,55,159,76,196,215,109,240,41,212,156,121,146,68,176,155,97,92,117,42,190,1,162,147,150,145,247,10,40,112,26,176,101,77,155,198,75,180,71,183,87,3,22,197,155,98,129,128,255,112,137,156,123,24,196,96,149,12,240,27,216,132,110,0,38,46,32,60,89,77,81,246,93,73,113,88,80,84,3,248,172,13,92,133,81,154,67,64,197,107,25,78,127,150,240,237,1,58,233,240,17,168,56,252,88,138,184,204,134,194,38,30,5,140,38,149,76,28,29,28,88,24,46,128,180,105,148,253,222,201,249,176,119,60,96,28,91,187,250,129,125,181,219,252,49,160,244,47,251,95,237,129,43,126,116,114,46,142,186,39,221,126,231,24,44,134,253,227,222,1,232,244,131,238,201,160,171,96,132,71,31,139,183,0,51,210, +208,30,106,129,88,98,152,118,87,219,80,26,246,199,222,102,236,62,255,238,121,139,158,188,219,150,224,8,79,159,131,72,89,44,129,136,207,162,0,67,146,3,90,242,215,95,63,105,1,214,81,67,129,164,233,8,241,100,111,119,119,119,180,179,251,245,147,111,5,24,1,29,53,196,248,187,175,9,137,93,224,148,21,104,51,161,253,132,60,103,183,132,188,58,68,96,233,22,9,120,118,12,208,44,28,55,1,94,140,140,161,202,118,47,27,144,64,118,241,28,141,0,240,136,66,101,192,162,93,80,218,140,127,207,80,124,249,184,255,141,56,3,225,181,0,158,244,224,27,94,26,46,205,136,207,23,176,54,203,203,132,255,131,241,17,206,99,134,58,15,128,210,130,155,96,37,86,32,78,200,137,157,162,3,150,160,203,163,28,25,130,11,22,156,183,133,216,95,177,207,28,100,0,52,170,80,218,100,9,194,27,124,80,182,247,141,25,78,174,68,142,234,149,166,154,23,1,249,202,242,246,169,200,151,54,65,242,157,209,14,60,180,64,72,179,130,236,119,233,120,51,244,52,46,21,5, +24,122,93,224,9,165,224,105,177,83,208,0,28,186,6,184,37,56,50,98,72,89,4,77,228,52,250,194,115,213,149,83,193,102,5,216,246,243,20,164,250,13,9,230,128,237,47,100,46,116,110,201,153,230,109,5,152,182,6,24,240,225,215,154,38,115,86,55,1,95,53,213,14,9,227,91,153,125,141,120,7,185,33,131,105,123,91,136,247,73,33,38,32,57,216,17,98,96,8,251,10,226,12,3,8,73,219,163,161,119,104,110,220,0,146,151,50,184,34,251,212,222,143,22,254,132,192,165,168,81,82,114,198,18,189,157,45,34,219,37,168,81,112,202,196,41,204,84,15,100,86,161,68,123,127,193,63,3,40,89,5,145,115,95,210,138,197,93,37,83,57,240,137,45,69,73,104,50,34,89,176,31,39,211,107,244,228,193,65,198,161,111,194,236,18,163,39,122,42,80,147,18,60,108,215,115,78,9,119,96,86,17,71,170,23,129,132,225,163,245,42,62,163,232,214,161,76,120,29,8,81,0,140,202,202,199,65,98,17,131,149,69,240,234,45,120,169,2,15,106,56,116,180,205,184,83, +242,79,51,28,25,240,156,249,27,53,76,112,148,28,195,32,180,171,28,190,161,13,138,165,133,86,43,8,148,241,76,128,151,113,56,69,18,70,89,70,65,164,152,100,128,154,79,5,130,16,123,64,232,217,21,255,148,224,6,165,200,209,169,21,46,66,239,155,222,113,102,81,33,113,26,124,34,83,212,57,248,196,18,126,12,199,96,244,228,161,18,80,56,178,66,110,237,230,218,72,109,33,68,234,97,14,75,33,87,121,88,121,5,207,200,143,1,202,250,214,218,145,51,112,69,68,160,55,2,208,118,41,137,47,231,24,106,166,197,147,84,17,51,180,135,105,74,12,198,96,36,134,87,47,39,33,12,133,113,140,128,172,178,50,126,102,83,112,155,217,144,222,245,136,28,94,89,17,7,182,12,1,90,68,199,11,55,244,8,227,128,201,90,194,145,129,221,134,207,44,52,137,128,54,66,33,69,163,50,25,193,191,66,77,21,21,38,151,117,180,195,90,63,191,129,157,6,183,35,123,33,182,192,60,43,35,101,238,94,32,221,110,129,218,7,95,68,166,138,120,44,237,118,3,246,236, +37,161,43,163,31,35,57,7,57,96,5,215,148,214,180,35,137,58,120,168,54,215,158,207,95,64,39,194,48,32,238,144,12,112,31,73,234,162,156,86,203,194,25,200,44,42,82,102,9,98,93,205,18,154,36,105,31,164,86,234,5,57,9,96,117,77,51,179,67,44,134,227,4,222,79,81,129,173,74,161,226,200,29,216,159,158,75,173,20,106,195,133,132,44,191,49,37,130,179,128,175,199,74,100,25,100,104,45,163,233,161,225,67,253,101,17,22,128,171,118,18,128,185,209,52,195,146,81,217,8,56,99,2,219,19,198,1,184,149,180,255,240,152,10,155,129,129,176,32,53,76,17,52,6,131,237,68,216,105,32,90,28,0,228,56,230,23,132,138,1,235,177,180,30,3,79,58,149,203,130,131,115,21,50,122,133,143,70,171,22,77,104,203,53,4,47,191,4,35,5,44,0,152,119,162,114,116,160,134,198,86,44,110,137,63,163,8,65,122,68,161,76,242,230,58,9,167,4,203,20,197,106,202,43,2,37,168,201,36,97,23,62,112,39,164,5,133,224,122,92,135,211,130,227,116,20, +117,87,147,88,30,15,134,47,129,102,39,196,144,28,77,44,135,129,191,65,127,201,60,64,175,137,69,44,208,71,204,113,87,218,40,194,62,197,80,65,164,79,192,243,72,45,156,243,92,58,108,107,60,34,162,83,69,102,72,164,4,57,234,7,248,30,55,193,60,24,144,213,87,145,244,4,32,208,133,97,116,82,114,38,212,77,227,35,51,81,248,195,32,74,243,0,83,225,68,37,19,40,218,228,219,148,253,167,119,50,216,251,98,216,237,191,25,80,232,239,224,244,228,176,135,81,52,14,17,30,156,158,189,239,157,28,129,103,211,27,12,251,189,253,115,10,176,225,131,111,78,15,123,175,122,7,29,252,66,103,240,208,63,193,169,49,139,135,245,19,79,159,136,39,31,218,59,191,210,98,173,96,174,101,168,41,154,166,93,130,229,178,17,117,147,164,87,74,212,24,215,38,208,113,251,37,154,250,198,118,42,229,216,101,18,161,14,203,130,149,178,183,23,96,1,195,118,149,130,104,202,178,128,222,99,132,107,227,189,222,160,33,115,19,179,51,103,12,32,70,108,199,18,240,220,98, +59,201,44,128,148,142,181,10,132,159,69,105,0,111,211,106,198,1,75,5,154,220,140,39,22,18,84,170,142,187,91,63,153,40,186,76,195,107,216,98,32,78,26,134,23,80,46,58,10,110,94,216,222,33,111,252,227,61,38,222,144,32,4,140,0,48,252,190,19,109,119,103,19,203,36,213,158,63,26,67,10,40,227,239,224,186,80,145,216,116,151,105,217,110,76,3,140,86,16,86,120,39,35,96,246,34,152,35,42,183,94,131,216,5,201,50,163,216,146,126,65,101,222,156,40,128,151,196,82,105,48,220,49,192,166,61,253,232,17,26,196,93,84,21,138,215,72,130,6,211,41,88,37,196,120,25,188,1,122,10,30,172,98,9,212,13,104,148,107,182,90,18,181,3,104,248,221,141,229,80,212,33,151,59,198,124,73,228,47,89,170,147,213,88,228,89,72,146,5,116,57,140,174,9,43,152,144,143,146,22,113,101,67,148,30,208,230,23,38,35,217,162,164,209,64,114,131,176,81,73,53,235,21,13,10,165,45,194,25,77,136,59,78,106,135,164,117,152,147,66,22,141,52,137,1,153, +50,128,10,208,129,96,68,224,40,29,69,242,17,214,89,3,241,118,27,93,12,141,68,38,189,180,64,119,0,199,202,112,22,173,234,204,84,152,211,105,215,203,142,167,98,87,9,14,178,179,130,213,221,125,241,146,189,190,200,28,219,63,200,28,183,0,105,28,51,126,192,101,11,80,67,5,24,139,38,83,84,58,2,128,180,101,56,41,146,34,83,97,116,144,93,164,76,128,214,225,27,149,56,197,229,145,197,162,160,180,159,170,79,74,194,42,38,17,198,94,83,132,90,155,33,47,197,149,148,75,100,33,164,13,109,129,170,44,156,86,153,20,243,75,28,98,211,238,107,78,153,208,76,198,19,74,18,226,218,202,161,241,25,50,116,75,39,215,178,74,92,220,249,41,109,51,79,148,168,76,179,253,116,45,115,153,141,99,175,141,76,110,101,102,129,16,191,92,101,152,105,211,60,64,226,64,187,158,129,50,33,3,109,26,195,40,129,50,105,19,29,157,68,44,24,235,205,50,15,209,14,248,168,99,14,218,212,111,164,178,61,143,202,148,141,74,83,49,2,210,122,226,210,2,218,19, +154,249,101,65,122,123,193,235,104,100,179,150,210,245,85,154,38,93,226,202,88,165,81,234,180,215,64,173,122,151,19,224,117,36,140,165,137,64,225,146,233,137,87,145,201,154,148,58,237,94,8,74,187,196,208,158,8,182,119,126,53,174,206,36,40,50,246,147,140,9,204,85,12,104,245,195,94,208,70,192,210,81,116,104,162,165,20,43,201,10,205,82,180,55,44,203,248,109,45,217,166,200,45,138,108,249,169,246,58,208,198,85,208,136,224,17,85,102,54,11,179,128,70,83,231,192,50,10,101,82,18,209,47,100,82,166,121,105,111,224,119,25,235,95,92,166,47,109,245,246,227,59,228,80,36,51,42,220,176,237,195,0,173,22,158,33,64,132,104,86,64,253,72,172,29,166,83,26,1,201,171,201,52,209,182,200,58,76,76,0,19,202,79,49,27,163,205,145,24,136,145,12,103,48,219,167,28,192,34,87,8,195,120,105,128,10,16,229,216,13,134,135,64,172,91,62,49,99,20,137,154,126,132,125,76,81,189,107,217,143,188,69,180,106,13,68,198,175,82,215,28,129,75,167,160,241, +83,148,66,228,20,83,169,93,78,185,246,48,3,67,142,101,101,28,39,5,72,44,170,141,40,203,89,238,34,69,141,81,216,236,216,109,161,145,30,97,13,139,178,12,13,105,40,86,193,61,82,15,111,151,97,27,138,55,146,72,176,124,20,233,56,21,102,199,28,110,82,138,90,82,85,42,61,143,67,9,114,236,19,113,141,69,142,245,178,21,77,164,174,78,191,188,64,245,237,104,247,60,147,209,76,199,95,53,190,49,196,108,42,35,204,78,51,146,57,18,226,162,183,197,146,173,89,251,27,187,227,151,34,76,57,218,196,163,121,3,181,183,235,68,190,142,25,209,203,92,13,98,202,53,28,226,36,0,74,246,96,55,59,68,147,3,126,167,250,149,76,170,160,19,97,9,29,101,122,69,217,92,77,108,169,196,42,0,59,70,56,130,44,137,97,52,138,111,163,5,150,146,121,90,154,55,248,112,38,129,3,145,192,112,130,76,81,239,2,144,125,141,94,101,126,73,21,58,229,46,181,76,29,16,177,105,11,195,121,78,89,138,74,228,105,240,137,119,60,65,68,1,158,32,243,166, +198,72,124,145,55,189,0,212,187,176,134,133,183,73,244,144,199,204,34,134,253,165,48,91,175,118,72,206,218,118,173,82,107,60,134,118,113,147,184,89,18,181,84,72,188,12,250,176,167,170,12,126,101,135,131,83,243,17,243,4,122,235,113,107,83,53,141,182,101,11,82,28,28,233,129,47,200,149,230,101,165,114,30,164,83,208,13,52,59,188,36,110,80,195,91,129,65,143,238,10,140,0,228,118,248,132,210,20,121,89,42,165,20,37,106,42,180,187,172,104,40,89,200,153,27,50,195,170,53,114,66,83,76,6,197,10,124,14,116,192,115,47,5,236,27,149,60,88,83,177,183,37,63,202,148,93,122,29,59,228,152,24,134,107,162,90,244,91,62,30,65,19,97,228,70,123,124,89,237,62,214,98,193,170,66,163,194,62,144,108,243,57,98,82,79,164,157,50,90,25,226,169,86,4,248,198,29,73,80,46,219,106,38,172,109,252,28,136,235,36,42,22,172,195,65,97,36,41,120,126,74,216,151,43,102,99,187,20,91,227,84,11,74,11,186,82,27,146,195,212,164,13,43,246,220,215, +119,240,26,252,181,249,203,66,149,199,243,107,235,106,111,27,229,66,194,197,137,58,143,0,27,61,41,114,18,86,104,240,173,177,206,50,52,207,0,134,61,85,165,216,96,163,129,36,193,72,162,98,72,83,63,116,171,121,214,153,80,54,63,166,100,144,217,61,252,46,146,164,56,83,142,209,147,86,93,0,183,129,129,54,218,65,115,128,37,109,233,34,181,148,16,209,98,224,150,208,73,195,242,136,18,212,46,79,240,132,202,2,171,157,87,92,204,72,102,131,137,165,162,42,99,75,239,37,160,180,117,155,181,87,93,105,96,56,148,60,130,150,184,14,162,144,103,193,130,64,208,0,57,69,44,165,88,201,32,165,212,88,233,3,149,6,216,170,165,124,5,101,161,197,152,65,228,136,126,172,157,1,78,40,106,199,37,162,50,96,109,233,43,28,218,116,222,34,53,175,246,160,138,245,210,2,240,119,200,217,15,182,40,255,127,218,135,73,35,197,133,49,162,131,165,141,229,104,147,29,172,180,0,187,109,126,202,175,97,245,104,16,81,216,48,136,0,188,152,37,36,125,164,4,58,71, +57,102,20,107,141,209,172,69,185,11,30,101,37,106,163,163,33,14,76,182,33,119,59,111,211,26,181,65,165,40,13,99,7,128,135,84,85,174,12,138,177,214,49,99,222,128,70,27,201,137,74,204,74,9,196,193,64,134,140,242,176,188,79,11,163,163,241,33,202,255,115,132,219,245,18,1,171,148,141,126,69,174,137,189,4,14,71,26,98,180,103,231,41,117,160,161,2,23,124,15,147,20,232,164,133,165,111,4,94,102,84,100,196,66,86,117,59,17,209,44,64,54,144,179,48,14,203,34,119,245,60,75,243,52,92,114,58,127,106,235,69,46,90,9,204,158,97,190,27,102,15,108,19,165,92,17,172,242,53,23,56,181,216,138,204,150,146,246,222,148,47,181,42,235,177,121,136,18,169,168,123,84,216,17,151,66,217,88,19,187,50,182,180,253,218,86,89,34,173,70,6,28,141,217,193,193,125,218,46,121,97,17,252,76,186,124,1,116,77,118,240,150,46,203,105,137,43,44,140,139,216,8,202,80,230,111,235,21,130,166,75,217,91,86,213,81,20,53,67,137,236,174,31,157,176,12, +149,20,89,72,4,179,153,74,123,10,129,226,81,138,179,187,216,171,53,30,102,21,187,196,154,15,205,59,139,67,116,185,57,38,158,144,25,200,93,155,76,8,24,85,53,67,150,121,160,170,1,136,62,150,92,162,67,22,181,121,11,93,5,60,176,133,198,184,59,64,133,30,181,169,79,134,48,13,6,63,20,228,99,100,181,38,173,35,72,37,151,218,39,197,252,210,115,188,203,56,238,98,9,94,155,85,249,99,13,226,197,189,44,100,52,154,34,223,124,104,3,94,85,136,2,76,17,158,195,62,124,97,31,176,176,173,36,215,68,97,154,198,69,202,143,75,140,107,147,135,167,44,8,173,13,28,55,178,131,140,9,74,113,1,175,145,77,117,67,246,104,210,56,253,154,217,97,96,204,220,49,181,82,54,46,40,80,147,232,178,121,84,66,33,110,176,99,62,215,129,101,56,86,35,30,205,122,74,187,25,161,204,145,54,66,134,46,123,160,109,71,201,93,29,178,204,118,234,162,146,176,44,129,44,1,35,38,163,237,67,151,139,50,53,10,128,20,15,126,81,196,112,86,68,44,131, +176,152,119,210,188,167,79,45,243,82,211,141,237,43,35,13,47,115,207,93,202,66,12,199,154,226,23,124,71,149,200,144,188,54,120,65,235,156,120,2,83,201,116,6,137,3,214,110,118,93,69,40,155,119,12,3,87,121,230,103,142,184,118,10,221,243,64,187,144,124,128,225,50,28,135,57,167,47,162,224,198,212,86,40,175,182,186,30,30,7,244,83,130,229,2,99,29,50,69,192,29,75,223,75,104,108,169,128,89,179,7,193,161,39,204,245,78,12,57,241,252,129,10,103,59,155,95,158,26,162,64,144,42,19,187,79,30,149,33,46,193,247,144,232,121,95,165,235,89,161,138,103,31,128,36,128,48,40,17,149,99,61,53,155,26,235,124,142,91,80,145,219,181,40,30,203,41,118,65,189,167,249,215,8,71,147,232,231,95,184,214,167,82,144,225,22,99,104,184,220,211,87,13,73,105,93,249,162,4,90,8,90,71,197,93,103,69,170,114,10,86,201,144,62,131,102,242,12,163,47,74,15,89,201,105,37,51,212,169,59,58,132,23,198,109,143,199,84,145,17,27,100,224,142,195,127, +39,124,50,76,51,173,74,192,89,146,221,75,146,52,238,223,183,106,255,122,51,101,78,96,184,8,184,218,164,81,80,209,164,185,248,185,80,7,184,216,52,178,60,107,85,33,0,22,48,106,53,169,31,154,169,157,214,201,22,140,71,137,45,46,13,88,132,170,200,84,191,155,101,133,204,182,91,54,225,146,109,78,24,38,18,65,170,218,210,5,77,227,149,130,10,44,80,178,131,192,213,55,19,27,169,191,173,173,3,172,239,4,206,202,149,195,97,166,168,4,119,40,107,169,216,31,84,15,70,116,113,94,67,97,205,239,114,20,79,149,185,81,148,206,202,106,36,202,11,200,176,12,11,8,47,11,23,69,4,156,45,57,179,198,185,29,208,71,115,101,205,214,136,123,226,243,178,62,83,226,9,2,90,111,249,154,50,47,42,155,184,178,72,182,129,43,85,141,134,168,148,154,5,94,173,9,240,109,17,177,249,168,142,58,166,201,10,92,148,213,104,135,10,64,44,190,183,140,17,61,13,108,91,96,202,253,81,3,234,116,164,202,50,113,117,63,159,71,67,89,168,62,129,15,75,166, +11,44,196,4,37,37,123,54,170,208,23,169,1,192,210,248,29,3,150,208,102,55,7,32,143,29,232,199,36,64,65,138,167,168,1,77,116,139,118,121,13,248,77,166,163,151,9,115,34,110,116,174,54,66,147,158,125,115,172,161,140,153,129,37,25,151,188,213,58,155,18,78,138,40,0,121,29,166,147,98,145,145,236,103,113,56,14,162,82,17,72,123,120,187,34,153,227,176,58,163,164,31,178,50,49,181,207,163,7,72,84,101,79,155,213,175,214,137,50,46,139,148,4,96,77,152,17,118,175,80,164,71,159,88,52,88,5,69,89,89,240,130,105,14,160,231,149,10,24,82,132,82,87,106,234,240,36,97,15,15,94,170,12,25,153,50,252,228,75,119,114,60,62,202,182,107,228,64,168,179,164,74,215,33,26,230,169,26,49,191,244,74,180,93,50,96,127,164,85,6,153,67,228,15,117,188,117,172,242,224,19,195,34,75,74,80,208,217,88,60,58,138,177,146,4,203,244,203,42,171,57,86,220,56,199,181,181,19,75,158,46,230,101,82,202,225,98,77,103,5,36,114,224,83,101,204, +3,231,42,119,137,202,81,149,54,72,98,142,250,103,196,187,84,113,52,177,220,73,243,210,75,21,55,46,150,38,129,78,53,114,143,167,73,204,27,48,5,229,53,165,42,99,82,176,34,187,36,42,66,235,83,21,74,59,130,206,156,72,101,248,74,137,165,128,228,188,149,169,87,81,178,82,41,82,150,214,151,73,56,169,119,211,134,30,103,217,164,76,53,144,8,58,206,139,73,15,170,98,187,81,30,237,24,16,35,175,249,201,177,172,42,57,86,211,89,94,145,234,77,90,243,59,163,53,171,81,109,85,21,84,148,74,222,242,39,202,162,22,220,48,93,180,73,190,28,157,82,82,46,246,216,225,147,241,170,204,0,218,193,6,22,249,165,221,83,169,7,67,25,75,222,98,230,192,81,163,95,168,204,96,58,229,224,201,146,78,57,3,153,226,227,120,138,203,143,44,89,5,74,160,38,85,206,146,197,186,89,74,89,186,233,188,234,28,51,225,232,84,76,54,197,34,33,139,70,35,130,133,76,145,169,9,228,20,53,108,172,24,63,96,101,109,193,15,110,70,2,188,142,25,37,94, +171,5,34,72,4,160,95,29,43,85,41,218,113,50,173,102,33,155,182,251,185,218,110,140,95,53,30,114,64,20,234,146,152,84,94,135,148,5,103,90,192,26,249,107,62,23,100,106,41,26,14,59,176,173,129,118,52,114,36,252,13,235,30,224,162,157,49,200,251,3,74,6,75,34,68,141,1,139,202,150,97,26,154,246,1,232,44,35,239,171,55,248,64,14,66,8,150,47,134,33,225,133,169,4,218,139,72,15,112,205,24,77,97,106,108,57,57,4,20,26,215,235,2,50,248,213,240,184,171,124,160,63,160,221,166,99,175,25,57,116,250,137,184,192,147,170,101,77,177,49,188,49,122,53,163,88,132,247,108,197,235,97,249,107,213,79,42,21,63,122,132,114,6,11,240,82,61,4,86,43,58,39,46,76,233,140,117,54,185,140,35,123,62,147,98,66,45,43,53,88,73,170,213,143,51,151,222,244,178,46,179,137,68,170,171,55,137,32,70,195,234,86,36,180,140,57,7,130,82,123,31,250,21,58,245,120,119,104,12,181,63,123,226,86,159,61,33,114,215,6,173,174,98,182,88,140, +140,149,74,85,16,21,63,178,184,119,14,132,168,156,169,35,6,60,67,159,169,146,146,244,200,167,210,85,71,250,204,6,186,20,101,64,64,153,171,70,233,24,245,108,203,202,91,112,224,77,215,244,216,75,58,61,148,44,36,50,100,198,202,198,132,91,51,83,63,175,78,8,161,206,164,253,208,92,10,204,48,45,97,193,195,8,243,36,136,50,54,75,36,157,228,81,228,200,86,8,200,173,130,11,194,225,253,50,150,65,95,233,163,102,238,233,45,54,112,22,137,177,111,240,8,26,23,146,76,65,24,41,93,100,94,153,179,236,137,86,181,52,224,159,205,163,90,230,147,83,211,168,65,191,179,247,244,153,75,55,187,20,245,19,31,126,156,236,137,125,89,22,76,89,21,244,101,253,184,223,94,166,249,96,130,25,160,101,18,234,31,201,176,41,21,9,122,22,108,229,208,169,222,224,166,125,33,184,158,132,107,10,202,72,32,34,151,149,47,238,188,70,151,175,57,73,36,32,23,60,166,197,148,182,170,242,174,117,249,140,189,186,209,163,15,63,62,134,135,81,221,100,244,218,232,145, +41,233,53,75,82,18,228,42,196,198,112,74,208,168,216,166,36,255,0,141,203,16,107,94,77,53,16,11,111,215,115,86,201,119,126,86,143,174,42,245,22,156,207,202,3,58,150,196,14,193,44,204,99,20,241,156,113,177,124,13,101,34,3,190,134,101,165,66,26,102,87,86,230,234,151,34,48,3,169,196,159,237,141,88,219,75,65,98,16,26,48,220,224,146,156,45,251,1,196,26,101,72,56,199,207,178,44,0,223,127,33,213,46,176,9,134,100,31,227,41,179,12,179,11,124,210,141,240,144,202,101,16,166,172,154,210,148,45,193,118,35,57,238,145,24,163,157,0,75,13,123,223,8,62,248,160,114,7,38,120,89,161,30,50,72,48,166,48,101,193,103,104,133,131,192,241,170,66,48,45,225,132,59,40,175,74,230,151,85,88,233,147,84,99,113,85,96,219,72,170,182,145,106,235,8,62,62,242,72,59,57,13,22,193,156,15,128,148,149,99,43,205,222,45,157,26,162,223,169,194,8,236,13,214,235,108,253,230,148,51,228,65,64,14,135,116,172,19,201,85,237,172,58,207,1,198, +165,34,37,110,164,228,0,139,75,218,162,37,149,64,84,233,85,68,9,215,179,128,64,13,40,88,138,127,143,37,62,205,7,240,136,41,131,201,164,32,5,131,7,250,225,13,172,161,44,50,213,10,128,203,79,4,11,91,43,212,197,133,174,96,203,224,57,52,143,38,81,35,81,98,73,150,221,119,156,51,174,25,194,191,77,240,171,68,73,168,14,210,41,27,218,225,253,85,217,158,40,152,178,137,167,39,196,214,29,10,75,250,40,158,194,172,115,246,197,28,60,249,178,255,141,232,158,28,98,19,151,186,19,40,222,145,113,211,91,231,49,198,204,113,89,29,114,222,57,172,61,36,43,6,190,124,143,234,225,4,204,184,51,189,58,191,57,207,227,93,173,215,167,176,218,40,89,98,29,33,219,125,101,17,153,117,48,84,185,76,106,149,115,58,255,4,92,202,203,141,152,68,180,205,73,150,172,10,88,224,67,24,157,161,196,192,37,122,95,108,199,112,161,16,105,208,48,247,52,25,107,112,115,120,13,75,217,28,30,177,78,84,219,245,135,100,195,105,36,195,250,172,165,14,203,64, +121,158,7,42,151,88,90,128,166,184,60,177,137,6,205,52,114,27,179,96,134,203,192,37,152,183,23,250,97,170,9,165,84,33,254,162,82,101,152,242,53,71,176,249,72,22,215,152,2,203,93,203,149,82,94,192,38,153,178,70,221,10,117,26,138,198,200,88,122,146,253,106,21,115,224,129,28,35,122,64,189,128,19,174,139,65,151,9,249,133,220,115,76,170,99,229,148,219,81,101,162,120,190,15,45,26,131,169,146,40,14,118,5,254,249,13,98,157,134,212,149,34,22,86,240,68,65,140,233,71,158,14,155,49,82,217,98,192,85,106,1,17,11,157,106,248,237,7,111,92,183,217,193,111,176,26,229,183,48,27,141,134,226,158,140,60,253,214,193,174,15,22,249,253,150,146,113,136,230,165,57,91,236,144,10,187,6,229,201,75,31,164,48,175,47,58,94,219,0,0,229,178,101,93,251,99,174,183,32,203,35,69,220,30,66,207,119,92,102,65,253,1,183,220,194,255,237,170,239,209,190,51,210,236,240,145,114,129,47,177,184,44,87,59,167,109,85,224,103,32,154,150,15,10,74,116, +221,176,11,155,92,105,91,240,165,177,112,84,146,185,98,148,160,56,244,71,243,58,115,161,140,189,173,55,23,186,193,146,8,210,31,108,205,134,113,191,8,58,152,143,190,110,214,140,46,76,184,216,60,87,214,239,56,213,74,205,115,249,80,57,73,243,114,43,94,114,71,59,223,207,113,200,198,31,202,111,2,210,218,180,247,135,89,190,35,43,241,252,49,197,128,236,90,38,140,168,178,190,161,2,24,62,92,141,154,88,98,161,102,154,196,128,1,62,249,187,196,118,84,128,228,122,65,220,171,152,138,86,41,119,203,232,3,117,190,43,192,189,72,77,181,123,20,94,41,237,65,198,60,60,71,194,55,227,35,76,78,81,56,112,187,212,69,131,149,77,62,138,193,69,186,102,223,76,243,225,179,231,45,79,62,161,120,18,194,21,78,21,154,179,70,154,36,232,19,210,78,119,246,7,167,199,231,195,238,241,123,219,95,122,201,182,26,147,160,200,87,192,117,163,17,157,118,191,25,125,209,246,135,30,42,45,233,245,168,208,106,153,244,164,140,112,82,206,98,56,66,207,31,76,29,153, +52,97,70,237,116,191,116,192,152,140,190,176,65,172,225,18,84,165,40,49,86,75,180,133,40,25,91,158,166,40,23,195,225,152,114,80,197,81,250,100,191,115,166,193,9,33,52,158,65,61,157,81,166,79,37,231,202,57,169,42,66,197,45,199,104,42,80,241,10,185,232,20,118,178,142,52,54,130,167,78,41,114,238,136,196,215,24,9,8,134,29,237,76,0,140,43,50,45,23,50,46,0,179,114,145,97,227,22,84,116,20,102,193,6,67,153,211,123,164,158,240,45,193,66,133,174,216,8,129,222,66,254,77,86,48,210,150,238,196,97,206,5,168,1,193,143,219,22,220,80,2,230,195,120,79,196,73,185,152,207,147,96,33,5,29,178,45,157,145,242,100,29,24,7,21,239,25,69,143,118,171,176,248,66,121,220,1,150,21,129,48,121,201,197,134,244,14,146,127,214,192,72,239,147,85,50,93,97,3,54,150,70,170,115,172,158,59,211,141,68,21,76,196,158,104,71,41,181,163,192,113,73,117,52,178,88,10,118,106,75,21,227,130,92,200,184,173,64,38,84,165,23,22,146,101,219, +38,158,11,51,115,227,182,215,1,246,222,107,18,241,191,225,90,44,229,34,12,87,192,244,73,252,219,150,0,185,7,4,25,81,11,38,23,36,245,76,11,59,19,101,161,62,18,250,22,72,179,129,63,154,155,243,152,48,159,74,154,150,161,52,164,85,155,136,56,136,102,29,217,55,126,138,201,48,167,182,20,13,176,114,33,77,176,162,67,183,253,92,89,49,66,117,244,131,78,132,163,30,100,237,110,117,170,197,182,161,8,131,61,163,149,47,202,202,178,47,53,184,142,97,178,144,186,209,69,220,186,23,197,20,76,109,237,33,222,189,181,79,53,16,255,225,207,127,54,45,227,12,67,249,189,227,6,135,199,26,44,224,177,112,185,212,157,212,192,184,159,38,55,153,105,163,134,108,213,158,2,85,162,247,102,119,118,171,52,255,122,170,154,127,61,213,77,220,14,246,120,29,189,253,126,167,255,126,125,59,1,122,122,231,215,157,95,5,255,89,211,10,236,192,50,190,247,124,11,249,62,141,192,240,109,248,163,103,221,208,50,224,241,54,233,9,230,12,180,105,127,48,23,75,163,31, +181,110,36,215,38,76,179,92,239,240,180,12,210,207,108,106,197,126,111,218,157,115,32,227,232,186,196,130,241,177,212,167,253,196,60,209,154,188,98,166,155,211,124,56,226,232,67,45,128,184,9,188,13,94,51,51,111,183,55,107,106,102,175,227,33,250,155,217,227,57,221,172,62,175,217,153,15,222,198,125,207,26,113,88,18,86,75,121,82,235,100,77,203,206,28,161,161,96,3,170,2,101,88,243,92,22,237,222,218,206,204,180,253,6,141,108,143,166,79,131,233,214,147,110,27,53,149,82,87,161,52,218,37,221,214,76,145,225,44,113,54,153,48,110,70,115,58,156,249,72,217,180,211,153,61,237,195,52,61,179,71,124,152,254,103,246,136,15,210,10,205,30,240,33,186,162,57,227,61,76,131,180,10,241,111,216,40,205,6,241,97,122,166,217,35,14,55,111,159,230,209,127,115,39,53,99,243,172,105,164,230,99,239,206,13,213,156,9,220,110,106,14,191,111,214,88,13,54,109,14,156,225,45,249,1,218,172,217,35,170,67,69,42,246,139,102,95,233,104,84,140,60,107,17,42,211, +229,14,165,14,211,168,147,0,166,13,130,183,86,93,255,193,94,86,192,245,73,241,21,69,81,237,241,170,179,83,159,28,125,210,135,185,206,235,109,191,82,153,77,118,8,224,49,135,233,242,7,234,45,231,19,14,138,66,244,48,19,157,113,213,37,101,118,253,63,85,160,53,52,156,115,101,151,189,226,207,104,61,231,8,235,251,118,161,211,230,124,195,74,189,102,116,86,167,50,183,35,93,99,35,58,119,165,27,246,164,179,7,243,252,144,146,32,238,213,156,206,161,191,205,251,212,217,195,153,146,155,141,90,215,249,148,114,183,46,118,21,73,183,81,55,59,135,192,238,222,216,174,60,123,229,156,55,240,55,178,76,251,220,185,207,29,21,132,153,102,119,14,138,168,135,142,58,145,234,68,26,125,127,218,106,111,232,247,194,115,136,226,65,218,226,85,140,225,219,59,228,249,91,248,6,93,3,180,218,75,43,174,76,180,34,145,219,166,97,181,191,174,246,91,108,72,154,163,216,186,200,245,6,143,149,105,187,14,215,4,91,72,169,77,43,26,129,6,184,203,152,150,45,126,187,239, +239,216,227,53,66,195,50,196,205,2,219,174,217,143,203,253,133,252,91,83,63,100,159,6,169,46,28,54,229,37,149,205,145,42,77,168,45,140,106,99,139,153,50,22,195,83,12,64,229,101,93,2,239,56,135,21,195,152,157,85,159,59,233,92,94,160,59,104,148,206,98,228,22,22,214,249,129,234,100,132,166,183,160,236,140,225,213,21,243,169,101,123,191,153,137,3,95,171,0,15,71,5,27,103,92,140,199,21,179,55,72,125,204,95,36,168,199,50,191,161,198,102,246,25,38,108,162,192,110,65,224,250,2,170,50,1,143,109,98,130,103,101,247,128,62,86,65,36,207,160,8,44,219,137,147,68,142,21,161,189,127,71,15,82,98,128,151,153,209,170,157,217,42,42,211,221,137,0,132,93,50,79,184,181,134,238,213,19,248,180,75,203,180,74,162,203,172,175,57,141,230,82,98,0,230,194,199,188,64,217,11,83,114,215,215,172,36,117,180,105,128,72,173,19,163,33,31,193,88,140,169,108,65,53,68,116,105,187,236,122,49,115,197,187,179,60,55,240,112,75,222,9,133,32,200,115, +58,173,172,78,251,53,209,157,46,206,210,241,25,164,23,148,25,22,185,180,44,148,251,32,216,115,214,100,220,74,250,156,134,124,86,196,206,132,115,157,154,172,85,50,170,106,173,101,98,50,20,23,81,133,10,168,40,245,128,58,196,104,75,134,119,158,145,170,187,42,42,27,27,72,62,181,203,14,23,20,110,51,208,168,122,57,96,138,220,10,34,123,120,51,4,82,196,86,33,183,142,161,38,152,217,139,213,73,152,178,248,145,98,255,83,185,76,149,59,96,67,201,157,150,104,27,168,173,140,126,73,21,65,141,1,223,179,208,18,106,94,125,160,55,90,137,248,220,180,241,209,34,243,182,64,172,83,78,95,177,44,157,77,168,95,167,138,103,208,151,150,70,2,125,18,185,134,68,89,241,232,132,146,40,243,65,237,162,116,249,140,61,180,229,122,215,27,132,161,238,17,200,145,43,83,170,170,179,221,200,223,91,239,164,117,12,21,101,159,202,109,170,10,149,74,100,33,200,84,55,158,204,120,33,48,218,37,104,13,172,113,229,227,253,24,201,52,194,155,199,153,42,22,84,239,86, +164,158,52,138,34,152,144,92,153,21,177,221,241,201,132,178,176,195,231,80,103,234,67,99,46,187,82,143,204,167,8,53,25,6,115,130,12,93,39,181,91,11,149,180,112,55,101,157,54,250,252,158,188,54,72,117,237,121,133,56,195,140,68,68,161,48,204,220,232,179,66,172,167,88,127,79,74,181,228,8,204,186,70,178,74,82,142,30,185,205,102,117,7,179,204,125,136,143,238,58,246,24,88,139,44,18,184,233,29,119,74,240,155,107,89,238,63,213,246,224,87,8,126,74,135,23,156,125,160,51,179,57,94,91,68,173,124,252,196,73,3,214,79,146,188,172,194,192,128,187,174,172,226,144,130,246,110,184,12,235,46,198,93,61,131,115,207,38,206,136,154,187,224,84,231,8,48,139,234,161,227,112,246,253,242,31,72,72,15,210,81,217,71,212,19,239,86,188,142,57,244,233,181,84,54,142,133,198,29,217,180,158,114,184,95,99,101,83,4,200,222,87,248,73,58,244,206,165,129,159,213,125,89,95,121,118,251,14,110,81,254,88,101,186,71,143,236,124,217,232,209,118,187,218,11,216, +177,97,214,180,5,174,248,254,240,64,201,92,170,75,138,233,205,197,57,22,131,227,82,116,169,24,3,22,118,122,242,30,208,195,157,8,184,164,152,232,56,6,183,11,93,237,104,165,13,40,182,25,171,134,153,179,14,149,23,46,50,174,199,47,85,167,3,7,1,177,77,242,16,91,200,148,166,217,90,217,55,122,116,172,87,189,174,215,117,133,188,212,121,121,71,22,16,148,166,86,180,150,16,76,229,34,99,188,34,224,220,188,140,187,29,86,211,236,227,18,138,198,166,217,46,237,219,253,179,197,221,122,101,219,147,56,155,251,32,109,179,29,19,16,190,70,232,96,227,240,2,54,58,31,118,255,158,218,110,8,254,115,219,107,55,208,10,222,88,107,82,9,170,206,226,158,93,140,28,101,121,107,67,163,82,9,53,247,49,114,152,253,1,90,26,185,24,124,152,238,70,174,175,86,223,232,232,182,184,228,3,116,45,119,185,97,179,6,230,246,88,165,199,105,186,164,102,62,3,53,244,54,183,250,154,59,204,224,92,232,242,185,93,206,221,8,136,3,142,223,240,60,215,69,255,51, +23,106,172,51,194,155,228,124,218,213,231,34,194,28,21,208,157,155,160,235,113,177,46,198,39,10,243,144,41,225,119,12,58,251,85,175,10,194,253,180,219,254,156,246,233,90,208,186,161,187,90,182,187,103,75,117,63,163,245,153,221,213,29,116,61,64,163,245,58,185,177,73,207,117,55,176,110,23,183,219,233,8,171,168,182,177,193,122,141,254,107,146,10,27,183,91,247,137,112,243,206,235,142,167,33,27,35,128,123,237,123,180,95,247,84,189,82,190,14,123,223,177,19,251,177,29,101,210,236,225,68,168,54,110,202,238,160,116,227,254,236,62,222,132,0,251,14,197,176,219,86,153,226,241,170,9,28,29,244,247,141,181,166,125,16,98,188,93,230,91,203,163,139,156,219,52,147,52,247,122,247,11,178,30,164,245,123,21,202,73,45,148,170,147,187,101,99,248,221,216,17,78,31,196,7,232,200,94,5,112,186,77,61,81,4,152,11,28,117,53,45,209,21,10,53,17,91,150,181,49,222,43,246,37,29,171,224,46,124,234,232,24,47,44,43,150,124,200,96,172,111,156,240,189,134,82, +109,84,198,195,13,80,208,181,108,43,2,35,80,104,36,204,169,70,77,231,11,111,116,195,25,253,142,63,30,133,206,174,147,43,212,229,185,110,96,93,166,237,3,49,79,146,41,158,79,195,43,102,103,51,172,107,199,86,201,177,201,231,183,42,35,242,132,156,153,242,150,87,158,24,47,232,0,24,113,167,133,191,90,236,181,156,5,0,109,98,200,72,157,139,83,77,219,213,185,78,46,233,228,131,228,124,190,169,2,92,158,153,190,42,220,68,46,35,11,20,136,125,86,52,102,177,192,92,119,170,46,172,61,39,227,194,10,115,160,178,37,185,243,75,65,181,74,73,194,73,117,31,144,192,128,161,237,13,211,202,231,70,70,209,104,135,140,85,175,235,121,53,104,74,67,149,8,118,91,188,89,141,77,247,166,250,192,168,14,52,198,21,82,176,198,25,237,24,26,181,169,155,137,153,108,100,109,114,154,159,145,102,252,17,199,186,117,65,16,153,182,248,235,200,33,84,101,126,140,60,127,52,196,165,59,159,162,133,58,156,55,248,63,195,77,250,220,59,94,197,6,45,239,181,254,242, +245,246,102,221,239,189,60,218,166,141,240,29,75,126,227,158,248,13,218,217,100,31,239,221,30,191,217,45,248,204,78,249,149,240,249,38,77,243,237,193,30,164,127,190,87,32,212,64,219,15,208,75,223,51,244,55,111,171,239,160,98,179,14,251,174,83,179,174,217,254,90,139,123,195,110,251,53,49,79,19,45,55,158,233,186,198,251,234,33,191,241,190,155,180,221,188,7,127,37,203,191,174,29,191,175,241,190,46,45,251,100,153,151,237,214,60,155,202,206,174,222,165,52,187,233,200,4,27,82,220,132,199,62,177,168,247,81,240,89,104,159,71,173,74,63,62,252,115,119,31,16,11,156,42,85,94,20,54,177,30,95,187,188,114,36,83,110,239,72,116,123,169,94,59,75,176,39,200,204,140,229,141,117,168,150,204,56,191,116,223,145,115,183,3,67,81,91,216,42,137,65,107,203,162,67,213,162,186,244,84,86,109,218,32,41,128,173,74,100,76,225,29,178,118,96,115,208,52,32,208,101,250,190,218,201,12,242,27,203,16,227,137,58,15,169,199,80,61,169,201,148,42,105,64,139,178, +48,197,42,167,212,164,149,42,240,243,195,217,157,55,204,201,184,68,78,61,64,134,22,19,245,150,208,206,43,249,254,94,67,94,6,87,169,115,5,192,218,66,127,229,128,135,153,62,194,100,244,168,174,69,35,162,215,138,143,147,56,83,95,40,184,49,45,226,24,199,93,208,167,80,110,243,22,191,89,31,91,242,229,152,117,189,164,131,123,183,12,228,243,174,222,112,170,9,54,185,133,67,95,107,224,234,201,7,185,83,195,137,118,111,124,189,134,51,218,61,111,120,104,218,208,154,14,240,247,235,249,238,132,123,30,160,253,187,195,82,183,116,130,231,182,167,186,215,189,101,153,123,182,131,111,53,222,171,69,188,31,14,221,160,91,188,143,252,167,109,209,113,249,208,228,103,227,196,99,146,74,179,213,186,48,33,23,101,132,153,115,52,133,109,47,223,204,24,175,84,19,26,117,178,116,234,177,168,157,155,164,8,111,166,51,176,13,5,7,38,83,167,251,246,57,244,202,181,96,88,69,152,37,145,58,206,103,132,142,159,186,115,53,120,203,15,209,229,218,77,5,199,62,194,110,98, +42,81,113,111,75,197,84,53,69,166,142,111,253,210,42,104,116,136,131,91,196,120,215,112,104,241,26,212,212,190,25,81,89,158,196,171,77,214,171,125,247,195,161,219,45,167,184,161,30,248,106,193,144,169,9,241,42,247,74,180,54,228,134,156,172,131,22,213,207,184,177,152,110,194,62,243,141,78,93,211,116,135,84,52,157,225,186,117,11,232,171,5,246,2,193,10,14,37,114,172,202,164,138,142,15,51,71,59,58,174,158,45,235,116,216,156,227,169,92,200,208,84,188,88,67,166,158,36,113,83,38,76,234,14,2,203,156,145,58,218,137,57,35,140,229,148,71,242,144,135,41,248,140,14,145,21,227,100,103,191,129,91,49,209,235,172,147,207,7,153,151,113,54,117,89,136,117,164,96,120,233,33,14,52,29,150,128,148,199,17,56,254,168,161,164,51,221,92,50,69,103,7,103,186,81,21,182,160,107,214,53,230,54,157,242,0,13,111,40,165,245,98,240,102,82,202,88,96,56,96,1,58,23,47,111,242,235,42,128,184,138,9,157,103,143,130,21,242,62,231,144,72,147,36,169,138, +234,101,11,202,249,6,147,52,201,172,47,194,24,187,252,56,58,203,148,79,108,161,111,138,63,147,79,75,110,52,200,43,80,83,243,156,143,213,169,112,168,149,38,228,101,56,195,133,204,76,118,157,100,171,226,153,243,206,179,141,74,101,181,152,8,179,232,203,151,156,124,75,164,97,32,183,72,1,141,68,139,140,41,47,237,73,140,26,85,193,213,115,28,4,67,49,234,89,96,207,26,139,0,78,115,213,81,176,229,147,213,26,17,103,78,230,175,81,203,141,188,184,38,217,242,204,97,41,188,2,69,54,161,201,132,214,48,243,82,183,98,247,20,132,218,35,117,100,193,36,197,21,163,153,22,237,21,189,202,188,213,196,2,207,64,227,43,13,161,154,104,106,111,209,216,125,42,101,100,18,113,84,251,196,58,186,70,69,223,95,101,9,62,22,66,109,202,43,42,218,70,89,131,214,105,85,141,126,133,218,26,139,92,239,23,231,246,168,195,181,159,13,43,247,149,11,110,29,43,215,46,98,240,42,73,216,54,39,251,87,210,217,172,228,134,207,17,243,249,56,116,251,188,88,218,28, +120,155,45,80,238,249,50,46,230,84,135,95,205,243,173,77,183,154,19,142,126,42,140,81,93,230,172,157,180,148,90,106,29,39,134,170,118,132,207,88,152,35,178,246,158,233,168,43,173,207,209,208,77,177,71,251,20,165,10,145,55,222,64,219,43,1,117,248,179,96,115,157,56,138,98,238,124,125,175,213,104,86,59,236,86,52,69,223,174,229,45,182,146,166,215,91,104,150,72,125,176,49,34,76,247,113,96,38,131,131,232,20,84,193,68,187,43,59,82,171,169,61,85,79,43,70,106,88,35,159,235,51,80,242,181,139,94,6,57,183,14,32,175,205,191,150,87,225,153,13,190,197,93,244,19,18,107,189,199,10,110,202,115,79,58,73,85,147,210,164,242,234,27,153,74,67,77,6,184,173,91,110,120,244,71,171,119,66,183,169,156,161,42,246,29,123,151,5,164,63,160,47,132,90,53,248,170,162,196,146,108,254,128,85,65,71,84,99,235,16,85,109,231,120,123,214,201,220,154,17,249,40,177,117,86,212,102,63,210,255,250,32,175,37,66,77,222,199,31,208,66,138,87,84,232,167, +132,41,168,199,247,17,240,17,209,36,169,140,102,68,2,193,137,193,125,115,60,248,82,150,149,80,20,247,214,165,106,153,202,183,135,149,178,74,252,227,24,2,116,149,180,106,145,132,193,4,180,125,85,207,85,125,214,152,181,180,149,131,171,128,88,246,72,53,43,180,128,105,180,40,168,4,161,137,165,214,222,245,233,67,176,230,234,79,19,58,96,89,129,48,42,31,162,90,193,160,58,179,19,15,89,137,208,103,65,75,107,231,186,123,67,107,118,44,86,155,163,110,17,45,175,14,37,225,100,251,73,107,11,31,106,130,52,54,3,222,35,66,131,127,26,163,52,92,228,179,254,114,62,90,127,51,194,12,78,235,226,53,107,107,39,222,194,123,196,117,54,153,83,68,58,66,121,96,46,192,242,26,19,102,21,96,74,16,146,180,140,242,241,41,21,53,84,166,15,190,242,44,193,218,40,108,229,102,77,125,79,151,234,161,108,87,185,222,230,128,91,213,204,182,170,164,242,101,172,241,64,57,227,31,56,165,190,22,60,143,61,84,42,89,2,105,153,98,71,71,17,245,238,45,115,13, +247,101,86,242,60,27,95,157,89,111,223,223,255,22,77,63,234,182,225,133,154,174,105,191,241,221,154,62,222,170,215,108,86,124,95,62,27,113,137,249,149,88,83,121,152,57,65,203,242,190,46,125,132,167,114,208,209,189,102,109,102,93,36,164,79,121,123,135,194,84,126,190,110,123,2,71,226,250,72,51,81,60,11,44,78,34,98,161,119,121,223,151,99,244,103,146,175,160,202,47,213,149,55,174,223,161,14,8,113,243,74,63,70,214,152,233,111,66,233,183,101,46,130,195,193,186,148,70,149,251,56,7,227,106,146,169,117,166,56,198,17,71,59,227,213,104,135,75,159,49,30,133,165,204,145,180,10,117,236,115,78,118,199,35,55,22,94,2,193,119,128,214,134,212,42,206,84,166,113,206,103,104,107,162,119,117,254,147,169,159,104,84,19,122,225,77,73,33,117,151,66,110,146,193,53,200,12,179,242,58,1,123,28,211,41,77,21,84,85,82,44,101,111,159,155,228,254,230,181,57,79,108,78,53,177,93,96,251,88,164,100,124,255,133,44,139,218,226,207,34,46,15,41,187,205,209, +107,118,146,116,166,193,130,62,86,122,199,116,78,141,221,229,122,250,107,235,50,143,154,221,204,90,204,40,108,204,188,242,102,99,63,234,56,104,152,251,53,49,181,245,177,120,33,18,155,173,21,123,158,27,109,39,96,96,42,46,55,210,4,69,136,133,95,91,61,154,93,106,90,244,119,109,231,158,201,230,139,115,201,10,71,60,120,119,232,54,145,247,103,93,167,235,8,203,251,220,172,235,193,183,38,230,101,133,0,238,113,225,174,163,17,154,239,222,189,199,229,187,110,169,192,198,247,240,58,219,240,0,87,242,250,116,242,220,191,40,244,222,151,241,58,1,229,7,184,151,247,14,123,124,143,43,122,29,233,186,249,109,189,149,144,90,227,197,189,78,242,190,238,182,218,26,165,185,209,29,190,14,143,109,126,157,111,19,255,175,187,217,215,39,174,221,39,109,113,203,165,190,159,137,38,246,27,238,125,191,175,203,156,119,184,234,215,146,63,222,173,191,53,105,203,135,185,0,184,217,72,253,236,187,128,237,33,31,226,90,224,198,72,105,19,29,236,226,77,96,155,93,14,236,22,117, +109,126,79,176,151,30,222,244,202,96,135,178,180,102,219,232,246,96,39,226,190,209,69,194,13,18,117,131,59,133,93,166,124,136,235,133,29,193,90,127,211,176,49,176,111,187,105,216,53,245,55,184,116,184,172,240,240,133,235,198,247,15,251,226,117,195,171,136,93,161,113,215,91,137,215,23,232,62,212,181,196,142,10,126,160,27,138,43,85,251,246,11,155,221,86,236,97,97,243,235,138,221,245,111,126,115,177,171,114,54,187,196,216,149,170,247,189,207,216,28,10,112,134,217,236,102,99,123,168,77,47,57,246,234,48,54,187,239,216,65,251,131,92,125,236,128,247,16,183,32,123,219,208,112,33,242,129,119,94,33,220,252,70,100,123,226,207,185,28,185,98,48,236,181,117,42,245,150,123,145,45,183,207,185,23,217,81,239,15,113,69,114,173,233,120,219,109,201,26,186,230,219,146,93,57,246,96,23,39,59,196,250,16,119,40,123,214,200,67,92,167,236,68,146,239,126,179,114,133,86,190,110,83,9,222,103,94,170,108,67,225,223,175,124,75,195,179,234,61,203,246,96,15,112,227,178, +195,86,15,112,249,178,139,186,13,111,95,174,115,128,54,190,136,217,30,237,65,238,100,110,48,243,55,184,158,217,183,220,110,191,169,217,238,55,225,222,212,92,103,169,186,136,187,223,101,205,119,134,173,137,151,190,185,251,149,205,206,33,136,242,202,102,47,224,114,215,219,155,113,154,5,8,99,242,69,117,88,22,100,138,47,36,54,186,214,185,182,138,70,126,206,13,207,14,163,111,120,217,179,227,158,61,200,189,207,94,49,206,198,87,64,251,198,246,29,110,131,118,41,171,188,213,164,122,7,116,133,6,159,182,197,126,247,160,115,62,232,138,225,235,174,105,27,215,27,232,86,113,135,226,85,191,219,197,91,79,15,94,119,250,71,221,22,62,215,239,226,19,39,167,54,172,122,38,106,28,103,141,5,47,156,210,231,238,31,134,221,147,161,56,235,246,223,244,134,67,24,120,255,189,232,156,157,193,60,157,253,99,120,188,243,206,17,233,221,63,28,116,207,134,226,221,235,238,137,56,197,57,223,245,0,200,193,176,131,175,246,78,196,187,126,111,216,59,57,162,161,177,79,93,191,119, +244,122,40,94,159,30,31,118,251,212,204,238,241,105,223,30,143,198,224,139,10,187,3,113,214,63,125,219,59,116,23,61,122,212,25,192,186,70,143,204,205,137,102,77,176,252,206,201,123,123,184,31,122,39,135,45,209,237,209,168,221,63,156,245,187,3,68,22,172,189,247,6,214,212,133,31,123,39,7,199,231,135,212,63,111,31,6,59,57,29,194,84,176,118,120,108,120,74,120,180,7,84,175,233,57,17,72,152,213,191,121,17,123,239,53,93,189,104,143,86,222,194,72,168,135,241,96,207,250,189,193,15,2,214,168,54,228,247,231,29,51,38,236,10,12,247,166,115,114,64,123,237,193,102,145,5,162,70,188,63,61,199,68,43,224,232,248,208,65,33,162,181,43,14,187,175,186,7,195,222,91,32,22,120,18,102,28,156,191,113,198,227,61,27,12,9,175,199,199,226,164,123,0,11,194,1,6,221,254,219,222,1,225,172,223,61,235,244,250,130,218,16,246,251,56,224,233,73,163,44,125,214,70,154,0,130,239,190,69,34,59,63,57,70,12,245,187,191,63,135,133,215,144,26,14,219, +57,2,202,198,189,128,87,29,74,86,148,245,174,7,160,225,229,153,62,121,181,232,109,248,161,164,169,247,64,168,167,226,77,231,61,119,70,116,72,133,105,17,128,49,93,20,93,186,131,29,41,153,162,179,127,138,120,219,199,159,9,88,0,15,144,104,143,135,251,126,216,121,211,57,234,14,44,34,35,128,84,187,199,150,24,156,117,15,122,248,15,248,29,232,28,8,232,88,184,252,112,112,10,220,253,251,115,36,13,248,77,141,39,58,64,35,56,24,82,63,211,129,64,217,128,100,125,162,105,16,32,82,242,162,142,70,182,74,136,170,84,47,142,79,7,68,215,135,157,97,71,208,58,224,239,253,46,60,109,143,213,239,158,0,154,137,207,59,7,7,231,125,224,121,124,24,95,6,24,7,231,32,5,122,39,188,173,72,96,36,112,122,253,67,195,221,184,61,14,198,58,189,227,243,190,166,108,3,42,192,115,10,152,199,209,137,172,203,45,29,156,190,26,2,35,118,183,91,68,80,162,247,202,81,66,231,7,175,21,41,224,84,54,21,188,134,205,220,239,194,27,157,195,183,61,18, +8,60,37,48,227,160,167,240,7,95,225,8,246,136,10,253,235,186,122,194,159,59,92,63,109,46,97,19,31,254,31,117,61,43,42, diff --git a/uppsrc/plugin/ndisasm/lib/Copying b/uppsrc/plugin/ndisasm/lib/Copying deleted file mode 100644 index 0327ebf94..000000000 --- a/uppsrc/plugin/ndisasm/lib/Copying +++ /dev/null @@ -1,462 +0,0 @@ - - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations -below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. -^L - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it -becomes a de-facto standard. To achieve this, non-free programs must -be allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. -^L - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control -compilation and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. -^L - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. -^L - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at least - three years, to give the same user the materials specified in - Subsection 6a, above, for a charge no more than the cost of - performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. -^L - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. -^L - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply, and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License -may add an explicit geographical distribution limitation excluding those -countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. -^L - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS -^L diff --git a/uppsrc/plugin/ndisasm/lib/LICENSE b/uppsrc/plugin/ndisasm/lib/LICENSE new file mode 100644 index 000000000..f6ff4f01b --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/LICENSE @@ -0,0 +1,29 @@ +NASM is now licensed under the 2-clause BSD license, also known as the +simplified BSD license. + + Copyright 1996-2009 the NASM Authors - All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following + conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/uppsrc/plugin/ndisasm/lib/compiler.h b/uppsrc/plugin/ndisasm/lib/compiler.h new file mode 100644 index 000000000..48dae4e8c --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/compiler.h @@ -0,0 +1,186 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2007-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * compiler.h + * + * Compiler-specific macros for NASM. Feel free to add support for + * other compilers in here. + * + * This header file should be included before any other header. + */ + +#ifndef NASM_COMPILER_H +#define NASM_COMPILER_H 1 + +#ifdef HAVE_CONFIG_H +# include "config.h" +/* autoconf doesn't define these if they are redundant, but we want to + be able to #ifdef them... */ +#else +/* Default these to unsupported unless we have config.h */ +# ifndef inline +# define inline +# endif +# ifndef restrict +# define restrict +# endif +#endif /* HAVE_CONFIG_H */ + +/* This is required to get the standard macros when compiling + with a C++ compiler. This must be defined *before* is + included, directly or indirectly. */ +#define __STDC_CONSTANT_MACROS 1 +#define __STDC_LIMIT_MACROS 1 +#define __STDC_FORMAT_MACROS 1 + +#ifdef __GNUC__ +# if __GNUC__ >= 4 +# define HAVE_GNUC_4 +# endif +# if __GNUC__ >= 3 +# define HAVE_GNUC_3 +# endif +#endif + +#ifdef __GNUC__ +# define _unused __attribute__((unused)) +#else +# define _unused +#endif + +/* Some versions of MSVC have these only with underscores in front */ +#include +#include +#include + +#ifndef HAVE_SNPRINTF +# ifdef HAVE__SNPRINTF +# define snprintf _snprintf +# else +int snprintf(char *, size_t, const char *, ...); +# endif +#endif + +#ifndef HAVE_VSNPRINTF +# ifdef HAVE__VSNPRINT +# define vsnprintf _vsnprintf +# else +int vsnprintf(char *, size_t, const char *, va_list); +# endif +#endif + +#if !defined(HAVE_STRLCPY) || !HAVE_DECL_STRLCPY +size_t strlcpy(char *, const char *, size_t); +#endif + +#ifndef __cplusplus /* C++ has false, true, bool as keywords */ +# if defined(HAVE_STDBOOL_H) && defined(HAVE_WORKING_BOOL) +# include +# else +/* This is sort of dangerous, since casts will behave different than + casting to the standard boolean type. Always use !!, not (bool). */ +typedef enum bool { false, true } bool; +# endif +#endif + +/* Provide a substitute for offsetof() if we don't have one. This + variant works on most (but not *all*) systems... */ +#ifndef offsetof +# define offsetof(t,m) ((size_t)&(((t *)0)->m)) +#endif + +/* The container_of construct: if p is a pointer to member m of + container class c, then return a pointer to the container of which + *p is a member. */ +#ifndef container_of +# define container_of(p, c, m) ((c *)((char *)(p) - offsetof(c,m))) +#endif + +/* Some misguided platforms hide the defs for these */ +#if defined(HAVE_STRCASECMP) && !HAVE_DECL_STRCASECMP +int strcasecmp(const char *, const char *); +#endif + +#if defined(HAVE_STRICMP) && !HAVE_DECL_STRICMP +int stricmp(const char *, const char *); +#endif + +#if defined(HAVE_STRNCASECMP) && !HAVE_DECL_STRNCASECMP +int strncasecmp(const char *, const char *, size_t); +#endif + +#if defined(HAVE_STRNICMP) && !HAVE_DECL_STRNICMP +int strnicmp(const char *, const char *, size_t); +#endif + +#if defined(HAVE_STRSEP) && !HAVE_DECL_STRSEP +char *strsep(char **, const char *); +#endif + +/* + * Define this to 1 for faster performance if this is a littleendian + * platform which can do unaligned memory references. It is safe + * to leave it defined to 0 even if that is true. + */ +#if defined(__386__) || defined(__i386__) || defined(__x86_64__) +# define X86_MEMORY 1 +# ifndef WORDS_LITTLEENDIAN +# define WORDS_LITTLEENDIAN 1 +# endif +#else +# define X86_MEMORY 0 +#endif + +/* + * Hints to the compiler that a particular branch of code is more or + * less likely to be taken. + */ +#if defined(__GNUC__) && __GNUC__ >= 3 +# define likely(x) __builtin_expect(!!(x), 1) +# define unlikely(x) __builtin_expect(!!(x), 0) +#else +# define likely(x) (!!(x)) +# define unlikely(x) (!!(x)) +#endif + +/* + * How to tell the compiler that a function doesn't return + */ +#ifdef __GNUC__ +# define no_return void __attribute__((noreturn)) +#else +# define no_return void +#endif + +#endif /* NASM_COMPILER_H */ diff --git a/uppsrc/plugin/ndisasm/lib/disasm.c b/uppsrc/plugin/ndisasm/lib/disasm.c index f2180afe0..26f8bde1f 100644 --- a/uppsrc/plugin/ndisasm/lib/disasm.c +++ b/uppsrc/plugin/ndisasm/lib/disasm.c @@ -1,246 +1,388 @@ -/* disasm.c where all the _work_ gets done in the Netwide Disassembler +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: * - * initial version 27/iii/95 by Simon Tatham + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * disasm.c where all the _work_ gets done in the Netwide Disassembler */ -#define _CRT_SECURE_NO_DEPRECATE +#include "compiler.h" #include #include +#include +#include "inttypes.h" #include "nasm.h" #include "disasm.h" #include "sync.h" #include "insns.h" - -#include "names.c" - -extern struct itemplate **itable[]; +#include "tables.h" +#include "regdis.h" /* * Flags that go into the `segment' field of `insn' structures * during disassembly. */ -#define SEG_RELATIVE 1 -#define SEG_32BIT 2 -#define SEG_RMREG 4 -#define SEG_DISP8 8 -#define SEG_DISP16 16 -#define SEG_DISP32 32 -#define SEG_NODISP 64 -#define SEG_SIGNED 128 +#define SEG_RELATIVE 1 +#define SEG_32BIT 2 +#define SEG_RMREG 4 +#define SEG_DISP8 8 +#define SEG_DISP16 16 +#define SEG_DISP32 32 +#define SEG_NODISP 64 +#define SEG_SIGNED 128 +#define SEG_64BIT 256 -static int whichreg(long regflags, int regval) +/* + * Prefix information + */ +struct prefix_info { + uint8_t osize; /* Operand size */ + uint8_t asize; /* Address size */ + uint8_t osp; /* Operand size prefix present */ + uint8_t asp; /* Address size prefix present */ + uint8_t rep; /* Rep prefix present */ + uint8_t seg; /* Segment override prefix present */ + uint8_t wait; /* WAIT "prefix" present */ + uint8_t lock; /* Lock prefix present */ + uint8_t vex[3]; /* VEX prefix present */ + uint8_t vex_c; /* VEX "class" (VEX, XOP, ...) */ + uint8_t vex_m; /* VEX.M field */ + uint8_t vex_v; + uint8_t vex_lp; /* VEX.LP fields */ + uint32_t rex; /* REX prefix present */ +}; + +#define getu8(x) (*(uint8_t *)(x)) +#if X86_MEMORY +/* Littleendian CPU which can handle unaligned references */ +#define getu16(x) (*(uint16_t *)(x)) +#define getu32(x) (*(uint32_t *)(x)) +#define getu64(x) (*(uint64_t *)(x)) +#else +static uint16_t getu16(uint8_t *data) { -#include "regdis.c" + return (uint16_t)data[0] + ((uint16_t)data[1] << 8); +} +static uint32_t getu32(uint8_t *data) +{ + return (uint32_t)getu16(data) + ((uint32_t)getu16(data+2) << 16); +} +static uint64_t getu64(uint8_t *data) +{ + return (uint64_t)getu32(data) + ((uint64_t)getu32(data+4) << 32); +} +#endif + +#define gets8(x) ((int8_t)getu8(x)) +#define gets16(x) ((int16_t)getu16(x)) +#define gets32(x) ((int32_t)getu32(x)) +#define gets64(x) ((int64_t)getu64(x)) + +/* Important: regval must already have been adjusted for rex extensions */ +static enum reg_enum whichreg(opflags_t regflags, int regval, int rex) +{ + if (!(regflags & (REGISTER|REGMEM))) + return 0; /* Registers not permissible?! */ + + regflags |= REGISTER; if (!(REG_AL & ~regflags)) - return R_AL; + return R_AL; if (!(REG_AX & ~regflags)) - return R_AX; + return R_AX; if (!(REG_EAX & ~regflags)) - return R_EAX; + return R_EAX; + if (!(REG_RAX & ~regflags)) + return R_RAX; if (!(REG_DL & ~regflags)) - return R_DL; + return R_DL; if (!(REG_DX & ~regflags)) - return R_DX; + return R_DX; if (!(REG_EDX & ~regflags)) - return R_EDX; + return R_EDX; + if (!(REG_RDX & ~regflags)) + return R_RDX; if (!(REG_CL & ~regflags)) - return R_CL; + return R_CL; if (!(REG_CX & ~regflags)) - return R_CX; + return R_CX; if (!(REG_ECX & ~regflags)) - return R_ECX; + return R_ECX; + if (!(REG_RCX & ~regflags)) + return R_RCX; if (!(FPU0 & ~regflags)) - return R_ST0; + return R_ST0; + if (!(XMM0 & ~regflags)) + return R_XMM0; + if (!(YMM0 & ~regflags)) + return R_YMM0; if (!(REG_CS & ~regflags)) return (regval == 1) ? R_CS : 0; if (!(REG_DESS & ~regflags)) - return (regval == 0 || regval == 2 || regval == 3 ? sreg[regval] : 0); + return (regval == 0 || regval == 2 + || regval == 3 ? nasm_rd_sreg[regval] : 0); if (!(REG_FSGS & ~regflags)) - return (regval == 4 || regval == 5 ? sreg[regval] : 0); + return (regval == 4 || regval == 5 ? nasm_rd_sreg[regval] : 0); if (!(REG_SEG67 & ~regflags)) - return (regval == 6 || regval == 7 ? sreg[regval] : 0); + return (regval == 6 || regval == 7 ? nasm_rd_sreg[regval] : 0); - /* All the entries below look up regval in an 8-entry array */ - if (regval < 0 || regval > 7) - return 0; + /* All the entries below look up regval in an 16-entry array */ + if (regval < 0 || regval > 15) + return 0; - if (!((REGMEM|BITS8) & ~regflags)) - return reg8[regval]; - if (!((REGMEM|BITS16) & ~regflags)) - return reg16[regval]; - if (!((REGMEM|BITS32) & ~regflags)) - return reg32[regval]; + if (!(REG8 & ~regflags)) { + if (rex & (REX_P|REX_NH)) + return nasm_rd_reg8_rex[regval]; + else + return nasm_rd_reg8[regval]; + } + if (!(REG16 & ~regflags)) + return nasm_rd_reg16[regval]; + if (!(REG32 & ~regflags)) + return nasm_rd_reg32[regval]; + if (!(REG64 & ~regflags)) + return nasm_rd_reg64[regval]; if (!(REG_SREG & ~regflags)) - return sreg[regval]; + return nasm_rd_sreg[regval & 7]; /* Ignore REX */ if (!(REG_CREG & ~regflags)) - return creg[regval]; + return nasm_rd_creg[regval]; if (!(REG_DREG & ~regflags)) - return dreg[regval]; - if (!(REG_TREG & ~regflags)) - return treg[regval]; + return nasm_rd_dreg[regval]; + if (!(REG_TREG & ~regflags)) { + if (regval > 7) + return 0; /* TR registers are ill-defined with rex */ + return nasm_rd_treg[regval]; + } if (!(FPUREG & ~regflags)) - return fpureg[regval]; + return nasm_rd_fpureg[regval & 7]; /* Ignore REX */ if (!(MMXREG & ~regflags)) - return mmxreg[regval]; + return nasm_rd_mmxreg[regval & 7]; /* Ignore REX */ if (!(XMMREG & ~regflags)) - return xmmreg[regval]; + return nasm_rd_xmmreg[regval]; + if (!(YMMREG & ~regflags)) + return nasm_rd_ymmreg[regval]; return 0; } -static const char *whichcond(int condval) +/* + * Process a DREX suffix + */ +static uint8_t *do_drex(uint8_t *data, insn *ins) { - static int conds[] = { - C_O, C_NO, C_C, C_NC, C_Z, C_NZ, C_NA, C_A, - C_S, C_NS, C_PE, C_PO, C_L, C_NL, C_NG, C_G - }; - return conditions[conds[condval]]; + uint8_t drex = *data++; + operand *dst = &ins->oprs[ins->drexdst]; + + if ((drex & 8) != ((ins->rex & REX_OC) ? 8 : 0)) + return NULL; /* OC0 mismatch */ + ins->rex = (ins->rex & ~7) | (drex & 7); + + dst->segment = SEG_RMREG; + dst->basereg = drex >> 4; + return data; } + /* * Process an effective address (ModRM) specification. */ -static unsigned char *do_ea (unsigned char *data, int modrm, int asize, - int segsize, operand *op) +static uint8_t *do_ea(uint8_t *data, int modrm, int asize, + int segsize, operand * op, insn *ins) { int mod, rm, scale, index, base; + int rex; + uint8_t sib = 0; mod = (modrm >> 6) & 03; rm = modrm & 07; - if (mod == 3) { /* pure register version */ - op->basereg = rm; - op->segment |= SEG_RMREG; - return data; + if (mod != 3 && rm == 4 && asize != 16) + sib = *data++; + + if (ins->rex & REX_D) { + data = do_drex(data, ins); + if (!data) + return NULL; + } + rex = ins->rex; + + if (mod == 3) { /* pure register version */ + op->basereg = rm+(rex & REX_B ? 8 : 0); + op->segment |= SEG_RMREG; + return data; } - op->addr_size = 0; + op->disp_size = 0; + op->eaflags = 0; if (asize == 16) { - /* - * specifies the displacement size (none, byte or - * word), and specifies the register combination. - * Exception: mod=0,rm=6 does not specify [BP] as one might - * expect, but instead specifies [disp16]. - */ - op->indexreg = op->basereg = -1; - op->scale = 1; /* always, in 16 bits */ - switch (rm) { - case 0: op->basereg = R_BX; op->indexreg = R_SI; break; - case 1: op->basereg = R_BX; op->indexreg = R_DI; break; - case 2: op->basereg = R_BP; op->indexreg = R_SI; break; - case 3: op->basereg = R_BP; op->indexreg = R_DI; break; - case 4: op->basereg = R_SI; break; - case 5: op->basereg = R_DI; break; - case 6: op->basereg = R_BP; break; - case 7: op->basereg = R_BX; break; - } - if (rm == 6 && mod == 0) { /* special case */ - op->basereg = -1; - if (segsize != 16) - op->addr_size = 16; - mod = 2; /* fake disp16 */ - } - switch (mod) { - case 0: - op->segment |= SEG_NODISP; - break; - case 1: - op->segment |= SEG_DISP8; - op->offset = (signed char) *data++; - break; - case 2: - op->segment |= SEG_DISP16; - op->offset = *data++; - op->offset |= ((unsigned) *data++) << 8; - break; - } - return data; + /* + * specifies the displacement size (none, byte or + * word), and specifies the register combination. + * Exception: mod=0,rm=6 does not specify [BP] as one might + * expect, but instead specifies [disp16]. + */ + op->indexreg = op->basereg = -1; + op->scale = 1; /* always, in 16 bits */ + switch (rm) { + case 0: + op->basereg = R_BX; + op->indexreg = R_SI; + break; + case 1: + op->basereg = R_BX; + op->indexreg = R_DI; + break; + case 2: + op->basereg = R_BP; + op->indexreg = R_SI; + break; + case 3: + op->basereg = R_BP; + op->indexreg = R_DI; + break; + case 4: + op->basereg = R_SI; + break; + case 5: + op->basereg = R_DI; + break; + case 6: + op->basereg = R_BP; + break; + case 7: + op->basereg = R_BX; + break; + } + if (rm == 6 && mod == 0) { /* special case */ + op->basereg = -1; + if (segsize != 16) + op->disp_size = 16; + mod = 2; /* fake disp16 */ + } + switch (mod) { + case 0: + op->segment |= SEG_NODISP; + break; + case 1: + op->segment |= SEG_DISP8; + op->offset = (int8_t)*data++; + break; + case 2: + op->segment |= SEG_DISP16; + op->offset = *data++; + op->offset |= ((unsigned)*data++) << 8; + break; + } + return data; } else { - /* - * Once again, specifies displacement size (this time - * none, byte or *dword*), while specifies the base - * register. Again, [EBP] is missing, replaced by a pure - * disp32 (this time that's mod=0,rm=*5*). However, rm=4 - * indicates not a single base register, but instead the - * presence of a SIB byte... - */ - op->indexreg = -1; - switch (rm) { - case 0: op->basereg = R_EAX; break; - case 1: op->basereg = R_ECX; break; - case 2: op->basereg = R_EDX; break; - case 3: op->basereg = R_EBX; break; - case 5: op->basereg = R_EBP; break; - case 6: op->basereg = R_ESI; break; - case 7: op->basereg = R_EDI; break; - } - if (rm == 5 && mod == 0) { + /* + * Once again, specifies displacement size (this time + * none, byte or *dword*), while specifies the base + * register. Again, [EBP] is missing, replaced by a pure + * disp32 (this time that's mod=0,rm=*5*) in 32-bit mode, + * and RIP-relative addressing in 64-bit mode. + * + * However, rm=4 + * indicates not a single base register, but instead the + * presence of a SIB byte... + */ + int a64 = asize == 64; + + op->indexreg = -1; + + if (a64) + op->basereg = nasm_rd_reg64[rm | ((rex & REX_B) ? 8 : 0)]; + else + op->basereg = nasm_rd_reg32[rm | ((rex & REX_B) ? 8 : 0)]; + + if (rm == 5 && mod == 0) { + if (segsize == 64) { + op->eaflags |= EAF_REL; + op->segment |= SEG_RELATIVE; + mod = 2; /* fake disp32 */ + } + + if (asize != 64) + op->disp_size = asize; + op->basereg = -1; - if (segsize != 32) - op->addr_size = 32; - mod = 2; /* fake disp32 */ - } - if (rm == 4) { /* process SIB */ - scale = (*data >> 6) & 03; - index = (*data >> 3) & 07; - base = *data & 07; + mod = 2; /* fake disp32 */ + } + + if (rm == 4) { /* process SIB */ + scale = (sib >> 6) & 03; + index = (sib >> 3) & 07; + base = sib & 07; + + op->scale = 1 << scale; + + if (index == 4 && !(rex & REX_X)) + op->indexreg = -1; /* ESP/RSP cannot be an index */ + else if (a64) + op->indexreg = nasm_rd_reg64[index | ((rex & REX_X) ? 8 : 0)]; + else + op->indexreg = nasm_rd_reg32[index | ((rex & REX_X) ? 8 : 0)]; + + if (base == 5 && mod == 0) { + op->basereg = -1; + mod = 2; /* Fake disp32 */ + } else if (a64) + op->basereg = nasm_rd_reg64[base | ((rex & REX_B) ? 8 : 0)]; + else + op->basereg = nasm_rd_reg32[base | ((rex & REX_B) ? 8 : 0)]; + + if (segsize == 16) + op->disp_size = 32; + } + + switch (mod) { + case 0: + op->segment |= SEG_NODISP; + break; + case 1: + op->segment |= SEG_DISP8; + op->offset = gets8(data); data++; - - op->scale = 1 << scale; - switch (index) { - case 0: op->indexreg = R_EAX; break; - case 1: op->indexreg = R_ECX; break; - case 2: op->indexreg = R_EDX; break; - case 3: op->indexreg = R_EBX; break; - case 4: op->indexreg = -1; break; - case 5: op->indexreg = R_EBP; break; - case 6: op->indexreg = R_ESI; break; - case 7: op->indexreg = R_EDI; break; - } - - switch (base) { - case 0: op->basereg = R_EAX; break; - case 1: op->basereg = R_ECX; break; - case 2: op->basereg = R_EDX; break; - case 3: op->basereg = R_EBX; break; - case 4: op->basereg = R_ESP; break; - case 6: op->basereg = R_ESI; break; - case 7: op->basereg = R_EDI; break; - case 5: - if (mod == 0) { - mod = 2; - op->basereg = -1; - } else - op->basereg = R_EBP; - break; - } - } - switch (mod) { - case 0: - op->segment |= SEG_NODISP; - break; - case 1: - op->segment |= SEG_DISP8; - op->offset = (signed char) *data++; - break; - case 2: - op->segment |= SEG_DISP32; - op->offset = *data++; - op->offset |= ((unsigned) *data++) << 8; - op->offset |= ((long) *data++) << 16; - op->offset |= ((long) *data++) << 24; - break; - } - return data; + break; + case 2: + op->segment |= SEG_DISP32; + op->offset = gets32(data); + data += 4; + break; + } + return data; } } @@ -248,503 +390,1170 @@ static unsigned char *do_ea (unsigned char *data, int modrm, int asize, * Determine whether the instruction template in t corresponds to the data * stream in data. Return the number of bytes matched if so. */ -static int matches (struct itemplate *t, unsigned char *data, int asize, - int osize, int segsize, int rep, insn *ins) +#define case4(x) case (x): case (x)+1: case (x)+2: case (x)+3 + +static int matches(const struct itemplate *t, uint8_t *data, + const struct prefix_info *prefix, int segsize, insn *ins) { - unsigned char * r = (unsigned char *)(t->code); - unsigned char * origdata = data; - int a_used = FALSE, o_used = FALSE; - int drep = 0; + uint8_t *r = (uint8_t *)(t->code); + uint8_t *origdata = data; + bool a_used = false, o_used = false; + enum prefixes drep = 0; + enum prefixes dwait = 0; + uint8_t lock = prefix->lock; + int osize = prefix->osize; + int asize = prefix->asize; + int i, c; + int op1, op2; + struct operand *opx, *opy; + uint8_t opex = 0; + int s_field_for = -1; /* No 144/154 series code encountered */ + bool vex_ok = false; + int regmask = (segsize == 64) ? 15 : 7; - if ( rep == 0xF2 ) - drep = P_REPNE; - else if ( rep == 0xF3 ) - drep = P_REP; + for (i = 0; i < MAX_OPERANDS; i++) { + ins->oprs[i].segment = ins->oprs[i].disp_size = + (segsize == 64 ? SEG_64BIT : segsize == 32 ? SEG_32BIT : 0); + } + ins->condition = -1; + ins->rex = prefix->rex; + memset(ins->prefixes, 0, sizeof ins->prefixes); - while (*r) - { - int c = *r++; - if (c >= 01 && c <= 03) { - while (c--) - if (*r++ != *data++) - return FALSE; + if (t->flags & (segsize == 64 ? IF_NOLONG : IF_LONG)) + return false; + + if (prefix->rep == 0xF2) + drep = P_REPNE; + else if (prefix->rep == 0xF3) + drep = P_REP; + + dwait = prefix->wait ? P_WAIT : 0; + + while ((c = *r++) != 0) { + op1 = (c & 3) + ((opex & 1) << 2); + op2 = ((c >> 3) & 3) + ((opex & 2) << 1); + opx = &ins->oprs[op1]; + opy = &ins->oprs[op2]; + opex = 0; + + switch (c) { + case 01: + case 02: + case 03: + case 04: + while (c--) + if (*r++ != *data++) + return false; + break; + + case 05: + case 06: + case 07: + opex = c; + break; + + case4(010): + { + int t = *r++, d = *data++; + if (d < t || d > t + 7) + return false; + else { + opx->basereg = (d-t)+ + (ins->rex & REX_B ? 8 : 0); + opx->segment |= SEG_RMREG; + } + break; } - if (c == 04) { - switch (*data++) { - case 0x07: ins->oprs[0].basereg = 0; break; - case 0x17: ins->oprs[0].basereg = 2; break; - case 0x1F: ins->oprs[0].basereg = 3; break; - default: return FALSE; - } - } - if (c == 05) { - switch (*data++) { - case 0xA1: ins->oprs[0].basereg = 4; break; - case 0xA9: ins->oprs[0].basereg = 5; break; - default: return FALSE; - } - } - if (c == 06) { - switch (*data++) { - case 0x06: ins->oprs[0].basereg = 0; break; - case 0x0E: ins->oprs[0].basereg = 1; break; - case 0x16: ins->oprs[0].basereg = 2; break; - case 0x1E: ins->oprs[0].basereg = 3; break; - default: return FALSE; - } - } - if (c == 07) { - switch (*data++) { - case 0xA0: ins->oprs[0].basereg = 4; break; - case 0xA8: ins->oprs[0].basereg = 5; break; - default: return FALSE; - } - } - if (c >= 010 && c <= 012) { - int t = *r++, d = *data++; - if (d < t || d > t+7) - return FALSE; - else { - ins->oprs[c-010].basereg = d-t; - ins->oprs[c-010].segment |= SEG_RMREG; - } - } - if (c == 017) - if (*data++) - return FALSE; - if (c >= 014 && c <= 016) { - ins->oprs[c-014].offset = (signed char) *data++; - ins->oprs[c-014].segment |= SEG_SIGNED; - } - if (c >= 020 && c <= 022) - ins->oprs[c-020].offset = *data++; - if (c >= 024 && c <= 026) - ins->oprs[c-024].offset = *data++; - if (c >= 030 && c <= 032) { - ins->oprs[c-030].offset = *data++; - ins->oprs[c-030].offset |= (((unsigned) *data++) << 8); - } - if (c >= 034 && c <= 036) { - ins->oprs[c-034].offset = *data++; - ins->oprs[c-034].offset |= (((unsigned) *data++) << 8); + + case4(014): + case4(0274): + opx->offset = (int8_t)*data++; + opx->segment |= SEG_SIGNED; + break; + + case4(020): + opx->offset = *data++; + break; + + case4(024): + opx->offset = *data++; + break; + + case4(030): + opx->offset = getu16(data); + data += 2; + break; + + case4(034): if (osize == 32) { - ins->oprs[c-034].offset |= (((long) *data++) << 16); - ins->oprs[c-034].offset |= (((long) *data++) << 24); + opx->offset = getu32(data); + data += 4; + } else { + opx->offset = getu16(data); + data += 2; } - if (segsize != asize) - ins->oprs[c-034].addr_size = asize; - } - if (c >= 040 && c <= 042) { - ins->oprs[c-040].offset = *data++; - ins->oprs[c-040].offset |= (((unsigned) *data++) << 8); - ins->oprs[c-040].offset |= (((long) *data++) << 16); - ins->oprs[c-040].offset |= (((long) *data++) << 24); - } - if (c >= 044 && c <= 046) { - ins->oprs[c-044].offset = *data++; - ins->oprs[c-044].offset |= (((unsigned) *data++) << 8); - if (asize == 32) { - ins->oprs[c-044].offset |= (((long) *data++) << 16); - ins->oprs[c-044].offset |= (((long) *data++) << 24); + if (segsize != asize) + opx->disp_size = asize; + break; + + case4(040): + case4(0254): + opx->offset = getu32(data); + data += 4; + break; + + case4(044): + switch (asize) { + case 16: + opx->offset = getu16(data); + data += 2; + if (segsize != 16) + opx->disp_size = 16; + break; + case 32: + opx->offset = getu32(data); + data += 4; + if (segsize == 16) + opx->disp_size = 32; + break; + case 64: + opx->offset = getu64(data); + opx->disp_size = 64; + data += 8; + break; } - if (segsize != asize) - ins->oprs[c-044].addr_size = asize; - } - if (c >= 050 && c <= 052) { - ins->oprs[c-050].offset = (signed char) *data++; - ins->oprs[c-050].segment |= SEG_RELATIVE; - } - if (c >= 060 && c <= 062) { - ins->oprs[c-060].offset = *data++; - ins->oprs[c-060].offset |= (((unsigned) *data++) << 8); - ins->oprs[c-060].segment |= SEG_RELATIVE; - ins->oprs[c-060].segment &= ~SEG_32BIT; - } - if (c >= 064 && c <= 066) { - ins->oprs[c-064].offset = *data++; - ins->oprs[c-064].offset |= (((unsigned) *data++) << 8); - if (osize == 32) { - ins->oprs[c-064].offset |= (((long) *data++) << 16); - ins->oprs[c-064].offset |= (((long) *data++) << 24); - ins->oprs[c-064].segment |= SEG_32BIT; - } else - ins->oprs[c-064].segment &= ~SEG_32BIT; - ins->oprs[c-064].segment |= SEG_RELATIVE; - if (segsize != osize) { - ins->oprs[c-064].type = - (ins->oprs[c-064].type & NON_SIZE) - | ((osize == 16) ? BITS16 : BITS32); + break; + + case4(050): + opx->offset = gets8(data++); + opx->segment |= SEG_RELATIVE; + break; + + case4(054): + opx->offset = getu64(data); + data += 8; + break; + + case4(060): + opx->offset = gets16(data); + data += 2; + opx->segment |= SEG_RELATIVE; + opx->segment &= ~SEG_32BIT; + break; + + case4(064): + opx->segment |= SEG_RELATIVE; + if (osize == 16) { + opx->offset = gets16(data); + data += 2; + opx->segment &= ~(SEG_32BIT|SEG_64BIT); + } else if (osize == 32) { + opx->offset = gets32(data); + data += 4; + opx->segment &= ~SEG_64BIT; + opx->segment |= SEG_32BIT; } - } - if (c >= 070 && c <= 072) { - ins->oprs[c-070].offset = *data++; - ins->oprs[c-070].offset |= (((unsigned) *data++) << 8); - ins->oprs[c-070].offset |= (((long) *data++) << 16); - ins->oprs[c-070].offset |= (((long) *data++) << 24); - ins->oprs[c-070].segment |= SEG_32BIT | SEG_RELATIVE; - } - if (c >= 0100 && c < 0130) { + if (segsize != osize) { + opx->type = + (opx->type & ~SIZE_MASK) + | ((osize == 16) ? BITS16 : BITS32); + } + break; + + case4(070): + opx->offset = gets32(data); + data += 4; + opx->segment |= SEG_32BIT | SEG_RELATIVE; + break; + + case4(0100): + case4(0110): + case4(0120): + case4(0130): + { int modrm = *data++; - ins->oprs[c & 07].basereg = (modrm >> 3) & 07; - ins->oprs[c & 07].segment |= SEG_RMREG; - data = do_ea (data, modrm, asize, segsize, - &ins->oprs[(c >> 3) & 07]); + opx->segment |= SEG_RMREG; + data = do_ea(data, modrm, asize, segsize, opy, ins); + if (!data) + return false; + opx->basereg = ((modrm >> 3) & 7) + (ins->rex & REX_R ? 8 : 0); + break; } - if (c >= 0130 && c <= 0132) { - ins->oprs[c-0130].offset = *data++; - ins->oprs[c-0130].offset |= (((unsigned) *data++) << 8); + + case4(0140): + if (s_field_for == op1) { + opx->offset = gets8(data); + data++; + } else { + opx->offset = getu16(data); + data += 2; + } + break; + + case4(0144): + case4(0154): + s_field_for = (*data & 0x02) ? op1 : -1; + if ((*data++ & ~0x02) != *r++) + return false; + break; + + case4(0150): + if (s_field_for == op1) { + opx->offset = gets8(data); + data++; + } else { + opx->offset = getu32(data); + data += 4; + } + break; + + case4(0160): + ins->rex |= REX_D; + ins->drexdst = op1; + break; + + case4(0164): + ins->rex |= REX_D|REX_OC; + ins->drexdst = op1; + break; + + case 0171: + data = do_drex(data, ins); + if (!data) + return false; + break; + + case 0172: + { + uint8_t ximm = *data++; + c = *r++; + ins->oprs[c >> 3].basereg = (ximm >> 4) & regmask; + ins->oprs[c >> 3].segment |= SEG_RMREG; + ins->oprs[c & 7].offset = ximm & 15; } - if (c >= 0140 && c <= 0142) { - ins->oprs[c-0140].offset = *data++; - ins->oprs[c-0140].offset |= (((unsigned) *data++) << 8); - ins->oprs[c-0140].offset |= (((long) *data++) << 16); - ins->oprs[c-0140].offset |= (((long) *data++) << 24); + break; + + case 0173: + { + uint8_t ximm = *data++; + c = *r++; + + if ((c ^ ximm) & 15) + return false; + + ins->oprs[c >> 4].basereg = (ximm >> 4) & regmask; + ins->oprs[c >> 4].segment |= SEG_RMREG; } - if (c >= 0200 && c <= 0277) { - int modrm = *data++; - if (((modrm >> 3) & 07) != (c & 07)) - return FALSE; /* spare field doesn't match up */ - data = do_ea (data, modrm, asize, segsize, - &ins->oprs[(c >> 3) & 07]); + break; + + case 0174: + { + uint8_t ximm = *data++; + c = *r++; + + ins->oprs[c].basereg = (ximm >> 4) & regmask; + ins->oprs[c].segment |= SEG_RMREG; } - if (c >= 0300 && c <= 0302) { - if (asize) - ins->oprs[c-0300].segment |= SEG_32BIT; + break; + + case4(0200): + case4(0204): + case4(0210): + case4(0214): + case4(0220): + case4(0224): + case4(0230): + case4(0234): + { + int modrm = *data++; + if (((modrm >> 3) & 07) != (c & 07)) + return false; /* spare field doesn't match up */ + data = do_ea(data, modrm, asize, segsize, opy, ins); + if (!data) + return false; + break; + } + + case4(0260): + { + int vexm = *r++; + int vexwlp = *r++; + ins->rex |= REX_V; + if ((prefix->rex & (REX_V|REX_D|REX_P)) != REX_V) + return false; + + if ((vexm & 0x1f) != prefix->vex_m) + return false; + + switch (vexwlp & 030) { + case 000: + if (prefix->rex & REX_W) + return false; + break; + case 010: + if (!(prefix->rex & REX_W)) + return false; + ins->rex &= ~REX_W; + break; + case 020: /* VEX.W is a don't care */ + ins->rex &= ~REX_W; + break; + case 030: + break; + } + + if ((vexwlp & 007) != prefix->vex_lp) + return false; + + opx->segment |= SEG_RMREG; + opx->basereg = prefix->vex_v; + vex_ok = true; + break; + } + + case 0270: + { + int vexm = *r++; + int vexwlp = *r++; + ins->rex |= REX_V; + if ((prefix->rex & (REX_V|REX_D|REX_P)) != REX_V) + return false; + + if ((vexm & 0x1f) != prefix->vex_m) + return false; + + switch (vexwlp & 030) { + case 000: + if (ins->rex & REX_W) + return false; + break; + case 010: + if (!(ins->rex & REX_W)) + return false; + break; + default: + break; /* Need to do anything special here? */ + } + + if ((vexwlp & 007) != prefix->vex_lp) + return false; + + if (prefix->vex_v != 0) + return false; + + vex_ok = true; + break; + } + + case 0310: + if (asize != 16) + return false; + else + a_used = true; + break; + + case 0311: + if (asize != 32) + return false; + else + a_used = true; + break; + + case 0312: + if (asize != segsize) + return false; + else + a_used = true; + break; + + case 0313: + if (asize != 64) + return false; else - ins->oprs[c-0300].segment &= ~SEG_32BIT; - a_used = TRUE; + a_used = true; + break; + + case 0314: + if (prefix->rex & REX_B) + return false; + break; + + case 0315: + if (prefix->rex & REX_X) + return false; + break; + + case 0316: + if (prefix->rex & REX_R) + return false; + break; + + case 0317: + if (prefix->rex & REX_W) + return false; + break; + + case 0320: + if (osize != 16) + return false; + else + o_used = true; + break; + + case 0321: + if (osize != 32) + return false; + else + o_used = true; + break; + + case 0322: + if (osize != (segsize == 16) ? 16 : 32) + return false; + else + o_used = true; + break; + + case 0323: + ins->rex |= REX_W; /* 64-bit only instruction */ + osize = 64; + o_used = true; + break; + + case 0324: + if (!(ins->rex & (REX_P|REX_W)) || osize != 64) + return false; + o_used = true; + break; + + case 0325: + ins->rex |= REX_NH; + break; + + case 0330: + { + int t = *r++, d = *data++; + if (d < t || d > t + 15) + return false; + else + ins->condition = d - t; + break; } - if (c == 0310) { - if (asize == 32) - return FALSE; - else - a_used = TRUE; - } - if (c == 0311) { - if (asize == 16) - return FALSE; - else - a_used = TRUE; - } - if (c == 0312) { - if (asize != segsize) - return FALSE; - else - a_used = TRUE; - } - if (c == 0320) { - if (osize == 32) - return FALSE; - else - o_used = TRUE; - } - if (c == 0321) { - if (osize == 16) - return FALSE; - else - o_used = TRUE; - } - if (c == 0322) { - if (osize != segsize) - return FALSE; - else - o_used = TRUE; - } - if (c == 0330) { - int t = *r++, d = *data++; - if (d < t || d > t+15) - return FALSE; - else - ins->condition = d - t; - } - if (c == 0331) { - if ( rep ) - return FALSE; - } - if (c == 0332) { - if (drep == P_REP) - drep = P_REPE; - } - if (c == 0333) { - if ( rep != 0xF3 ) - return FALSE; + + case 0331: + if (prefix->rep) + return false; + break; + + case 0332: + if (prefix->rep != 0xF2) + return false; drep = 0; + break; + + case 0333: + if (prefix->rep != 0xF3) + return false; + drep = 0; + break; + + case 0334: + if (lock) { + ins->rex |= REX_R; + lock = 0; + } + break; + + case 0335: + if (drep == P_REP) + drep = P_REPE; + break; + + case 0336: + case 0337: + break; + + case 0340: + return false; + + case 0341: + if (prefix->wait != 0x9B) + return false; + dwait = 0; + break; + + case4(0344): + ins->oprs[0].basereg = (*data++ >> 3) & 7; + break; + + case 0360: + if (prefix->osp || prefix->rep) + return false; + break; + + case 0361: + if (!prefix->osp || prefix->rep) + return false; + o_used = true; + break; + + case 0362: + if (prefix->osp || prefix->rep != 0xf2) + return false; + drep = 0; + break; + + case 0363: + if (prefix->osp || prefix->rep != 0xf3) + return false; + drep = 0; + break; + + case 0364: + if (prefix->osp) + return false; + break; + + case 0365: + if (prefix->asp) + return false; + break; + + case 0366: + if (!prefix->osp) + return false; + o_used = true; + break; + + case 0367: + if (!prefix->asp) + return false; + a_used = true; + break; + + default: + return false; /* Unknown code */ } } + if (!vex_ok && (ins->rex & REX_V)) + return false; + + /* REX cannot be combined with DREX or VEX */ + if ((ins->rex & (REX_D|REX_V)) && (prefix->rex & REX_P)) + return false; + /* * Check for unused rep or a/o prefixes. */ - ins->nprefix = 0; - if (drep) - ins->prefixes[ins->nprefix++] = drep; - if (!a_used && asize != segsize) - ins->prefixes[ins->nprefix++] = (asize == 16 ? P_A16 : P_A32); - if (!o_used && osize != segsize) - ins->prefixes[ins->nprefix++] = (osize == 16 ? P_O16 : P_O32); + for (i = 0; i < t->operands; i++) { + if (ins->oprs[i].segment != SEG_RMREG) + a_used = true; + } + + if (lock) { + if (ins->prefixes[PPS_LREP]) + return false; + ins->prefixes[PPS_LREP] = P_LOCK; + } + if (drep) { + if (ins->prefixes[PPS_LREP]) + return false; + ins->prefixes[PPS_LREP] = drep; + } + ins->prefixes[PPS_WAIT] = dwait; + if (!o_used) { + if (osize != ((segsize == 16) ? 16 : 32)) { + enum prefixes pfx = 0; + + switch (osize) { + case 16: + pfx = P_O16; + break; + case 32: + pfx = P_O32; + break; + case 64: + pfx = P_O64; + break; + } + + if (ins->prefixes[PPS_OSIZE]) + return false; + ins->prefixes[PPS_OSIZE] = pfx; + } + } + if (!a_used && asize != segsize) { + if (ins->prefixes[PPS_ASIZE]) + return false; + ins->prefixes[PPS_ASIZE] = asize == 16 ? P_A16 : P_A32; + } + + /* Fix: check for redundant REX prefixes */ return data - origdata; } -long disasm (unsigned char *data, char *output, int segsize, long offset, - int autosync, unsigned long prefer) +/* Condition names for disassembly, sorted by x86 code */ +static const char * const condition_name[16] = { + "o", "no", "c", "nc", "z", "nz", "na", "a", + "s", "ns", "pe", "po", "l", "nl", "ng", "g" +}; + +int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize, + int32_t offset, int autosync, uint32_t prefer) { - struct itemplate **p, **best_p; + const struct itemplate * const *p, * const *best_p; + const struct disasm_index *ix; + uint8_t *dp; int length, best_length = 0; char *segover; - int rep, lock, asize, osize, i, slen, colon; - unsigned char *origdata; + int i, slen, colon, n; + uint8_t *origdata; int works; insn tmp_ins, ins; - unsigned long goodness, best; + uint32_t goodness, best; + int best_pref; + struct prefix_info prefix; + bool end_prefix; + + memset(&ins, 0, sizeof ins); /* * Scan for prefixes. */ - asize = osize = segsize; + memset(&prefix, 0, sizeof prefix); + prefix.asize = segsize; + prefix.osize = (segsize == 64) ? 32 : segsize; segover = NULL; - rep = lock = 0; origdata = data; - for (;;) { - if (*data == 0xF3 || *data == 0xF2) - rep = *data++; - else if (*data == 0xF0) - lock = *data++; - else if (*data == 0x2E || *data == 0x36 || *data == 0x3E || - *data == 0x26 || *data == 0x64 || *data == 0x65) { - switch (*data++) { - case 0x2E: segover = "cs"; break; - case 0x36: segover = "ss"; break; - case 0x3E: segover = "ds"; break; - case 0x26: segover = "es"; break; - case 0x64: segover = "fs"; break; - case 0x65: segover = "gs"; break; - } - } else if (*data == 0x66) - osize = 48 - segsize, data++; - else if (*data == 0x67) - asize = 48 - segsize, data++; - else + + ix = itable; + + end_prefix = false; + while (!end_prefix) { + switch (*data) { + case 0xF2: + case 0xF3: + prefix.rep = *data++; break; + + case 0x9B: + prefix.wait = *data++; + break; + + case 0xF0: + prefix.lock = *data++; + break; + + case 0x2E: + segover = "cs", prefix.seg = *data++; + break; + case 0x36: + segover = "ss", prefix.seg = *data++; + break; + case 0x3E: + segover = "ds", prefix.seg = *data++; + break; + case 0x26: + segover = "es", prefix.seg = *data++; + break; + case 0x64: + segover = "fs", prefix.seg = *data++; + break; + case 0x65: + segover = "gs", prefix.seg = *data++; + break; + + case 0x66: + prefix.osize = (segsize == 16) ? 32 : 16; + prefix.osp = *data++; + break; + case 0x67: + prefix.asize = (segsize == 32) ? 16 : 32; + prefix.asp = *data++; + break; + + case 0xC4: + case 0xC5: + if (segsize == 64 || (data[1] & 0xc0) == 0xc0) { + prefix.vex[0] = *data++; + prefix.vex[1] = *data++; + + prefix.rex = REX_V; + prefix.vex_c = RV_VEX; + + if (prefix.vex[0] == 0xc4) { + prefix.vex[2] = *data++; + prefix.rex |= (~prefix.vex[1] >> 5) & 7; /* REX_RXB */ + prefix.rex |= (prefix.vex[2] >> (7-3)) & REX_W; + prefix.vex_m = prefix.vex[1] & 0x1f; + prefix.vex_v = (~prefix.vex[2] >> 3) & 15; + prefix.vex_lp = prefix.vex[2] & 7; + } else { + prefix.rex |= (~prefix.vex[1] >> (7-2)) & REX_R; + prefix.vex_m = 1; + prefix.vex_v = (~prefix.vex[1] >> 3) & 15; + prefix.vex_lp = prefix.vex[1] & 7; + } + + ix = itable_vex[RV_VEX][prefix.vex_m][prefix.vex_lp]; + } + end_prefix = true; + break; + + case 0x8F: + if ((data[1] & 030) != 0 && + (segsize == 64 || (data[1] & 0xc0) == 0xc0)) { + prefix.vex[0] = *data++; + prefix.vex[1] = *data++; + prefix.vex[2] = *data++; + + prefix.rex = REX_V; + prefix.vex_c = RV_XOP; + + prefix.rex |= (~prefix.vex[1] >> 5) & 7; /* REX_RXB */ + prefix.rex |= (prefix.vex[2] >> (7-3)) & REX_W; + prefix.vex_m = prefix.vex[1] & 0x1f; + prefix.vex_v = (~prefix.vex[2] >> 3) & 15; + prefix.vex_lp = prefix.vex[2] & 7; + + ix = itable_vex[RV_XOP][prefix.vex_m][prefix.vex_lp]; + } + end_prefix = true; + break; + + case REX_P + 0x0: + case REX_P + 0x1: + case REX_P + 0x2: + case REX_P + 0x3: + case REX_P + 0x4: + case REX_P + 0x5: + case REX_P + 0x6: + case REX_P + 0x7: + case REX_P + 0x8: + case REX_P + 0x9: + case REX_P + 0xA: + case REX_P + 0xB: + case REX_P + 0xC: + case REX_P + 0xD: + case REX_P + 0xE: + case REX_P + 0xF: + if (segsize == 64) { + prefix.rex = *data++; + if (prefix.rex & REX_W) + prefix.osize = 64; + } + end_prefix = true; + break; + + default: + end_prefix = true; + break; + } } - tmp_ins.oprs[0].segment = tmp_ins.oprs[1].segment = - tmp_ins.oprs[2].segment = - tmp_ins.oprs[0].addr_size = tmp_ins.oprs[1].addr_size = - tmp_ins.oprs[2].addr_size = (segsize == 16 ? 0 : SEG_32BIT); - tmp_ins.condition = -1; - best = ~0UL; /* Worst possible */ + best = -1; /* Worst possible */ best_p = NULL; - for (p = itable[*data]; *p; p++) { - if ( (length = matches(*p, data, asize, osize, - segsize, rep, &tmp_ins)) ) { - works = TRUE; - /* - * Final check to make sure the types of r/m match up. - */ - for (i = 0; i < (*p)->operands; i++) { - if ( - /* If it's a mem-only EA but we have a register, die. */ - ((tmp_ins.oprs[i].segment & SEG_RMREG) && - !(MEMORY & ~(*p)->opd[i])) || + best_pref = INT_MAX; - /* If it's a reg-only EA but we have a memory ref, die. */ - (!(tmp_ins.oprs[i].segment & SEG_RMREG) && - !(REGNORM & ~(*p)->opd[i]) && - !((*p)->opd[i] & REG_SMASK)) || + if (!ix) + return 0; /* No instruction table at all... */ - /* Register type mismatch (eg FS vs REG_DESS): die. */ - ((((*p)->opd[i] & (REGISTER | FPUREG)) || - (tmp_ins.oprs[i].segment & SEG_RMREG)) && - !whichreg ((*p)->opd[i], tmp_ins.oprs[i].basereg))) { - works = FALSE; - break; - } - } + dp = data; + ix += *dp++; + while (ix->n == -1) { + ix = (const struct disasm_index *)ix->p + *dp++; + } - if (works) { - goodness = ((*p)->flags & IF_PFMASK) ^ prefer; - if ( goodness < best ) { - /* This is the best one found so far */ - best = goodness; - best_p = p; - best_length = length; - ins = tmp_ins; - } - } - } + p = (const struct itemplate * const *)ix->p; + for (n = ix->n; n; n--, p++) { + if ((length = matches(*p, data, &prefix, segsize, &tmp_ins))) { + works = true; + /* + * Final check to make sure the types of r/m match up. + * XXX: Need to make sure this is actually correct. + */ + for (i = 0; i < (*p)->operands; i++) { + if (!((*p)->opd[i] & SAME_AS) && + ( + /* If it's a mem-only EA but we have a + register, die. */ + ((tmp_ins.oprs[i].segment & SEG_RMREG) && + is_class(MEMORY, (*p)->opd[i])) || + /* If it's a reg-only EA but we have a memory + ref, die. */ + (!(tmp_ins.oprs[i].segment & SEG_RMREG) && + !(REG_EA & ~(*p)->opd[i]) && + !((*p)->opd[i] & REG_SMASK)) || + /* Register type mismatch (eg FS vs REG_DESS): + die. */ + ((((*p)->opd[i] & (REGISTER | FPUREG)) || + (tmp_ins.oprs[i].segment & SEG_RMREG)) && + !whichreg((*p)->opd[i], + tmp_ins.oprs[i].basereg, tmp_ins.rex)) + )) { + works = false; + break; + } + } + + /* + * Note: we always prefer instructions which incorporate + * prefixes in the instructions themselves. This is to allow + * e.g. PAUSE to be preferred to REP NOP, and deal with + * MMX/SSE instructions where prefixes are used to select + * between MMX and SSE register sets or outright opcode + * selection. + */ + if (works) { + int i, nprefix; + goodness = ((*p)->flags & IF_PFMASK) ^ prefer; + nprefix = 0; + for (i = 0; i < MAXPREFIX; i++) + if (tmp_ins.prefixes[i]) + nprefix++; + if (nprefix < best_pref || + (nprefix == best_pref && goodness < best)) { + /* This is the best one found so far */ + best = goodness; + best_p = p; + best_pref = nprefix; + best_length = length; + ins = tmp_ins; + } + } + } } if (!best_p) - return 0; /* no instruction was matched */ + return 0; /* no instruction was matched */ /* Pick the best match */ - p = best_p; + p = best_p; length = best_length; slen = 0; - if (lock) - slen += sprintf(output+slen, "lock "); - for (i = 0; i < ins.nprefix; i++) - switch (ins.prefixes[i]) { - case P_REP: slen += sprintf(output+slen, "rep "); break; - case P_REPE: slen += sprintf(output+slen, "repe "); break; - case P_REPNE: slen += sprintf(output+slen, "repne "); break; - case P_A16: slen += sprintf(output+slen, "a16 "); break; - case P_A32: slen += sprintf(output+slen, "a32 "); break; - case P_O16: slen += sprintf(output+slen, "o16 "); break; - case P_O32: slen += sprintf(output+slen, "o32 "); break; + /* TODO: snprintf returns the value that the string would have if + * the buffer were long enough, and not the actual length of + * the returned string, so each instance of using the return + * value of snprintf should actually be checked to assure that + * the return value is "sane." Maybe a macro wrapper could + * be used for that purpose. + */ + for (i = 0; i < MAXPREFIX; i++) { + const char *prefix = prefix_name(ins.prefixes[i]); + if (prefix) + slen += snprintf(output+slen, outbufsize-slen, "%s ", prefix); + } + + i = (*p)->opcode; + if (i >= FIRST_COND_OPCODE) + slen += snprintf(output + slen, outbufsize - slen, "%s%s", + nasm_insn_names[i], condition_name[ins.condition]); + else + slen += snprintf(output + slen, outbufsize - slen, "%s", + nasm_insn_names[i]); + + colon = false; + length += data - origdata; /* fix up for prefixes */ + for (i = 0; i < (*p)->operands; i++) { + opflags_t t = (*p)->opd[i]; + const operand *o = &ins.oprs[i]; + int64_t offs; + + if (t & SAME_AS) { + o = &ins.oprs[t & ~SAME_AS]; + t = (*p)->opd[t & ~SAME_AS]; } - for (i = 0; i < elements(ico); i++) - if ((*p)->opcode == ico[i]) { - slen += sprintf(output+slen, "%s%s", icn[i], - whichcond(ins.condition)); - break; - } - if (i >= elements(ico)) - slen += sprintf(output+slen, "%s", insn_names[(*p)->opcode]); - colon = FALSE; - length += data - origdata; /* fix up for prefixes */ - for (i=0; i<(*p)->operands; i++) { - output[slen++] = (colon ? ':' : i==0 ? ' ' : ','); + output[slen++] = (colon ? ':' : i == 0 ? ' ' : ','); - if (ins.oprs[i].segment & SEG_RELATIVE) { - ins.oprs[i].offset += offset + length; - /* - * sort out wraparound - */ - if (!(ins.oprs[i].segment & SEG_32BIT)) - ins.oprs[i].offset &= 0xFFFF; - /* - * add sync marker, if autosync is on - */ - if (autosync) - add_sync (ins.oprs[i].offset, 0L); - } + offs = o->offset; + if (o->segment & SEG_RELATIVE) { + offs += offset + length; + /* + * sort out wraparound + */ + if (!(o->segment & (SEG_32BIT|SEG_64BIT))) + offs &= 0xffff; + else if (segsize != 64) + offs &= 0xffffffff; - if ((*p)->opd[i] & COLON) - colon = TRUE; - else - colon = FALSE; + /* + * add sync marker, if autosync is on + */ + if (autosync) + add_sync(offs, 0L); + } - if (((*p)->opd[i] & (REGISTER | FPUREG)) || - (ins.oprs[i].segment & SEG_RMREG)) - { - ins.oprs[i].basereg = whichreg ((*p)->opd[i], - ins.oprs[i].basereg); - if ( (*p)->opd[i] & TO ) - slen += sprintf(output+slen, "to "); - slen += sprintf(output+slen, "%s", - reg_names[ins.oprs[i].basereg-EXPR_REG_START]); - } else if (!(UNITY & ~(*p)->opd[i])) { - output[slen++] = '1'; - } else if ( (*p)->opd[i] & IMMEDIATE ) { - if ( (*p)->opd[i] & BITS8 ) { - slen += sprintf(output+slen, "byte "); - if (ins.oprs[i].segment & SEG_SIGNED) { - if (ins.oprs[i].offset < 0) { - ins.oprs[i].offset *= -1; - output[slen++] = '-'; - } else - output[slen++] = '+'; + if (t & COLON) + colon = true; + else + colon = false; + + if ((t & (REGISTER | FPUREG)) || + (o->segment & SEG_RMREG)) { + enum reg_enum reg; + reg = whichreg(t, o->basereg, ins.rex); + if (t & TO) + slen += snprintf(output + slen, outbufsize - slen, "to "); + slen += snprintf(output + slen, outbufsize - slen, "%s", + nasm_reg_names[reg-EXPR_REG_START]); + } else if (!(UNITY & ~t)) { + output[slen++] = '1'; + } else if (t & IMMEDIATE) { + if (t & BITS8) { + slen += + snprintf(output + slen, outbufsize - slen, "byte "); + if (o->segment & SEG_SIGNED) { + if (offs < 0) { + offs *= -1; + output[slen++] = '-'; + } else + output[slen++] = '+'; + } + } else if (t & BITS16) { + slen += + snprintf(output + slen, outbufsize - slen, "word "); + } else if (t & BITS32) { + slen += + snprintf(output + slen, outbufsize - slen, "dword "); + } else if (t & BITS64) { + slen += + snprintf(output + slen, outbufsize - slen, "qword "); + } else if (t & NEAR) { + slen += + snprintf(output + slen, outbufsize - slen, "near "); + } else if (t & SHORT) { + slen += + snprintf(output + slen, outbufsize - slen, "short "); + } + slen += + snprintf(output + slen, outbufsize - slen, "0x%"PRIx64"", + offs); + } else if (!(MEM_OFFS & ~t)) { + slen += + snprintf(output + slen, outbufsize - slen, + "[%s%s%s0x%"PRIx64"]", + (segover ? segover : ""), + (segover ? ":" : ""), + (o->disp_size == 64 ? "qword " : + o->disp_size == 32 ? "dword " : + o->disp_size == 16 ? "word " : ""), offs); + segover = NULL; + } else if (is_class(REGMEM, t)) { + int started = false; + if (t & BITS8) + slen += + snprintf(output + slen, outbufsize - slen, "byte "); + if (t & BITS16) + slen += + snprintf(output + slen, outbufsize - slen, "word "); + if (t & BITS32) + slen += + snprintf(output + slen, outbufsize - slen, "dword "); + if (t & BITS64) + slen += + snprintf(output + slen, outbufsize - slen, "qword "); + if (t & BITS80) + slen += + snprintf(output + slen, outbufsize - slen, "tword "); + if (t & BITS128) + slen += + snprintf(output + slen, outbufsize - slen, "oword "); + if (t & BITS256) + slen += + snprintf(output + slen, outbufsize - slen, "yword "); + if (t & FAR) + slen += snprintf(output + slen, outbufsize - slen, "far "); + if (t & NEAR) + slen += + snprintf(output + slen, outbufsize - slen, "near "); + output[slen++] = '['; + if (o->disp_size) + slen += snprintf(output + slen, outbufsize - slen, "%s", + (o->disp_size == 64 ? "qword " : + o->disp_size == 32 ? "dword " : + o->disp_size == 16 ? "word " : + "")); + if (o->eaflags & EAF_REL) + slen += snprintf(output + slen, outbufsize - slen, "rel "); + if (segover) { + slen += + snprintf(output + slen, outbufsize - slen, "%s:", + segover); + segover = NULL; + } + if (o->basereg != -1) { + slen += snprintf(output + slen, outbufsize - slen, "%s", + nasm_reg_names[(o->basereg-EXPR_REG_START)]); + started = true; + } + if (o->indexreg != -1) { + if (started) + output[slen++] = '+'; + slen += snprintf(output + slen, outbufsize - slen, "%s", + nasm_reg_names[(o->indexreg-EXPR_REG_START)]); + if (o->scale > 1) + slen += + snprintf(output + slen, outbufsize - slen, "*%d", + o->scale); + started = true; + } + + + if (o->segment & SEG_DISP8) { + const char *prefix; + uint8_t offset = offs; + if ((int8_t)offset < 0) { + prefix = "-"; + offset = -offset; + } else { + prefix = "+"; } - } else if ( (*p)->opd[i] & BITS16 ) { - slen += sprintf(output+slen, "word "); - } else if ( (*p)->opd[i] & BITS32 ) { - slen += sprintf(output+slen, "dword "); - } else if ( (*p)->opd[i] & NEAR ) { - slen += sprintf(output+slen, "near "); - } else if ( (*p)->opd[i] & SHORT ) { - slen += sprintf(output+slen, "short "); - } - slen += sprintf(output+slen, "0x%lx", ins.oprs[i].offset); - } else if ( !(MEM_OFFS & ~(*p)->opd[i]) ) { - slen += sprintf(output+slen, "[%s%s%s0x%lx]", - (segover ? segover : ""), - (segover ? ":" : ""), - (ins.oprs[i].addr_size == 32 ? "dword " : - ins.oprs[i].addr_size == 16 ? "word " : ""), - ins.oprs[i].offset); - segover = NULL; - } else if ( !(REGMEM & ~(*p)->opd[i]) ) { - int started = FALSE; - if ( (*p)->opd[i] & BITS8 ) - slen += sprintf(output+slen, "byte "); - if ( (*p)->opd[i] & BITS16 ) - slen += sprintf(output+slen, "word "); - if ( (*p)->opd[i] & BITS32 ) - slen += sprintf(output+slen, "dword "); - if ( (*p)->opd[i] & BITS64 ) - slen += sprintf(output+slen, "qword "); - if ( (*p)->opd[i] & BITS80 ) - slen += sprintf(output+slen, "tword "); - if ( (*p)->opd[i] & FAR ) - slen += sprintf(output+slen, "far "); - if ( (*p)->opd[i] & NEAR ) - slen += sprintf(output+slen, "near "); - output[slen++] = '['; - if (ins.oprs[i].addr_size) - slen += sprintf(output+slen, "%s", - (ins.oprs[i].addr_size == 32 ? "dword " : - ins.oprs[i].addr_size == 16 ? "word " : "")); - if (segover) { - slen += sprintf(output+slen, "%s:", segover); - segover = NULL; - } - if (ins.oprs[i].basereg != -1) { - slen += sprintf(output+slen, "%s", - reg_names[(ins.oprs[i].basereg - - EXPR_REG_START)]); - started = TRUE; - } - if (ins.oprs[i].indexreg != -1) { - if (started) - output[slen++] = '+'; - slen += sprintf(output+slen, "%s", - reg_names[(ins.oprs[i].indexreg - - EXPR_REG_START)]); - if (ins.oprs[i].scale > 1) - slen += sprintf(output+slen, "*%d", ins.oprs[i].scale); - started = TRUE; - } - if (ins.oprs[i].segment & SEG_DISP8) { - int sign = '+'; - if (ins.oprs[i].offset & 0x80) { - ins.oprs[i].offset = - (signed char) ins.oprs[i].offset; - sign = '-'; + slen += + snprintf(output + slen, outbufsize - slen, "%s0x%"PRIx8"", + prefix, offset); + } else if (o->segment & SEG_DISP16) { + const char *prefix; + uint16_t offset = offs; + if ((int16_t)offset < 0 && started) { + offset = -offset; + prefix = "-"; + } else { + prefix = started ? "+" : ""; } - slen += sprintf(output+slen, "%c0x%lx", sign, - ins.oprs[i].offset); - } else if (ins.oprs[i].segment & SEG_DISP16) { - if (started) - output[slen++] = '+'; - slen += sprintf(output+slen, "0x%lx", ins.oprs[i].offset); - } else if (ins.oprs[i].segment & SEG_DISP32) { - if (started) - output[slen++] = '+'; - slen += sprintf(output+slen, "0x%lx", ins.oprs[i].offset); - } - output[slen++] = ']'; - } else { - slen += sprintf(output+slen, "", i); - } + slen += + snprintf(output + slen, outbufsize - slen, + "%s0x%"PRIx16"", prefix, offset); + } else if (o->segment & SEG_DISP32) { + if (prefix.asize == 64) { + const char *prefix; + uint64_t offset = (int64_t)(int32_t)offs; + if ((int32_t)offs < 0 && started) { + offset = -offset; + prefix = "-"; + } else { + prefix = started ? "+" : ""; + } + slen += + snprintf(output + slen, outbufsize - slen, + "%s0x%"PRIx64"", prefix, offset); + } else { + const char *prefix; + uint32_t offset = offs; + if ((int32_t) offset < 0 && started) { + offset = -offset; + prefix = "-"; + } else { + prefix = started ? "+" : ""; + } + slen += + snprintf(output + slen, outbufsize - slen, + "%s0x%"PRIx32"", prefix, offset); + } + } + output[slen++] = ']'; + } else { + slen += + snprintf(output + slen, outbufsize - slen, "", + i); + } } output[slen] = '\0'; - if (segover) { /* unused segment override */ - char *p = output; - int count = slen+1; - while (count--) - p[count+3] = p[count]; - strncpy (output, segover, 2); - output[2] = ' '; + if (segover) { /* unused segment override */ + char *p = output; + int count = slen + 1; + while (count--) + p[count + 3] = p[count]; + strncpy(output, segover, 2); + output[2] = ' '; } return length; } -long eatbyte (unsigned char *data, char *output) +/* + * This is called when we don't have a complete instruction. If it + * is a standalone *single-byte* prefix show it as such, otherwise + * print it as a literal. + */ +int32_t eatbyte(uint8_t *data, char *output, int outbufsize, int segsize) { - sprintf(output, "db 0x%02X", *data); + uint8_t byte = *data; + const char *str = NULL; + + switch (byte) { + case 0xF2: + str = "repne"; + break; + case 0xF3: + str = "rep"; + break; + case 0x9B: + str = "wait"; + break; + case 0xF0: + str = "lock"; + break; + case 0x2E: + str = "cs"; + break; + case 0x36: + str = "ss"; + break; + case 0x3E: + str = "ss"; + break; + case 0x26: + str = "es"; + break; + case 0x64: + str = "fs"; + break; + case 0x65: + str = "gs"; + break; + case 0x66: + str = (segsize == 16) ? "o32" : "o16"; + break; + case 0x67: + str = (segsize == 32) ? "a16" : "a32"; + break; + case REX_P + 0x0: + case REX_P + 0x1: + case REX_P + 0x2: + case REX_P + 0x3: + case REX_P + 0x4: + case REX_P + 0x5: + case REX_P + 0x6: + case REX_P + 0x7: + case REX_P + 0x8: + case REX_P + 0x9: + case REX_P + 0xA: + case REX_P + 0xB: + case REX_P + 0xC: + case REX_P + 0xD: + case REX_P + 0xE: + case REX_P + 0xF: + if (segsize == 64) { + snprintf(output, outbufsize, "rex%s%s%s%s%s", + (byte == REX_P) ? "" : ".", + (byte & REX_W) ? "w" : "", + (byte & REX_R) ? "r" : "", + (byte & REX_X) ? "x" : "", + (byte & REX_B) ? "b" : ""); + break; + } + /* else fall through */ + default: + snprintf(output, outbufsize, "db 0x%02x", byte); + break; + } + + if (str) + snprintf(output, outbufsize, "%s", str); + return 1; } diff --git a/uppsrc/plugin/ndisasm/lib/disasm.h b/uppsrc/plugin/ndisasm/lib/disasm.h index 16cdbda08..3edbfd521 100644 --- a/uppsrc/plugin/ndisasm/lib/disasm.h +++ b/uppsrc/plugin/ndisasm/lib/disasm.h @@ -1,18 +1,47 @@ -/* disasm.h header file for disasm.c +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * disasm.h header file for disasm.c */ #ifndef NASM_DISASM_H #define NASM_DISASM_H -#define INSN_MAX 32 /* one instruction can't be longer than this */ +#define INSN_MAX 32 /* one instruction can't be longer than this */ -long disasm (unsigned char *data, char *output, int segsize, long offset, - int autosync, unsigned long prefer); -long eatbyte (unsigned char *data, char *output); +int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize, + int32_t offset, int autosync, uint32_t prefer); +int32_t eatbyte(uint8_t *data, char *output, int outbufsize, int segsize); #endif diff --git a/uppsrc/plugin/ndisasm/lib/exprlib.c b/uppsrc/plugin/ndisasm/lib/exprlib.c new file mode 100644 index 000000000..4db864c0d --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/exprlib.c @@ -0,0 +1,186 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * exprlib.c + * + * Library routines to manipulate expression data types. + */ + +#include "nasm.h" + +/* + * Return true if the argument is a simple scalar. (Or a far- + * absolute, which counts.) + */ +int is_simple(expr * vect) +{ + while (vect->type && !vect->value) + vect++; + if (!vect->type) + return 1; + if (vect->type != EXPR_SIMPLE) + return 0; + do { + vect++; + } while (vect->type && !vect->value); + if (vect->type && vect->type < EXPR_SEGBASE + SEG_ABS) + return 0; + return 1; +} + +/* + * Return true if the argument is a simple scalar, _NOT_ a far- + * absolute. + */ +int is_really_simple(expr * vect) +{ + while (vect->type && !vect->value) + vect++; + if (!vect->type) + return 1; + if (vect->type != EXPR_SIMPLE) + return 0; + do { + vect++; + } while (vect->type && !vect->value); + if (vect->type) + return 0; + return 1; +} + +/* + * Return true if the argument is relocatable (i.e. a simple + * scalar, plus at most one segment-base, plus possibly a WRT). + */ +int is_reloc(expr * vect) +{ + while (vect->type && !vect->value) /* skip initial value-0 terms */ + vect++; + if (!vect->type) /* trivially return true if nothing */ + return 1; /* is present apart from value-0s */ + if (vect->type < EXPR_SIMPLE) /* false if a register is present */ + return 0; + if (vect->type == EXPR_SIMPLE) { /* skip over a pure number term... */ + do { + vect++; + } while (vect->type && !vect->value); + if (!vect->type) /* ...returning true if that's all */ + return 1; + } + if (vect->type == EXPR_WRT) { /* skip over a WRT term... */ + do { + vect++; + } while (vect->type && !vect->value); + if (!vect->type) /* ...returning true if that's all */ + return 1; + } + if (vect->value != 0 && vect->value != 1) + return 0; /* segment base multiplier non-unity */ + do { /* skip over _one_ seg-base term... */ + vect++; + } while (vect->type && !vect->value); + if (!vect->type) /* ...returning true if that's all */ + return 1; + return 0; /* And return false if there's more */ +} + +/* + * Return true if the argument contains an `unknown' part. + */ +int is_unknown(expr * vect) +{ + while (vect->type && vect->type < EXPR_UNKNOWN) + vect++; + return (vect->type == EXPR_UNKNOWN); +} + +/* + * Return true if the argument contains nothing but an `unknown' + * part. + */ +int is_just_unknown(expr * vect) +{ + while (vect->type && !vect->value) + vect++; + return (vect->type == EXPR_UNKNOWN); +} + +/* + * Return the scalar part of a relocatable vector. (Including + * simple scalar vectors - those qualify as relocatable.) + */ +int64_t reloc_value(expr * vect) +{ + while (vect->type && !vect->value) + vect++; + if (!vect->type) + return 0; + if (vect->type == EXPR_SIMPLE) + return vect->value; + else + return 0; +} + +/* + * Return the segment number of a relocatable vector, or NO_SEG for + * simple scalars. + */ +int32_t reloc_seg(expr * vect) +{ + while (vect->type && (vect->type == EXPR_WRT || !vect->value)) + vect++; + if (vect->type == EXPR_SIMPLE) { + do { + vect++; + } while (vect->type && (vect->type == EXPR_WRT || !vect->value)); + } + if (!vect->type) + return NO_SEG; + else + return vect->type - EXPR_SEGBASE; +} + +/* + * Return the WRT segment number of a relocatable vector, or NO_SEG + * if no WRT part is present. + */ +int32_t reloc_wrt(expr * vect) +{ + while (vect->type && vect->type < EXPR_WRT) + vect++; + if (vect->type == EXPR_WRT) { + return vect->value; + } else + return NO_SEG; +} diff --git a/uppsrc/plugin/ndisasm/lib/insns.h b/uppsrc/plugin/ndisasm/lib/insns.h index dfa30cac2..4ae2499c9 100644 --- a/uppsrc/plugin/ndisasm/lib/insns.h +++ b/uppsrc/plugin/ndisasm/lib/insns.h @@ -1,32 +1,42 @@ /* insns.h header file for insns.c - * $Id: insns.h,v 1.1 2005/02/07 00:26:03 rylek Exp $ * * The Netwide Assembler is copyright (C) 1996 Simon Tatham and * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" + * redistributable under the license given in the file "LICENSE" * distributed in the NASM archive. */ #ifndef NASM_INSNS_H #define NASM_INSNS_H -#include "insnsi.h" /* instruction opcode enum */ - -/* max length of any instruction, register name etc. */ -#if MAX_INSLEN > 9 /* MAX_INSLEN defined in insnsi.h */ -#define MAX_KEYWORD MAX_INSLEN -#else -#define MAX_KEYWORD 9 -#endif +#include "nasm.h" +#include "tokens.h" struct itemplate { - int opcode; /* the token, passed from "parser.c" */ - int operands; /* number of operands */ - long opd[3]; /* bit flags for operand types */ - const char *code; /* the code it assembles to */ - unsigned long flags; /* some flags */ + enum opcode opcode; /* the token, passed from "parser.c" */ + int operands; /* number of operands */ + opflags_t opd[MAX_OPERANDS]; /* bit flags for operand types */ + const uint8_t *code; /* the code it assembles to */ + uint32_t flags; /* some flags */ }; +/* Disassembler table structure */ +/* If n == -1, then p points to another table of 256 + struct disasm_index, otherwise p points to a list of n + struct itemplates to consider. */ +struct disasm_index { + const void *p; + int n; +}; + +/* Tables for the assembler and disassembler, respectively */ +extern const struct itemplate * const nasm_instructions[]; +extern const struct disasm_index itable[256]; +extern const struct disasm_index * const itable_vex[2][32][8]; + +/* Common table for the byte codes */ +extern const uint8_t nasm_bytecodes[]; + /* * this define is used to signify the end of an itemplate */ @@ -59,41 +69,67 @@ struct itemplate { * required to have unspecified size in the instruction too...) */ -#define IF_SM 0x00000001UL /* size match */ -#define IF_SM2 0x00000002UL /* size match first two operands */ -#define IF_SB 0x00000004UL /* unsized operands can't be non-byte */ -#define IF_SW 0x00000008UL /* unsized operands can't be non-word */ -#define IF_SD 0x00000010UL /* unsized operands can't be nondword */ -#define IF_AR0 0x00000020UL /* SB, SW, SD applies to argument 0 */ -#define IF_AR1 0x00000040UL /* SB, SW, SD applies to argument 1 */ -#define IF_AR2 0x00000060UL /* SB, SW, SD applies to argument 2 */ -#define IF_ARMASK 0x00000060UL /* mask for unsized argument spec */ -#define IF_PRIV 0x00000100UL /* it's a privileged instruction */ -#define IF_SMM 0x00000200UL /* it's only valid in SMM */ -#define IF_PROT 0x00000400UL /* it's protected mode only */ -#define IF_UNDOC 0x00001000UL /* it's an undocumented instruction */ -#define IF_FPU 0x00002000UL /* it's an FPU instruction */ -#define IF_MMX 0x00004000UL /* it's an MMX instruction */ -#define IF_3DNOW 0x00008000UL /* it's a 3DNow! instruction */ -#define IF_SSE 0x00010000UL /* it's a SSE (KNI, MMX2) instruction */ -#define IF_SSE2 0x00020000UL /* it's a SSE2 instruction */ -#define IF_SSE3 0x00040000UL /* it's a SSE3 (PNI) instruction */ -#define IF_PMASK 0xFF000000UL /* the mask for processor types */ -#define IF_PLEVEL 0x0F000000UL /* the mask for processor instr. level */ - /* also the highest possible processor */ -#define IF_PFMASK 0xF001FF00UL /* the mask for disassembly "prefer" */ -#define IF_8086 0x00000000UL /* 8086 instruction */ -#define IF_186 0x01000000UL /* 186+ instruction */ -#define IF_286 0x02000000UL /* 286+ instruction */ -#define IF_386 0x03000000UL /* 386+ instruction */ -#define IF_486 0x04000000UL /* 486+ instruction */ -#define IF_PENT 0x05000000UL /* Pentium instruction */ -#define IF_P6 0x06000000UL /* P6 instruction */ -#define IF_KATMAI 0x07000000UL /* Katmai instructions */ -#define IF_WILLAMETTE 0x08000000UL /* Willamette instructions */ -#define IF_PRESCOTT 0x09000000UL /* Prescott instructions */ -#define IF_IA64 0x0F000000UL /* IA64 instructions */ -#define IF_CYRIX 0x10000000UL /* Cyrix-specific instruction */ -#define IF_AMD 0x20000000UL /* AMD-specific instruction */ +#define IF_SM 0x00000001UL /* size match */ +#define IF_SM2 0x00000002UL /* size match first two operands */ +#define IF_SB 0x00000004UL /* unsized operands can't be non-byte */ +#define IF_SW 0x00000008UL /* unsized operands can't be non-word */ +#define IF_SD 0x0000000CUL /* unsized operands can't be non-dword */ +#define IF_SQ 0x00000010UL /* unsized operands can't be non-qword */ +#define IF_SO 0x00000014UL /* unsized operands can't be non-oword */ +#define IF_SY 0x00000018UL /* unsized operands can't be non-yword */ +#define IF_SZ 0x00000038UL /* unsized operands must match the bitsize */ +#define IF_SX 0x0000003CUL /* unsized operands not allowed */ +#define IF_SMASK 0x0000003CUL /* mask for unsized argument size */ +#define IF_AR0 0x00000040UL /* SB, SW, SD applies to argument 0 */ +#define IF_AR1 0x00000080UL /* SB, SW, SD applies to argument 1 */ +#define IF_AR2 0x000000C0UL /* SB, SW, SD applies to argument 2 */ +#define IF_AR3 0x00000100UL /* SB, SW, SD applies to argument 3 */ +#define IF_AR4 0x00000140UL /* SB, SW, SD applies to argument 4 */ +#define IF_ARMASK 0x000001C0UL /* mask for unsized argument spec */ +#define IF_ARSHFT 6 /* LSB in IF_ARMASK */ +/* The next 3 bits aren't actually used for anything */ +#define IF_PRIV 0x00000000UL /* it's a privileged instruction */ +#define IF_SMM 0x00000000UL /* it's only valid in SMM */ +#define IF_PROT 0x00000000UL /* it's protected mode only */ +#define IF_NOLONG 0x00000800UL /* it's not available in long mode */ +#define IF_UNDOC 0x00001000UL /* it's an undocumented instruction */ +#define IF_FPU 0x00002000UL /* it's an FPU instruction */ +#define IF_MMX 0x00004000UL /* it's an MMX instruction */ +#define IF_3DNOW 0x00008000UL /* it's a 3DNow! instruction */ +#define IF_SSE 0x00010000UL /* it's a SSE (KNI, MMX2) instruction */ +#define IF_SSE2 0x00020000UL /* it's a SSE2 instruction */ +#define IF_SSE3 0x00040000UL /* it's a SSE3 (PNI) instruction */ +#define IF_VMX 0x00080000UL /* it's a VMX instruction */ +#define IF_LONG 0x00100000UL /* long mode instruction */ +#define IF_SSSE3 0x00200000UL /* it's an SSSE3 instruction */ +#define IF_SSE4A 0x00400000UL /* AMD SSE4a */ +#define IF_SSE41 0x00800000UL /* it's an SSE4.1 instruction */ +#define IF_SSE42 0x00800000UL /* HACK NEED TO REORGANIZE THESE BITS */ +#define IF_SSE5 0x00800000UL /* HACK NEED TO REORGANIZE THESE BITS */ +#define IF_AVX 0x00800000UL /* HACK NEED TO REORGANIZE THESE BITS */ +#define IF_FMA 0x00800000UL /* HACK NEED TO REORGANIZE THESE BITS */ +#define IF_PMASK 0xFF000000UL /* the mask for processor types */ +#define IF_PLEVEL 0x0F000000UL /* the mask for processor instr. level */ + /* also the highest possible processor */ +#define IF_PFMASK 0xF01FFF00UL /* the mask for disassembly "prefer" */ +#define IF_8086 0x00000000UL /* 8086 instruction */ +#define IF_186 0x01000000UL /* 186+ instruction */ +#define IF_286 0x02000000UL /* 286+ instruction */ +#define IF_386 0x03000000UL /* 386+ instruction */ +#define IF_486 0x04000000UL /* 486+ instruction */ +#define IF_PENT 0x05000000UL /* Pentium instruction */ +#define IF_P6 0x06000000UL /* P6 instruction */ +#define IF_KATMAI 0x07000000UL /* Katmai instructions */ +#define IF_WILLAMETTE 0x08000000UL /* Willamette instructions */ +#define IF_PRESCOTT 0x09000000UL /* Prescott instructions */ +#define IF_X86_64 0x0A000000UL /* x86-64 instruction (long or legacy mode) */ +#define IF_NEHALEM 0x0B000000UL /* Nehalem instruction */ +#define IF_WESTMERE 0x0C000000UL /* Westmere instruction */ +#define IF_SANDYBRIDGE 0x0D000000UL /* Sandy Bridge instruction */ +#define IF_FUTURE 0x0E000000UL /* Future processor (not yet disclosed) */ +#define IF_X64 (IF_LONG|IF_X86_64) +#define IF_IA64 0x0F000000UL /* IA64 instructions (in x86 mode) */ +#define IF_CYRIX 0x10000000UL /* Cyrix-specific instruction */ +#define IF_AMD 0x20000000UL /* AMD-specific instruction */ #endif diff --git a/uppsrc/plugin/ndisasm/lib/insnsb.c b/uppsrc/plugin/ndisasm/lib/insnsb.c new file mode 100644 index 000000000..0e6a92dcf --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/insnsb.c @@ -0,0 +1,3016 @@ +/* This file auto-generated from insns.dat by insns.pl - don't edit it */ + +#include "nasm.h" +#include "insns.h" + +const uint8_t nasm_bytecodes[20028] = { + /* 0 */ 0324,0361,03,017,072,027,0101,026,0, + /* 9 */ 0324,0361,03,017,072,024,0101,026,0, + /* 18 */ 0324,0361,03,017,072,026,0101,026,0, + /* 27 */ 0324,0361,03,017,072,025,0101,026,0, + /* 36 */ 0325,0361,03,017,072,040,0110,026,0, + /* 45 */ 0324,0361,03,017,072,042,0110,026,0, + /* 54 */ 0261,03,021,01,0113,0120,0174,03,0, + /* 63 */ 0261,03,025,01,0113,0120,0174,03,0, + /* 72 */ 0261,03,021,01,0112,0120,0174,03,0, + /* 81 */ 0261,03,025,01,0112,0120,0174,03,0, + /* 90 */ 0261,01,021,01,0302,0120,01,0,0, + /* 99 */ 0260,01,021,01,0302,0110,01,0,0, + /* 108 */ 0261,01,025,01,0302,0120,01,0,0, + /* 117 */ 0260,01,025,01,0302,0110,01,0,0, + /* 126 */ 0261,01,021,01,0302,0120,01,01,0, + /* 135 */ 0260,01,021,01,0302,0110,01,01,0, + /* 144 */ 0261,01,025,01,0302,0120,01,01,0, + /* 153 */ 0260,01,025,01,0302,0110,01,01,0, + /* 162 */ 0261,01,021,01,0302,0120,01,02,0, + /* 171 */ 0260,01,021,01,0302,0110,01,02,0, + /* 180 */ 0261,01,025,01,0302,0120,01,02,0, + /* 189 */ 0260,01,025,01,0302,0110,01,02,0, + /* 198 */ 0261,01,021,01,0302,0120,01,03,0, + /* 207 */ 0260,01,021,01,0302,0110,01,03,0, + /* 216 */ 0261,01,025,01,0302,0120,01,03,0, + /* 225 */ 0260,01,025,01,0302,0110,01,03,0, + /* 234 */ 0261,01,021,01,0302,0120,01,04,0, + /* 243 */ 0260,01,021,01,0302,0110,01,04,0, + /* 252 */ 0261,01,025,01,0302,0120,01,04,0, + /* 261 */ 0260,01,025,01,0302,0110,01,04,0, + /* 270 */ 0261,01,021,01,0302,0120,01,05,0, + /* 279 */ 0260,01,021,01,0302,0110,01,05,0, + /* 288 */ 0261,01,025,01,0302,0120,01,05,0, + /* 297 */ 0260,01,025,01,0302,0110,01,05,0, + /* 306 */ 0261,01,021,01,0302,0120,01,06,0, + /* 315 */ 0260,01,021,01,0302,0110,01,06,0, + /* 324 */ 0261,01,025,01,0302,0120,01,06,0, + /* 333 */ 0260,01,025,01,0302,0110,01,06,0, + /* 342 */ 0261,01,021,01,0302,0120,01,07,0, + /* 351 */ 0260,01,021,01,0302,0110,01,07,0, + /* 360 */ 0261,01,025,01,0302,0120,01,07,0, + /* 369 */ 0260,01,025,01,0302,0110,01,07,0, + /* 378 */ 0261,01,021,01,0302,0120,01,010,0, + /* 387 */ 0260,01,021,01,0302,0110,01,010,0, + /* 396 */ 0261,01,025,01,0302,0120,01,010,0, + /* 405 */ 0260,01,025,01,0302,0110,01,010,0, + /* 414 */ 0261,01,021,01,0302,0120,01,011,0, + /* 423 */ 0260,01,021,01,0302,0110,01,011,0, + /* 432 */ 0261,01,025,01,0302,0120,01,011,0, + /* 441 */ 0260,01,025,01,0302,0110,01,011,0, + /* 450 */ 0261,01,021,01,0302,0120,01,012,0, + /* 459 */ 0260,01,021,01,0302,0110,01,012,0, + /* 468 */ 0261,01,025,01,0302,0120,01,012,0, + /* 477 */ 0260,01,025,01,0302,0110,01,012,0, + /* 486 */ 0261,01,021,01,0302,0120,01,013,0, + /* 495 */ 0260,01,021,01,0302,0110,01,013,0, + /* 504 */ 0261,01,025,01,0302,0120,01,013,0, + /* 513 */ 0260,01,025,01,0302,0110,01,013,0, + /* 522 */ 0261,01,021,01,0302,0120,01,014,0, + /* 531 */ 0260,01,021,01,0302,0110,01,014,0, + /* 540 */ 0261,01,025,01,0302,0120,01,014,0, + /* 549 */ 0260,01,025,01,0302,0110,01,014,0, + /* 558 */ 0261,01,021,01,0302,0120,01,015,0, + /* 567 */ 0260,01,021,01,0302,0110,01,015,0, + /* 576 */ 0261,01,025,01,0302,0120,01,015,0, + /* 585 */ 0260,01,025,01,0302,0110,01,015,0, + /* 594 */ 0261,01,021,01,0302,0120,01,016,0, + /* 603 */ 0260,01,021,01,0302,0110,01,016,0, + /* 612 */ 0261,01,025,01,0302,0120,01,016,0, + /* 621 */ 0260,01,025,01,0302,0110,01,016,0, + /* 630 */ 0261,01,021,01,0302,0120,01,017,0, + /* 639 */ 0260,01,021,01,0302,0110,01,017,0, + /* 648 */ 0261,01,025,01,0302,0120,01,017,0, + /* 657 */ 0260,01,025,01,0302,0110,01,017,0, + /* 666 */ 0261,01,021,01,0302,0120,01,020,0, + /* 675 */ 0260,01,021,01,0302,0110,01,020,0, + /* 684 */ 0261,01,025,01,0302,0120,01,020,0, + /* 693 */ 0260,01,025,01,0302,0110,01,020,0, + /* 702 */ 0261,01,021,01,0302,0120,01,021,0, + /* 711 */ 0260,01,021,01,0302,0110,01,021,0, + /* 720 */ 0261,01,025,01,0302,0120,01,021,0, + /* 729 */ 0260,01,025,01,0302,0110,01,021,0, + /* 738 */ 0261,01,021,01,0302,0120,01,022,0, + /* 747 */ 0260,01,021,01,0302,0110,01,022,0, + /* 756 */ 0261,01,025,01,0302,0120,01,022,0, + /* 765 */ 0260,01,025,01,0302,0110,01,022,0, + /* 774 */ 0261,01,021,01,0302,0120,01,023,0, + /* 783 */ 0260,01,021,01,0302,0110,01,023,0, + /* 792 */ 0261,01,025,01,0302,0120,01,023,0, + /* 801 */ 0260,01,025,01,0302,0110,01,023,0, + /* 810 */ 0261,01,021,01,0302,0120,01,024,0, + /* 819 */ 0260,01,021,01,0302,0110,01,024,0, + /* 828 */ 0261,01,025,01,0302,0120,01,024,0, + /* 837 */ 0260,01,025,01,0302,0110,01,024,0, + /* 846 */ 0261,01,021,01,0302,0120,01,025,0, + /* 855 */ 0260,01,021,01,0302,0110,01,025,0, + /* 864 */ 0261,01,025,01,0302,0120,01,025,0, + /* 873 */ 0260,01,025,01,0302,0110,01,025,0, + /* 882 */ 0261,01,021,01,0302,0120,01,026,0, + /* 891 */ 0260,01,021,01,0302,0110,01,026,0, + /* 900 */ 0261,01,025,01,0302,0120,01,026,0, + /* 909 */ 0260,01,025,01,0302,0110,01,026,0, + /* 918 */ 0261,01,021,01,0302,0120,01,027,0, + /* 927 */ 0260,01,021,01,0302,0110,01,027,0, + /* 936 */ 0261,01,025,01,0302,0120,01,027,0, + /* 945 */ 0260,01,025,01,0302,0110,01,027,0, + /* 954 */ 0261,01,021,01,0302,0120,01,030,0, + /* 963 */ 0260,01,021,01,0302,0110,01,030,0, + /* 972 */ 0261,01,025,01,0302,0120,01,030,0, + /* 981 */ 0260,01,025,01,0302,0110,01,030,0, + /* 990 */ 0261,01,021,01,0302,0120,01,031,0, + /* 999 */ 0260,01,021,01,0302,0110,01,031,0, + /* 1008 */ 0261,01,025,01,0302,0120,01,031,0, + /* 1017 */ 0260,01,025,01,0302,0110,01,031,0, + /* 1026 */ 0261,01,021,01,0302,0120,01,032,0, + /* 1035 */ 0260,01,021,01,0302,0110,01,032,0, + /* 1044 */ 0261,01,025,01,0302,0120,01,032,0, + /* 1053 */ 0260,01,025,01,0302,0110,01,032,0, + /* 1062 */ 0261,01,021,01,0302,0120,01,033,0, + /* 1071 */ 0260,01,021,01,0302,0110,01,033,0, + /* 1080 */ 0261,01,025,01,0302,0120,01,033,0, + /* 1089 */ 0260,01,025,01,0302,0110,01,033,0, + /* 1098 */ 0261,01,021,01,0302,0120,01,034,0, + /* 1107 */ 0260,01,021,01,0302,0110,01,034,0, + /* 1116 */ 0261,01,025,01,0302,0120,01,034,0, + /* 1125 */ 0260,01,025,01,0302,0110,01,034,0, + /* 1134 */ 0261,01,021,01,0302,0120,01,035,0, + /* 1143 */ 0260,01,021,01,0302,0110,01,035,0, + /* 1152 */ 0261,01,025,01,0302,0120,01,035,0, + /* 1161 */ 0260,01,025,01,0302,0110,01,035,0, + /* 1170 */ 0261,01,021,01,0302,0120,01,036,0, + /* 1179 */ 0260,01,021,01,0302,0110,01,036,0, + /* 1188 */ 0261,01,025,01,0302,0120,01,036,0, + /* 1197 */ 0260,01,025,01,0302,0110,01,036,0, + /* 1206 */ 0261,01,021,01,0302,0120,01,037,0, + /* 1215 */ 0260,01,021,01,0302,0110,01,037,0, + /* 1224 */ 0261,01,025,01,0302,0120,01,037,0, + /* 1233 */ 0260,01,025,01,0302,0110,01,037,0, + /* 1242 */ 0261,01,020,01,0302,0120,01,0,0, + /* 1251 */ 0260,01,020,01,0302,0110,01,0,0, + /* 1260 */ 0261,01,024,01,0302,0120,01,0,0, + /* 1269 */ 0260,01,024,01,0302,0110,01,0,0, + /* 1278 */ 0261,01,020,01,0302,0120,01,01,0, + /* 1287 */ 0260,01,020,01,0302,0110,01,01,0, + /* 1296 */ 0261,01,024,01,0302,0120,01,01,0, + /* 1305 */ 0260,01,024,01,0302,0110,01,01,0, + /* 1314 */ 0261,01,020,01,0302,0120,01,02,0, + /* 1323 */ 0260,01,020,01,0302,0110,01,02,0, + /* 1332 */ 0261,01,024,01,0302,0120,01,02,0, + /* 1341 */ 0260,01,024,01,0302,0110,01,02,0, + /* 1350 */ 0261,01,020,01,0302,0120,01,03,0, + /* 1359 */ 0260,01,020,01,0302,0110,01,03,0, + /* 1368 */ 0261,01,024,01,0302,0120,01,03,0, + /* 1377 */ 0260,01,024,01,0302,0110,01,03,0, + /* 1386 */ 0261,01,020,01,0302,0120,01,04,0, + /* 1395 */ 0260,01,020,01,0302,0110,01,04,0, + /* 1404 */ 0261,01,024,01,0302,0120,01,04,0, + /* 1413 */ 0260,01,024,01,0302,0110,01,04,0, + /* 1422 */ 0261,01,020,01,0302,0120,01,05,0, + /* 1431 */ 0260,01,020,01,0302,0110,01,05,0, + /* 1440 */ 0261,01,024,01,0302,0120,01,05,0, + /* 1449 */ 0260,01,024,01,0302,0110,01,05,0, + /* 1458 */ 0261,01,020,01,0302,0120,01,06,0, + /* 1467 */ 0260,01,020,01,0302,0110,01,06,0, + /* 1476 */ 0261,01,024,01,0302,0120,01,06,0, + /* 1485 */ 0260,01,024,01,0302,0110,01,06,0, + /* 1494 */ 0261,01,020,01,0302,0120,01,07,0, + /* 1503 */ 0260,01,020,01,0302,0110,01,07,0, + /* 1512 */ 0261,01,024,01,0302,0120,01,07,0, + /* 1521 */ 0260,01,024,01,0302,0110,01,07,0, + /* 1530 */ 0261,01,020,01,0302,0120,01,010,0, + /* 1539 */ 0260,01,020,01,0302,0110,01,010,0, + /* 1548 */ 0261,01,024,01,0302,0120,01,010,0, + /* 1557 */ 0260,01,024,01,0302,0110,01,010,0, + /* 1566 */ 0261,01,020,01,0302,0120,01,011,0, + /* 1575 */ 0260,01,020,01,0302,0110,01,011,0, + /* 1584 */ 0261,01,024,01,0302,0120,01,011,0, + /* 1593 */ 0260,01,024,01,0302,0110,01,011,0, + /* 1602 */ 0261,01,020,01,0302,0120,01,012,0, + /* 1611 */ 0260,01,020,01,0302,0110,01,012,0, + /* 1620 */ 0261,01,024,01,0302,0120,01,012,0, + /* 1629 */ 0260,01,024,01,0302,0110,01,012,0, + /* 1638 */ 0261,01,020,01,0302,0120,01,013,0, + /* 1647 */ 0260,01,020,01,0302,0110,01,013,0, + /* 1656 */ 0261,01,024,01,0302,0120,01,013,0, + /* 1665 */ 0260,01,024,01,0302,0110,01,013,0, + /* 1674 */ 0261,01,020,01,0302,0120,01,014,0, + /* 1683 */ 0260,01,020,01,0302,0110,01,014,0, + /* 1692 */ 0261,01,024,01,0302,0120,01,014,0, + /* 1701 */ 0260,01,024,01,0302,0110,01,014,0, + /* 1710 */ 0261,01,020,01,0302,0120,01,015,0, + /* 1719 */ 0260,01,020,01,0302,0110,01,015,0, + /* 1728 */ 0261,01,024,01,0302,0120,01,015,0, + /* 1737 */ 0260,01,024,01,0302,0110,01,015,0, + /* 1746 */ 0261,01,020,01,0302,0120,01,016,0, + /* 1755 */ 0260,01,020,01,0302,0110,01,016,0, + /* 1764 */ 0261,01,024,01,0302,0120,01,016,0, + /* 1773 */ 0260,01,024,01,0302,0110,01,016,0, + /* 1782 */ 0261,01,020,01,0302,0120,01,017,0, + /* 1791 */ 0260,01,020,01,0302,0110,01,017,0, + /* 1800 */ 0261,01,024,01,0302,0120,01,017,0, + /* 1809 */ 0260,01,024,01,0302,0110,01,017,0, + /* 1818 */ 0261,01,020,01,0302,0120,01,020,0, + /* 1827 */ 0260,01,020,01,0302,0110,01,020,0, + /* 1836 */ 0261,01,024,01,0302,0120,01,020,0, + /* 1845 */ 0260,01,024,01,0302,0110,01,020,0, + /* 1854 */ 0261,01,020,01,0302,0120,01,021,0, + /* 1863 */ 0260,01,020,01,0302,0110,01,021,0, + /* 1872 */ 0261,01,024,01,0302,0120,01,021,0, + /* 1881 */ 0260,01,024,01,0302,0110,01,021,0, + /* 1890 */ 0261,01,020,01,0302,0120,01,022,0, + /* 1899 */ 0260,01,020,01,0302,0110,01,022,0, + /* 1908 */ 0261,01,024,01,0302,0120,01,022,0, + /* 1917 */ 0260,01,024,01,0302,0110,01,022,0, + /* 1926 */ 0261,01,020,01,0302,0120,01,023,0, + /* 1935 */ 0260,01,020,01,0302,0110,01,023,0, + /* 1944 */ 0261,01,024,01,0302,0120,01,023,0, + /* 1953 */ 0260,01,024,01,0302,0110,01,023,0, + /* 1962 */ 0261,01,020,01,0302,0120,01,024,0, + /* 1971 */ 0260,01,020,01,0302,0110,01,024,0, + /* 1980 */ 0261,01,024,01,0302,0120,01,024,0, + /* 1989 */ 0260,01,024,01,0302,0110,01,024,0, + /* 1998 */ 0261,01,020,01,0302,0120,01,025,0, + /* 2007 */ 0260,01,020,01,0302,0110,01,025,0, + /* 2016 */ 0261,01,024,01,0302,0120,01,025,0, + /* 2025 */ 0260,01,024,01,0302,0110,01,025,0, + /* 2034 */ 0261,01,020,01,0302,0120,01,026,0, + /* 2043 */ 0260,01,020,01,0302,0110,01,026,0, + /* 2052 */ 0261,01,024,01,0302,0120,01,026,0, + /* 2061 */ 0260,01,024,01,0302,0110,01,026,0, + /* 2070 */ 0261,01,020,01,0302,0120,01,027,0, + /* 2079 */ 0260,01,020,01,0302,0110,01,027,0, + /* 2088 */ 0261,01,024,01,0302,0120,01,027,0, + /* 2097 */ 0260,01,024,01,0302,0110,01,027,0, + /* 2106 */ 0261,01,020,01,0302,0120,01,030,0, + /* 2115 */ 0260,01,020,01,0302,0110,01,030,0, + /* 2124 */ 0261,01,024,01,0302,0120,01,030,0, + /* 2133 */ 0260,01,024,01,0302,0110,01,030,0, + /* 2142 */ 0261,01,020,01,0302,0120,01,031,0, + /* 2151 */ 0260,01,020,01,0302,0110,01,031,0, + /* 2160 */ 0261,01,024,01,0302,0120,01,031,0, + /* 2169 */ 0260,01,024,01,0302,0110,01,031,0, + /* 2178 */ 0261,01,020,01,0302,0120,01,032,0, + /* 2187 */ 0260,01,020,01,0302,0110,01,032,0, + /* 2196 */ 0261,01,024,01,0302,0120,01,032,0, + /* 2205 */ 0260,01,024,01,0302,0110,01,032,0, + /* 2214 */ 0261,01,020,01,0302,0120,01,033,0, + /* 2223 */ 0260,01,020,01,0302,0110,01,033,0, + /* 2232 */ 0261,01,024,01,0302,0120,01,033,0, + /* 2241 */ 0260,01,024,01,0302,0110,01,033,0, + /* 2250 */ 0261,01,020,01,0302,0120,01,034,0, + /* 2259 */ 0260,01,020,01,0302,0110,01,034,0, + /* 2268 */ 0261,01,024,01,0302,0120,01,034,0, + /* 2277 */ 0260,01,024,01,0302,0110,01,034,0, + /* 2286 */ 0261,01,020,01,0302,0120,01,035,0, + /* 2295 */ 0260,01,020,01,0302,0110,01,035,0, + /* 2304 */ 0261,01,024,01,0302,0120,01,035,0, + /* 2313 */ 0260,01,024,01,0302,0110,01,035,0, + /* 2322 */ 0261,01,020,01,0302,0120,01,036,0, + /* 2331 */ 0260,01,020,01,0302,0110,01,036,0, + /* 2340 */ 0261,01,024,01,0302,0120,01,036,0, + /* 2349 */ 0260,01,024,01,0302,0110,01,036,0, + /* 2358 */ 0261,01,020,01,0302,0120,01,037,0, + /* 2367 */ 0260,01,020,01,0302,0110,01,037,0, + /* 2376 */ 0261,01,024,01,0302,0120,01,037,0, + /* 2385 */ 0260,01,024,01,0302,0110,01,037,0, + /* 2394 */ 0261,01,023,01,0302,0120,01,0,0, + /* 2403 */ 0260,01,023,01,0302,0110,01,0,0, + /* 2412 */ 0261,01,023,01,0302,0120,01,01,0, + /* 2421 */ 0260,01,023,01,0302,0110,01,01,0, + /* 2430 */ 0261,01,023,01,0302,0120,01,02,0, + /* 2439 */ 0260,01,023,01,0302,0110,01,02,0, + /* 2448 */ 0261,01,023,01,0302,0120,01,03,0, + /* 2457 */ 0260,01,023,01,0302,0110,01,03,0, + /* 2466 */ 0261,01,023,01,0302,0120,01,04,0, + /* 2475 */ 0260,01,023,01,0302,0110,01,04,0, + /* 2484 */ 0261,01,023,01,0302,0120,01,05,0, + /* 2493 */ 0260,01,023,01,0302,0110,01,05,0, + /* 2502 */ 0261,01,023,01,0302,0120,01,06,0, + /* 2511 */ 0260,01,023,01,0302,0110,01,06,0, + /* 2520 */ 0261,01,023,01,0302,0120,01,07,0, + /* 2529 */ 0260,01,023,01,0302,0110,01,07,0, + /* 2538 */ 0261,01,023,01,0302,0120,01,010,0, + /* 2547 */ 0260,01,023,01,0302,0110,01,010,0, + /* 2556 */ 0261,01,023,01,0302,0120,01,011,0, + /* 2565 */ 0260,01,023,01,0302,0110,01,011,0, + /* 2574 */ 0261,01,023,01,0302,0120,01,012,0, + /* 2583 */ 0260,01,023,01,0302,0110,01,012,0, + /* 2592 */ 0261,01,023,01,0302,0120,01,013,0, + /* 2601 */ 0260,01,023,01,0302,0110,01,013,0, + /* 2610 */ 0261,01,023,01,0302,0120,01,014,0, + /* 2619 */ 0260,01,023,01,0302,0110,01,014,0, + /* 2628 */ 0261,01,023,01,0302,0120,01,015,0, + /* 2637 */ 0260,01,023,01,0302,0110,01,015,0, + /* 2646 */ 0261,01,023,01,0302,0120,01,016,0, + /* 2655 */ 0260,01,023,01,0302,0110,01,016,0, + /* 2664 */ 0261,01,023,01,0302,0120,01,017,0, + /* 2673 */ 0260,01,023,01,0302,0110,01,017,0, + /* 2682 */ 0261,01,023,01,0302,0120,01,020,0, + /* 2691 */ 0260,01,023,01,0302,0110,01,020,0, + /* 2700 */ 0261,01,023,01,0302,0120,01,021,0, + /* 2709 */ 0260,01,023,01,0302,0110,01,021,0, + /* 2718 */ 0261,01,023,01,0302,0120,01,022,0, + /* 2727 */ 0260,01,023,01,0302,0110,01,022,0, + /* 2736 */ 0261,01,023,01,0302,0120,01,023,0, + /* 2745 */ 0260,01,023,01,0302,0110,01,023,0, + /* 2754 */ 0261,01,023,01,0302,0120,01,024,0, + /* 2763 */ 0260,01,023,01,0302,0110,01,024,0, + /* 2772 */ 0261,01,023,01,0302,0120,01,025,0, + /* 2781 */ 0260,01,023,01,0302,0110,01,025,0, + /* 2790 */ 0261,01,023,01,0302,0120,01,026,0, + /* 2799 */ 0260,01,023,01,0302,0110,01,026,0, + /* 2808 */ 0261,01,023,01,0302,0120,01,027,0, + /* 2817 */ 0260,01,023,01,0302,0110,01,027,0, + /* 2826 */ 0261,01,023,01,0302,0120,01,030,0, + /* 2835 */ 0260,01,023,01,0302,0110,01,030,0, + /* 2844 */ 0261,01,023,01,0302,0120,01,031,0, + /* 2853 */ 0260,01,023,01,0302,0110,01,031,0, + /* 2862 */ 0261,01,023,01,0302,0120,01,032,0, + /* 2871 */ 0260,01,023,01,0302,0110,01,032,0, + /* 2880 */ 0261,01,023,01,0302,0120,01,033,0, + /* 2889 */ 0260,01,023,01,0302,0110,01,033,0, + /* 2898 */ 0261,01,023,01,0302,0120,01,034,0, + /* 2907 */ 0260,01,023,01,0302,0110,01,034,0, + /* 2916 */ 0261,01,023,01,0302,0120,01,035,0, + /* 2925 */ 0260,01,023,01,0302,0110,01,035,0, + /* 2934 */ 0261,01,023,01,0302,0120,01,036,0, + /* 2943 */ 0260,01,023,01,0302,0110,01,036,0, + /* 2952 */ 0261,01,023,01,0302,0120,01,037,0, + /* 2961 */ 0260,01,023,01,0302,0110,01,037,0, + /* 2970 */ 0261,01,022,01,0302,0120,01,0,0, + /* 2979 */ 0260,01,022,01,0302,0110,01,0,0, + /* 2988 */ 0261,01,022,01,0302,0120,01,01,0, + /* 2997 */ 0260,01,022,01,0302,0110,01,01,0, + /* 3006 */ 0261,01,022,01,0302,0120,01,02,0, + /* 3015 */ 0260,01,022,01,0302,0110,01,02,0, + /* 3024 */ 0261,01,022,01,0302,0120,01,03,0, + /* 3033 */ 0260,01,022,01,0302,0110,01,03,0, + /* 3042 */ 0261,01,022,01,0302,0120,01,04,0, + /* 3051 */ 0260,01,022,01,0302,0110,01,04,0, + /* 3060 */ 0261,01,022,01,0302,0120,01,05,0, + /* 3069 */ 0260,01,022,01,0302,0110,01,05,0, + /* 3078 */ 0261,01,022,01,0302,0120,01,06,0, + /* 3087 */ 0260,01,022,01,0302,0110,01,06,0, + /* 3096 */ 0261,01,022,01,0302,0120,01,07,0, + /* 3105 */ 0260,01,022,01,0302,0110,01,07,0, + /* 3114 */ 0261,01,022,01,0302,0120,01,010,0, + /* 3123 */ 0260,01,022,01,0302,0110,01,010,0, + /* 3132 */ 0261,01,022,01,0302,0120,01,011,0, + /* 3141 */ 0260,01,022,01,0302,0110,01,011,0, + /* 3150 */ 0261,01,022,01,0302,0120,01,012,0, + /* 3159 */ 0260,01,022,01,0302,0110,01,012,0, + /* 3168 */ 0261,01,022,01,0302,0120,01,013,0, + /* 3177 */ 0260,01,022,01,0302,0110,01,013,0, + /* 3186 */ 0261,01,022,01,0302,0120,01,014,0, + /* 3195 */ 0260,01,022,01,0302,0110,01,014,0, + /* 3204 */ 0261,01,022,01,0302,0120,01,015,0, + /* 3213 */ 0260,01,022,01,0302,0110,01,015,0, + /* 3222 */ 0261,01,022,01,0302,0120,01,016,0, + /* 3231 */ 0260,01,022,01,0302,0110,01,016,0, + /* 3240 */ 0261,01,022,01,0302,0120,01,017,0, + /* 3249 */ 0260,01,022,01,0302,0110,01,017,0, + /* 3258 */ 0261,01,022,01,0302,0120,01,020,0, + /* 3267 */ 0260,01,022,01,0302,0110,01,020,0, + /* 3276 */ 0261,01,022,01,0302,0120,01,021,0, + /* 3285 */ 0260,01,022,01,0302,0110,01,021,0, + /* 3294 */ 0261,01,022,01,0302,0120,01,022,0, + /* 3303 */ 0260,01,022,01,0302,0110,01,022,0, + /* 3312 */ 0261,01,022,01,0302,0120,01,023,0, + /* 3321 */ 0260,01,022,01,0302,0110,01,023,0, + /* 3330 */ 0261,01,022,01,0302,0120,01,024,0, + /* 3339 */ 0260,01,022,01,0302,0110,01,024,0, + /* 3348 */ 0261,01,022,01,0302,0120,01,025,0, + /* 3357 */ 0260,01,022,01,0302,0110,01,025,0, + /* 3366 */ 0261,01,022,01,0302,0120,01,026,0, + /* 3375 */ 0260,01,022,01,0302,0110,01,026,0, + /* 3384 */ 0261,01,022,01,0302,0120,01,027,0, + /* 3393 */ 0260,01,022,01,0302,0110,01,027,0, + /* 3402 */ 0261,01,022,01,0302,0120,01,030,0, + /* 3411 */ 0260,01,022,01,0302,0110,01,030,0, + /* 3420 */ 0261,01,022,01,0302,0120,01,031,0, + /* 3429 */ 0260,01,022,01,0302,0110,01,031,0, + /* 3438 */ 0261,01,022,01,0302,0120,01,032,0, + /* 3447 */ 0260,01,022,01,0302,0110,01,032,0, + /* 3456 */ 0261,01,022,01,0302,0120,01,033,0, + /* 3465 */ 0260,01,022,01,0302,0110,01,033,0, + /* 3474 */ 0261,01,022,01,0302,0120,01,034,0, + /* 3483 */ 0260,01,022,01,0302,0110,01,034,0, + /* 3492 */ 0261,01,022,01,0302,0120,01,035,0, + /* 3501 */ 0260,01,022,01,0302,0110,01,035,0, + /* 3510 */ 0261,01,022,01,0302,0120,01,036,0, + /* 3519 */ 0260,01,022,01,0302,0110,01,036,0, + /* 3528 */ 0261,01,022,01,0302,0120,01,037,0, + /* 3537 */ 0260,01,022,01,0302,0110,01,037,0, + /* 3546 */ 0261,03,021,01,0114,0120,0174,03,0, + /* 3555 */ 0260,03,021,01,0114,0110,0174,02,0, + /* 3564 */ 0261,03,01,01,0111,0120,0173,060,0, + /* 3573 */ 0261,03,011,01,0111,0130,0173,040,0, + /* 3582 */ 0261,03,05,01,0111,0120,0173,060,0, + /* 3591 */ 0261,03,015,01,0111,0130,0173,040,0, + /* 3600 */ 0261,03,01,01,0111,0120,0173,062,0, + /* 3609 */ 0261,03,011,01,0111,0130,0173,042,0, + /* 3618 */ 0261,03,05,01,0111,0120,0173,062,0, + /* 3627 */ 0261,03,015,01,0111,0130,0173,042,0, + /* 3636 */ 0261,03,01,01,0111,0120,0173,063,0, + /* 3645 */ 0261,03,011,01,0111,0130,0173,043,0, + /* 3654 */ 0261,03,05,01,0111,0120,0173,063,0, + /* 3663 */ 0261,03,015,01,0111,0130,0173,043,0, + /* 3672 */ 0261,03,01,01,0111,0120,0172,034,0, + /* 3681 */ 0261,03,011,01,0111,0130,0172,024,0, + /* 3690 */ 0261,03,05,01,0111,0120,0172,034,0, + /* 3699 */ 0261,03,015,01,0111,0130,0172,024,0, + /* 3708 */ 0261,03,01,01,0110,0120,0173,060,0, + /* 3717 */ 0261,03,011,01,0110,0130,0173,040,0, + /* 3726 */ 0261,03,05,01,0110,0120,0173,060,0, + /* 3735 */ 0261,03,015,01,0110,0130,0173,040,0, + /* 3744 */ 0261,03,01,01,0110,0120,0173,062,0, + /* 3753 */ 0261,03,011,01,0110,0130,0173,042,0, + /* 3762 */ 0261,03,05,01,0110,0120,0173,062,0, + /* 3771 */ 0261,03,015,01,0110,0130,0173,042,0, + /* 3780 */ 0261,03,01,01,0110,0120,0173,063,0, + /* 3789 */ 0261,03,011,01,0110,0130,0173,043,0, + /* 3798 */ 0261,03,05,01,0110,0120,0173,063,0, + /* 3807 */ 0261,03,015,01,0110,0130,0173,043,0, + /* 3816 */ 0261,03,01,01,0110,0120,0172,034,0, + /* 3825 */ 0261,03,011,01,0110,0130,0172,024,0, + /* 3834 */ 0261,03,05,01,0110,0120,0172,034,0, + /* 3843 */ 0261,03,015,01,0110,0130,0172,024,0, + /* 3852 */ 0361,03,017,072,0104,0110,01,0,0, + /* 3861 */ 0361,03,017,072,0104,0110,01,01,0, + /* 3870 */ 0361,03,017,072,0104,0110,01,020,0, + /* 3879 */ 0361,03,017,072,0104,0110,01,021,0, + /* 3888 */ 0261,03,021,01,0104,0120,01,0,0, + /* 3897 */ 0260,03,021,01,0104,0110,01,0,0, + /* 3906 */ 0261,03,021,01,0104,0120,01,01,0, + /* 3915 */ 0260,03,021,01,0104,0110,01,01,0, + /* 3924 */ 0261,03,021,01,0104,0120,01,020,0, + /* 3933 */ 0260,03,021,01,0104,0110,01,020,0, + /* 3942 */ 0261,03,021,01,0104,0120,01,021,0, + /* 3951 */ 0260,03,021,01,0104,0110,01,021,0, + /* 3960 */ 0261,03,01,01,0151,0120,0174,03,0, + /* 3969 */ 0260,03,01,01,0151,0110,0174,02,0, + /* 3978 */ 0261,03,05,01,0151,0120,0174,03,0, + /* 3987 */ 0260,03,05,01,0151,0110,0174,02,0, + /* 3996 */ 0261,03,011,01,0151,0130,0174,02,0, + /* 4005 */ 0260,03,011,01,0151,0120,0174,01,0, + /* 4014 */ 0261,03,015,01,0151,0130,0174,02,0, + /* 4023 */ 0260,03,015,01,0151,0120,0174,01,0, + /* 4032 */ 0261,03,01,01,0150,0120,0174,03,0, + /* 4041 */ 0260,03,01,01,0150,0110,0174,02,0, + /* 4050 */ 0261,03,05,01,0150,0120,0174,03,0, + /* 4059 */ 0260,03,05,01,0150,0110,0174,02,0, + /* 4068 */ 0261,03,011,01,0150,0130,0174,02,0, + /* 4077 */ 0260,03,011,01,0150,0120,0174,01,0, + /* 4086 */ 0261,03,015,01,0150,0130,0174,02,0, + /* 4095 */ 0260,03,015,01,0150,0120,0174,01,0, + /* 4104 */ 0261,03,01,01,0153,0120,0174,03,0, + /* 4113 */ 0260,03,01,01,0153,0110,0174,02,0, + /* 4122 */ 0261,03,011,01,0153,0130,0174,02,0, + /* 4131 */ 0260,03,011,01,0153,0120,0174,01,0, + /* 4140 */ 0261,03,01,01,0152,0120,0174,03,0, + /* 4149 */ 0260,03,01,01,0152,0110,0174,02,0, + /* 4158 */ 0261,03,011,01,0152,0130,0174,02,0, + /* 4167 */ 0260,03,011,01,0152,0120,0174,01,0, + /* 4176 */ 0261,03,01,01,0135,0120,0174,03,0, + /* 4185 */ 0260,03,01,01,0135,0110,0174,02,0, + /* 4194 */ 0261,03,05,01,0135,0120,0174,03,0, + /* 4203 */ 0260,03,05,01,0135,0110,0174,02,0, + /* 4212 */ 0261,03,011,01,0135,0130,0174,02,0, + /* 4221 */ 0260,03,011,01,0135,0120,0174,01,0, + /* 4230 */ 0261,03,015,01,0135,0130,0174,02,0, + /* 4239 */ 0260,03,015,01,0135,0120,0174,01,0, + /* 4248 */ 0261,03,01,01,0134,0120,0174,03,0, + /* 4257 */ 0260,03,01,01,0134,0110,0174,02,0, + /* 4266 */ 0261,03,05,01,0134,0120,0174,03,0, + /* 4275 */ 0260,03,05,01,0134,0110,0174,02,0, + /* 4284 */ 0261,03,011,01,0134,0130,0174,02,0, + /* 4293 */ 0260,03,011,01,0134,0120,0174,01,0, + /* 4302 */ 0261,03,015,01,0134,0130,0174,02,0, + /* 4311 */ 0260,03,015,01,0134,0120,0174,01,0, + /* 4320 */ 0261,03,01,01,0137,0120,0174,03,0, + /* 4329 */ 0260,03,01,01,0137,0110,0174,02,0, + /* 4338 */ 0261,03,05,01,0137,0120,0174,03,0, + /* 4347 */ 0260,03,05,01,0137,0110,0174,02,0, + /* 4356 */ 0261,03,011,01,0137,0130,0174,02,0, + /* 4365 */ 0260,03,011,01,0137,0120,0174,01,0, + /* 4374 */ 0261,03,015,01,0137,0130,0174,02,0, + /* 4383 */ 0260,03,015,01,0137,0120,0174,01,0, + /* 4392 */ 0261,03,01,01,0136,0120,0174,03,0, + /* 4401 */ 0260,03,01,01,0136,0110,0174,02,0, + /* 4410 */ 0261,03,05,01,0136,0120,0174,03,0, + /* 4419 */ 0260,03,05,01,0136,0110,0174,02,0, + /* 4428 */ 0261,03,011,01,0136,0130,0174,02,0, + /* 4437 */ 0260,03,011,01,0136,0120,0174,01,0, + /* 4446 */ 0261,03,015,01,0136,0130,0174,02,0, + /* 4455 */ 0260,03,015,01,0136,0120,0174,01,0, + /* 4464 */ 0261,03,01,01,0155,0120,0174,03,0, + /* 4473 */ 0260,03,01,01,0155,0110,0174,02,0, + /* 4482 */ 0261,03,05,01,0155,0120,0174,03,0, + /* 4491 */ 0260,03,05,01,0155,0110,0174,02,0, + /* 4500 */ 0261,03,011,01,0155,0130,0174,02,0, + /* 4509 */ 0260,03,011,01,0155,0120,0174,01,0, + /* 4518 */ 0261,03,015,01,0155,0130,0174,02,0, + /* 4527 */ 0260,03,015,01,0155,0120,0174,01,0, + /* 4536 */ 0261,03,01,01,0154,0120,0174,03,0, + /* 4545 */ 0260,03,01,01,0154,0110,0174,02,0, + /* 4554 */ 0261,03,05,01,0154,0120,0174,03,0, + /* 4563 */ 0260,03,05,01,0154,0110,0174,02,0, + /* 4572 */ 0261,03,011,01,0154,0130,0174,02,0, + /* 4581 */ 0260,03,011,01,0154,0120,0174,01,0, + /* 4590 */ 0261,03,015,01,0154,0130,0174,02,0, + /* 4599 */ 0260,03,015,01,0154,0120,0174,01,0, + /* 4608 */ 0261,03,01,01,0157,0120,0174,03,0, + /* 4617 */ 0260,03,01,01,0157,0110,0174,02,0, + /* 4626 */ 0261,03,011,01,0157,0130,0174,02,0, + /* 4635 */ 0260,03,011,01,0157,0120,0174,01,0, + /* 4644 */ 0261,03,01,01,0156,0120,0174,03,0, + /* 4653 */ 0260,03,01,01,0156,0110,0174,02,0, + /* 4662 */ 0261,03,011,01,0156,0130,0174,02,0, + /* 4671 */ 0260,03,011,01,0156,0120,0174,01,0, + /* 4680 */ 0261,03,01,01,0171,0120,0174,03,0, + /* 4689 */ 0260,03,01,01,0171,0110,0174,02,0, + /* 4698 */ 0261,03,05,01,0171,0120,0174,03,0, + /* 4707 */ 0260,03,05,01,0171,0110,0174,02,0, + /* 4716 */ 0261,03,011,01,0171,0130,0174,02,0, + /* 4725 */ 0260,03,011,01,0171,0120,0174,01,0, + /* 4734 */ 0261,03,015,01,0171,0130,0174,02,0, + /* 4743 */ 0260,03,015,01,0171,0120,0174,01,0, + /* 4752 */ 0261,03,01,01,0170,0120,0174,03,0, + /* 4761 */ 0260,03,01,01,0170,0110,0174,02,0, + /* 4770 */ 0261,03,05,01,0170,0120,0174,03,0, + /* 4779 */ 0260,03,05,01,0170,0110,0174,02,0, + /* 4788 */ 0261,03,011,01,0170,0130,0174,02,0, + /* 4797 */ 0260,03,011,01,0170,0120,0174,01,0, + /* 4806 */ 0261,03,015,01,0170,0130,0174,02,0, + /* 4815 */ 0260,03,015,01,0170,0120,0174,01,0, + /* 4824 */ 0261,03,01,01,0173,0120,0174,03,0, + /* 4833 */ 0260,03,01,01,0173,0110,0174,02,0, + /* 4842 */ 0261,03,011,01,0173,0130,0174,02,0, + /* 4851 */ 0260,03,011,01,0173,0120,0174,01,0, + /* 4860 */ 0261,03,01,01,0172,0120,0174,03,0, + /* 4869 */ 0260,03,01,01,0172,0110,0174,02,0, + /* 4878 */ 0261,03,011,01,0172,0130,0174,02,0, + /* 4887 */ 0260,03,011,01,0172,0120,0174,01,0, + /* 4896 */ 0261,03,01,01,0175,0120,0174,03,0, + /* 4905 */ 0260,03,01,01,0175,0110,0174,02,0, + /* 4914 */ 0261,03,05,01,0175,0120,0174,03,0, + /* 4923 */ 0260,03,05,01,0175,0110,0174,02,0, + /* 4932 */ 0261,03,011,01,0175,0130,0174,02,0, + /* 4941 */ 0260,03,011,01,0175,0120,0174,01,0, + /* 4950 */ 0261,03,015,01,0175,0130,0174,02,0, + /* 4959 */ 0260,03,015,01,0175,0120,0174,01,0, + /* 4968 */ 0261,03,01,01,0174,0120,0174,03,0, + /* 4977 */ 0260,03,01,01,0174,0110,0174,02,0, + /* 4986 */ 0261,03,05,01,0174,0120,0174,03,0, + /* 4995 */ 0260,03,05,01,0174,0110,0174,02,0, + /* 5004 */ 0261,03,011,01,0174,0130,0174,02,0, + /* 5013 */ 0260,03,011,01,0174,0120,0174,01,0, + /* 5022 */ 0261,03,015,01,0174,0130,0174,02,0, + /* 5031 */ 0260,03,015,01,0174,0120,0174,01,0, + /* 5040 */ 0261,03,01,01,0177,0120,0174,03,0, + /* 5049 */ 0260,03,01,01,0177,0110,0174,02,0, + /* 5058 */ 0261,03,011,01,0177,0130,0174,02,0, + /* 5067 */ 0260,03,011,01,0177,0120,0174,01,0, + /* 5076 */ 0261,03,01,01,0176,0120,0174,03,0, + /* 5085 */ 0260,03,01,01,0176,0110,0174,02,0, + /* 5094 */ 0261,03,011,01,0176,0130,0174,02,0, + /* 5103 */ 0260,03,011,01,0176,0120,0174,01,0, + /* 5112 */ 0261,0110,0,01,0242,0120,0174,03,0, + /* 5121 */ 0260,0110,0,01,0242,0110,0174,02,0, + /* 5130 */ 0261,0110,04,01,0242,0120,0174,03,0, + /* 5139 */ 0260,0110,04,01,0242,0110,0174,02,0, + /* 5148 */ 0261,0110,010,01,0242,0130,0174,02,0, + /* 5157 */ 0260,0110,010,01,0242,0120,0174,01,0, + /* 5166 */ 0261,0110,014,01,0242,0130,0174,02,0, + /* 5175 */ 0260,0110,014,01,0242,0120,0174,01,0, + /* 5184 */ 0261,0110,0,01,0236,0120,0174,03,0, + /* 5193 */ 0260,0110,0,01,0236,0110,0174,02,0, + /* 5202 */ 0261,0110,0,01,0237,0120,0174,03,0, + /* 5211 */ 0260,0110,0,01,0237,0110,0174,02,0, + /* 5220 */ 0261,0110,0,01,0227,0120,0174,03,0, + /* 5229 */ 0260,0110,0,01,0227,0110,0174,02,0, + /* 5238 */ 0261,0110,0,01,0216,0120,0174,03,0, + /* 5247 */ 0260,0110,0,01,0216,0110,0174,02,0, + /* 5256 */ 0261,0110,0,01,0217,0120,0174,03,0, + /* 5265 */ 0260,0110,0,01,0217,0110,0174,02,0, + /* 5274 */ 0261,0110,0,01,0207,0120,0174,03,0, + /* 5283 */ 0260,0110,0,01,0207,0110,0174,02,0, + /* 5292 */ 0261,0110,0,01,0206,0120,0174,03,0, + /* 5301 */ 0260,0110,0,01,0206,0110,0174,02,0, + /* 5310 */ 0261,0110,0,01,0205,0120,0174,03,0, + /* 5319 */ 0260,0110,0,01,0205,0110,0174,02,0, + /* 5328 */ 0261,0110,0,01,0226,0120,0174,03,0, + /* 5337 */ 0260,0110,0,01,0226,0110,0174,02,0, + /* 5346 */ 0261,0110,0,01,0225,0120,0174,03,0, + /* 5355 */ 0260,0110,0,01,0225,0110,0174,02,0, + /* 5364 */ 0261,0110,0,01,0246,0120,0174,03,0, + /* 5373 */ 0260,0110,0,01,0246,0110,0174,02,0, + /* 5382 */ 0261,0110,0,01,0266,0120,0174,03,0, + /* 5391 */ 0260,0110,0,01,0266,0110,0174,02,0, + /* 5400 */ 0261,0110,010,01,0243,0130,0174,02,0, + /* 5409 */ 0260,0110,010,01,0243,0120,0174,01,0, + /* 5418 */ 0261,0110,0,01,0243,0120,0174,03,0, + /* 5427 */ 0260,0110,0,01,0243,0110,0174,02,0, + /* 5436 */ 0323,02,017,017,0110,01,0277,0, + /* 5444 */ 0323,02,017,017,0110,01,035,0, + /* 5452 */ 0323,02,017,017,0110,01,0256,0, + /* 5460 */ 0323,02,017,017,0110,01,0236,0, + /* 5468 */ 0323,02,017,017,0110,01,0260,0, + /* 5476 */ 0323,02,017,017,0110,01,0220,0, + /* 5484 */ 0323,02,017,017,0110,01,0240,0, + /* 5492 */ 0323,02,017,017,0110,01,0244,0, + /* 5500 */ 0323,02,017,017,0110,01,0224,0, + /* 5508 */ 0323,02,017,017,0110,01,0264,0, + /* 5516 */ 0323,02,017,017,0110,01,0226,0, + /* 5524 */ 0323,02,017,017,0110,01,0246,0, + /* 5532 */ 0323,02,017,017,0110,01,0266,0, + /* 5540 */ 0323,02,017,017,0110,01,0247,0, + /* 5548 */ 0323,02,017,017,0110,01,0227,0, + /* 5556 */ 0323,02,017,017,0110,01,0232,0, + /* 5564 */ 0323,02,017,017,0110,01,0252,0, + /* 5572 */ 0323,02,017,017,0110,01,015,0, + /* 5580 */ 0323,02,017,017,0110,01,0267,0, + /* 5588 */ 0360,02,017,0302,0110,01,0,0, + /* 5596 */ 0363,02,017,0302,0110,01,0,0, + /* 5604 */ 0360,02,017,0302,0110,01,02,0, + /* 5612 */ 0363,02,017,0302,0110,01,02,0, + /* 5620 */ 0360,02,017,0302,0110,01,01,0, + /* 5628 */ 0363,02,017,0302,0110,01,01,0, + /* 5636 */ 0360,02,017,0302,0110,01,04,0, + /* 5644 */ 0363,02,017,0302,0110,01,04,0, + /* 5652 */ 0360,02,017,0302,0110,01,06,0, + /* 5660 */ 0363,02,017,0302,0110,01,06,0, + /* 5668 */ 0360,02,017,0302,0110,01,05,0, + /* 5676 */ 0363,02,017,0302,0110,01,05,0, + /* 5684 */ 0360,02,017,0302,0110,01,07,0, + /* 5692 */ 0363,02,017,0302,0110,01,07,0, + /* 5700 */ 0360,02,017,0302,0110,01,03,0, + /* 5708 */ 0363,02,017,0302,0110,01,03,0, + /* 5716 */ 0360,0323,02,017,0160,0110,022,0, + /* 5724 */ 0323,02,017,017,0110,01,034,0, + /* 5732 */ 0323,02,017,017,0110,01,0212,0, + /* 5740 */ 0323,02,017,017,0110,01,0216,0, + /* 5748 */ 0323,02,017,017,0110,01,014,0, + /* 5756 */ 0323,02,017,017,0110,01,0273,0, + /* 5764 */ 0361,02,017,0302,0110,01,0,0, + /* 5772 */ 0362,02,017,0302,0110,01,0,0, + /* 5780 */ 0361,02,017,0302,0110,01,02,0, + /* 5788 */ 0362,02,017,0302,0110,01,02,0, + /* 5796 */ 0361,02,017,0302,0110,01,01,0, + /* 5804 */ 0362,02,017,0302,0110,01,01,0, + /* 5812 */ 0361,02,017,0302,0110,01,04,0, + /* 5820 */ 0362,02,017,0302,0110,01,04,0, + /* 5828 */ 0361,02,017,0302,0110,01,06,0, + /* 5836 */ 0362,02,017,0302,0110,01,06,0, + /* 5844 */ 0361,02,017,0302,0110,01,05,0, + /* 5852 */ 0362,02,017,0302,0110,01,05,0, + /* 5860 */ 0361,02,017,0302,0110,01,07,0, + /* 5868 */ 0362,02,017,0302,0110,01,07,0, + /* 5876 */ 0361,02,017,0302,0110,01,03,0, + /* 5884 */ 0362,02,017,0302,0110,01,03,0, + /* 5892 */ 0323,0361,03,017,070,0200,0110,0, + /* 5900 */ 0323,0361,03,017,070,0201,0110,0, + /* 5908 */ 0360,03,017,072,017,0110,026,0, + /* 5916 */ 0361,03,017,072,017,0110,026,0, + /* 5924 */ 0361,02,017,0170,0200,025,026,0, + /* 5932 */ 0362,02,017,0170,0110,026,027,0, + /* 5940 */ 0361,03,017,072,015,0110,026,0, + /* 5948 */ 0361,03,017,072,014,0110,026,0, + /* 5956 */ 0361,03,017,072,0101,0110,026,0, + /* 5964 */ 0361,03,017,072,0100,0110,026,0, + /* 5972 */ 0361,03,017,072,041,0110,026,0, + /* 5980 */ 0361,03,017,072,0102,0110,026,0, + /* 5988 */ 0361,03,017,072,016,0110,026,0, + /* 5996 */ 0361,03,017,072,011,0110,026,0, + /* 6004 */ 0361,03,017,072,010,0110,026,0, + /* 6012 */ 0361,03,017,072,013,0110,026,0, + /* 6020 */ 0361,03,017,072,012,0110,026,0, + /* 6028 */ 0320,0332,03,017,070,0361,0110,0, + /* 6036 */ 0321,0332,03,017,070,0361,0110,0, + /* 6044 */ 0324,0332,03,017,070,0360,0110,0, + /* 6052 */ 0324,0332,03,017,070,0361,0110,0, + /* 6060 */ 0361,03,017,072,0141,0110,026,0, + /* 6068 */ 0361,03,017,072,0140,0110,026,0, + /* 6076 */ 0361,03,017,072,0143,0110,026,0, + /* 6084 */ 0361,03,017,072,0142,0110,026,0, + /* 6092 */ 0323,02,017,017,0110,01,0206,0, + /* 6100 */ 0323,02,017,017,0110,01,0207,0, + /* 6108 */ 0361,03,017,072,0337,0110,022,0, + /* 6116 */ 0270,03,021,01,0337,0110,022,0, + /* 6124 */ 0261,03,021,01,015,0120,023,0, + /* 6132 */ 0260,03,021,01,015,0110,022,0, + /* 6140 */ 0261,03,025,01,015,0120,023,0, + /* 6148 */ 0260,03,025,01,015,0110,022,0, + /* 6156 */ 0261,03,021,01,014,0120,023,0, + /* 6164 */ 0260,03,021,01,014,0110,022,0, + /* 6172 */ 0261,03,025,01,014,0120,023,0, + /* 6180 */ 0260,03,025,01,014,0110,022,0, + /* 6188 */ 0261,01,021,01,0302,0120,023,0, + /* 6196 */ 0260,01,021,01,0302,0110,022,0, + /* 6204 */ 0261,01,025,01,0302,0120,023,0, + /* 6212 */ 0260,01,025,01,0302,0110,022,0, + /* 6220 */ 0261,01,020,01,0302,0120,023,0, + /* 6228 */ 0260,01,020,01,0302,0110,022,0, + /* 6236 */ 0261,01,024,01,0302,0120,023,0, + /* 6244 */ 0260,01,024,01,0302,0110,022,0, + /* 6252 */ 0261,01,023,01,0302,0120,023,0, + /* 6260 */ 0260,01,023,01,0302,0110,022,0, + /* 6268 */ 0261,01,022,01,0302,0120,023,0, + /* 6276 */ 0260,01,022,01,0302,0110,022,0, + /* 6284 */ 0261,03,021,01,0101,0120,023,0, + /* 6292 */ 0260,03,021,01,0101,0110,022,0, + /* 6300 */ 0261,03,021,01,0100,0120,023,0, + /* 6308 */ 0260,03,021,01,0100,0110,022,0, + /* 6316 */ 0261,03,025,01,0100,0120,023,0, + /* 6324 */ 0260,03,025,01,0100,0110,022,0, + /* 6332 */ 0270,03,025,01,031,0101,022,0, + /* 6340 */ 0270,03,021,01,027,0101,022,0, + /* 6348 */ 0261,03,025,01,030,0120,023,0, + /* 6356 */ 0261,03,021,01,041,0120,023,0, + /* 6364 */ 0260,03,021,01,041,0110,022,0, + /* 6372 */ 0261,03,021,01,0102,0120,023,0, + /* 6380 */ 0260,03,021,01,0102,0110,022,0, + /* 6388 */ 0261,03,021,01,017,0120,023,0, + /* 6396 */ 0260,03,021,01,017,0110,022,0, + /* 6404 */ 0261,03,021,01,016,0120,023,0, + /* 6412 */ 0260,03,021,01,016,0110,022,0, + /* 6420 */ 0270,03,021,01,0141,0110,022,0, + /* 6428 */ 0270,03,021,01,0140,0110,022,0, + /* 6436 */ 0270,03,021,01,0143,0110,022,0, + /* 6444 */ 0270,03,021,01,0142,0110,022,0, + /* 6452 */ 0270,03,021,01,05,0110,022,0, + /* 6460 */ 0270,03,025,01,05,0110,022,0, + /* 6468 */ 0270,03,021,01,04,0110,022,0, + /* 6476 */ 0270,03,025,01,04,0110,022,0, + /* 6484 */ 0261,03,025,01,06,0120,023,0, + /* 6492 */ 0270,03,01,01,024,0101,022,0, + /* 6500 */ 0270,01,01,01,0305,0101,022,0, + /* 6508 */ 0270,03,01,01,025,0101,022,0, + /* 6516 */ 0270,03,01,01,026,0101,022,0, + /* 6524 */ 0270,03,011,01,026,0101,022,0, + /* 6532 */ 0261,03,021,01,040,0120,023,0, + /* 6540 */ 0260,03,021,01,040,0110,022,0, + /* 6548 */ 0261,01,021,01,0304,0120,023,0, + /* 6556 */ 0260,01,021,01,0304,0110,022,0, + /* 6564 */ 0261,03,01,01,042,0120,023,0, + /* 6572 */ 0260,03,01,01,042,0110,022,0, + /* 6580 */ 0261,03,011,01,042,0120,023,0, + /* 6588 */ 0260,03,011,01,042,0110,022,0, + /* 6596 */ 0270,01,021,01,0160,0110,022,0, + /* 6604 */ 0270,01,022,01,0160,0110,022,0, + /* 6612 */ 0270,01,023,01,0160,0110,022,0, + /* 6620 */ 0260,01,021,01,0163,0217,022,0, + /* 6628 */ 0260,01,021,01,0163,0207,021,0, + /* 6636 */ 0260,01,021,01,0163,0213,022,0, + /* 6644 */ 0260,01,021,01,0163,0203,021,0, + /* 6652 */ 0260,01,021,01,0161,0216,022,0, + /* 6660 */ 0260,01,021,01,0161,0206,021,0, + /* 6668 */ 0260,01,021,01,0162,0216,022,0, + /* 6676 */ 0260,01,021,01,0162,0206,021,0, + /* 6684 */ 0260,01,021,01,0163,0216,022,0, + /* 6692 */ 0260,01,021,01,0163,0206,021,0, + /* 6700 */ 0260,01,021,01,0161,0214,022,0, + /* 6708 */ 0260,01,021,01,0161,0204,021,0, + /* 6716 */ 0260,01,021,01,0162,0214,022,0, + /* 6724 */ 0260,01,021,01,0162,0204,021,0, + /* 6732 */ 0260,01,021,01,0161,0212,022,0, + /* 6740 */ 0260,01,021,01,0161,0202,021,0, + /* 6748 */ 0260,01,021,01,0162,0212,022,0, + /* 6756 */ 0260,01,021,01,0162,0202,021,0, + /* 6764 */ 0260,01,021,01,0163,0212,022,0, + /* 6772 */ 0260,01,021,01,0163,0202,021,0, + /* 6780 */ 0270,03,021,01,011,0110,022,0, + /* 6788 */ 0270,03,025,01,011,0110,022,0, + /* 6796 */ 0270,03,021,01,010,0110,022,0, + /* 6804 */ 0270,03,025,01,010,0110,022,0, + /* 6812 */ 0261,03,021,01,013,0120,023,0, + /* 6820 */ 0260,03,021,01,013,0110,022,0, + /* 6828 */ 0261,03,021,01,012,0120,023,0, + /* 6836 */ 0260,03,021,01,012,0110,022,0, + /* 6844 */ 0261,01,021,01,0306,0120,023,0, + /* 6852 */ 0260,01,021,01,0306,0110,022,0, + /* 6860 */ 0261,01,025,01,0306,0120,023,0, + /* 6868 */ 0260,01,025,01,0306,0110,022,0, + /* 6876 */ 0261,01,020,01,0306,0120,023,0, + /* 6884 */ 0260,01,020,01,0306,0110,022,0, + /* 6892 */ 0261,01,024,01,0306,0120,023,0, + /* 6900 */ 0260,01,024,01,0306,0110,022,0, + /* 6908 */ 0361,03,017,072,0104,0110,022,0, + /* 6916 */ 0261,03,021,01,0104,0120,023,0, + /* 6924 */ 0260,03,021,01,0104,0110,022,0, + /* 6932 */ 0260,0112,0,01,022,0211,032,0, + /* 6940 */ 0260,0112,04,01,022,0211,042,0, + /* 6948 */ 0260,0112,010,01,022,0211,042,0, + /* 6956 */ 0260,0112,0,01,022,0210,032,0, + /* 6964 */ 0260,0112,04,01,022,0210,042,0, + /* 6972 */ 0260,0112,010,01,022,0210,042,0, + /* 6980 */ 0270,0110,0,01,0240,0110,022,0, + /* 6988 */ 0270,0110,0,01,0240,0100,021,0, + /* 6996 */ 0270,0110,04,01,0240,0110,022,0, + /* 7004 */ 0270,0110,04,01,0240,0100,021,0, + /* 7012 */ 0270,0110,0,01,0241,0101,022,0, + /* 7020 */ 0270,0110,0,01,0241,0100,021,0, + /* 7028 */ 0270,0110,04,01,0241,0101,022,0, + /* 7036 */ 0270,0110,04,01,0241,0100,021,0, + /* 7044 */ 0261,0110,0,01,0314,0120,023,0, + /* 7052 */ 0260,0110,0,01,0314,0110,022,0, + /* 7060 */ 0261,0110,0,01,0316,0120,023,0, + /* 7068 */ 0260,0110,0,01,0316,0110,022,0, + /* 7076 */ 0261,0110,0,01,0317,0120,023,0, + /* 7084 */ 0260,0110,0,01,0317,0110,022,0, + /* 7092 */ 0261,0110,0,01,0354,0120,023,0, + /* 7100 */ 0260,0110,0,01,0354,0110,022,0, + /* 7108 */ 0261,0110,0,01,0356,0120,023,0, + /* 7116 */ 0260,0110,0,01,0356,0110,022,0, + /* 7124 */ 0261,0110,0,01,0357,0120,023,0, + /* 7132 */ 0260,0110,0,01,0357,0110,022,0, + /* 7140 */ 0261,0110,0,01,0355,0120,023,0, + /* 7148 */ 0260,0110,0,01,0355,0110,022,0, + /* 7156 */ 0261,0110,0,01,0315,0120,023,0, + /* 7164 */ 0260,0110,0,01,0315,0110,022,0, + /* 7172 */ 0270,0110,0,01,0300,0110,022,0, + /* 7180 */ 0270,0110,0,01,0300,0100,021,0, + /* 7188 */ 0270,0110,0,01,0302,0110,022,0, + /* 7196 */ 0270,0110,0,01,0302,0100,021,0, + /* 7204 */ 0270,0110,0,01,0303,0110,022,0, + /* 7212 */ 0270,0110,0,01,0303,0100,021,0, + /* 7220 */ 0270,0110,0,01,0301,0110,022,0, + /* 7228 */ 0270,0110,0,01,0301,0100,021,0, + /* 7236 */ 0320,02,017,0272,0204,025,0, + /* 7243 */ 0321,02,017,0272,0204,025,0, + /* 7250 */ 0324,02,017,0272,0204,025,0, + /* 7257 */ 0320,02,017,0272,0207,025,0, + /* 7264 */ 0321,02,017,0272,0207,025,0, + /* 7271 */ 0324,02,017,0272,0207,025,0, + /* 7278 */ 0320,02,017,0272,0206,025,0, + /* 7285 */ 0321,02,017,0272,0206,025,0, + /* 7292 */ 0324,02,017,0272,0206,025,0, + /* 7299 */ 0320,02,017,0272,0205,025,0, + /* 7306 */ 0321,02,017,0272,0205,025,0, + /* 7313 */ 0324,02,017,0272,0205,025,0, + /* 7320 */ 0323,0313,03,017,01,0337,0, + /* 7327 */ 0320,0323,02,017,02,0110,0, + /* 7334 */ 0321,0323,02,017,02,0110,0, + /* 7341 */ 0320,0323,02,017,03,0110,0, + /* 7348 */ 0321,0323,02,017,03,0110,0, + /* 7355 */ 0360,0320,02,017,0156,0110,0, + /* 7362 */ 0360,0320,02,017,0176,0101,0, + /* 7369 */ 0360,0323,02,017,0157,0110,0, + /* 7376 */ 0360,0323,02,017,0177,0101,0, + /* 7383 */ 0360,0323,02,017,0153,0110,0, + /* 7390 */ 0360,0323,02,017,0143,0110,0, + /* 7397 */ 0360,0323,02,017,0147,0110,0, + /* 7404 */ 0360,0323,02,017,0374,0110,0, + /* 7411 */ 0360,0323,02,017,0376,0110,0, + /* 7418 */ 0360,0323,02,017,0354,0110,0, + /* 7425 */ 0360,0323,02,017,0355,0110,0, + /* 7432 */ 0360,0323,02,017,0334,0110,0, + /* 7439 */ 0360,0323,02,017,0335,0110,0, + /* 7446 */ 0360,0323,02,017,0375,0110,0, + /* 7453 */ 0360,0323,02,017,0333,0110,0, + /* 7460 */ 0360,0323,02,017,0337,0110,0, + /* 7467 */ 0360,0323,02,017,0164,0110,0, + /* 7474 */ 0360,0323,02,017,0166,0110,0, + /* 7481 */ 0360,0323,02,017,0165,0110,0, + /* 7488 */ 0360,0323,02,017,0144,0110,0, + /* 7495 */ 0360,0323,02,017,0146,0110,0, + /* 7502 */ 0360,0323,02,017,0145,0110,0, + /* 7509 */ 0360,0323,02,017,0365,0110,0, + /* 7516 */ 0360,0323,02,017,0345,0110,0, + /* 7523 */ 0360,0323,02,017,0325,0110,0, + /* 7530 */ 0360,0323,02,017,0353,0110,0, + /* 7537 */ 0360,0323,02,017,0362,0110,0, + /* 7544 */ 0360,02,017,0162,0206,025,0, + /* 7551 */ 0360,0323,02,017,0363,0110,0, + /* 7558 */ 0360,02,017,0163,0206,025,0, + /* 7565 */ 0360,0323,02,017,0361,0110,0, + /* 7572 */ 0360,02,017,0161,0206,025,0, + /* 7579 */ 0360,0323,02,017,0342,0110,0, + /* 7586 */ 0360,02,017,0162,0204,025,0, + /* 7593 */ 0360,0323,02,017,0341,0110,0, + /* 7600 */ 0360,02,017,0161,0204,025,0, + /* 7607 */ 0360,0323,02,017,0322,0110,0, + /* 7614 */ 0360,02,017,0162,0202,025,0, + /* 7621 */ 0360,0323,02,017,0323,0110,0, + /* 7628 */ 0360,02,017,0163,0202,025,0, + /* 7635 */ 0360,0323,02,017,0321,0110,0, + /* 7642 */ 0360,02,017,0161,0202,025,0, + /* 7649 */ 0360,0323,02,017,0370,0110,0, + /* 7656 */ 0360,0323,02,017,0372,0110,0, + /* 7663 */ 0360,0323,02,017,0350,0110,0, + /* 7670 */ 0360,0323,02,017,0351,0110,0, + /* 7677 */ 0360,0323,02,017,0330,0110,0, + /* 7684 */ 0360,0323,02,017,0331,0110,0, + /* 7691 */ 0360,0323,02,017,0371,0110,0, + /* 7698 */ 0360,0323,02,017,0150,0110,0, + /* 7705 */ 0360,0323,02,017,0152,0110,0, + /* 7712 */ 0360,0323,02,017,0151,0110,0, + /* 7719 */ 0360,0323,02,017,0140,0110,0, + /* 7726 */ 0360,0323,02,017,0142,0110,0, + /* 7733 */ 0360,0323,02,017,0141,0110,0, + /* 7740 */ 0360,0323,02,017,0357,0110,0, + /* 7747 */ 0320,02,017,0244,0101,026,0, + /* 7754 */ 0321,02,017,0244,0101,026,0, + /* 7761 */ 0324,02,017,0244,0101,026,0, + /* 7768 */ 0320,02,017,0254,0101,026,0, + /* 7775 */ 0321,02,017,0254,0101,026,0, + /* 7782 */ 0324,02,017,0254,0101,026,0, + /* 7789 */ 0360,0320,02,017,021,0101,0, + /* 7796 */ 0360,0321,02,017,021,0101,0, + /* 7803 */ 0360,0320,02,017,023,0110,0, + /* 7810 */ 0360,0321,02,017,023,0110,0, + /* 7817 */ 0320,01,017,0330,0100,0110,0, + /* 7824 */ 0321,01,017,0330,0100,0110,0, + /* 7831 */ 0324,01,017,0330,0100,0110,0, + /* 7838 */ 0322,01,017,0330,0200,064,0, + /* 7845 */ 0320,01,017,0330,0200,064,0, + /* 7852 */ 0321,01,017,0330,0200,064,0, + /* 7859 */ 0330,0161,0373,01,0351,064,0, + /* 7866 */ 0360,02,017,0302,0110,026,0, + /* 7873 */ 0363,02,017,0302,0110,026,0, + /* 7880 */ 0324,0363,02,017,052,0110,0, + /* 7887 */ 0324,0363,02,017,055,0110,0, + /* 7894 */ 0324,0363,02,017,054,0110,0, + /* 7901 */ 0360,0324,02,017,0120,0110,0, + /* 7908 */ 0360,02,017,0306,0110,026,0, + /* 7915 */ 0360,0323,02,017,0340,0110,0, + /* 7922 */ 0360,0323,02,017,0343,0110,0, + /* 7929 */ 0360,02,017,0305,0110,026,0, + /* 7936 */ 0360,02,017,0304,0110,026,0, + /* 7943 */ 0360,0323,02,017,0356,0110,0, + /* 7950 */ 0360,0323,02,017,0336,0110,0, + /* 7957 */ 0360,0323,02,017,0352,0110,0, + /* 7964 */ 0360,0323,02,017,0332,0110,0, + /* 7971 */ 0360,0323,02,017,0344,0110,0, + /* 7978 */ 0360,0323,02,017,0366,0110,0, + /* 7985 */ 0324,0360,02,017,0303,0101,0, + /* 7992 */ 0361,0317,02,017,0176,0101,0, + /* 7999 */ 0361,0317,02,017,0156,0110,0, + /* 8006 */ 0361,0324,02,017,0156,0110,0, + /* 8013 */ 0361,0324,02,017,0176,0101,0, + /* 8020 */ 0361,02,017,0305,0110,026,0, + /* 8027 */ 0361,02,017,0304,0110,026,0, + /* 8034 */ 0360,0323,02,017,0364,0110,0, + /* 8041 */ 0361,02,017,0160,0110,022,0, + /* 8048 */ 0363,02,017,0160,0110,022,0, + /* 8055 */ 0362,02,017,0160,0110,022,0, + /* 8062 */ 0361,02,017,0163,0207,025,0, + /* 8069 */ 0361,02,017,0161,0206,025,0, + /* 8076 */ 0361,02,017,0162,0206,025,0, + /* 8083 */ 0361,02,017,0163,0206,025,0, + /* 8090 */ 0361,02,017,0161,0204,025,0, + /* 8097 */ 0361,02,017,0162,0204,025,0, + /* 8104 */ 0361,02,017,0163,0203,025,0, + /* 8111 */ 0361,02,017,0161,0202,025,0, + /* 8118 */ 0361,02,017,0162,0202,025,0, + /* 8125 */ 0361,02,017,0163,0202,025,0, + /* 8132 */ 0360,0323,02,017,0373,0110,0, + /* 8139 */ 0361,02,017,0302,0110,026,0, + /* 8146 */ 0362,02,017,0302,0110,026,0, + /* 8153 */ 0324,0362,02,017,055,0110,0, + /* 8160 */ 0324,0362,02,017,052,0110,0, + /* 8167 */ 0324,0362,02,017,054,0110,0, + /* 8174 */ 0361,0324,02,017,0120,0110,0, + /* 8181 */ 0361,02,017,0306,0110,026,0, + /* 8188 */ 0323,0360,02,017,0170,0101,0, + /* 8195 */ 0323,0360,02,017,0171,0110,0, + /* 8202 */ 0360,03,017,070,034,0110,0, + /* 8209 */ 0361,03,017,070,034,0110,0, + /* 8216 */ 0360,03,017,070,035,0110,0, + /* 8223 */ 0361,03,017,070,035,0110,0, + /* 8230 */ 0360,03,017,070,036,0110,0, + /* 8237 */ 0361,03,017,070,036,0110,0, + /* 8244 */ 0360,03,017,070,01,0110,0, + /* 8251 */ 0361,03,017,070,01,0110,0, + /* 8258 */ 0360,03,017,070,02,0110,0, + /* 8265 */ 0361,03,017,070,02,0110,0, + /* 8272 */ 0360,03,017,070,03,0110,0, + /* 8279 */ 0361,03,017,070,03,0110,0, + /* 8286 */ 0360,03,017,070,05,0110,0, + /* 8293 */ 0361,03,017,070,05,0110,0, + /* 8300 */ 0360,03,017,070,06,0110,0, + /* 8307 */ 0361,03,017,070,06,0110,0, + /* 8314 */ 0360,03,017,070,07,0110,0, + /* 8321 */ 0361,03,017,070,07,0110,0, + /* 8328 */ 0360,03,017,070,04,0110,0, + /* 8335 */ 0361,03,017,070,04,0110,0, + /* 8342 */ 0360,03,017,070,013,0110,0, + /* 8349 */ 0361,03,017,070,013,0110,0, + /* 8356 */ 0360,03,017,070,0,0110,0, + /* 8363 */ 0361,03,017,070,0,0110,0, + /* 8370 */ 0360,03,017,070,010,0110,0, + /* 8377 */ 0361,03,017,070,010,0110,0, + /* 8384 */ 0360,03,017,070,011,0110,0, + /* 8391 */ 0361,03,017,070,011,0110,0, + /* 8398 */ 0360,03,017,070,012,0110,0, + /* 8405 */ 0361,03,017,070,012,0110,0, + /* 8412 */ 0320,0333,02,017,0275,0110,0, + /* 8419 */ 0321,0333,02,017,0275,0110,0, + /* 8426 */ 0324,0333,02,017,0275,0110,0, + /* 8433 */ 0361,03,017,070,025,0110,0, + /* 8440 */ 0361,03,017,070,024,0110,0, + /* 8447 */ 0361,03,017,070,052,0110,0, + /* 8454 */ 0361,03,017,070,053,0110,0, + /* 8461 */ 0361,03,017,070,020,0110,0, + /* 8468 */ 0361,03,017,070,051,0110,0, + /* 8475 */ 0361,03,017,070,0101,0110,0, + /* 8482 */ 0361,03,017,070,074,0110,0, + /* 8489 */ 0361,03,017,070,075,0110,0, + /* 8496 */ 0361,03,017,070,077,0110,0, + /* 8503 */ 0361,03,017,070,076,0110,0, + /* 8510 */ 0361,03,017,070,070,0110,0, + /* 8517 */ 0361,03,017,070,071,0110,0, + /* 8524 */ 0361,03,017,070,073,0110,0, + /* 8531 */ 0361,03,017,070,072,0110,0, + /* 8538 */ 0361,03,017,070,040,0110,0, + /* 8545 */ 0361,03,017,070,041,0110,0, + /* 8552 */ 0361,03,017,070,042,0110,0, + /* 8559 */ 0361,03,017,070,043,0110,0, + /* 8566 */ 0361,03,017,070,044,0110,0, + /* 8573 */ 0361,03,017,070,045,0110,0, + /* 8580 */ 0361,03,017,070,060,0110,0, + /* 8587 */ 0361,03,017,070,061,0110,0, + /* 8594 */ 0361,03,017,070,062,0110,0, + /* 8601 */ 0361,03,017,070,063,0110,0, + /* 8608 */ 0361,03,017,070,064,0110,0, + /* 8615 */ 0361,03,017,070,065,0110,0, + /* 8622 */ 0361,03,017,070,050,0110,0, + /* 8629 */ 0361,03,017,070,0100,0110,0, + /* 8636 */ 0361,03,017,070,027,0110,0, + /* 8643 */ 0361,03,017,070,067,0110,0, + /* 8650 */ 0320,0333,02,017,0270,0110,0, + /* 8657 */ 0321,0333,02,017,0270,0110,0, + /* 8664 */ 0324,0333,02,017,0270,0110,0, + /* 8671 */ 0320,03,017,070,0360,0110,0, + /* 8678 */ 0321,03,017,070,0360,0110,0, + /* 8685 */ 0324,03,017,070,0360,0110,0, + /* 8692 */ 0320,03,017,070,0361,0101,0, + /* 8699 */ 0321,03,017,070,0361,0101,0, + /* 8706 */ 0324,03,017,070,0361,0101,0, + /* 8713 */ 0361,03,017,070,0334,0110,0, + /* 8720 */ 0361,03,017,070,0335,0110,0, + /* 8727 */ 0361,03,017,070,0336,0110,0, + /* 8734 */ 0361,03,017,070,0337,0110,0, + /* 8741 */ 0361,03,017,070,0333,0110,0, + /* 8748 */ 0261,02,021,01,0334,0120,0, + /* 8755 */ 0260,02,021,01,0334,0110,0, + /* 8762 */ 0261,02,021,01,0335,0120,0, + /* 8769 */ 0260,02,021,01,0335,0110,0, + /* 8776 */ 0261,02,021,01,0336,0120,0, + /* 8783 */ 0260,02,021,01,0336,0110,0, + /* 8790 */ 0261,02,021,01,0337,0120,0, + /* 8797 */ 0260,02,021,01,0337,0110,0, + /* 8804 */ 0270,02,021,01,0333,0110,0, + /* 8811 */ 0261,01,021,01,0130,0120,0, + /* 8818 */ 0260,01,021,01,0130,0110,0, + /* 8825 */ 0261,01,025,01,0130,0120,0, + /* 8832 */ 0260,01,025,01,0130,0110,0, + /* 8839 */ 0261,01,020,01,0130,0120,0, + /* 8846 */ 0260,01,020,01,0130,0110,0, + /* 8853 */ 0261,01,024,01,0130,0120,0, + /* 8860 */ 0260,01,024,01,0130,0110,0, + /* 8867 */ 0261,01,023,01,0130,0120,0, + /* 8874 */ 0260,01,023,01,0130,0110,0, + /* 8881 */ 0261,01,022,01,0130,0120,0, + /* 8888 */ 0260,01,022,01,0130,0110,0, + /* 8895 */ 0261,01,021,01,0320,0120,0, + /* 8902 */ 0260,01,021,01,0320,0110,0, + /* 8909 */ 0261,01,025,01,0320,0120,0, + /* 8916 */ 0260,01,025,01,0320,0110,0, + /* 8923 */ 0261,01,023,01,0320,0120,0, + /* 8930 */ 0260,01,023,01,0320,0110,0, + /* 8937 */ 0261,01,027,01,0320,0120,0, + /* 8944 */ 0260,01,027,01,0320,0110,0, + /* 8951 */ 0261,01,021,01,0124,0120,0, + /* 8958 */ 0260,01,021,01,0124,0110,0, + /* 8965 */ 0261,01,025,01,0124,0120,0, + /* 8972 */ 0260,01,025,01,0124,0110,0, + /* 8979 */ 0261,01,020,01,0124,0120,0, + /* 8986 */ 0260,01,020,01,0124,0110,0, + /* 8993 */ 0261,01,024,01,0124,0120,0, + /* 9000 */ 0260,01,024,01,0124,0110,0, + /* 9007 */ 0261,01,021,01,0125,0120,0, + /* 9014 */ 0260,01,021,01,0125,0110,0, + /* 9021 */ 0261,01,025,01,0125,0120,0, + /* 9028 */ 0260,01,025,01,0125,0110,0, + /* 9035 */ 0261,01,020,01,0125,0120,0, + /* 9042 */ 0260,01,020,01,0125,0110,0, + /* 9049 */ 0261,01,024,01,0125,0120,0, + /* 9056 */ 0260,01,024,01,0125,0110,0, + /* 9063 */ 0270,02,021,01,025,0110,0, + /* 9070 */ 0270,02,025,01,025,0110,0, + /* 9077 */ 0270,02,021,01,024,0110,0, + /* 9084 */ 0270,02,025,01,024,0110,0, + /* 9091 */ 0270,02,021,01,030,0110,0, + /* 9098 */ 0270,02,025,01,030,0110,0, + /* 9105 */ 0270,02,025,01,031,0110,0, + /* 9112 */ 0270,02,025,01,032,0110,0, + /* 9119 */ 0270,01,021,01,057,0110,0, + /* 9126 */ 0270,01,020,01,057,0110,0, + /* 9133 */ 0270,01,022,01,0346,0110,0, + /* 9140 */ 0270,01,026,01,0346,0110,0, + /* 9147 */ 0270,01,020,01,0133,0110,0, + /* 9154 */ 0270,01,024,01,0133,0110,0, + /* 9161 */ 0270,01,023,01,0346,0110,0, + /* 9168 */ 0270,01,027,01,0346,0110,0, + /* 9175 */ 0270,01,021,01,0132,0110,0, + /* 9182 */ 0270,01,025,01,0132,0110,0, + /* 9189 */ 0270,01,021,01,0133,0110,0, + /* 9196 */ 0270,01,025,01,0133,0110,0, + /* 9203 */ 0270,01,020,01,0132,0110,0, + /* 9210 */ 0270,01,024,01,0132,0110,0, + /* 9217 */ 0270,01,03,01,055,0110,0, + /* 9224 */ 0270,01,013,01,055,0110,0, + /* 9231 */ 0261,01,023,01,0132,0120,0, + /* 9238 */ 0260,01,023,01,0132,0110,0, + /* 9245 */ 0261,01,03,01,052,0120,0, + /* 9252 */ 0260,01,03,01,052,0110,0, + /* 9259 */ 0261,01,013,01,052,0120,0, + /* 9266 */ 0260,01,013,01,052,0110,0, + /* 9273 */ 0261,01,02,01,052,0120,0, + /* 9280 */ 0260,01,02,01,052,0110,0, + /* 9287 */ 0261,01,012,01,052,0120,0, + /* 9294 */ 0260,01,012,01,052,0110,0, + /* 9301 */ 0261,01,022,01,0132,0120,0, + /* 9308 */ 0260,01,022,01,0132,0110,0, + /* 9315 */ 0270,01,02,01,055,0110,0, + /* 9322 */ 0270,01,012,01,055,0110,0, + /* 9329 */ 0270,01,021,01,0346,0110,0, + /* 9336 */ 0270,01,025,01,0346,0110,0, + /* 9343 */ 0270,01,022,01,0133,0110,0, + /* 9350 */ 0270,01,026,01,0133,0110,0, + /* 9357 */ 0270,01,03,01,054,0110,0, + /* 9364 */ 0270,01,013,01,054,0110,0, + /* 9371 */ 0270,01,02,01,054,0110,0, + /* 9378 */ 0270,01,012,01,054,0110,0, + /* 9385 */ 0261,01,021,01,0136,0120,0, + /* 9392 */ 0260,01,021,01,0136,0110,0, + /* 9399 */ 0261,01,025,01,0136,0120,0, + /* 9406 */ 0260,01,025,01,0136,0110,0, + /* 9413 */ 0261,01,020,01,0136,0120,0, + /* 9420 */ 0260,01,020,01,0136,0110,0, + /* 9427 */ 0261,01,024,01,0136,0120,0, + /* 9434 */ 0260,01,024,01,0136,0110,0, + /* 9441 */ 0261,01,023,01,0136,0120,0, + /* 9448 */ 0260,01,023,01,0136,0110,0, + /* 9455 */ 0261,01,022,01,0136,0120,0, + /* 9462 */ 0260,01,022,01,0136,0110,0, + /* 9469 */ 0261,01,021,01,0174,0120,0, + /* 9476 */ 0260,01,021,01,0174,0110,0, + /* 9483 */ 0261,01,025,01,0174,0120,0, + /* 9490 */ 0260,01,025,01,0174,0110,0, + /* 9497 */ 0261,01,023,01,0174,0120,0, + /* 9504 */ 0260,01,023,01,0174,0110,0, + /* 9511 */ 0261,01,027,01,0174,0120,0, + /* 9518 */ 0260,01,027,01,0174,0110,0, + /* 9525 */ 0261,01,021,01,0175,0120,0, + /* 9532 */ 0260,01,021,01,0175,0110,0, + /* 9539 */ 0261,01,025,01,0175,0120,0, + /* 9546 */ 0260,01,025,01,0175,0110,0, + /* 9553 */ 0261,01,023,01,0175,0120,0, + /* 9560 */ 0260,01,023,01,0175,0110,0, + /* 9567 */ 0261,01,027,01,0175,0120,0, + /* 9574 */ 0260,01,027,01,0175,0110,0, + /* 9581 */ 0270,01,023,01,0360,0110,0, + /* 9588 */ 0270,01,027,01,0360,0110,0, + /* 9595 */ 0270,01,020,01,0256,0202,0, + /* 9602 */ 0270,01,021,01,0367,0110,0, + /* 9609 */ 0261,02,021,01,054,0120,0, + /* 9616 */ 0261,02,025,01,054,0120,0, + /* 9623 */ 0261,02,021,01,056,0102,0, + /* 9630 */ 0261,02,025,01,056,0102,0, + /* 9637 */ 0261,02,021,01,055,0120,0, + /* 9644 */ 0261,02,025,01,055,0120,0, + /* 9651 */ 0261,02,021,01,057,0102,0, + /* 9658 */ 0261,02,025,01,057,0102,0, + /* 9665 */ 0261,01,021,01,0137,0120,0, + /* 9672 */ 0260,01,021,01,0137,0110,0, + /* 9679 */ 0261,01,025,01,0137,0120,0, + /* 9686 */ 0260,01,025,01,0137,0110,0, + /* 9693 */ 0261,01,020,01,0137,0120,0, + /* 9700 */ 0260,01,020,01,0137,0110,0, + /* 9707 */ 0261,01,024,01,0137,0120,0, + /* 9714 */ 0260,01,024,01,0137,0110,0, + /* 9721 */ 0261,01,023,01,0137,0120,0, + /* 9728 */ 0260,01,023,01,0137,0110,0, + /* 9735 */ 0261,01,022,01,0137,0120,0, + /* 9742 */ 0260,01,022,01,0137,0110,0, + /* 9749 */ 0261,01,021,01,0135,0120,0, + /* 9756 */ 0260,01,021,01,0135,0110,0, + /* 9763 */ 0261,01,025,01,0135,0120,0, + /* 9770 */ 0260,01,025,01,0135,0110,0, + /* 9777 */ 0261,01,020,01,0135,0120,0, + /* 9784 */ 0260,01,020,01,0135,0110,0, + /* 9791 */ 0261,01,024,01,0135,0120,0, + /* 9798 */ 0260,01,024,01,0135,0110,0, + /* 9805 */ 0261,01,023,01,0135,0120,0, + /* 9812 */ 0260,01,023,01,0135,0110,0, + /* 9819 */ 0261,01,022,01,0135,0120,0, + /* 9826 */ 0260,01,022,01,0135,0110,0, + /* 9833 */ 0270,01,021,01,050,0110,0, + /* 9840 */ 0270,01,021,01,051,0101,0, + /* 9847 */ 0270,01,025,01,050,0110,0, + /* 9854 */ 0270,01,025,01,051,0101,0, + /* 9861 */ 0270,01,020,01,050,0110,0, + /* 9868 */ 0270,01,020,01,051,0101,0, + /* 9875 */ 0270,01,024,01,050,0110,0, + /* 9882 */ 0270,01,024,01,051,0101,0, + /* 9889 */ 0270,01,022,01,0176,0110,0, + /* 9896 */ 0270,01,021,01,0326,0101,0, + /* 9903 */ 0270,01,011,01,0156,0110,0, + /* 9910 */ 0270,01,011,01,0176,0101,0, + /* 9917 */ 0270,01,01,01,0156,0110,0, + /* 9924 */ 0270,01,01,01,0176,0101,0, + /* 9931 */ 0270,01,023,01,022,0110,0, + /* 9938 */ 0270,01,027,01,022,0110,0, + /* 9945 */ 0270,01,021,01,0157,0110,0, + /* 9952 */ 0270,01,021,01,0177,0101,0, + /* 9959 */ 0270,01,025,01,0157,0110,0, + /* 9966 */ 0270,01,025,01,0177,0101,0, + /* 9973 */ 0270,01,022,01,0157,0110,0, + /* 9980 */ 0270,01,022,01,0177,0101,0, + /* 9987 */ 0270,01,026,01,0157,0110,0, + /* 9994 */ 0270,01,026,01,0177,0101,0, + /* 10001 */ 0261,01,020,01,022,0120,0, + /* 10008 */ 0260,01,020,01,022,0110,0, + /* 10015 */ 0261,01,021,01,026,0120,0, + /* 10022 */ 0260,01,021,01,026,0110,0, + /* 10029 */ 0270,01,021,01,027,0101,0, + /* 10036 */ 0261,01,020,01,026,0120,0, + /* 10043 */ 0260,01,020,01,026,0110,0, + /* 10050 */ 0270,01,020,01,027,0101,0, + /* 10057 */ 0261,01,021,01,022,0120,0, + /* 10064 */ 0260,01,021,01,022,0110,0, + /* 10071 */ 0270,01,021,01,023,0101,0, + /* 10078 */ 0270,01,020,01,023,0101,0, + /* 10085 */ 0270,01,021,01,0120,0110,0, + /* 10092 */ 0270,01,025,01,0120,0110,0, + /* 10099 */ 0270,01,020,01,0120,0110,0, + /* 10106 */ 0270,01,024,01,0120,0110,0, + /* 10113 */ 0270,01,021,01,0347,0101,0, + /* 10120 */ 0270,01,025,01,0347,0101,0, + /* 10127 */ 0270,02,021,01,052,0110,0, + /* 10134 */ 0270,01,021,01,053,0101,0, + /* 10141 */ 0270,01,025,01,053,0101,0, + /* 10148 */ 0270,01,020,01,053,0101,0, + /* 10155 */ 0270,01,024,01,053,0101,0, + /* 10162 */ 0261,01,023,01,020,0120,0, + /* 10169 */ 0260,01,023,01,020,0110,0, + /* 10176 */ 0270,01,023,01,020,0110,0, + /* 10183 */ 0261,01,023,01,021,0102,0, + /* 10190 */ 0260,01,023,01,021,0101,0, + /* 10197 */ 0270,01,023,01,021,0101,0, + /* 10204 */ 0270,01,022,01,026,0110,0, + /* 10211 */ 0270,01,026,01,026,0110,0, + /* 10218 */ 0270,01,022,01,022,0110,0, + /* 10225 */ 0270,01,026,01,022,0110,0, + /* 10232 */ 0261,01,022,01,020,0120,0, + /* 10239 */ 0260,01,022,01,020,0110,0, + /* 10246 */ 0270,01,022,01,020,0110,0, + /* 10253 */ 0261,01,022,01,021,0102,0, + /* 10260 */ 0260,01,022,01,021,0101,0, + /* 10267 */ 0270,01,022,01,021,0101,0, + /* 10274 */ 0270,01,021,01,020,0110,0, + /* 10281 */ 0270,01,021,01,021,0101,0, + /* 10288 */ 0270,01,025,01,020,0110,0, + /* 10295 */ 0270,01,025,01,021,0101,0, + /* 10302 */ 0270,01,020,01,020,0110,0, + /* 10309 */ 0270,01,020,01,021,0101,0, + /* 10316 */ 0270,01,024,01,020,0110,0, + /* 10323 */ 0270,01,024,01,021,0101,0, + /* 10330 */ 0261,01,021,01,0131,0120,0, + /* 10337 */ 0260,01,021,01,0131,0110,0, + /* 10344 */ 0261,01,025,01,0131,0120,0, + /* 10351 */ 0260,01,025,01,0131,0110,0, + /* 10358 */ 0261,01,020,01,0131,0120,0, + /* 10365 */ 0260,01,020,01,0131,0110,0, + /* 10372 */ 0261,01,024,01,0131,0120,0, + /* 10379 */ 0260,01,024,01,0131,0110,0, + /* 10386 */ 0261,01,023,01,0131,0120,0, + /* 10393 */ 0260,01,023,01,0131,0110,0, + /* 10400 */ 0261,01,022,01,0131,0120,0, + /* 10407 */ 0260,01,022,01,0131,0110,0, + /* 10414 */ 0261,01,021,01,0126,0120,0, + /* 10421 */ 0260,01,021,01,0126,0110,0, + /* 10428 */ 0261,01,025,01,0126,0120,0, + /* 10435 */ 0260,01,025,01,0126,0110,0, + /* 10442 */ 0261,01,020,01,0126,0120,0, + /* 10449 */ 0260,01,020,01,0126,0110,0, + /* 10456 */ 0261,01,024,01,0126,0120,0, + /* 10463 */ 0260,01,024,01,0126,0110,0, + /* 10470 */ 0270,02,021,01,034,0110,0, + /* 10477 */ 0270,02,021,01,035,0110,0, + /* 10484 */ 0270,02,021,01,036,0110,0, + /* 10491 */ 0261,01,021,01,0143,0120,0, + /* 10498 */ 0260,01,021,01,0143,0110,0, + /* 10505 */ 0261,01,021,01,0153,0120,0, + /* 10512 */ 0260,01,021,01,0153,0110,0, + /* 10519 */ 0261,01,021,01,0147,0120,0, + /* 10526 */ 0260,01,021,01,0147,0110,0, + /* 10533 */ 0261,02,021,01,053,0120,0, + /* 10540 */ 0260,02,021,01,053,0110,0, + /* 10547 */ 0261,01,021,01,0374,0120,0, + /* 10554 */ 0260,01,021,01,0374,0110,0, + /* 10561 */ 0261,01,021,01,0375,0120,0, + /* 10568 */ 0260,01,021,01,0375,0110,0, + /* 10575 */ 0261,01,021,01,0376,0120,0, + /* 10582 */ 0260,01,021,01,0376,0110,0, + /* 10589 */ 0261,01,021,01,0324,0120,0, + /* 10596 */ 0260,01,021,01,0324,0110,0, + /* 10603 */ 0261,01,021,01,0354,0120,0, + /* 10610 */ 0260,01,021,01,0354,0110,0, + /* 10617 */ 0261,01,021,01,0355,0120,0, + /* 10624 */ 0260,01,021,01,0355,0110,0, + /* 10631 */ 0261,01,021,01,0334,0120,0, + /* 10638 */ 0260,01,021,01,0334,0110,0, + /* 10645 */ 0261,01,021,01,0335,0120,0, + /* 10652 */ 0260,01,021,01,0335,0110,0, + /* 10659 */ 0261,01,021,01,0333,0120,0, + /* 10666 */ 0260,01,021,01,0333,0110,0, + /* 10673 */ 0261,01,021,01,0337,0120,0, + /* 10680 */ 0260,01,021,01,0337,0110,0, + /* 10687 */ 0261,01,021,01,0340,0120,0, + /* 10694 */ 0260,01,021,01,0340,0110,0, + /* 10701 */ 0261,01,021,01,0343,0120,0, + /* 10708 */ 0260,01,021,01,0343,0110,0, + /* 10715 */ 0261,01,021,01,0164,0120,0, + /* 10722 */ 0260,01,021,01,0164,0110,0, + /* 10729 */ 0261,01,021,01,0165,0120,0, + /* 10736 */ 0260,01,021,01,0165,0110,0, + /* 10743 */ 0261,01,021,01,0166,0120,0, + /* 10750 */ 0260,01,021,01,0166,0110,0, + /* 10757 */ 0261,01,021,01,051,0120,0, + /* 10764 */ 0260,01,021,01,051,0110,0, + /* 10771 */ 0261,01,021,01,0144,0120,0, + /* 10778 */ 0260,01,021,01,0144,0110,0, + /* 10785 */ 0261,01,021,01,0145,0120,0, + /* 10792 */ 0260,01,021,01,0145,0110,0, + /* 10799 */ 0261,01,021,01,0146,0120,0, + /* 10806 */ 0260,01,021,01,0146,0110,0, + /* 10813 */ 0261,01,021,01,067,0120,0, + /* 10820 */ 0260,01,021,01,067,0110,0, + /* 10827 */ 0261,02,021,01,015,0120,0, + /* 10834 */ 0261,02,025,01,015,0120,0, + /* 10841 */ 0261,02,021,01,014,0120,0, + /* 10848 */ 0261,02,025,01,014,0120,0, + /* 10855 */ 0261,02,021,01,01,0120,0, + /* 10862 */ 0260,02,021,01,01,0110,0, + /* 10869 */ 0261,02,021,01,02,0120,0, + /* 10876 */ 0260,02,021,01,02,0110,0, + /* 10883 */ 0261,02,021,01,03,0120,0, + /* 10890 */ 0260,02,021,01,03,0110,0, + /* 10897 */ 0270,02,021,01,0101,0110,0, + /* 10904 */ 0261,02,021,01,05,0120,0, + /* 10911 */ 0260,02,021,01,05,0110,0, + /* 10918 */ 0261,02,021,01,06,0120,0, + /* 10925 */ 0260,02,021,01,06,0110,0, + /* 10932 */ 0261,02,021,01,07,0120,0, + /* 10939 */ 0260,02,021,01,07,0110,0, + /* 10946 */ 0261,01,021,01,0365,0120,0, + /* 10953 */ 0260,01,021,01,0365,0110,0, + /* 10960 */ 0261,02,021,01,04,0120,0, + /* 10967 */ 0260,02,021,01,04,0110,0, + /* 10974 */ 0261,02,021,01,074,0120,0, + /* 10981 */ 0260,02,021,01,074,0110,0, + /* 10988 */ 0261,01,021,01,0356,0120,0, + /* 10995 */ 0260,01,021,01,0356,0110,0, + /* 11002 */ 0261,02,021,01,075,0120,0, + /* 11009 */ 0260,02,021,01,075,0110,0, + /* 11016 */ 0261,01,021,01,0336,0120,0, + /* 11023 */ 0260,01,021,01,0336,0110,0, + /* 11030 */ 0261,02,021,01,076,0120,0, + /* 11037 */ 0260,02,021,01,076,0110,0, + /* 11044 */ 0261,02,021,01,077,0120,0, + /* 11051 */ 0260,02,021,01,077,0110,0, + /* 11058 */ 0261,02,021,01,070,0120,0, + /* 11065 */ 0260,02,021,01,070,0110,0, + /* 11072 */ 0261,01,021,01,0352,0120,0, + /* 11079 */ 0260,01,021,01,0352,0110,0, + /* 11086 */ 0261,02,021,01,071,0120,0, + /* 11093 */ 0260,02,021,01,071,0110,0, + /* 11100 */ 0261,01,021,01,0332,0120,0, + /* 11107 */ 0260,01,021,01,0332,0110,0, + /* 11114 */ 0261,02,021,01,072,0120,0, + /* 11121 */ 0260,02,021,01,072,0110,0, + /* 11128 */ 0261,02,021,01,073,0120,0, + /* 11135 */ 0260,02,021,01,073,0110,0, + /* 11142 */ 0270,01,021,01,0327,0110,0, + /* 11149 */ 0270,02,021,01,040,0110,0, + /* 11156 */ 0270,02,021,01,041,0110,0, + /* 11163 */ 0270,02,021,01,042,0110,0, + /* 11170 */ 0270,02,021,01,043,0110,0, + /* 11177 */ 0270,02,021,01,044,0110,0, + /* 11184 */ 0270,02,021,01,045,0110,0, + /* 11191 */ 0270,02,021,01,060,0110,0, + /* 11198 */ 0270,02,021,01,061,0110,0, + /* 11205 */ 0270,02,021,01,062,0110,0, + /* 11212 */ 0270,02,021,01,063,0110,0, + /* 11219 */ 0270,02,021,01,064,0110,0, + /* 11226 */ 0270,02,021,01,065,0110,0, + /* 11233 */ 0261,01,021,01,0344,0120,0, + /* 11240 */ 0260,01,021,01,0344,0110,0, + /* 11247 */ 0261,02,021,01,013,0120,0, + /* 11254 */ 0260,02,021,01,013,0110,0, + /* 11261 */ 0261,01,021,01,0345,0120,0, + /* 11268 */ 0260,01,021,01,0345,0110,0, + /* 11275 */ 0261,01,021,01,0325,0120,0, + /* 11282 */ 0260,01,021,01,0325,0110,0, + /* 11289 */ 0261,02,021,01,0100,0120,0, + /* 11296 */ 0260,02,021,01,0100,0110,0, + /* 11303 */ 0261,01,021,01,0364,0120,0, + /* 11310 */ 0260,01,021,01,0364,0110,0, + /* 11317 */ 0261,02,021,01,050,0120,0, + /* 11324 */ 0260,02,021,01,050,0110,0, + /* 11331 */ 0261,01,021,01,0353,0120,0, + /* 11338 */ 0260,01,021,01,0353,0110,0, + /* 11345 */ 0261,01,021,01,0366,0120,0, + /* 11352 */ 0260,01,021,01,0366,0110,0, + /* 11359 */ 0261,02,021,01,0,0120,0, + /* 11366 */ 0260,02,021,01,0,0110,0, + /* 11373 */ 0261,02,021,01,010,0120,0, + /* 11380 */ 0260,02,021,01,010,0110,0, + /* 11387 */ 0261,02,021,01,011,0120,0, + /* 11394 */ 0260,02,021,01,011,0110,0, + /* 11401 */ 0261,02,021,01,012,0120,0, + /* 11408 */ 0260,02,021,01,012,0110,0, + /* 11415 */ 0261,01,021,01,0361,0120,0, + /* 11422 */ 0260,01,021,01,0361,0110,0, + /* 11429 */ 0261,01,021,01,0362,0120,0, + /* 11436 */ 0260,01,021,01,0362,0110,0, + /* 11443 */ 0261,01,021,01,0363,0120,0, + /* 11450 */ 0260,01,021,01,0363,0110,0, + /* 11457 */ 0261,01,021,01,0341,0120,0, + /* 11464 */ 0260,01,021,01,0341,0110,0, + /* 11471 */ 0261,01,021,01,0342,0120,0, + /* 11478 */ 0260,01,021,01,0342,0110,0, + /* 11485 */ 0261,01,021,01,0321,0120,0, + /* 11492 */ 0260,01,021,01,0321,0110,0, + /* 11499 */ 0261,01,021,01,0322,0120,0, + /* 11506 */ 0260,01,021,01,0322,0110,0, + /* 11513 */ 0261,01,021,01,0323,0120,0, + /* 11520 */ 0260,01,021,01,0323,0110,0, + /* 11527 */ 0270,02,021,01,027,0110,0, + /* 11534 */ 0270,02,025,01,027,0110,0, + /* 11541 */ 0261,01,021,01,0370,0120,0, + /* 11548 */ 0260,01,021,01,0370,0110,0, + /* 11555 */ 0261,01,021,01,0371,0120,0, + /* 11562 */ 0260,01,021,01,0371,0110,0, + /* 11569 */ 0261,01,021,01,0372,0120,0, + /* 11576 */ 0260,01,021,01,0372,0110,0, + /* 11583 */ 0261,01,021,01,0373,0120,0, + /* 11590 */ 0260,01,021,01,0373,0110,0, + /* 11597 */ 0261,01,021,01,0350,0120,0, + /* 11604 */ 0260,01,021,01,0350,0110,0, + /* 11611 */ 0261,01,021,01,0351,0120,0, + /* 11618 */ 0260,01,021,01,0351,0110,0, + /* 11625 */ 0261,01,021,01,0330,0120,0, + /* 11632 */ 0260,01,021,01,0330,0110,0, + /* 11639 */ 0261,01,021,01,0331,0120,0, + /* 11646 */ 0260,01,021,01,0331,0110,0, + /* 11653 */ 0261,01,021,01,0150,0120,0, + /* 11660 */ 0260,01,021,01,0150,0110,0, + /* 11667 */ 0261,01,021,01,0151,0120,0, + /* 11674 */ 0260,01,021,01,0151,0110,0, + /* 11681 */ 0261,01,021,01,0152,0120,0, + /* 11688 */ 0260,01,021,01,0152,0110,0, + /* 11695 */ 0261,01,021,01,0155,0120,0, + /* 11702 */ 0260,01,021,01,0155,0110,0, + /* 11709 */ 0261,01,021,01,0140,0120,0, + /* 11716 */ 0260,01,021,01,0140,0110,0, + /* 11723 */ 0261,01,021,01,0141,0120,0, + /* 11730 */ 0260,01,021,01,0141,0110,0, + /* 11737 */ 0261,01,021,01,0142,0120,0, + /* 11744 */ 0260,01,021,01,0142,0110,0, + /* 11751 */ 0261,01,021,01,0154,0120,0, + /* 11758 */ 0260,01,021,01,0154,0110,0, + /* 11765 */ 0261,01,021,01,0357,0120,0, + /* 11772 */ 0260,01,021,01,0357,0110,0, + /* 11779 */ 0270,01,020,01,0123,0110,0, + /* 11786 */ 0270,01,024,01,0123,0110,0, + /* 11793 */ 0261,01,022,01,0123,0120,0, + /* 11800 */ 0260,01,022,01,0123,0110,0, + /* 11807 */ 0270,01,020,01,0122,0110,0, + /* 11814 */ 0270,01,024,01,0122,0110,0, + /* 11821 */ 0261,01,022,01,0122,0120,0, + /* 11828 */ 0260,01,022,01,0122,0110,0, + /* 11835 */ 0270,01,021,01,0121,0110,0, + /* 11842 */ 0270,01,025,01,0121,0110,0, + /* 11849 */ 0270,01,020,01,0121,0110,0, + /* 11856 */ 0270,01,024,01,0121,0110,0, + /* 11863 */ 0261,01,023,01,0121,0120,0, + /* 11870 */ 0260,01,023,01,0121,0110,0, + /* 11877 */ 0261,01,022,01,0121,0120,0, + /* 11884 */ 0260,01,022,01,0121,0110,0, + /* 11891 */ 0270,01,020,01,0256,0203,0, + /* 11898 */ 0261,01,021,01,0134,0120,0, + /* 11905 */ 0260,01,021,01,0134,0110,0, + /* 11912 */ 0261,01,025,01,0134,0120,0, + /* 11919 */ 0260,01,025,01,0134,0110,0, + /* 11926 */ 0261,01,020,01,0134,0120,0, + /* 11933 */ 0260,01,020,01,0134,0110,0, + /* 11940 */ 0261,01,024,01,0134,0120,0, + /* 11947 */ 0260,01,024,01,0134,0110,0, + /* 11954 */ 0261,01,023,01,0134,0120,0, + /* 11961 */ 0260,01,023,01,0134,0110,0, + /* 11968 */ 0261,01,022,01,0134,0120,0, + /* 11975 */ 0260,01,022,01,0134,0110,0, + /* 11982 */ 0270,02,021,01,016,0110,0, + /* 11989 */ 0270,02,025,01,016,0110,0, + /* 11996 */ 0270,02,021,01,017,0110,0, + /* 12003 */ 0270,02,025,01,017,0110,0, + /* 12010 */ 0270,01,021,01,056,0110,0, + /* 12017 */ 0270,01,020,01,056,0110,0, + /* 12024 */ 0261,01,021,01,025,0120,0, + /* 12031 */ 0260,01,021,01,025,0110,0, + /* 12038 */ 0261,01,025,01,025,0120,0, + /* 12045 */ 0260,01,025,01,025,0110,0, + /* 12052 */ 0261,01,020,01,025,0120,0, + /* 12059 */ 0260,01,020,01,025,0110,0, + /* 12066 */ 0261,01,024,01,025,0120,0, + /* 12073 */ 0260,01,024,01,025,0110,0, + /* 12080 */ 0261,01,021,01,024,0120,0, + /* 12087 */ 0260,01,021,01,024,0110,0, + /* 12094 */ 0261,01,025,01,024,0120,0, + /* 12101 */ 0260,01,025,01,024,0110,0, + /* 12108 */ 0261,01,020,01,024,0120,0, + /* 12115 */ 0260,01,020,01,024,0110,0, + /* 12122 */ 0261,01,024,01,024,0120,0, + /* 12129 */ 0260,01,024,01,024,0110,0, + /* 12136 */ 0261,01,021,01,0127,0120,0, + /* 12143 */ 0260,01,021,01,0127,0110,0, + /* 12150 */ 0261,01,025,01,0127,0120,0, + /* 12157 */ 0260,01,025,01,0127,0110,0, + /* 12164 */ 0261,01,020,01,0127,0120,0, + /* 12171 */ 0260,01,020,01,0127,0110,0, + /* 12178 */ 0261,01,024,01,0127,0120,0, + /* 12185 */ 0260,01,024,01,0127,0110,0, + /* 12192 */ 0261,02,01,01,0230,0120,0, + /* 12199 */ 0261,02,05,01,0230,0120,0, + /* 12206 */ 0261,02,011,01,0230,0120,0, + /* 12213 */ 0261,02,015,01,0230,0120,0, + /* 12220 */ 0261,02,01,01,0250,0120,0, + /* 12227 */ 0261,02,05,01,0250,0120,0, + /* 12234 */ 0261,02,011,01,0250,0120,0, + /* 12241 */ 0261,02,015,01,0250,0120,0, + /* 12248 */ 0261,02,01,01,0270,0120,0, + /* 12255 */ 0261,02,05,01,0270,0120,0, + /* 12262 */ 0261,02,011,01,0270,0120,0, + /* 12269 */ 0261,02,015,01,0270,0120,0, + /* 12276 */ 0261,02,01,01,0226,0120,0, + /* 12283 */ 0261,02,05,01,0226,0120,0, + /* 12290 */ 0261,02,011,01,0226,0120,0, + /* 12297 */ 0261,02,015,01,0226,0120,0, + /* 12304 */ 0261,02,01,01,0246,0120,0, + /* 12311 */ 0261,02,05,01,0246,0120,0, + /* 12318 */ 0261,02,011,01,0246,0120,0, + /* 12325 */ 0261,02,015,01,0246,0120,0, + /* 12332 */ 0261,02,01,01,0266,0120,0, + /* 12339 */ 0261,02,05,01,0266,0120,0, + /* 12346 */ 0261,02,011,01,0266,0120,0, + /* 12353 */ 0261,02,015,01,0266,0120,0, + /* 12360 */ 0261,02,01,01,0232,0120,0, + /* 12367 */ 0261,02,05,01,0232,0120,0, + /* 12374 */ 0261,02,011,01,0232,0120,0, + /* 12381 */ 0261,02,015,01,0232,0120,0, + /* 12388 */ 0261,02,01,01,0252,0120,0, + /* 12395 */ 0261,02,05,01,0252,0120,0, + /* 12402 */ 0261,02,011,01,0252,0120,0, + /* 12409 */ 0261,02,015,01,0252,0120,0, + /* 12416 */ 0261,02,01,01,0272,0120,0, + /* 12423 */ 0261,02,05,01,0272,0120,0, + /* 12430 */ 0261,02,011,01,0272,0120,0, + /* 12437 */ 0261,02,015,01,0272,0120,0, + /* 12444 */ 0261,02,01,01,0227,0120,0, + /* 12451 */ 0261,02,05,01,0227,0120,0, + /* 12458 */ 0261,02,011,01,0227,0120,0, + /* 12465 */ 0261,02,015,01,0227,0120,0, + /* 12472 */ 0261,02,01,01,0247,0120,0, + /* 12479 */ 0261,02,05,01,0247,0120,0, + /* 12486 */ 0261,02,011,01,0247,0120,0, + /* 12493 */ 0261,02,015,01,0247,0120,0, + /* 12500 */ 0261,02,01,01,0267,0120,0, + /* 12507 */ 0261,02,05,01,0267,0120,0, + /* 12514 */ 0261,02,011,01,0267,0120,0, + /* 12521 */ 0261,02,015,01,0267,0120,0, + /* 12528 */ 0261,02,01,01,0234,0120,0, + /* 12535 */ 0261,02,05,01,0234,0120,0, + /* 12542 */ 0261,02,011,01,0234,0120,0, + /* 12549 */ 0261,02,015,01,0234,0120,0, + /* 12556 */ 0261,02,01,01,0254,0120,0, + /* 12563 */ 0261,02,05,01,0254,0120,0, + /* 12570 */ 0261,02,011,01,0254,0120,0, + /* 12577 */ 0261,02,015,01,0254,0120,0, + /* 12584 */ 0261,02,01,01,0274,0120,0, + /* 12591 */ 0261,02,05,01,0274,0120,0, + /* 12598 */ 0261,02,011,01,0274,0120,0, + /* 12605 */ 0261,02,015,01,0274,0120,0, + /* 12612 */ 0261,02,01,01,0236,0120,0, + /* 12619 */ 0261,02,05,01,0236,0120,0, + /* 12626 */ 0261,02,011,01,0236,0120,0, + /* 12633 */ 0261,02,015,01,0236,0120,0, + /* 12640 */ 0261,02,01,01,0256,0120,0, + /* 12647 */ 0261,02,05,01,0256,0120,0, + /* 12654 */ 0261,02,011,01,0256,0120,0, + /* 12661 */ 0261,02,015,01,0256,0120,0, + /* 12668 */ 0261,02,01,01,0276,0120,0, + /* 12675 */ 0261,02,05,01,0276,0120,0, + /* 12682 */ 0261,02,011,01,0276,0120,0, + /* 12689 */ 0261,02,015,01,0276,0120,0, + /* 12696 */ 0261,02,01,01,0231,0120,0, + /* 12703 */ 0261,02,011,01,0231,0120,0, + /* 12710 */ 0261,02,01,01,0251,0120,0, + /* 12717 */ 0261,02,011,01,0251,0120,0, + /* 12724 */ 0261,02,01,01,0271,0120,0, + /* 12731 */ 0261,02,011,01,0271,0120,0, + /* 12738 */ 0261,02,01,01,0233,0120,0, + /* 12745 */ 0261,02,011,01,0233,0120,0, + /* 12752 */ 0261,02,01,01,0253,0120,0, + /* 12759 */ 0261,02,011,01,0253,0120,0, + /* 12766 */ 0261,02,01,01,0273,0120,0, + /* 12773 */ 0261,02,011,01,0273,0120,0, + /* 12780 */ 0261,02,01,01,0235,0120,0, + /* 12787 */ 0261,02,011,01,0235,0120,0, + /* 12794 */ 0261,02,01,01,0255,0120,0, + /* 12801 */ 0261,02,011,01,0255,0120,0, + /* 12808 */ 0261,02,01,01,0275,0120,0, + /* 12815 */ 0261,02,011,01,0275,0120,0, + /* 12822 */ 0261,02,01,01,0237,0120,0, + /* 12829 */ 0261,02,011,01,0237,0120,0, + /* 12836 */ 0261,02,01,01,0257,0120,0, + /* 12843 */ 0261,02,011,01,0257,0120,0, + /* 12850 */ 0261,02,01,01,0277,0120,0, + /* 12857 */ 0261,02,011,01,0277,0120,0, + /* 12864 */ 0270,0111,0,01,022,0200,0, + /* 12871 */ 0270,0111,04,01,022,0200,0, + /* 12878 */ 0270,0111,010,01,022,0200,0, + /* 12885 */ 0270,0111,0,01,022,0201,0, + /* 12892 */ 0270,0111,04,01,022,0201,0, + /* 12899 */ 0270,0111,010,01,022,0201,0, + /* 12906 */ 0270,0111,0,01,0201,0110,0, + /* 12913 */ 0270,0111,0,01,0201,0100,0, + /* 12920 */ 0270,0111,04,01,0201,0110,0, + /* 12927 */ 0270,0111,04,01,0201,0100,0, + /* 12934 */ 0270,0111,0,01,0200,0110,0, + /* 12941 */ 0270,0111,0,01,0200,0100,0, + /* 12948 */ 0270,0111,04,01,0200,0110,0, + /* 12955 */ 0270,0111,04,01,0200,0100,0, + /* 12962 */ 0270,0111,0,01,0203,0110,0, + /* 12969 */ 0270,0111,0,01,0203,0100,0, + /* 12976 */ 0270,0111,0,01,0202,0110,0, + /* 12983 */ 0270,0111,0,01,0202,0100,0, + /* 12990 */ 0270,0111,0,01,0302,0110,0, + /* 12997 */ 0270,0111,0,01,0302,0100,0, + /* 13004 */ 0270,0111,0,01,0303,0110,0, + /* 13011 */ 0270,0111,0,01,0303,0100,0, + /* 13018 */ 0270,0111,0,01,0301,0110,0, + /* 13025 */ 0270,0111,0,01,0301,0100,0, + /* 13032 */ 0270,0111,0,01,0313,0110,0, + /* 13039 */ 0270,0111,0,01,0313,0100,0, + /* 13046 */ 0270,0111,0,01,0322,0110,0, + /* 13053 */ 0270,0111,0,01,0322,0100,0, + /* 13060 */ 0270,0111,0,01,0323,0110,0, + /* 13067 */ 0270,0111,0,01,0323,0100,0, + /* 13074 */ 0270,0111,0,01,0321,0110,0, + /* 13081 */ 0270,0111,0,01,0321,0100,0, + /* 13088 */ 0270,0111,0,01,0333,0110,0, + /* 13095 */ 0270,0111,0,01,0333,0100,0, + /* 13102 */ 0270,0111,0,01,0326,0110,0, + /* 13109 */ 0270,0111,0,01,0326,0100,0, + /* 13116 */ 0270,0111,0,01,0327,0110,0, + /* 13123 */ 0270,0111,0,01,0327,0100,0, + /* 13130 */ 0270,0111,0,01,0306,0110,0, + /* 13137 */ 0270,0111,0,01,0306,0100,0, + /* 13144 */ 0270,0111,0,01,0307,0110,0, + /* 13151 */ 0270,0111,0,01,0307,0100,0, + /* 13158 */ 0270,0111,0,01,0341,0110,0, + /* 13165 */ 0270,0111,0,01,0341,0100,0, + /* 13172 */ 0270,0111,0,01,0343,0110,0, + /* 13179 */ 0270,0111,0,01,0343,0100,0, + /* 13186 */ 0270,0111,0,01,0342,0110,0, + /* 13193 */ 0270,0111,0,01,0342,0100,0, + /* 13200 */ 0262,0111,0,01,0220,0110,0, + /* 13207 */ 0261,0111,0,01,0220,0100,0, + /* 13214 */ 0261,0111,010,01,0220,0120,0, + /* 13221 */ 0260,0111,010,01,0220,0110,0, + /* 13228 */ 0262,0111,0,01,0222,0110,0, + /* 13235 */ 0261,0111,0,01,0222,0100,0, + /* 13242 */ 0261,0111,010,01,0222,0120,0, + /* 13249 */ 0260,0111,010,01,0222,0110,0, + /* 13256 */ 0262,0111,0,01,0223,0110,0, + /* 13263 */ 0261,0111,0,01,0223,0100,0, + /* 13270 */ 0261,0111,010,01,0223,0120,0, + /* 13277 */ 0260,0111,010,01,0223,0110,0, + /* 13284 */ 0262,0111,0,01,0221,0110,0, + /* 13291 */ 0261,0111,0,01,0221,0100,0, + /* 13298 */ 0261,0111,010,01,0221,0120,0, + /* 13305 */ 0260,0111,010,01,0221,0110,0, + /* 13312 */ 0262,0111,0,01,0230,0110,0, + /* 13319 */ 0261,0111,0,01,0230,0100,0, + /* 13326 */ 0261,0111,010,01,0230,0120,0, + /* 13333 */ 0260,0111,010,01,0230,0110,0, + /* 13340 */ 0262,0111,0,01,0232,0110,0, + /* 13347 */ 0261,0111,0,01,0232,0100,0, + /* 13354 */ 0261,0111,010,01,0232,0120,0, + /* 13361 */ 0260,0111,010,01,0232,0110,0, + /* 13368 */ 0262,0111,0,01,0233,0110,0, + /* 13375 */ 0261,0111,0,01,0233,0100,0, + /* 13382 */ 0261,0111,010,01,0233,0120,0, + /* 13389 */ 0260,0111,010,01,0233,0110,0, + /* 13396 */ 0262,0111,0,01,0231,0110,0, + /* 13403 */ 0261,0111,0,01,0231,0100,0, + /* 13410 */ 0261,0111,010,01,0231,0120,0, + /* 13417 */ 0260,0111,010,01,0231,0110,0, + /* 13424 */ 0262,0111,0,01,0224,0110,0, + /* 13431 */ 0261,0111,0,01,0224,0100,0, + /* 13438 */ 0261,0111,010,01,0224,0120,0, + /* 13445 */ 0260,0111,010,01,0224,0110,0, + /* 13452 */ 0262,0111,0,01,0226,0110,0, + /* 13459 */ 0261,0111,0,01,0226,0100,0, + /* 13466 */ 0261,0111,010,01,0226,0120,0, + /* 13473 */ 0260,0111,010,01,0226,0110,0, + /* 13480 */ 0262,0111,0,01,0227,0110,0, + /* 13487 */ 0261,0111,0,01,0227,0100,0, + /* 13494 */ 0261,0111,010,01,0227,0120,0, + /* 13501 */ 0260,0111,010,01,0227,0110,0, + /* 13508 */ 0262,0111,0,01,0225,0110,0, + /* 13515 */ 0261,0111,0,01,0225,0100,0, + /* 13522 */ 0261,0111,010,01,0225,0120,0, + /* 13529 */ 0260,0111,010,01,0225,0110,0, + /* 13536 */ 0320,01,0203,0202,0275,0, + /* 13542 */ 0321,01,0203,0202,0275,0, + /* 13548 */ 0324,01,0203,0202,0275,0, + /* 13554 */ 0320,0145,0201,0202,0141,0, + /* 13560 */ 0321,0155,0201,0202,0151,0, + /* 13566 */ 0324,0155,0201,0202,0251,0, + /* 13572 */ 0320,01,0203,0200,0275,0, + /* 13578 */ 0321,01,0203,0200,0275,0, + /* 13584 */ 0324,01,0203,0200,0275,0, + /* 13590 */ 0320,0145,0201,0200,0141,0, + /* 13596 */ 0321,0155,0201,0200,0151,0, + /* 13602 */ 0324,0155,0201,0200,0251,0, + /* 13608 */ 0320,01,0203,0204,0275,0, + /* 13614 */ 0321,01,0203,0204,0275,0, + /* 13620 */ 0324,01,0203,0204,0275,0, + /* 13626 */ 0320,0145,0201,0204,0141,0, + /* 13632 */ 0321,0155,0201,0204,0151,0, + /* 13638 */ 0324,0155,0201,0204,0251,0, + /* 13644 */ 0320,02,017,0274,0110,0, + /* 13650 */ 0321,02,017,0274,0110,0, + /* 13656 */ 0324,02,017,0274,0110,0, + /* 13662 */ 0320,02,017,0275,0110,0, + /* 13668 */ 0321,02,017,0275,0110,0, + /* 13674 */ 0324,02,017,0275,0110,0, + /* 13680 */ 0321,01,017,010,0310,0, + /* 13686 */ 0324,01,017,010,0310,0, + /* 13692 */ 0320,02,017,0243,0101,0, + /* 13698 */ 0321,02,017,0243,0101,0, + /* 13704 */ 0324,02,017,0243,0101,0, + /* 13710 */ 0320,02,017,0273,0101,0, + /* 13716 */ 0321,02,017,0273,0101,0, + /* 13722 */ 0324,02,017,0273,0101,0, + /* 13728 */ 0320,02,017,0263,0101,0, + /* 13734 */ 0321,02,017,0263,0101,0, + /* 13740 */ 0324,02,017,0263,0101,0, + /* 13746 */ 0320,02,017,0253,0101,0, + /* 13752 */ 0321,02,017,0253,0101,0, + /* 13758 */ 0324,02,017,0253,0101,0, + /* 13764 */ 0322,01,0232,034,074,0, + /* 13770 */ 0320,01,0232,034,074,0, + /* 13776 */ 0321,01,0232,034,074,0, + /* 13782 */ 0322,01,0232,035,030,0, + /* 13788 */ 0320,01,0232,031,030,0, + /* 13794 */ 0321,01,0232,041,030,0, + /* 13800 */ 0320,01,0203,0207,0275,0, + /* 13806 */ 0321,01,0203,0207,0275,0, + /* 13812 */ 0324,01,0203,0207,0275,0, + /* 13818 */ 0320,0145,0201,0207,0141,0, + /* 13824 */ 0321,0155,0201,0207,0151,0, + /* 13830 */ 0324,0155,0201,0207,0251,0, + /* 13836 */ 0320,02,017,0261,0101,0, + /* 13842 */ 0321,02,017,0261,0101,0, + /* 13848 */ 0324,02,017,0261,0101,0, + /* 13854 */ 0320,02,017,0247,0101,0, + /* 13860 */ 0321,02,017,0247,0101,0, + /* 13866 */ 0324,02,017,0307,0201,0, + /* 13872 */ 0320,02,017,0257,0110,0, + /* 13878 */ 0321,02,017,0257,0110,0, + /* 13884 */ 0324,02,017,0257,0110,0, + /* 13890 */ 0320,01,0153,0110,016,0, + /* 13896 */ 0320,01,0151,0110,032,0, + /* 13902 */ 0320,0146,0151,0110,0142,0, + /* 13908 */ 0321,01,0153,0110,016,0, + /* 13914 */ 0321,01,0151,0110,042,0, + /* 13920 */ 0321,0156,0151,0110,0152,0, + /* 13926 */ 0324,01,0153,0110,016,0, + /* 13932 */ 0324,01,0151,0110,042,0, + /* 13938 */ 0324,0156,0151,0110,0252,0, + /* 13944 */ 0320,01,0153,0100,015,0, + /* 13950 */ 0320,01,0151,0100,031,0, + /* 13956 */ 0320,0145,0151,0100,0141,0, + /* 13962 */ 0321,01,0153,0100,015,0, + /* 13968 */ 0321,01,0151,0100,041,0, + /* 13974 */ 0321,0155,0151,0100,0151,0, + /* 13980 */ 0324,01,0153,0100,015,0, + /* 13986 */ 0324,01,0151,0100,0255,0, + /* 13992 */ 0324,0155,0151,0100,0251,0, + /* 13998 */ 0310,03,017,01,0337,0, + /* 14004 */ 0311,03,017,01,0337,0, + /* 14010 */ 0322,01,0352,034,074,0, + /* 14016 */ 0320,01,0352,034,074,0, + /* 14022 */ 0321,01,0352,034,074,0, + /* 14028 */ 0322,01,0352,035,030,0, + /* 14034 */ 0320,01,0352,031,030,0, + /* 14040 */ 0321,01,0352,041,030,0, + /* 14046 */ 0322,02,017,0270,064,0, + /* 14052 */ 0320,02,017,0270,064,0, + /* 14058 */ 0321,02,017,0270,064,0, + /* 14064 */ 0320,02,017,0,0206,0, + /* 14070 */ 0321,02,017,0,0206,0, + /* 14076 */ 0320,02,017,02,0110,0, + /* 14082 */ 0321,02,017,02,0110,0, + /* 14088 */ 0324,02,017,02,0110,0, + /* 14094 */ 0320,02,017,0264,0110,0, + /* 14100 */ 0321,02,017,0264,0110,0, + /* 14106 */ 0320,02,017,0265,0110,0, + /* 14112 */ 0321,02,017,0265,0110,0, + /* 14118 */ 0320,02,017,03,0110,0, + /* 14124 */ 0321,02,017,03,0110,0, + /* 14130 */ 0324,02,017,03,0110,0, + /* 14136 */ 0320,02,017,0262,0110,0, + /* 14142 */ 0321,02,017,0262,0110,0, + /* 14148 */ 0334,02,017,040,0101,0, + /* 14154 */ 0323,02,017,040,0101,0, + /* 14160 */ 0334,02,017,042,0110,0, + /* 14166 */ 0323,02,017,042,0110,0, + /* 14172 */ 0323,02,017,041,0101,0, + /* 14178 */ 0323,02,017,043,0110,0, + /* 14184 */ 0324,01,0307,0200,0255,0, + /* 14190 */ 0320,01,0307,0200,031,0, + /* 14196 */ 0321,01,0307,0200,041,0, + /* 14202 */ 0360,02,017,0156,0110,0, + /* 14208 */ 0360,02,017,0176,0101,0, + /* 14214 */ 0320,02,017,0276,0110,0, + /* 14220 */ 0321,02,017,0276,0110,0, + /* 14226 */ 0321,02,017,0277,0110,0, + /* 14232 */ 0324,02,017,0276,0110,0, + /* 14238 */ 0324,02,017,0277,0110,0, + /* 14244 */ 0320,02,017,0266,0110,0, + /* 14250 */ 0321,02,017,0266,0110,0, + /* 14256 */ 0321,02,017,0267,0110,0, + /* 14262 */ 0324,02,017,0266,0110,0, + /* 14268 */ 0324,02,017,0267,0110,0, + /* 14274 */ 0320,02,017,037,0200,0, + /* 14280 */ 0321,02,017,037,0200,0, + /* 14286 */ 0324,02,017,037,0200,0, + /* 14292 */ 0320,01,0203,0201,0275,0, + /* 14298 */ 0321,01,0203,0201,0275,0, + /* 14304 */ 0324,01,0203,0201,0275,0, + /* 14310 */ 0320,0145,0201,0201,0141,0, + /* 14316 */ 0321,0155,0201,0201,0151,0, + /* 14322 */ 0324,0155,0201,0201,0251,0, + /* 14328 */ 0323,02,017,0121,0110,0, + /* 14334 */ 0323,02,017,0120,0110,0, + /* 14340 */ 0323,02,017,0122,0110,0, + /* 14346 */ 0323,02,017,0135,0110,0, + /* 14352 */ 0323,02,017,0131,0110,0, + /* 14358 */ 0323,02,017,0125,0110,0, + /* 14364 */ 0320,01,0301,0202,025,0, + /* 14370 */ 0321,01,0301,0202,025,0, + /* 14376 */ 0324,01,0301,0202,025,0, + /* 14382 */ 0320,01,0301,0203,025,0, + /* 14388 */ 0321,01,0301,0203,025,0, + /* 14394 */ 0324,01,0301,0203,025,0, + /* 14400 */ 0321,02,017,066,0200,0, + /* 14406 */ 0320,01,0301,0200,025,0, + /* 14412 */ 0321,01,0301,0200,025,0, + /* 14418 */ 0324,01,0301,0200,025,0, + /* 14424 */ 0320,01,0301,0201,025,0, + /* 14430 */ 0321,01,0301,0201,025,0, + /* 14436 */ 0324,01,0301,0201,025,0, + /* 14442 */ 0320,01,0301,0204,025,0, + /* 14448 */ 0321,01,0301,0204,025,0, + /* 14454 */ 0324,01,0301,0204,025,0, + /* 14460 */ 0320,01,0301,0207,025,0, + /* 14466 */ 0321,01,0301,0207,025,0, + /* 14472 */ 0324,01,0301,0207,025,0, + /* 14478 */ 0320,01,0203,0203,0275,0, + /* 14484 */ 0321,01,0203,0203,0275,0, + /* 14490 */ 0324,01,0203,0203,0275,0, + /* 14496 */ 0320,0145,0201,0203,0141,0, + /* 14502 */ 0321,0155,0201,0203,0151,0, + /* 14508 */ 0324,0155,0201,0203,0251,0, + /* 14514 */ 0320,02,017,0245,0101,0, + /* 14520 */ 0321,02,017,0245,0101,0, + /* 14526 */ 0324,02,017,0245,0101,0, + /* 14532 */ 0320,01,0301,0205,025,0, + /* 14538 */ 0321,01,0301,0205,025,0, + /* 14544 */ 0324,01,0301,0205,025,0, + /* 14550 */ 0320,02,017,0255,0101,0, + /* 14556 */ 0321,02,017,0255,0101,0, + /* 14562 */ 0324,02,017,0255,0101,0, + /* 14568 */ 0320,02,017,0,0200,0, + /* 14574 */ 0321,02,017,0,0200,0, + /* 14580 */ 0323,02,017,0,0200,0, + /* 14586 */ 0324,02,017,0,0200,0, + /* 14592 */ 0320,02,017,01,0204,0, + /* 14598 */ 0321,02,017,01,0204,0, + /* 14604 */ 0320,02,017,0,0201,0, + /* 14610 */ 0321,02,017,0,0201,0, + /* 14616 */ 0324,02,017,0,0201,0, + /* 14622 */ 0320,01,0203,0205,0275,0, + /* 14628 */ 0321,01,0203,0205,0275,0, + /* 14634 */ 0324,01,0203,0205,0275,0, + /* 14640 */ 0320,0145,0201,0205,0141,0, + /* 14646 */ 0321,0155,0201,0205,0151,0, + /* 14652 */ 0324,0155,0201,0205,0251,0, + /* 14658 */ 0320,01,0367,0200,031,0, + /* 14664 */ 0321,01,0367,0200,041,0, + /* 14670 */ 0324,01,0367,0200,0255,0, + /* 14676 */ 0360,02,017,020,0101,0, + /* 14682 */ 0360,02,017,022,0110,0, + /* 14688 */ 0321,02,017,067,0200,0, + /* 14694 */ 0320,02,017,0301,0101,0, + /* 14700 */ 0321,02,017,0301,0101,0, + /* 14706 */ 0324,02,017,0301,0101,0, + /* 14712 */ 0320,02,017,0246,0110,0, + /* 14718 */ 0321,02,017,0246,0110,0, + /* 14724 */ 0320,01,0203,0206,0275,0, + /* 14730 */ 0321,01,0203,0206,0275,0, + /* 14736 */ 0324,01,0203,0206,0275,0, + /* 14742 */ 0320,0145,0201,0206,0141,0, + /* 14748 */ 0321,0155,0201,0206,0151,0, + /* 14754 */ 0324,0155,0201,0206,0251,0, + /* 14760 */ 01,017,0330,0220,0200,0, + /* 14766 */ 0360,02,017,0130,0110,0, + /* 14772 */ 0363,02,017,0130,0110,0, + /* 14778 */ 0360,02,017,0125,0110,0, + /* 14784 */ 0360,02,017,0124,0110,0, + /* 14790 */ 0360,02,017,057,0110,0, + /* 14796 */ 0360,02,017,052,0110,0, + /* 14802 */ 0360,02,017,055,0110,0, + /* 14808 */ 0360,02,017,054,0110,0, + /* 14814 */ 0360,02,017,0136,0110,0, + /* 14820 */ 0363,02,017,0136,0110,0, + /* 14826 */ 0360,02,017,0137,0110,0, + /* 14832 */ 0363,02,017,0137,0110,0, + /* 14838 */ 0360,02,017,0135,0110,0, + /* 14844 */ 0363,02,017,0135,0110,0, + /* 14850 */ 0360,02,017,050,0110,0, + /* 14856 */ 0360,02,017,051,0101,0, + /* 14862 */ 0360,02,017,026,0110,0, + /* 14868 */ 0360,02,017,027,0101,0, + /* 14874 */ 0360,02,017,023,0101,0, + /* 14880 */ 0360,02,017,0120,0110,0, + /* 14886 */ 0360,02,017,053,0101,0, + /* 14892 */ 0363,02,017,020,0110,0, + /* 14898 */ 0363,02,017,021,0101,0, + /* 14904 */ 0360,02,017,020,0110,0, + /* 14910 */ 0360,02,017,021,0101,0, + /* 14916 */ 0360,02,017,0131,0110,0, + /* 14922 */ 0363,02,017,0131,0110,0, + /* 14928 */ 0360,02,017,0126,0110,0, + /* 14934 */ 0360,02,017,0123,0110,0, + /* 14940 */ 0363,02,017,0123,0110,0, + /* 14946 */ 0360,02,017,0122,0110,0, + /* 14952 */ 0363,02,017,0122,0110,0, + /* 14958 */ 0360,02,017,0121,0110,0, + /* 14964 */ 0363,02,017,0121,0110,0, + /* 14970 */ 0360,02,017,0134,0110,0, + /* 14976 */ 0363,02,017,0134,0110,0, + /* 14982 */ 0360,02,017,056,0110,0, + /* 14988 */ 0360,02,017,025,0110,0, + /* 14994 */ 0360,02,017,024,0110,0, + /* 15000 */ 0360,02,017,0127,0110,0, + /* 15006 */ 0360,03,017,01,0320,0, + /* 15012 */ 0360,03,017,01,0321,0, + /* 15018 */ 0360,02,017,0256,0204,0, + /* 15024 */ 0360,02,017,0256,0205,0, + /* 15030 */ 0360,02,017,0367,0110,0, + /* 15036 */ 0360,02,017,0347,0101,0, + /* 15042 */ 0360,02,017,0327,0110,0, + /* 15048 */ 0361,02,017,0367,0110,0, + /* 15054 */ 0361,02,017,0347,0101,0, + /* 15060 */ 0361,02,017,053,0101,0, + /* 15066 */ 0361,02,017,0157,0110,0, + /* 15072 */ 0361,02,017,0177,0101,0, + /* 15078 */ 0363,02,017,0157,0110,0, + /* 15084 */ 0363,02,017,0177,0101,0, + /* 15090 */ 0362,02,017,0326,0110,0, + /* 15096 */ 0363,02,017,0176,0110,0, + /* 15102 */ 0361,02,017,0326,0101,0, + /* 15108 */ 0363,02,017,0326,0110,0, + /* 15114 */ 0361,02,017,0143,0110,0, + /* 15120 */ 0361,02,017,0153,0110,0, + /* 15126 */ 0361,02,017,0147,0110,0, + /* 15132 */ 0361,02,017,0374,0110,0, + /* 15138 */ 0361,02,017,0375,0110,0, + /* 15144 */ 0361,02,017,0376,0110,0, + /* 15150 */ 0360,02,017,0324,0110,0, + /* 15156 */ 0361,02,017,0324,0110,0, + /* 15162 */ 0361,02,017,0354,0110,0, + /* 15168 */ 0361,02,017,0355,0110,0, + /* 15174 */ 0361,02,017,0334,0110,0, + /* 15180 */ 0361,02,017,0335,0110,0, + /* 15186 */ 0361,02,017,0333,0110,0, + /* 15192 */ 0361,02,017,0337,0110,0, + /* 15198 */ 0361,02,017,0340,0110,0, + /* 15204 */ 0361,02,017,0343,0110,0, + /* 15210 */ 0361,02,017,0164,0110,0, + /* 15216 */ 0361,02,017,0165,0110,0, + /* 15222 */ 0361,02,017,0166,0110,0, + /* 15228 */ 0361,02,017,0144,0110,0, + /* 15234 */ 0361,02,017,0145,0110,0, + /* 15240 */ 0361,02,017,0146,0110,0, + /* 15246 */ 0361,02,017,0365,0110,0, + /* 15252 */ 0361,02,017,0356,0110,0, + /* 15258 */ 0361,02,017,0336,0110,0, + /* 15264 */ 0361,02,017,0352,0110,0, + /* 15270 */ 0361,02,017,0332,0110,0, + /* 15276 */ 0361,02,017,0327,0110,0, + /* 15282 */ 0361,02,017,0344,0110,0, + /* 15288 */ 0361,02,017,0345,0110,0, + /* 15294 */ 0361,02,017,0325,0110,0, + /* 15300 */ 0361,02,017,0364,0110,0, + /* 15306 */ 0361,02,017,0353,0110,0, + /* 15312 */ 0361,02,017,0366,0110,0, + /* 15318 */ 0361,02,017,0361,0110,0, + /* 15324 */ 0361,02,017,0362,0110,0, + /* 15330 */ 0361,02,017,0363,0110,0, + /* 15336 */ 0361,02,017,0341,0110,0, + /* 15342 */ 0361,02,017,0342,0110,0, + /* 15348 */ 0361,02,017,0321,0110,0, + /* 15354 */ 0361,02,017,0322,0110,0, + /* 15360 */ 0361,02,017,0323,0110,0, + /* 15366 */ 0361,02,017,0370,0110,0, + /* 15372 */ 0361,02,017,0371,0110,0, + /* 15378 */ 0361,02,017,0372,0110,0, + /* 15384 */ 0361,02,017,0373,0110,0, + /* 15390 */ 0361,02,017,0350,0110,0, + /* 15396 */ 0361,02,017,0351,0110,0, + /* 15402 */ 0361,02,017,0330,0110,0, + /* 15408 */ 0361,02,017,0331,0110,0, + /* 15414 */ 0361,02,017,0150,0110,0, + /* 15420 */ 0361,02,017,0151,0110,0, + /* 15426 */ 0361,02,017,0152,0110,0, + /* 15432 */ 0361,02,017,0155,0110,0, + /* 15438 */ 0361,02,017,0140,0110,0, + /* 15444 */ 0361,02,017,0141,0110,0, + /* 15450 */ 0361,02,017,0142,0110,0, + /* 15456 */ 0361,02,017,0154,0110,0, + /* 15462 */ 0361,02,017,0357,0110,0, + /* 15468 */ 0361,02,017,0130,0110,0, + /* 15474 */ 0362,02,017,0130,0110,0, + /* 15480 */ 0361,02,017,0125,0110,0, + /* 15486 */ 0361,02,017,0124,0110,0, + /* 15492 */ 0361,02,017,057,0110,0, + /* 15498 */ 0363,02,017,0346,0110,0, + /* 15504 */ 0360,02,017,0133,0110,0, + /* 15510 */ 0362,02,017,0346,0110,0, + /* 15516 */ 0361,02,017,055,0110,0, + /* 15522 */ 0361,02,017,0132,0110,0, + /* 15528 */ 0361,02,017,052,0110,0, + /* 15534 */ 0361,02,017,0133,0110,0, + /* 15540 */ 0360,02,017,0132,0110,0, + /* 15546 */ 0362,02,017,0132,0110,0, + /* 15552 */ 0363,02,017,0132,0110,0, + /* 15558 */ 0361,02,017,054,0110,0, + /* 15564 */ 0361,02,017,0346,0110,0, + /* 15570 */ 0363,02,017,0133,0110,0, + /* 15576 */ 0361,02,017,0136,0110,0, + /* 15582 */ 0362,02,017,0136,0110,0, + /* 15588 */ 0361,02,017,0137,0110,0, + /* 15594 */ 0362,02,017,0137,0110,0, + /* 15600 */ 0361,02,017,0135,0110,0, + /* 15606 */ 0362,02,017,0135,0110,0, + /* 15612 */ 0361,02,017,050,0110,0, + /* 15618 */ 0361,02,017,051,0101,0, + /* 15624 */ 0361,02,017,027,0101,0, + /* 15630 */ 0361,02,017,026,0110,0, + /* 15636 */ 0361,02,017,023,0101,0, + /* 15642 */ 0361,02,017,022,0110,0, + /* 15648 */ 0361,02,017,0120,0110,0, + /* 15654 */ 0362,02,017,020,0110,0, + /* 15660 */ 0362,02,017,021,0101,0, + /* 15666 */ 0361,02,017,020,0110,0, + /* 15672 */ 0361,02,017,021,0101,0, + /* 15678 */ 0361,02,017,0131,0110,0, + /* 15684 */ 0362,02,017,0131,0110,0, + /* 15690 */ 0361,02,017,0126,0110,0, + /* 15696 */ 0361,02,017,0121,0110,0, + /* 15702 */ 0362,02,017,0121,0110,0, + /* 15708 */ 0361,02,017,0134,0110,0, + /* 15714 */ 0362,02,017,0134,0110,0, + /* 15720 */ 0361,02,017,056,0110,0, + /* 15726 */ 0361,02,017,025,0110,0, + /* 15732 */ 0361,02,017,024,0110,0, + /* 15738 */ 0361,02,017,0127,0110,0, + /* 15744 */ 0361,02,017,0320,0110,0, + /* 15750 */ 0362,02,017,0320,0110,0, + /* 15756 */ 0361,02,017,0174,0110,0, + /* 15762 */ 0362,02,017,0174,0110,0, + /* 15768 */ 0361,02,017,0175,0110,0, + /* 15774 */ 0362,02,017,0175,0110,0, + /* 15780 */ 0362,02,017,0360,0110,0, + /* 15786 */ 0362,02,017,022,0110,0, + /* 15792 */ 0363,02,017,026,0110,0, + /* 15798 */ 0363,02,017,022,0110,0, + /* 15804 */ 0361,02,017,0307,0206,0, + /* 15810 */ 0363,02,017,0307,0206,0, + /* 15816 */ 0361,02,017,0171,0110,0, + /* 15822 */ 0362,02,017,0171,0110,0, + /* 15828 */ 0362,02,017,053,0101,0, + /* 15834 */ 0363,02,017,053,0101,0, + /* 15840 */ 0270,01,024,01,0167,0, + /* 15846 */ 0270,01,020,01,0167,0, + /* 15852 */ 0336,03,017,0247,0310,0, + /* 15858 */ 0336,03,017,0247,0320,0, + /* 15864 */ 0336,03,017,0247,0330,0, + /* 15870 */ 0336,03,017,0247,0340,0, + /* 15876 */ 0336,03,017,0247,0350,0, + /* 15882 */ 0336,03,017,0246,0300,0, + /* 15888 */ 0336,03,017,0246,0310,0, + /* 15894 */ 0336,03,017,0246,0320,0, + /* 15900 */ 0320,02,017,030,0200,0, + /* 15906 */ 0321,02,017,030,0200,0, + /* 15912 */ 0324,02,017,030,0200,0, + /* 15918 */ 0320,02,017,030,0201,0, + /* 15924 */ 0321,02,017,030,0201,0, + /* 15930 */ 0324,02,017,030,0201,0, + /* 15936 */ 0320,02,017,030,0202,0, + /* 15942 */ 0321,02,017,030,0202,0, + /* 15948 */ 0324,02,017,030,0202,0, + /* 15954 */ 0320,02,017,030,0203,0, + /* 15960 */ 0321,02,017,030,0203,0, + /* 15966 */ 0324,02,017,030,0203,0, + /* 15972 */ 0320,02,017,030,0204,0, + /* 15978 */ 0321,02,017,030,0204,0, + /* 15984 */ 0324,02,017,030,0204,0, + /* 15990 */ 0320,02,017,030,0205,0, + /* 15996 */ 0321,02,017,030,0205,0, + /* 16002 */ 0324,02,017,030,0205,0, + /* 16008 */ 0320,02,017,030,0206,0, + /* 16014 */ 0321,02,017,030,0206,0, + /* 16020 */ 0324,02,017,030,0206,0, + /* 16026 */ 0320,02,017,030,0207,0, + /* 16032 */ 0321,02,017,030,0207,0, + /* 16038 */ 0324,02,017,030,0207,0, + /* 16044 */ 0320,02,017,031,0200,0, + /* 16050 */ 0321,02,017,031,0200,0, + /* 16056 */ 0324,02,017,031,0200,0, + /* 16062 */ 0320,02,017,031,0201,0, + /* 16068 */ 0321,02,017,031,0201,0, + /* 16074 */ 0324,02,017,031,0201,0, + /* 16080 */ 0320,02,017,031,0202,0, + /* 16086 */ 0321,02,017,031,0202,0, + /* 16092 */ 0324,02,017,031,0202,0, + /* 16098 */ 0320,02,017,031,0203,0, + /* 16104 */ 0321,02,017,031,0203,0, + /* 16110 */ 0324,02,017,031,0203,0, + /* 16116 */ 0320,02,017,031,0204,0, + /* 16122 */ 0321,02,017,031,0204,0, + /* 16128 */ 0324,02,017,031,0204,0, + /* 16134 */ 0320,02,017,031,0205,0, + /* 16140 */ 0321,02,017,031,0205,0, + /* 16146 */ 0324,02,017,031,0205,0, + /* 16152 */ 0320,02,017,031,0206,0, + /* 16158 */ 0321,02,017,031,0206,0, + /* 16164 */ 0324,02,017,031,0206,0, + /* 16170 */ 0320,02,017,031,0207,0, + /* 16176 */ 0321,02,017,031,0207,0, + /* 16182 */ 0324,02,017,031,0207,0, + /* 16188 */ 0320,02,017,032,0200,0, + /* 16194 */ 0321,02,017,032,0200,0, + /* 16200 */ 0324,02,017,032,0200,0, + /* 16206 */ 0320,02,017,032,0201,0, + /* 16212 */ 0321,02,017,032,0201,0, + /* 16218 */ 0324,02,017,032,0201,0, + /* 16224 */ 0320,02,017,032,0202,0, + /* 16230 */ 0321,02,017,032,0202,0, + /* 16236 */ 0324,02,017,032,0202,0, + /* 16242 */ 0320,02,017,032,0203,0, + /* 16248 */ 0321,02,017,032,0203,0, + /* 16254 */ 0324,02,017,032,0203,0, + /* 16260 */ 0320,02,017,032,0204,0, + /* 16266 */ 0321,02,017,032,0204,0, + /* 16272 */ 0324,02,017,032,0204,0, + /* 16278 */ 0320,02,017,032,0205,0, + /* 16284 */ 0321,02,017,032,0205,0, + /* 16290 */ 0324,02,017,032,0205,0, + /* 16296 */ 0320,02,017,032,0206,0, + /* 16302 */ 0321,02,017,032,0206,0, + /* 16308 */ 0324,02,017,032,0206,0, + /* 16314 */ 0320,02,017,032,0207,0, + /* 16320 */ 0321,02,017,032,0207,0, + /* 16326 */ 0324,02,017,032,0207,0, + /* 16332 */ 0320,02,017,033,0200,0, + /* 16338 */ 0321,02,017,033,0200,0, + /* 16344 */ 0324,02,017,033,0200,0, + /* 16350 */ 0320,02,017,033,0201,0, + /* 16356 */ 0321,02,017,033,0201,0, + /* 16362 */ 0324,02,017,033,0201,0, + /* 16368 */ 0320,02,017,033,0202,0, + /* 16374 */ 0321,02,017,033,0202,0, + /* 16380 */ 0324,02,017,033,0202,0, + /* 16386 */ 0320,02,017,033,0203,0, + /* 16392 */ 0321,02,017,033,0203,0, + /* 16398 */ 0324,02,017,033,0203,0, + /* 16404 */ 0320,02,017,033,0204,0, + /* 16410 */ 0321,02,017,033,0204,0, + /* 16416 */ 0324,02,017,033,0204,0, + /* 16422 */ 0320,02,017,033,0205,0, + /* 16428 */ 0321,02,017,033,0205,0, + /* 16434 */ 0324,02,017,033,0205,0, + /* 16440 */ 0320,02,017,033,0206,0, + /* 16446 */ 0321,02,017,033,0206,0, + /* 16452 */ 0324,02,017,033,0206,0, + /* 16458 */ 0320,02,017,033,0207,0, + /* 16464 */ 0321,02,017,033,0207,0, + /* 16470 */ 0324,02,017,033,0207,0, + /* 16476 */ 0320,02,017,034,0200,0, + /* 16482 */ 0321,02,017,034,0200,0, + /* 16488 */ 0324,02,017,034,0200,0, + /* 16494 */ 0320,02,017,034,0201,0, + /* 16500 */ 0321,02,017,034,0201,0, + /* 16506 */ 0324,02,017,034,0201,0, + /* 16512 */ 0320,02,017,034,0202,0, + /* 16518 */ 0321,02,017,034,0202,0, + /* 16524 */ 0324,02,017,034,0202,0, + /* 16530 */ 0320,02,017,034,0203,0, + /* 16536 */ 0321,02,017,034,0203,0, + /* 16542 */ 0324,02,017,034,0203,0, + /* 16548 */ 0320,02,017,034,0204,0, + /* 16554 */ 0321,02,017,034,0204,0, + /* 16560 */ 0324,02,017,034,0204,0, + /* 16566 */ 0320,02,017,034,0205,0, + /* 16572 */ 0321,02,017,034,0205,0, + /* 16578 */ 0324,02,017,034,0205,0, + /* 16584 */ 0320,02,017,034,0206,0, + /* 16590 */ 0321,02,017,034,0206,0, + /* 16596 */ 0324,02,017,034,0206,0, + /* 16602 */ 0320,02,017,034,0207,0, + /* 16608 */ 0321,02,017,034,0207,0, + /* 16614 */ 0324,02,017,034,0207,0, + /* 16620 */ 0320,02,017,035,0200,0, + /* 16626 */ 0321,02,017,035,0200,0, + /* 16632 */ 0324,02,017,035,0200,0, + /* 16638 */ 0320,02,017,035,0201,0, + /* 16644 */ 0321,02,017,035,0201,0, + /* 16650 */ 0324,02,017,035,0201,0, + /* 16656 */ 0320,02,017,035,0202,0, + /* 16662 */ 0321,02,017,035,0202,0, + /* 16668 */ 0324,02,017,035,0202,0, + /* 16674 */ 0320,02,017,035,0203,0, + /* 16680 */ 0321,02,017,035,0203,0, + /* 16686 */ 0324,02,017,035,0203,0, + /* 16692 */ 0320,02,017,035,0204,0, + /* 16698 */ 0321,02,017,035,0204,0, + /* 16704 */ 0324,02,017,035,0204,0, + /* 16710 */ 0320,02,017,035,0205,0, + /* 16716 */ 0321,02,017,035,0205,0, + /* 16722 */ 0324,02,017,035,0205,0, + /* 16728 */ 0320,02,017,035,0206,0, + /* 16734 */ 0321,02,017,035,0206,0, + /* 16740 */ 0324,02,017,035,0206,0, + /* 16746 */ 0320,02,017,035,0207,0, + /* 16752 */ 0321,02,017,035,0207,0, + /* 16758 */ 0324,02,017,035,0207,0, + /* 16764 */ 0320,02,017,036,0200,0, + /* 16770 */ 0321,02,017,036,0200,0, + /* 16776 */ 0324,02,017,036,0200,0, + /* 16782 */ 0320,02,017,036,0201,0, + /* 16788 */ 0321,02,017,036,0201,0, + /* 16794 */ 0324,02,017,036,0201,0, + /* 16800 */ 0320,02,017,036,0202,0, + /* 16806 */ 0321,02,017,036,0202,0, + /* 16812 */ 0324,02,017,036,0202,0, + /* 16818 */ 0320,02,017,036,0203,0, + /* 16824 */ 0321,02,017,036,0203,0, + /* 16830 */ 0324,02,017,036,0203,0, + /* 16836 */ 0320,02,017,036,0204,0, + /* 16842 */ 0321,02,017,036,0204,0, + /* 16848 */ 0324,02,017,036,0204,0, + /* 16854 */ 0320,02,017,036,0205,0, + /* 16860 */ 0321,02,017,036,0205,0, + /* 16866 */ 0324,02,017,036,0205,0, + /* 16872 */ 0320,02,017,036,0206,0, + /* 16878 */ 0321,02,017,036,0206,0, + /* 16884 */ 0324,02,017,036,0206,0, + /* 16890 */ 0320,02,017,036,0207,0, + /* 16896 */ 0321,02,017,036,0207,0, + /* 16902 */ 0324,02,017,036,0207,0, + /* 16908 */ 0320,02,017,037,0201,0, + /* 16914 */ 0321,02,017,037,0201,0, + /* 16920 */ 0324,02,017,037,0201,0, + /* 16926 */ 0320,02,017,037,0202,0, + /* 16932 */ 0321,02,017,037,0202,0, + /* 16938 */ 0324,02,017,037,0202,0, + /* 16944 */ 0320,02,017,037,0203,0, + /* 16950 */ 0321,02,017,037,0203,0, + /* 16956 */ 0324,02,017,037,0203,0, + /* 16962 */ 0320,02,017,037,0204,0, + /* 16968 */ 0321,02,017,037,0204,0, + /* 16974 */ 0324,02,017,037,0204,0, + /* 16980 */ 0320,02,017,037,0205,0, + /* 16986 */ 0321,02,017,037,0205,0, + /* 16992 */ 0324,02,017,037,0205,0, + /* 16998 */ 0320,02,017,037,0206,0, + /* 17004 */ 0321,02,017,037,0206,0, + /* 17010 */ 0324,02,017,037,0206,0, + /* 17016 */ 0320,02,017,037,0207,0, + /* 17022 */ 0321,02,017,037,0207,0, + /* 17028 */ 0324,02,017,037,0207,0, + /* 17034 */ 0320,01,021,0101,0, + /* 17039 */ 0321,01,021,0101,0, + /* 17044 */ 0324,01,021,0101,0, + /* 17049 */ 0320,01,023,0110,0, + /* 17054 */ 0321,01,023,0110,0, + /* 17059 */ 0324,01,023,0110,0, + /* 17064 */ 0320,01,025,031,0, + /* 17069 */ 0321,01,025,041,0, + /* 17074 */ 0324,01,025,0255,0, + /* 17079 */ 01,0200,0202,021,0, + /* 17084 */ 0320,01,01,0101,0, + /* 17089 */ 0321,01,01,0101,0, + /* 17094 */ 0324,01,01,0101,0, + /* 17099 */ 0320,01,03,0110,0, + /* 17104 */ 0321,01,03,0110,0, + /* 17109 */ 0324,01,03,0110,0, + /* 17114 */ 0320,01,05,031,0, + /* 17119 */ 0321,01,05,041,0, + /* 17124 */ 0324,01,05,0255,0, + /* 17129 */ 01,0200,0200,021,0, + /* 17134 */ 0320,01,041,0101,0, + /* 17139 */ 0321,01,041,0101,0, + /* 17144 */ 0324,01,041,0101,0, + /* 17149 */ 0320,01,043,0110,0, + /* 17154 */ 0321,01,043,0110,0, + /* 17159 */ 0324,01,043,0110,0, + /* 17164 */ 0320,01,045,031,0, + /* 17169 */ 0321,01,045,041,0, + /* 17174 */ 0324,01,045,0255,0, + /* 17179 */ 01,0200,0204,021,0, + /* 17184 */ 0320,01,0142,0110,0, + /* 17189 */ 0321,01,0142,0110,0, + /* 17194 */ 0322,01,0350,064,0, + /* 17199 */ 0320,01,0350,064,0, + /* 17204 */ 0321,01,0350,064,0, + /* 17209 */ 0322,01,0377,0203,0, + /* 17214 */ 0324,01,0377,0203,0, + /* 17219 */ 0320,01,0377,0203,0, + /* 17224 */ 0321,01,0377,0203,0, + /* 17229 */ 0322,01,0377,0202,0, + /* 17234 */ 0320,01,0377,0202,0, + /* 17239 */ 0321,01,0377,0202,0, + /* 17244 */ 0324,01,0377,0202,0, + /* 17249 */ 0323,01,0377,0202,0, + /* 17254 */ 03,017,01,0335,0, + /* 17259 */ 0320,01,071,0101,0, + /* 17264 */ 0321,01,071,0101,0, + /* 17269 */ 0324,01,071,0101,0, + /* 17274 */ 0320,01,073,0110,0, + /* 17279 */ 0321,01,073,0110,0, + /* 17284 */ 0324,01,073,0110,0, + /* 17289 */ 0320,01,075,031,0, + /* 17294 */ 0321,01,075,041,0, + /* 17299 */ 0324,01,075,0255,0, + /* 17304 */ 01,0200,0207,021,0, + /* 17309 */ 0335,0321,01,0247,0, + /* 17314 */ 0335,0324,01,0247,0, + /* 17319 */ 0335,0320,01,0247,0, + /* 17324 */ 02,017,0260,0101,0, + /* 17329 */ 02,017,0246,0101,0, + /* 17334 */ 0320,01,0377,0201,0, + /* 17339 */ 0321,01,0377,0201,0, + /* 17344 */ 0324,01,0377,0201,0, + /* 17349 */ 0320,01,0367,0206,0, + /* 17354 */ 0321,01,0367,0206,0, + /* 17359 */ 0324,01,0367,0206,0, + /* 17364 */ 01,0310,030,025,0, + /* 17369 */ 01,0334,010,0300,0, + /* 17374 */ 01,0330,010,0300,0, + /* 17379 */ 01,0330,011,0300,0, + /* 17384 */ 01,0336,010,0300,0, + /* 17389 */ 0341,02,0333,0342,0, + /* 17394 */ 01,0332,010,0300,0, + /* 17399 */ 01,0332,011,0300,0, + /* 17404 */ 01,0332,010,0320,0, + /* 17409 */ 01,0332,011,0320,0, + /* 17414 */ 01,0332,010,0310,0, + /* 17419 */ 01,0332,011,0310,0, + /* 17424 */ 01,0333,010,0300,0, + /* 17429 */ 01,0333,011,0300,0, + /* 17434 */ 01,0333,010,0320,0, + /* 17439 */ 01,0333,011,0320,0, + /* 17444 */ 01,0333,010,0310,0, + /* 17449 */ 01,0333,011,0310,0, + /* 17454 */ 01,0333,010,0330,0, + /* 17459 */ 01,0333,011,0330,0, + /* 17464 */ 01,0332,010,0330,0, + /* 17469 */ 01,0332,011,0330,0, + /* 17474 */ 01,0330,010,0320,0, + /* 17479 */ 01,0330,011,0320,0, + /* 17484 */ 01,0333,010,0360,0, + /* 17489 */ 01,0333,011,0360,0, + /* 17494 */ 01,0337,010,0360,0, + /* 17499 */ 01,0337,011,0360,0, + /* 17504 */ 01,0330,010,0330,0, + /* 17509 */ 01,0330,011,0330,0, + /* 17514 */ 0341,02,0333,0341,0, + /* 17519 */ 01,0334,010,0370,0, + /* 17524 */ 01,0330,010,0360,0, + /* 17529 */ 01,0330,011,0360,0, + /* 17534 */ 01,0336,010,0370,0, + /* 17539 */ 01,0334,010,0360,0, + /* 17544 */ 01,0330,010,0370,0, + /* 17549 */ 01,0330,011,0370,0, + /* 17554 */ 01,0336,010,0360,0, + /* 17559 */ 0341,02,0333,0340,0, + /* 17564 */ 01,0335,010,0300,0, + /* 17569 */ 01,0337,010,0300,0, + /* 17574 */ 0341,02,0333,0343,0, + /* 17579 */ 01,0331,010,0300,0, + /* 17584 */ 01,0334,010,0310,0, + /* 17589 */ 01,0330,010,0310,0, + /* 17594 */ 01,0330,011,0310,0, + /* 17599 */ 01,0336,010,0310,0, + /* 17604 */ 0341,01,0335,0206,0, + /* 17609 */ 01,0335,010,0320,0, + /* 17614 */ 0341,01,0331,0207,0, + /* 17619 */ 0341,01,0331,0206,0, + /* 17624 */ 01,0335,010,0330,0, + /* 17629 */ 0341,01,0335,0207,0, + /* 17634 */ 0341,02,0337,0340,0, + /* 17639 */ 01,0334,010,0350,0, + /* 17644 */ 01,0330,010,0340,0, + /* 17649 */ 01,0330,011,0340,0, + /* 17654 */ 01,0336,010,0350,0, + /* 17659 */ 01,0334,010,0340,0, + /* 17664 */ 01,0330,010,0350,0, + /* 17669 */ 01,0330,011,0350,0, + /* 17674 */ 01,0336,010,0340,0, + /* 17679 */ 01,0335,010,0340,0, + /* 17684 */ 01,0335,011,0340,0, + /* 17689 */ 01,0333,010,0350,0, + /* 17694 */ 01,0333,011,0350,0, + /* 17699 */ 01,0337,010,0350,0, + /* 17704 */ 01,0337,011,0350,0, + /* 17709 */ 01,0335,010,0350,0, + /* 17714 */ 01,0335,011,0350,0, + /* 17719 */ 01,0331,010,0310,0, + /* 17724 */ 01,0331,011,0310,0, + /* 17729 */ 0320,01,0367,0207,0, + /* 17734 */ 0321,01,0367,0207,0, + /* 17739 */ 0324,01,0367,0207,0, + /* 17744 */ 0320,01,0367,0205,0, + /* 17749 */ 0321,01,0367,0205,0, + /* 17754 */ 0324,01,0367,0205,0, + /* 17759 */ 0320,01,0345,025,0, + /* 17764 */ 0321,01,0345,025,0, + /* 17769 */ 0320,01,0377,0200,0, + /* 17774 */ 0321,01,0377,0200,0, + /* 17779 */ 0324,01,0377,0200,0, + /* 17784 */ 02,017,01,0207,0, + /* 17789 */ 0310,01,0343,050,0, + /* 17794 */ 0311,01,0343,050,0, + /* 17799 */ 0313,01,0343,050,0, + /* 17804 */ 0371,01,0353,050,0, + /* 17809 */ 0322,01,0351,064,0, + /* 17814 */ 0320,01,0351,064,0, + /* 17819 */ 0321,01,0351,064,0, + /* 17824 */ 0322,01,0377,0205,0, + /* 17829 */ 0324,01,0377,0205,0, + /* 17834 */ 0320,01,0377,0205,0, + /* 17839 */ 0321,01,0377,0205,0, + /* 17844 */ 0322,01,0377,0204,0, + /* 17849 */ 0320,01,0377,0204,0, + /* 17854 */ 0321,01,0377,0204,0, + /* 17859 */ 0323,01,0377,0204,0, + /* 17864 */ 0320,01,0305,0110,0, + /* 17869 */ 0321,01,0305,0110,0, + /* 17874 */ 0320,01,0215,0110,0, + /* 17879 */ 0321,01,0215,0110,0, + /* 17884 */ 0324,01,0215,0110,0, + /* 17889 */ 0320,01,0304,0110,0, + /* 17894 */ 0321,01,0304,0110,0, + /* 17899 */ 03,017,0256,0350,0, + /* 17904 */ 02,017,01,0202,0, + /* 17909 */ 02,017,01,0203,0, + /* 17914 */ 02,017,0,0202,0, + /* 17919 */ 02,017,01,0206,0, + /* 17924 */ 0312,01,0342,050,0, + /* 17929 */ 0310,01,0342,050,0, + /* 17934 */ 0311,01,0342,050,0, + /* 17939 */ 0313,01,0342,050,0, + /* 17944 */ 0312,01,0341,050,0, + /* 17949 */ 0310,01,0341,050,0, + /* 17954 */ 0311,01,0341,050,0, + /* 17959 */ 0313,01,0341,050,0, + /* 17964 */ 0312,01,0340,050,0, + /* 17969 */ 0310,01,0340,050,0, + /* 17974 */ 0311,01,0340,050,0, + /* 17979 */ 0313,01,0340,050,0, + /* 17984 */ 02,017,0,0203,0, + /* 17989 */ 03,017,0256,0360,0, + /* 17994 */ 03,017,01,0310,0, + /* 17999 */ 0320,01,0214,0101,0, + /* 18004 */ 0321,01,0214,0101,0, + /* 18009 */ 0320,01,0241,045,0, + /* 18014 */ 0321,01,0241,045,0, + /* 18019 */ 0324,01,0241,045,0, + /* 18024 */ 0320,01,0243,044,0, + /* 18029 */ 0321,01,0243,044,0, + /* 18034 */ 0324,01,0243,044,0, + /* 18039 */ 02,017,044,0101,0, + /* 18044 */ 02,017,046,0110,0, + /* 18049 */ 0320,01,0211,0101,0, + /* 18054 */ 0321,01,0211,0101,0, + /* 18059 */ 0324,01,0211,0101,0, + /* 18064 */ 0320,01,0213,0110,0, + /* 18069 */ 0321,01,0213,0110,0, + /* 18074 */ 0324,01,0213,0110,0, + /* 18079 */ 0320,010,0270,031,0, + /* 18084 */ 0321,010,0270,041,0, + /* 18089 */ 0324,010,0270,055,0, + /* 18094 */ 01,0306,0200,021,0, + /* 18099 */ 0324,01,0143,0110,0, + /* 18104 */ 0320,01,0367,0204,0, + /* 18109 */ 0321,01,0367,0204,0, + /* 18114 */ 0324,01,0367,0204,0, + /* 18119 */ 03,017,01,0311,0, + /* 18124 */ 0320,01,0367,0203,0, + /* 18129 */ 0321,01,0367,0203,0, + /* 18134 */ 0324,01,0367,0203,0, + /* 18139 */ 0320,01,0367,0202,0, + /* 18144 */ 0321,01,0367,0202,0, + /* 18149 */ 0324,01,0367,0202,0, + /* 18154 */ 0320,01,011,0101,0, + /* 18159 */ 0321,01,011,0101,0, + /* 18164 */ 0324,01,011,0101,0, + /* 18169 */ 0320,01,013,0110,0, + /* 18174 */ 0321,01,013,0110,0, + /* 18179 */ 0324,01,013,0110,0, + /* 18184 */ 0320,01,015,031,0, + /* 18189 */ 0321,01,015,041,0, + /* 18194 */ 0324,01,015,0255,0, + /* 18199 */ 01,0200,0201,021,0, + /* 18204 */ 0320,01,0347,024,0, + /* 18209 */ 0321,01,0347,024,0, + /* 18214 */ 0314,0333,01,0220,0, + /* 18219 */ 0320,01,0217,0200,0, + /* 18224 */ 0321,01,0217,0200,0, + /* 18229 */ 0323,01,0217,0200,0, + /* 18234 */ 02,017,015,0200,0, + /* 18239 */ 02,017,015,0201,0, + /* 18244 */ 0320,01,0377,0206,0, + /* 18249 */ 0321,01,0377,0206,0, + /* 18254 */ 0323,01,0377,0206,0, + /* 18259 */ 0320,0144,0150,0140,0, + /* 18264 */ 0321,0154,0150,0150,0, + /* 18269 */ 0323,0154,0150,0250,0, + /* 18274 */ 01,0300,0202,025,0, + /* 18279 */ 0320,01,0321,0202,0, + /* 18284 */ 0320,01,0323,0202,0, + /* 18289 */ 0321,01,0321,0202,0, + /* 18294 */ 0321,01,0323,0202,0, + /* 18299 */ 0324,01,0321,0202,0, + /* 18304 */ 0324,01,0323,0202,0, + /* 18309 */ 01,0300,0203,025,0, + /* 18314 */ 0320,01,0321,0203,0, + /* 18319 */ 0320,01,0323,0203,0, + /* 18324 */ 0321,01,0321,0203,0, + /* 18329 */ 0321,01,0323,0203,0, + /* 18334 */ 0324,01,0321,0203,0, + /* 18339 */ 0324,01,0323,0203,0, + /* 18344 */ 03,017,01,0371,0, + /* 18349 */ 01,0300,0200,025,0, + /* 18354 */ 0320,01,0321,0200,0, + /* 18359 */ 0320,01,0323,0200,0, + /* 18364 */ 0321,01,0321,0200,0, + /* 18369 */ 0321,01,0323,0200,0, + /* 18374 */ 0324,01,0321,0200,0, + /* 18379 */ 0324,01,0323,0200,0, + /* 18384 */ 01,0300,0201,025,0, + /* 18389 */ 0320,01,0321,0201,0, + /* 18394 */ 0320,01,0323,0201,0, + /* 18399 */ 0321,01,0321,0201,0, + /* 18404 */ 0321,01,0323,0201,0, + /* 18409 */ 0324,01,0321,0201,0, + /* 18414 */ 0324,01,0323,0201,0, + /* 18419 */ 02,017,0173,0200,0, + /* 18424 */ 02,017,0175,0200,0, + /* 18429 */ 01,0300,0204,025,0, + /* 18434 */ 0320,01,0321,0204,0, + /* 18439 */ 0320,01,0323,0204,0, + /* 18444 */ 0321,01,0321,0204,0, + /* 18449 */ 0321,01,0323,0204,0, + /* 18454 */ 0324,01,0321,0204,0, + /* 18459 */ 0324,01,0323,0204,0, + /* 18464 */ 01,0300,0207,025,0, + /* 18469 */ 0320,01,0321,0207,0, + /* 18474 */ 0320,01,0323,0207,0, + /* 18479 */ 0321,01,0321,0207,0, + /* 18484 */ 0321,01,0323,0207,0, + /* 18489 */ 0324,01,0321,0207,0, + /* 18494 */ 0324,01,0323,0207,0, + /* 18499 */ 0320,01,031,0101,0, + /* 18504 */ 0321,01,031,0101,0, + /* 18509 */ 0324,01,031,0101,0, + /* 18514 */ 0320,01,033,0110,0, + /* 18519 */ 0321,01,033,0110,0, + /* 18524 */ 0324,01,033,0110,0, + /* 18529 */ 0320,01,035,031,0, + /* 18534 */ 0321,01,035,041,0, + /* 18539 */ 0324,01,035,0255,0, + /* 18544 */ 01,0200,0203,021,0, + /* 18549 */ 0335,0321,01,0257,0, + /* 18554 */ 0335,0324,01,0257,0, + /* 18559 */ 0335,0320,01,0257,0, + /* 18564 */ 03,017,0256,0370,0, + /* 18569 */ 02,017,01,0200,0, + /* 18574 */ 01,0300,0205,025,0, + /* 18579 */ 0320,01,0321,0205,0, + /* 18584 */ 0320,01,0323,0205,0, + /* 18589 */ 0321,01,0321,0205,0, + /* 18594 */ 0321,01,0323,0205,0, + /* 18599 */ 0324,01,0321,0205,0, + /* 18604 */ 0324,01,0323,0205,0, + /* 18609 */ 02,017,01,0201,0, + /* 18614 */ 03,017,01,0336,0, + /* 18619 */ 03,017,01,0334,0, + /* 18624 */ 0320,01,051,0101,0, + /* 18629 */ 0321,01,051,0101,0, + /* 18634 */ 0324,01,051,0101,0, + /* 18639 */ 0320,01,053,0110,0, + /* 18644 */ 0321,01,053,0110,0, + /* 18649 */ 0324,01,053,0110,0, + /* 18654 */ 0320,01,055,031,0, + /* 18659 */ 0321,01,055,041,0, + /* 18664 */ 0324,01,055,0255,0, + /* 18669 */ 01,0200,0205,021,0, + /* 18674 */ 02,017,0172,0200,0, + /* 18679 */ 02,017,0174,0200,0, + /* 18684 */ 03,017,01,0370,0, + /* 18689 */ 0320,01,0205,0101,0, + /* 18694 */ 0321,01,0205,0101,0, + /* 18699 */ 0324,01,0205,0101,0, + /* 18704 */ 0320,01,0205,0110,0, + /* 18709 */ 0321,01,0205,0110,0, + /* 18714 */ 0324,01,0205,0110,0, + /* 18719 */ 0320,01,0251,031,0, + /* 18724 */ 0321,01,0251,041,0, + /* 18729 */ 0324,01,0251,0255,0, + /* 18734 */ 01,0366,0200,021,0, + /* 18739 */ 02,017,0,0204,0, + /* 18744 */ 02,017,0,0205,0, + /* 18749 */ 02,017,0300,0101,0, + /* 18754 */ 0320,01,0207,0110,0, + /* 18759 */ 0321,01,0207,0110,0, + /* 18764 */ 0324,01,0207,0110,0, + /* 18769 */ 0320,01,0207,0101,0, + /* 18774 */ 0321,01,0207,0101,0, + /* 18779 */ 0324,01,0207,0101,0, + /* 18784 */ 0320,01,061,0101,0, + /* 18789 */ 0321,01,061,0101,0, + /* 18794 */ 0324,01,061,0101,0, + /* 18799 */ 0320,01,063,0110,0, + /* 18804 */ 0321,01,063,0110,0, + /* 18809 */ 0324,01,063,0110,0, + /* 18814 */ 0320,01,065,031,0, + /* 18819 */ 0321,01,065,041,0, + /* 18824 */ 0324,01,065,0255,0, + /* 18829 */ 01,0200,0206,021,0, + /* 18834 */ 0370,0330,0160,050,0, + /* 18839 */ 02,017,0256,0202,0, + /* 18844 */ 02,017,0256,0203,0, + /* 18849 */ 02,017,0256,0201,0, + /* 18854 */ 02,017,0256,0200,0, + /* 18859 */ 02,017,0256,0207,0, + /* 18864 */ 03,017,01,0301,0, + /* 18869 */ 03,017,01,0302,0, + /* 18874 */ 03,017,01,0332,0, + /* 18879 */ 03,017,01,0331,0, + /* 18884 */ 02,017,0307,0207,0, + /* 18889 */ 03,017,01,0303,0, + /* 18894 */ 03,017,01,0330,0, + /* 18899 */ 03,017,01,0333,0, + /* 18904 */ 03,017,01,0304,0, + /* 18909 */ 03,017,0247,0300,0, + /* 18914 */ 02,0325,012,0, + /* 18918 */ 01,0325,024,0, + /* 18922 */ 02,0324,012,0, + /* 18926 */ 01,0324,024,0, + /* 18930 */ 01,020,0101,0, + /* 18934 */ 01,024,021,0, + /* 18938 */ 01,0,0101,0, + /* 18942 */ 01,04,021,0, + /* 18946 */ 01,040,0101,0, + /* 18950 */ 01,044,021,0, + /* 18954 */ 01,0143,0101,0, + /* 18958 */ 02,017,072,0, + /* 18962 */ 02,017,073,0, + /* 18966 */ 0320,01,0230,0, + /* 18970 */ 0321,01,0231,0, + /* 18974 */ 0324,01,0230,0, + /* 18978 */ 02,017,06,0, + /* 18982 */ 01,070,0101,0, + /* 18986 */ 01,074,021,0, + /* 18990 */ 0335,01,0246,0, + /* 18994 */ 02,017,0242,0, + /* 18998 */ 02,017,075,0, + /* 19002 */ 02,017,074,0, + /* 19006 */ 0324,01,0231,0, + /* 19010 */ 0320,01,0231,0, + /* 19014 */ 0321,01,0230,0, + /* 19018 */ 0320,010,0110,0, + /* 19022 */ 0321,010,0110,0, + /* 19026 */ 01,0376,0201,0, + /* 19030 */ 01,0366,0206,0, + /* 19034 */ 02,017,071,0, + /* 19038 */ 02,017,0167,0, + /* 19042 */ 02,0331,0360,0, + /* 19046 */ 02,0331,0341,0, + /* 19050 */ 01,0330,0200,0, + /* 19054 */ 01,0334,0200,0, + /* 19058 */ 02,0336,0301,0, + /* 19062 */ 01,0337,0204,0, + /* 19066 */ 01,0337,0206,0, + /* 19070 */ 02,0331,0340,0, + /* 19074 */ 02,0332,0301,0, + /* 19078 */ 02,0332,0321,0, + /* 19082 */ 02,0332,0311,0, + /* 19086 */ 02,0333,0301,0, + /* 19090 */ 02,0333,0321,0, + /* 19094 */ 02,0333,0311,0, + /* 19098 */ 02,0333,0331,0, + /* 19102 */ 02,0332,0331,0, + /* 19106 */ 01,0330,0202,0, + /* 19110 */ 01,0334,0202,0, + /* 19114 */ 02,0330,0321,0, + /* 19118 */ 02,0333,0361,0, + /* 19122 */ 02,0337,0361,0, + /* 19126 */ 01,0330,0203,0, + /* 19130 */ 01,0334,0203,0, + /* 19134 */ 02,0330,0331,0, + /* 19138 */ 02,0336,0331,0, + /* 19142 */ 02,0331,0377,0, + /* 19146 */ 02,0331,0366,0, + /* 19150 */ 01,0330,0206,0, + /* 19154 */ 01,0334,0206,0, + /* 19158 */ 02,0336,0371,0, + /* 19162 */ 01,0330,0207,0, + /* 19166 */ 01,0334,0207,0, + /* 19170 */ 02,0336,0361,0, + /* 19174 */ 02,017,016,0, + /* 19178 */ 02,0335,0301,0, + /* 19182 */ 02,0337,0301,0, + /* 19186 */ 01,0332,0200,0, + /* 19190 */ 01,0336,0200,0, + /* 19194 */ 01,0332,0202,0, + /* 19198 */ 01,0336,0202,0, + /* 19202 */ 01,0332,0203,0, + /* 19206 */ 01,0336,0203,0, + /* 19210 */ 01,0332,0206,0, + /* 19214 */ 01,0336,0206,0, + /* 19218 */ 01,0332,0207,0, + /* 19222 */ 01,0336,0207,0, + /* 19226 */ 01,0333,0200,0, + /* 19230 */ 01,0337,0200,0, + /* 19234 */ 01,0337,0205,0, + /* 19238 */ 01,0332,0201,0, + /* 19242 */ 01,0336,0201,0, + /* 19246 */ 02,0331,0367,0, + /* 19250 */ 01,0333,0202,0, + /* 19254 */ 01,0337,0202,0, + /* 19258 */ 01,0333,0203,0, + /* 19262 */ 01,0337,0203,0, + /* 19266 */ 01,0337,0207,0, + /* 19270 */ 01,0337,0201,0, + /* 19274 */ 01,0333,0201,0, + /* 19278 */ 01,0335,0201,0, + /* 19282 */ 01,0332,0204,0, + /* 19286 */ 01,0336,0204,0, + /* 19290 */ 01,0332,0205,0, + /* 19294 */ 01,0336,0205,0, + /* 19298 */ 01,0331,0200,0, + /* 19302 */ 01,0335,0200,0, + /* 19306 */ 01,0333,0205,0, + /* 19310 */ 02,0331,0301,0, + /* 19314 */ 02,0331,0350,0, + /* 19318 */ 01,0331,0205,0, + /* 19322 */ 01,0331,0204,0, + /* 19326 */ 02,0331,0352,0, + /* 19330 */ 02,0331,0351,0, + /* 19334 */ 02,0331,0354,0, + /* 19338 */ 02,0331,0355,0, + /* 19342 */ 02,0331,0353,0, + /* 19346 */ 02,0331,0356,0, + /* 19350 */ 01,0330,0201,0, + /* 19354 */ 01,0334,0201,0, + /* 19358 */ 02,0336,0311,0, + /* 19362 */ 02,0331,0320,0, + /* 19366 */ 02,0331,0363,0, + /* 19370 */ 02,0331,0370,0, + /* 19374 */ 02,0331,0365,0, + /* 19378 */ 02,0331,0362,0, + /* 19382 */ 02,0331,0374,0, + /* 19386 */ 01,0335,0204,0, + /* 19390 */ 02,0331,0375,0, + /* 19394 */ 02,0333,0344,0, + /* 19398 */ 02,0331,0376,0, + /* 19402 */ 02,0331,0373,0, + /* 19406 */ 02,0331,0372,0, + /* 19410 */ 01,0331,0202,0, + /* 19414 */ 01,0335,0202,0, + /* 19418 */ 02,0335,0321,0, + /* 19422 */ 01,0331,0203,0, + /* 19426 */ 01,0335,0203,0, + /* 19430 */ 01,0333,0207,0, + /* 19434 */ 02,0335,0331,0, + /* 19438 */ 01,0330,0204,0, + /* 19442 */ 01,0334,0204,0, + /* 19446 */ 02,0336,0351,0, + /* 19450 */ 01,0330,0205,0, + /* 19454 */ 01,0334,0205,0, + /* 19458 */ 02,0336,0341,0, + /* 19462 */ 02,0331,0344,0, + /* 19466 */ 02,0335,0341,0, + /* 19470 */ 02,0333,0351,0, + /* 19474 */ 02,0337,0351,0, + /* 19478 */ 02,0335,0351,0, + /* 19482 */ 02,0332,0351,0, + /* 19486 */ 02,0331,0345,0, + /* 19490 */ 02,0331,0311,0, + /* 19494 */ 02,0331,0364,0, + /* 19498 */ 02,0331,0361,0, + /* 19502 */ 02,0331,0371,0, + /* 19506 */ 01,0366,0207,0, + /* 19510 */ 01,0366,0205,0, + /* 19514 */ 01,0344,025,0, + /* 19518 */ 0320,01,0355,0, + /* 19522 */ 0321,01,0355,0, + /* 19526 */ 0320,010,0100,0, + /* 19530 */ 0321,010,0100,0, + /* 19534 */ 01,0376,0200,0, + /* 19538 */ 0321,01,0155,0, + /* 19542 */ 0320,01,0155,0, + /* 19546 */ 01,0315,024,0, + /* 19550 */ 02,017,010,0, + /* 19554 */ 0322,01,0317,0, + /* 19558 */ 0321,01,0317,0, + /* 19562 */ 0324,01,0317,0, + /* 19566 */ 0320,01,0317,0, + /* 19570 */ 02,017,07,0, + /* 19574 */ 02,017,05,0, + /* 19578 */ 0321,01,0255,0, + /* 19582 */ 0324,01,0255,0, + /* 19586 */ 0320,01,0255,0, + /* 19590 */ 01,0216,0110,0, + /* 19594 */ 01,0240,045,0, + /* 19598 */ 01,0242,044,0, + /* 19602 */ 01,0210,0101,0, + /* 19606 */ 01,0212,0110,0, + /* 19610 */ 010,0260,021,0, + /* 19614 */ 0321,01,0245,0, + /* 19618 */ 0324,01,0245,0, + /* 19622 */ 0320,01,0245,0, + /* 19626 */ 01,0366,0204,0, + /* 19630 */ 01,0366,0203,0, + /* 19634 */ 0314,01,0220,0, + /* 19638 */ 01,0366,0202,0, + /* 19642 */ 01,010,0101,0, + /* 19646 */ 01,014,021,0, + /* 19650 */ 01,0346,024,0, + /* 19654 */ 0320,01,0357,0, + /* 19658 */ 0321,01,0357,0, + /* 19662 */ 0321,01,0157,0, + /* 19666 */ 0320,01,0157,0, + /* 19670 */ 0320,010,0130,0, + /* 19674 */ 0321,010,0130,0, + /* 19678 */ 0323,010,0130,0, + /* 19682 */ 01,017,0347,0, + /* 19686 */ 0322,01,0141,0, + /* 19690 */ 0321,01,0141,0, + /* 19694 */ 0320,01,0141,0, + /* 19698 */ 0322,01,0235,0, + /* 19702 */ 0321,01,0235,0, + /* 19706 */ 0320,01,0235,0, + /* 19710 */ 0320,010,0120,0, + /* 19714 */ 0321,010,0120,0, + /* 19718 */ 0323,010,0120,0, + /* 19722 */ 01,017,0346,0, + /* 19726 */ 01,0152,0274,0, + /* 19730 */ 0322,01,0140,0, + /* 19734 */ 0321,01,0140,0, + /* 19738 */ 0320,01,0140,0, + /* 19742 */ 0322,01,0234,0, + /* 19746 */ 0321,01,0234,0, + /* 19750 */ 0320,01,0234,0, + /* 19754 */ 01,0320,0202,0, + /* 19758 */ 01,0322,0202,0, + /* 19762 */ 01,0320,0203,0, + /* 19766 */ 01,0322,0203,0, + /* 19770 */ 02,017,062,0, + /* 19774 */ 02,017,063,0, + /* 19778 */ 02,017,061,0, + /* 19782 */ 01,0302,030,0, + /* 19786 */ 01,0312,030,0, + /* 19790 */ 01,0320,0200,0, + /* 19794 */ 01,0322,0200,0, + /* 19798 */ 01,0320,0201,0, + /* 19802 */ 01,0322,0201,0, + /* 19806 */ 02,017,0252,0, + /* 19810 */ 01,0320,0204,0, + /* 19814 */ 01,0322,0204,0, + /* 19818 */ 01,0320,0207,0, + /* 19822 */ 01,0322,0207,0, + /* 19826 */ 01,030,0101,0, + /* 19830 */ 01,034,021,0, + /* 19834 */ 0335,01,0256,0, + /* 19838 */ 01,0320,0205,0, + /* 19842 */ 01,0322,0205,0, + /* 19846 */ 02,017,070,0, + /* 19850 */ 02,017,0176,0, + /* 19854 */ 0321,01,0253,0, + /* 19858 */ 0324,01,0253,0, + /* 19862 */ 0320,01,0253,0, + /* 19866 */ 01,050,0101,0, + /* 19870 */ 01,054,021,0, + /* 19874 */ 02,017,064,0, + /* 19878 */ 02,017,065,0, + /* 19882 */ 01,0204,0101,0, + /* 19886 */ 01,0204,0110,0, + /* 19890 */ 01,0250,021,0, + /* 19894 */ 02,017,0377,0, + /* 19898 */ 02,017,0271,0, + /* 19902 */ 02,017,013,0, + /* 19906 */ 02,017,011,0, + /* 19910 */ 02,017,060,0, + /* 19914 */ 0320,011,0220,0, + /* 19918 */ 0321,011,0220,0, + /* 19922 */ 0324,011,0220,0, + /* 19926 */ 0320,010,0220,0, + /* 19930 */ 0321,010,0220,0, + /* 19934 */ 0324,010,0220,0, + /* 19938 */ 0321,01,0220,0, + /* 19942 */ 01,0206,0110,0, + /* 19946 */ 01,0206,0101,0, + /* 19950 */ 01,060,0101,0, + /* 19954 */ 01,064,021,0, + /* 19958 */ 02,017,067,0, + /* 19962 */ 01,067,0, + /* 19965 */ 01,077,0, + /* 19968 */ 01,0374,0, + /* 19971 */ 01,0372,0, + /* 19974 */ 01,0365,0, + /* 19977 */ 01,047,0, + /* 19980 */ 01,057,0, + /* 19983 */ 01,0364,0, + /* 19986 */ 01,0361,0, + /* 19989 */ 01,0354,0, + /* 19992 */ 01,0154,0, + /* 19995 */ 01,0314,0, + /* 19998 */ 01,0316,0, + /* 20001 */ 01,0237,0, + /* 20004 */ 01,0254,0, + /* 20007 */ 01,0356,0, + /* 20010 */ 01,0156,0, + /* 20013 */ 01,0313,0, + /* 20016 */ 01,0326,0, + /* 20019 */ 01,0375,0, + /* 20022 */ 01,0373,0, + /* 20025 */ 01,0327,0, +}; + +/* + * Bytecode frequencies (including reuse): + * + * 0:3415 | 40: 4 | 100: 53 | 140: 1 | 200: 104 | 240: 0 | 300: 0 | 340: 1 + * 1:2871 | 41: 19 | 101: 282 | 141: 17 | 201: 74 | 241: 0 | 301: 0 | 341: 10 + * 2:1041 | 42: 12 | 102: 6 | 142: 2 | 202: 88 | 242: 0 | 302: 0 | 342: 0 + * 3: 212 | 43: 4 | 103: 0 | 143: 0 | 203: 75 | 243: 0 | 303: 0 | 343: 0 + * 4: 0 | 44: 4 | 104: 0 | 144: 1 | 204: 101 | 244: 0 | 304: 0 | 344: 2 + * 5: 0 | 45: 4 | 105: 0 | 145: 17 | 205: 72 | 245: 0 | 305: 0 | 345: 1 + * 6: 0 | 46: 0 | 106: 0 | 146: 2 | 206: 74 | 246: 0 | 306: 0 | 346: 1 + * 7: 0 | 47: 0 | 107: 0 | 147: 0 | 207: 71 | 247: 0 | 307: 0 | 347: 1 + * 10: 72 | 50: 28 | 110:1313 | 150: 2 | 210: 3 | 250: 1 | 310: 7 | 350: 0 + * 11: 26 | 51: 0 | 111: 0 | 151: 17 | 211: 3 | 251: 9 | 311: 7 | 351: 0 + * 12: 0 | 52: 0 | 112: 0 | 152: 2 | 212: 3 | 252: 2 | 312: 5 | 352: 0 + * 13: 0 | 53: 0 | 113: 0 | 153: 0 | 213: 1 | 253: 0 | 313: 7 | 353: 0 + * 14: 0 | 54: 0 | 114: 0 | 154: 3 | 214: 2 | 254: 0 | 314: 2 | 354: 0 + * 15: 6 | 55: 1 | 115: 0 | 155: 26 | 215: 0 | 255: 13 | 315: 0 | 355: 0 + * 16: 12 | 56: 0 | 116: 0 | 156: 4 | 216: 3 | 256: 0 | 316: 0 | 356: 0 + * 17: 0 | 57: 0 | 117: 0 | 157: 0 | 217: 1 | 257: 0 | 317: 4 | 357: 0 + * 20: 0 | 60: 4 | 120: 733 | 160: 0 | 220: 0 | 260: 539 | 320: 322 | 360: 172 + * 21: 48 | 61: 0 | 121: 0 | 161: 0 | 221: 0 | 261: 767 | 321: 325 | 361: 236 + * 22: 101 | 62: 4 | 122: 0 | 162: 0 | 222: 0 | 262: 12 | 322: 21 | 362: 44 + * 23: 44 | 63: 4 | 123: 0 | 163: 0 | 223: 0 | 263: 0 | 323: 113 | 363: 48 + * 24: 6 | 64: 20 | 124: 0 | 164: 0 | 224: 0 | 264: 0 | 324: 283 | 364: 0 + * 25: 67 | 65: 0 | 125: 0 | 165: 0 | 225: 0 | 265: 0 | 325: 1 | 365: 0 + * 26: 67 | 66: 0 | 126: 0 | 166: 0 | 226: 0 | 266: 0 | 326: 0 | 366: 0 + * 27: 1 | 67: 0 | 127: 0 | 167: 0 | 227: 0 | 267: 0 | 327: 0 | 367: 0 + * 30: 14 | 70: 0 | 130: 51 | 170: 0 | 230: 0 | 270: 243 | 330: 16 | 370: 1 + * 31: 19 | 71: 0 | 131: 0 | 171: 0 | 231: 0 | 271: 0 | 331: 0 | 371: 1 + * 32: 4 | 72: 0 | 132: 0 | 172: 8 | 232: 0 | 272: 0 | 332: 5 | 372: 0 + * 33: 0 | 73: 0 | 133: 0 | 173: 24 | 233: 0 | 273: 0 | 333: 7 | 373: 1 + * 34: 6 | 74: 6 | 134: 0 | 174: 170 | 234: 0 | 274: 1 | 334: 2 | 374: 0 + * 35: 2 | 75: 0 | 135: 0 | 175: 0 | 235: 0 | 275: 48 | 335: 8 | 375: 0 + * 36: 0 | 76: 0 | 136: 0 | 176: 0 | 236: 0 | 276: 0 | 336: 8 | 376: 0 + * 37: 0 | 77: 0 | 137: 0 | 177: 0 | 237: 0 | 277: 0 | 337: 0 | 377: 0 + */ diff --git a/uppsrc/plugin/ndisasm/lib/insnsd.c b/uppsrc/plugin/ndisasm/lib/insnsd.c index 1870828af..ebd06a511 100644 --- a/uppsrc/plugin/ndisasm/lib/insnsd.c +++ b/uppsrc/plugin/ndisasm/lib/insnsd.c @@ -3,1694 +3,7408 @@ #include "nasm.h" #include "insns.h" -static struct itemplate instrux[] = { - {I_AAA, 0, {0,0,0}, "\1\x37", IF_8086}, - {I_AAD, 0, {0,0,0}, "\2\xD5\x0A", IF_8086}, - {I_AAD, 1, {IMMEDIATE,0,0}, "\1\xD5\24", IF_8086|IF_SB}, - {I_AAM, 0, {0,0,0}, "\2\xD4\x0A", IF_8086}, - {I_AAM, 1, {IMMEDIATE,0,0}, "\1\xD4\24", IF_8086|IF_SB}, - {I_AAS, 0, {0,0,0}, "\1\x3F", IF_8086}, - {I_ADC, 2, {MEMORY,REG8,0}, "\300\1\x10\101", IF_8086|IF_SM}, - {I_ADC, 2, {REG8,REG8,0}, "\1\x10\101", IF_8086}, - {I_ADC, 2, {MEMORY,REG16,0}, "\320\300\1\x11\101", IF_8086|IF_SM}, - {I_ADC, 2, {REG16,REG16,0}, "\320\1\x11\101", IF_8086}, - {I_ADC, 2, {MEMORY,REG32,0}, "\321\300\1\x11\101", IF_386|IF_SM}, - {I_ADC, 2, {REG32,REG32,0}, "\321\1\x11\101", IF_386}, - {I_ADC, 2, {REG8,MEMORY,0}, "\301\1\x12\110", IF_8086|IF_SM}, - {I_ADC, 2, {REG8,REG8,0}, "\1\x12\110", IF_8086}, - {I_ADC, 2, {REG16,MEMORY,0}, "\320\301\1\x13\110", IF_8086|IF_SM}, - {I_ADC, 2, {REG16,REG16,0}, "\320\1\x13\110", IF_8086}, - {I_ADC, 2, {REG32,MEMORY,0}, "\321\301\1\x13\110", IF_386|IF_SM}, - {I_ADC, 2, {REG32,REG32,0}, "\321\1\x13\110", IF_386}, - {I_ADC, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\202\15", IF_8086}, - {I_ADC, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\202\15", IF_386}, - {I_ADC, 2, {REG_AL,IMMEDIATE,0}, "\1\x14\21", IF_8086|IF_SM}, - {I_ADC, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x15\31", IF_8086|IF_SM}, - {I_ADC, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x15\41", IF_386|IF_SM}, - {I_ADC, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\202\21", IF_8086|IF_SM}, - {I_ADC, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\202\131", IF_8086|IF_SM}, - {I_ADC, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\202\141", IF_386|IF_SM}, - {I_ADC, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\202\21", IF_8086|IF_SM}, - {I_ADC, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\202\131", IF_8086|IF_SM}, - {I_ADC, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\202\141", IF_386|IF_SM}, - {I_ADD, 2, {MEMORY,REG8,0}, "\300\17\101", IF_8086|IF_SM}, - {I_ADD, 2, {REG8,REG8,0}, "\17\101", IF_8086}, - {I_ADD, 2, {MEMORY,REG16,0}, "\320\300\1\x01\101", IF_8086|IF_SM}, - {I_ADD, 2, {REG16,REG16,0}, "\320\1\x01\101", IF_8086}, - {I_ADD, 2, {MEMORY,REG32,0}, "\321\300\1\x01\101", IF_386|IF_SM}, - {I_ADD, 2, {REG32,REG32,0}, "\321\1\x01\101", IF_386}, - {I_ADD, 2, {REG8,MEMORY,0}, "\301\1\x02\110", IF_8086|IF_SM}, - {I_ADD, 2, {REG8,REG8,0}, "\1\x02\110", IF_8086}, - {I_ADD, 2, {REG16,MEMORY,0}, "\320\301\1\x03\110", IF_8086|IF_SM}, - {I_ADD, 2, {REG16,REG16,0}, "\320\1\x03\110", IF_8086}, - {I_ADD, 2, {REG32,MEMORY,0}, "\321\301\1\x03\110", IF_386|IF_SM}, - {I_ADD, 2, {REG32,REG32,0}, "\321\1\x03\110", IF_386}, - {I_ADD, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\200\15", IF_8086}, - {I_ADD, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\200\15", IF_386}, - {I_ADD, 2, {REG_AL,IMMEDIATE,0}, "\1\x04\21", IF_8086|IF_SM}, - {I_ADD, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x05\31", IF_8086|IF_SM}, - {I_ADD, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x05\41", IF_386|IF_SM}, - {I_ADD, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\200\21", IF_8086|IF_SM}, - {I_ADD, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\200\131", IF_8086|IF_SM}, - {I_ADD, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\200\141", IF_386|IF_SM}, - {I_ADD, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\200\21", IF_8086|IF_SM}, - {I_ADD, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\200\131", IF_8086|IF_SM}, - {I_ADD, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\200\141", IF_386|IF_SM}, - {I_AND, 2, {MEMORY,REG8,0}, "\300\1\x20\101", IF_8086|IF_SM}, - {I_AND, 2, {REG8,REG8,0}, "\1\x20\101", IF_8086}, - {I_AND, 2, {MEMORY,REG16,0}, "\320\300\1\x21\101", IF_8086|IF_SM}, - {I_AND, 2, {REG16,REG16,0}, "\320\1\x21\101", IF_8086}, - {I_AND, 2, {MEMORY,REG32,0}, "\321\300\1\x21\101", IF_386|IF_SM}, - {I_AND, 2, {REG32,REG32,0}, "\321\1\x21\101", IF_386}, - {I_AND, 2, {REG8,MEMORY,0}, "\301\1\x22\110", IF_8086|IF_SM}, - {I_AND, 2, {REG8,REG8,0}, "\1\x22\110", IF_8086}, - {I_AND, 2, {REG16,MEMORY,0}, "\320\301\1\x23\110", IF_8086|IF_SM}, - {I_AND, 2, {REG16,REG16,0}, "\320\1\x23\110", IF_8086}, - {I_AND, 2, {REG32,MEMORY,0}, "\321\301\1\x23\110", IF_386|IF_SM}, - {I_AND, 2, {REG32,REG32,0}, "\321\1\x23\110", IF_386}, - {I_AND, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\204\15", IF_8086}, - {I_AND, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\204\15", IF_386}, - {I_AND, 2, {REG_AL,IMMEDIATE,0}, "\1\x24\21", IF_8086|IF_SM}, - {I_AND, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x25\31", IF_8086|IF_SM}, - {I_AND, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x25\41", IF_386|IF_SM}, - {I_AND, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\204\21", IF_8086|IF_SM}, - {I_AND, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\204\131", IF_8086|IF_SM}, - {I_AND, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\204\141", IF_386|IF_SM}, - {I_AND, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\204\21", IF_8086|IF_SM}, - {I_AND, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\204\131", IF_8086|IF_SM}, - {I_AND, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\204\141", IF_386|IF_SM}, - {I_ARPL, 2, {MEMORY,REG16,0}, "\300\1\x63\101", IF_286|IF_PROT|IF_SM}, - {I_ARPL, 2, {REG16,REG16,0}, "\1\x63\101", IF_286|IF_PROT}, - {I_BOUND, 2, {REG16,MEMORY,0}, "\320\301\1\x62\110", IF_186}, - {I_BOUND, 2, {REG32,MEMORY,0}, "\321\301\1\x62\110", IF_386}, - {I_BSF, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xBC\110", IF_386|IF_SM}, - {I_BSF, 2, {REG16,REG16,0}, "\320\2\x0F\xBC\110", IF_386}, - {I_BSF, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\xBC\110", IF_386|IF_SM}, - {I_BSF, 2, {REG32,REG32,0}, "\321\2\x0F\xBC\110", IF_386}, - {I_BSR, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xBD\110", IF_386|IF_SM}, - {I_BSR, 2, {REG16,REG16,0}, "\320\2\x0F\xBD\110", IF_386}, - {I_BSR, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\xBD\110", IF_386|IF_SM}, - {I_BSR, 2, {REG32,REG32,0}, "\321\2\x0F\xBD\110", IF_386}, - {I_BSWAP, 1, {REG32,0,0}, "\321\1\x0F\10\xC8", IF_486}, - {I_BT, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\xA3\101", IF_386|IF_SM}, - {I_BT, 2, {REG16,REG16,0}, "\320\2\x0F\xA3\101", IF_386}, - {I_BT, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\xA3\101", IF_386|IF_SM}, - {I_BT, 2, {REG32,REG32,0}, "\321\2\x0F\xA3\101", IF_386}, - {I_BT, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\2\x0F\xBA\204\25", IF_386|IF_SB}, - {I_BT, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\2\x0F\xBA\204\25", IF_386|IF_SB}, - {I_BTC, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\xBB\101", IF_386|IF_SM}, - {I_BTC, 2, {REG16,REG16,0}, "\320\2\x0F\xBB\101", IF_386}, - {I_BTC, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\xBB\101", IF_386|IF_SM}, - {I_BTC, 2, {REG32,REG32,0}, "\321\2\x0F\xBB\101", IF_386}, - {I_BTC, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\2\x0F\xBA\207\25", IF_386|IF_SB}, - {I_BTC, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\2\x0F\xBA\207\25", IF_386|IF_SB}, - {I_BTR, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\xB3\101", IF_386|IF_SM}, - {I_BTR, 2, {REG16,REG16,0}, "\320\2\x0F\xB3\101", IF_386}, - {I_BTR, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\xB3\101", IF_386|IF_SM}, - {I_BTR, 2, {REG32,REG32,0}, "\321\2\x0F\xB3\101", IF_386}, - {I_BTR, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\2\x0F\xBA\206\25", IF_386|IF_SB}, - {I_BTR, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\2\x0F\xBA\206\25", IF_386|IF_SB}, - {I_BTS, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\xAB\101", IF_386|IF_SM}, - {I_BTS, 2, {REG16,REG16,0}, "\320\2\x0F\xAB\101", IF_386}, - {I_BTS, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\xAB\101", IF_386|IF_SM}, - {I_BTS, 2, {REG32,REG32,0}, "\321\2\x0F\xAB\101", IF_386}, - {I_BTS, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\2\x0F\xBA\205\25", IF_386|IF_SB}, - {I_BTS, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\2\x0F\xBA\205\25", IF_386|IF_SB}, - {I_CALL, 1, {IMMEDIATE,0,0}, "\322\1\xE8\64", IF_8086}, - {I_CALL, 1, {IMMEDIATE|NEAR,0,0}, "\322\1\xE8\64", IF_8086}, - {I_CALL, 1, {IMMEDIATE|BITS16,0,0}, "\320\1\xE8\64", IF_8086}, - {I_CALL, 1, {IMMEDIATE|BITS16|NEAR,0,0}, "\320\1\xE8\64", IF_8086}, - {I_CALL, 1, {IMMEDIATE|BITS32,0,0}, "\321\1\xE8\64", IF_386}, - {I_CALL, 1, {IMMEDIATE|BITS32|NEAR,0,0}, "\321\1\xE8\64", IF_386}, - {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE,0}, "\322\1\x9A\35\30", IF_8086}, - {I_CALL, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0}, "\320\1\x9A\31\30", IF_8086}, - {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0}, "\320\1\x9A\31\30", IF_8086}, - {I_CALL, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0}, "\321\1\x9A\41\30", IF_386}, - {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0}, "\321\1\x9A\41\30", IF_386}, - {I_CALL, 1, {MEMORY|FAR,0,0}, "\322\300\1\xFF\203", IF_8086}, - {I_CALL, 1, {MEMORY|BITS16|FAR,0,0}, "\320\300\1\xFF\203", IF_8086}, - {I_CALL, 1, {MEMORY|BITS32|FAR,0,0}, "\321\300\1\xFF\203", IF_386}, - {I_CALL, 1, {MEMORY|NEAR,0,0}, "\322\300\1\xFF\202", IF_8086}, - {I_CALL, 1, {MEMORY|BITS16|NEAR,0,0}, "\320\300\1\xFF\202", IF_8086}, - {I_CALL, 1, {MEMORY|BITS32|NEAR,0,0}, "\321\300\1\xFF\202", IF_386}, - {I_CALL, 1, {REG16,0,0}, "\320\300\1\xFF\202", IF_8086}, - {I_CALL, 1, {REG32,0,0}, "\321\300\1\xFF\202", IF_386}, - {I_CALL, 1, {MEMORY,0,0}, "\322\300\1\xFF\202", IF_8086}, - {I_CALL, 1, {MEMORY|BITS16,0,0}, "\320\300\1\xFF\202", IF_8086}, - {I_CALL, 1, {MEMORY|BITS32,0,0}, "\321\300\1\xFF\202", IF_386}, - {I_CBW, 0, {0,0,0}, "\320\1\x98", IF_8086}, - {I_CDQ, 0, {0,0,0}, "\321\1\x99", IF_386}, - {I_CLC, 0, {0,0,0}, "\1\xF8", IF_8086}, - {I_CLD, 0, {0,0,0}, "\1\xFC", IF_8086}, - {I_CLI, 0, {0,0,0}, "\1\xFA", IF_8086}, - {I_CLTS, 0, {0,0,0}, "\2\x0F\x06", IF_286|IF_PRIV}, - {I_CMC, 0, {0,0,0}, "\1\xF5", IF_8086}, - {I_CMP, 2, {MEMORY,REG8,0}, "\300\1\x38\101", IF_8086|IF_SM}, - {I_CMP, 2, {REG8,REG8,0}, "\1\x38\101", IF_8086}, - {I_CMP, 2, {MEMORY,REG16,0}, "\320\300\1\x39\101", IF_8086|IF_SM}, - {I_CMP, 2, {REG16,REG16,0}, "\320\1\x39\101", IF_8086}, - {I_CMP, 2, {MEMORY,REG32,0}, "\321\300\1\x39\101", IF_386|IF_SM}, - {I_CMP, 2, {REG32,REG32,0}, "\321\1\x39\101", IF_386}, - {I_CMP, 2, {REG8,MEMORY,0}, "\301\1\x3A\110", IF_8086|IF_SM}, - {I_CMP, 2, {REG8,REG8,0}, "\1\x3A\110", IF_8086}, - {I_CMP, 2, {REG16,MEMORY,0}, "\320\301\1\x3B\110", IF_8086|IF_SM}, - {I_CMP, 2, {REG16,REG16,0}, "\320\1\x3B\110", IF_8086}, - {I_CMP, 2, {REG32,MEMORY,0}, "\321\301\1\x3B\110", IF_386|IF_SM}, - {I_CMP, 2, {REG32,REG32,0}, "\321\1\x3B\110", IF_386}, - {I_CMP, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\207\15", IF_8086}, - {I_CMP, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\207\15", IF_386}, - {I_CMP, 2, {REG_AL,IMMEDIATE,0}, "\1\x3C\21", IF_8086|IF_SM}, - {I_CMP, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x3D\31", IF_8086|IF_SM}, - {I_CMP, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x3D\41", IF_386|IF_SM}, - {I_CMP, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\207\21", IF_8086|IF_SM}, - {I_CMP, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\207\131", IF_8086|IF_SM}, - {I_CMP, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\207\141", IF_386|IF_SM}, - {I_CMP, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\207\21", IF_8086|IF_SM}, - {I_CMP, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\207\131", IF_8086|IF_SM}, - {I_CMP, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\207\141", IF_386|IF_SM}, - {I_CMPSB, 0, {0,0,0}, "\332\1\xA6", IF_8086}, - {I_CMPSD, 0, {0,0,0}, "\332\321\1\xA7", IF_386}, - {I_CMPSW, 0, {0,0,0}, "\332\320\1\xA7", IF_8086}, - {I_CMPXCHG, 2, {MEMORY,REG8,0}, "\300\2\x0F\xB0\101", IF_PENT|IF_SM}, - {I_CMPXCHG, 2, {REG8,REG8,0}, "\2\x0F\xB0\101", IF_PENT}, - {I_CMPXCHG, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\xB1\101", IF_PENT|IF_SM}, - {I_CMPXCHG, 2, {REG16,REG16,0}, "\320\2\x0F\xB1\101", IF_PENT}, - {I_CMPXCHG, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\xB1\101", IF_PENT|IF_SM}, - {I_CMPXCHG, 2, {REG32,REG32,0}, "\321\2\x0F\xB1\101", IF_PENT}, - {I_CMPXCHG486, 2, {MEMORY,REG8,0}, "\300\2\x0F\xA6\101", IF_486|IF_SM|IF_UNDOC}, - {I_CMPXCHG486, 2, {REG8,REG8,0}, "\2\x0F\xA6\101", IF_486|IF_UNDOC}, - {I_CMPXCHG486, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\xA7\101", IF_486|IF_SM|IF_UNDOC}, - {I_CMPXCHG486, 2, {REG16,REG16,0}, "\320\2\x0F\xA7\101", IF_486|IF_UNDOC}, - {I_CMPXCHG486, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\xA7\101", IF_486|IF_SM|IF_UNDOC}, - {I_CMPXCHG486, 2, {REG32,REG32,0}, "\321\2\x0F\xA7\101", IF_486|IF_UNDOC}, - {I_CMPXCHG8B, 1, {MEMORY,0,0}, "\300\2\x0F\xC7\201", IF_PENT}, - {I_CPUID, 0, {0,0,0}, "\2\x0F\xA2", IF_PENT}, - {I_CWD, 0, {0,0,0}, "\320\1\x99", IF_8086}, - {I_CWDE, 0, {0,0,0}, "\321\1\x98", IF_386}, - {I_DAA, 0, {0,0,0}, "\1\x27", IF_8086}, - {I_DAS, 0, {0,0,0}, "\1\x2F", IF_8086}, - {I_DEC, 1, {REG16,0,0}, "\320\10\x48", IF_8086}, - {I_DEC, 1, {REG32,0,0}, "\321\10\x48", IF_386}, - {I_DEC, 1, {REGMEM|BITS8,0,0}, "\300\1\xFE\201", IF_8086}, - {I_DEC, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xFF\201", IF_8086}, - {I_DEC, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xFF\201", IF_386}, - {I_DIV, 1, {REGMEM|BITS8,0,0}, "\300\1\xF6\206", IF_8086}, - {I_DIV, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xF7\206", IF_8086}, - {I_DIV, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xF7\206", IF_386}, - {I_EMMS, 0, {0,0,0}, "\2\x0F\x77", IF_PENT|IF_MMX}, - {I_ENTER, 2, {IMMEDIATE,IMMEDIATE,0}, "\1\xC8\30\25", IF_186}, - {I_EQU, 1, {IMMEDIATE,0,0}, "\0", IF_8086}, - {I_EQU, 2, {IMMEDIATE|COLON,IMMEDIATE,0}, "\0", IF_8086}, - {I_F2XM1, 0, {0,0,0}, "\2\xD9\xF0", IF_8086|IF_FPU}, - {I_FABS, 0, {0,0,0}, "\2\xD9\xE1", IF_8086|IF_FPU}, - {I_FADD, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\200", IF_8086|IF_FPU}, - {I_FADD, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\200", IF_8086|IF_FPU}, - {I_FADD, 1, {FPUREG|TO,0,0}, "\1\xDC\10\xC0", IF_8086|IF_FPU}, - {I_FADD, 1, {FPUREG,0,0}, "\1\xD8\10\xC0", IF_8086|IF_FPU}, - {I_FADD, 2, {FPUREG,FPU0,0}, "\1\xDC\10\xC0", IF_8086|IF_FPU}, - {I_FADD, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xC0", IF_8086|IF_FPU}, - {I_FADDP, 1, {FPUREG,0,0}, "\1\xDE\10\xC0", IF_8086|IF_FPU}, - {I_FADDP, 2, {FPUREG,FPU0,0}, "\1\xDE\10\xC0", IF_8086|IF_FPU}, - {I_FBLD, 1, {MEMORY|BITS80,0,0}, "\300\1\xDF\204", IF_8086|IF_FPU}, - {I_FBLD, 1, {MEMORY,0,0}, "\300\1\xDF\204", IF_8086|IF_FPU}, - {I_FBSTP, 1, {MEMORY|BITS80,0,0}, "\300\1\xDF\206", IF_8086|IF_FPU}, - {I_FBSTP, 1, {MEMORY,0,0}, "\300\1\xDF\206", IF_8086|IF_FPU}, - {I_FCHS, 0, {0,0,0}, "\2\xD9\xE0", IF_8086|IF_FPU}, - {I_FCLEX, 0, {0,0,0}, "\3\x9B\xDB\xE2", IF_8086|IF_FPU}, - {I_FCMOVB, 1, {FPUREG,0,0}, "\1\xDA\10\xC0", IF_P6|IF_FPU}, - {I_FCMOVB, 2, {FPU0,FPUREG,0}, "\1\xDA\11\xC0", IF_P6|IF_FPU}, - {I_FCMOVBE, 1, {FPUREG,0,0}, "\1\xDA\10\xD0", IF_P6|IF_FPU}, - {I_FCMOVBE, 2, {FPU0,FPUREG,0}, "\1\xDA\11\xD0", IF_P6|IF_FPU}, - {I_FCMOVE, 1, {FPUREG,0,0}, "\1\xDA\10\xC8", IF_P6|IF_FPU}, - {I_FCMOVE, 2, {FPU0,FPUREG,0}, "\1\xDA\11\xC8", IF_P6|IF_FPU}, - {I_FCMOVNB, 1, {FPUREG,0,0}, "\1\xDB\10\xC0", IF_P6|IF_FPU}, - {I_FCMOVNB, 2, {FPU0,FPUREG,0}, "\1\xDB\11\xC0", IF_P6|IF_FPU}, - {I_FCMOVNBE, 1, {FPUREG,0,0}, "\1\xDB\10\xD0", IF_P6|IF_FPU}, - {I_FCMOVNBE, 2, {FPU0,FPUREG,0}, "\1\xDB\11\xD0", IF_P6|IF_FPU}, - {I_FCMOVNE, 1, {FPUREG,0,0}, "\1\xDB\10\xC8", IF_P6|IF_FPU}, - {I_FCMOVNE, 2, {FPU0,FPUREG,0}, "\1\xDB\11\xC8", IF_P6|IF_FPU}, - {I_FCMOVNU, 1, {FPUREG,0,0}, "\1\xDB\10\xD8", IF_P6|IF_FPU}, - {I_FCMOVNU, 2, {FPU0,FPUREG,0}, "\1\xDB\11\xD8", IF_P6|IF_FPU}, - {I_FCMOVU, 1, {FPUREG,0,0}, "\1\xDA\10\xD8", IF_P6|IF_FPU}, - {I_FCMOVU, 2, {FPU0,FPUREG,0}, "\1\xDA\11\xD8", IF_P6|IF_FPU}, - {I_FCOM, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\202", IF_8086|IF_FPU}, - {I_FCOM, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\202", IF_8086|IF_FPU}, - {I_FCOM, 1, {FPUREG,0,0}, "\1\xD8\10\xD0", IF_8086|IF_FPU}, - {I_FCOM, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xD0", IF_8086|IF_FPU}, - {I_FCOMI, 1, {FPUREG,0,0}, "\1\xDB\10\xF0", IF_P6|IF_FPU}, - {I_FCOMI, 2, {FPU0,FPUREG,0}, "\1\xDB\11\xF0", IF_P6|IF_FPU}, - {I_FCOMIP, 1, {FPUREG,0,0}, "\1\xDF\10\xF0", IF_P6|IF_FPU}, - {I_FCOMIP, 2, {FPU0,FPUREG,0}, "\1\xDF\11\xF0", IF_P6|IF_FPU}, - {I_FCOMP, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\203", IF_8086|IF_FPU}, - {I_FCOMP, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\203", IF_8086|IF_FPU}, - {I_FCOMP, 1, {FPUREG,0,0}, "\1\xD8\10\xD8", IF_8086|IF_FPU}, - {I_FCOMP, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xD8", IF_8086|IF_FPU}, - {I_FCOMPP, 0, {0,0,0}, "\2\xDE\xD9", IF_8086|IF_FPU}, - {I_FCOS, 0, {0,0,0}, "\2\xD9\xFF", IF_386|IF_FPU}, - {I_FDECSTP, 0, {0,0,0}, "\2\xD9\xF6", IF_8086|IF_FPU}, - {I_FDISI, 0, {0,0,0}, "\3\x9B\xDB\xE1", IF_8086|IF_FPU}, - {I_FDIV, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\206", IF_8086|IF_FPU}, - {I_FDIV, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\206", IF_8086|IF_FPU}, - {I_FDIV, 1, {FPUREG|TO,0,0}, "\1\xDC\10\xF8", IF_8086|IF_FPU}, - {I_FDIV, 2, {FPUREG,FPU0,0}, "\1\xDC\10\xF8", IF_8086|IF_FPU}, - {I_FDIV, 1, {FPUREG,0,0}, "\1\xD8\10\xF0", IF_8086|IF_FPU}, - {I_FDIV, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xF0", IF_8086|IF_FPU}, - {I_FDIVP, 2, {FPUREG,FPU0,0}, "\1\xDE\10\xF8", IF_8086|IF_FPU}, - {I_FDIVP, 1, {FPUREG,0,0}, "\1\xDE\10\xF8", IF_8086|IF_FPU}, - {I_FDIVR, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\207", IF_8086|IF_FPU}, - {I_FDIVR, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\207", IF_8086|IF_FPU}, - {I_FDIVR, 1, {FPUREG|TO,0,0}, "\1\xDC\10\xF0", IF_8086|IF_FPU}, - {I_FDIVR, 2, {FPUREG,FPU0,0}, "\1\xDC\10\xF0", IF_8086|IF_FPU}, - {I_FDIVR, 1, {FPUREG,0,0}, "\1\xD8\10\xF8", IF_8086|IF_FPU}, - {I_FDIVR, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xF8", IF_8086|IF_FPU}, - {I_FDIVRP, 1, {FPUREG,0,0}, "\1\xDE\10\xF0", IF_8086|IF_FPU}, - {I_FDIVRP, 2, {FPUREG,FPU0,0}, "\1\xDE\10\xF0", IF_8086|IF_FPU}, - {I_FEMMS, 0, {0,0,0}, "\2\x0F\x0E", IF_PENT|IF_3DNOW}, - {I_FENI, 0, {0,0,0}, "\3\x9B\xDB\xE0", IF_8086|IF_FPU}, - {I_FFREE, 1, {FPUREG,0,0}, "\1\xDD\10\xC0", IF_8086|IF_FPU}, - {I_FFREEP, 1, {FPUREG,0,0}, "\1\xDF\10\xC0", IF_286|IF_FPU|IF_UNDOC}, - {I_FIADD, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\200", IF_8086|IF_FPU}, - {I_FIADD, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\200", IF_8086|IF_FPU}, - {I_FICOM, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\202", IF_8086|IF_FPU}, - {I_FICOM, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\202", IF_8086|IF_FPU}, - {I_FICOMP, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\203", IF_8086|IF_FPU}, - {I_FICOMP, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\203", IF_8086|IF_FPU}, - {I_FIDIV, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\206", IF_8086|IF_FPU}, - {I_FIDIV, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\206", IF_8086|IF_FPU}, - {I_FIDIVR, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\207", IF_8086|IF_FPU}, - {I_FIDIVR, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\207", IF_8086|IF_FPU}, - {I_FILD, 1, {MEMORY|BITS32,0,0}, "\300\1\xDB\200", IF_8086|IF_FPU}, - {I_FILD, 1, {MEMORY|BITS16,0,0}, "\300\1\xDF\200", IF_8086|IF_FPU}, - {I_FILD, 1, {MEMORY|BITS64,0,0}, "\300\1\xDF\205", IF_8086|IF_FPU}, - {I_FIMUL, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\201", IF_8086|IF_FPU}, - {I_FIMUL, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\201", IF_8086|IF_FPU}, - {I_FINCSTP, 0, {0,0,0}, "\2\xD9\xF7", IF_8086|IF_FPU}, - {I_FINIT, 0, {0,0,0}, "\3\x9B\xDB\xE3", IF_8086|IF_FPU}, - {I_FIST, 1, {MEMORY|BITS32,0,0}, "\300\1\xDB\202", IF_8086|IF_FPU}, - {I_FIST, 1, {MEMORY|BITS16,0,0}, "\300\1\xDF\202", IF_8086|IF_FPU}, - {I_FISTP, 1, {MEMORY|BITS32,0,0}, "\300\1\xDB\203", IF_8086|IF_FPU}, - {I_FISTP, 1, {MEMORY|BITS16,0,0}, "\300\1\xDF\203", IF_8086|IF_FPU}, - {I_FISTP, 1, {MEMORY|BITS64,0,0}, "\300\1\xDF\207", IF_8086|IF_FPU}, - {I_FISTTP, 1, {MEMORY|BITS32,0,0}, "\300\1\xDD\201", IF_PRESCOTT|IF_FPU}, - {I_FISTTP, 1, {MEMORY|BITS16,0,0}, "\300\1\xDB\201", IF_PRESCOTT|IF_FPU}, - {I_FISTTP, 1, {MEMORY|BITS64,0,0}, "\300\1\xDF\201", IF_PRESCOTT|IF_FPU}, - {I_FISUB, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\204", IF_8086|IF_FPU}, - {I_FISUB, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\204", IF_8086|IF_FPU}, - {I_FISUBR, 1, {MEMORY|BITS32,0,0}, "\300\1\xDA\205", IF_8086|IF_FPU}, - {I_FISUBR, 1, {MEMORY|BITS16,0,0}, "\300\1\xDE\205", IF_8086|IF_FPU}, - {I_FLD, 1, {MEMORY|BITS32,0,0}, "\300\1\xD9\200", IF_8086|IF_FPU}, - {I_FLD, 1, {MEMORY|BITS64,0,0}, "\300\1\xDD\200", IF_8086|IF_FPU}, - {I_FLD, 1, {MEMORY|BITS80,0,0}, "\300\1\xDB\205", IF_8086|IF_FPU}, - {I_FLD, 1, {FPUREG,0,0}, "\1\xD9\10\xC0", IF_8086|IF_FPU}, - {I_FLD1, 0, {0,0,0}, "\2\xD9\xE8", IF_8086|IF_FPU}, - {I_FLDCW, 1, {MEMORY,0,0}, "\300\1\xD9\205", IF_8086|IF_FPU|IF_SW}, - {I_FLDENV, 1, {MEMORY,0,0}, "\300\1\xD9\204", IF_8086|IF_FPU}, - {I_FLDL2E, 0, {0,0,0}, "\2\xD9\xEA", IF_8086|IF_FPU}, - {I_FLDL2T, 0, {0,0,0}, "\2\xD9\xE9", IF_8086|IF_FPU}, - {I_FLDLG2, 0, {0,0,0}, "\2\xD9\xEC", IF_8086|IF_FPU}, - {I_FLDLN2, 0, {0,0,0}, "\2\xD9\xED", IF_8086|IF_FPU}, - {I_FLDPI, 0, {0,0,0}, "\2\xD9\xEB", IF_8086|IF_FPU}, - {I_FLDZ, 0, {0,0,0}, "\2\xD9\xEE", IF_8086|IF_FPU}, - {I_FMUL, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\201", IF_8086|IF_FPU}, - {I_FMUL, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\201", IF_8086|IF_FPU}, - {I_FMUL, 1, {FPUREG|TO,0,0}, "\1\xDC\10\xC8", IF_8086|IF_FPU}, - {I_FMUL, 2, {FPUREG,FPU0,0}, "\1\xDC\10\xC8", IF_8086|IF_FPU}, - {I_FMUL, 1, {FPUREG,0,0}, "\1\xD8\10\xC8", IF_8086|IF_FPU}, - {I_FMUL, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xC8", IF_8086|IF_FPU}, - {I_FMULP, 1, {FPUREG,0,0}, "\1\xDE\10\xC8", IF_8086|IF_FPU}, - {I_FMULP, 2, {FPUREG,FPU0,0}, "\1\xDE\10\xC8", IF_8086|IF_FPU}, - {I_FNCLEX, 0, {0,0,0}, "\2\xDB\xE2", IF_8086|IF_FPU}, - {I_FNDISI, 0, {0,0,0}, "\2\xDB\xE1", IF_8086|IF_FPU}, - {I_FNENI, 0, {0,0,0}, "\2\xDB\xE0", IF_8086|IF_FPU}, - {I_FNINIT, 0, {0,0,0}, "\2\xDB\xE3", IF_8086|IF_FPU}, - {I_FNOP, 0, {0,0,0}, "\2\xD9\xD0", IF_8086|IF_FPU}, - {I_FNSAVE, 1, {MEMORY,0,0}, "\300\1\xDD\206", IF_8086|IF_FPU}, - {I_FNSTCW, 1, {MEMORY,0,0}, "\300\1\xD9\207", IF_8086|IF_FPU|IF_SW}, - {I_FNSTENV, 1, {MEMORY,0,0}, "\300\1\xD9\206", IF_8086|IF_FPU}, - {I_FNSTSW, 1, {MEMORY,0,0}, "\300\1\xDD\207", IF_8086|IF_FPU|IF_SW}, - {I_FNSTSW, 1, {REG_AX,0,0}, "\2\xDF\xE0", IF_286|IF_FPU}, - {I_FPATAN, 0, {0,0,0}, "\2\xD9\xF3", IF_8086|IF_FPU}, - {I_FPREM, 0, {0,0,0}, "\2\xD9\xF8", IF_8086|IF_FPU}, - {I_FPREM1, 0, {0,0,0}, "\2\xD9\xF5", IF_386|IF_FPU}, - {I_FPTAN, 0, {0,0,0}, "\2\xD9\xF2", IF_8086|IF_FPU}, - {I_FRNDINT, 0, {0,0,0}, "\2\xD9\xFC", IF_8086|IF_FPU}, - {I_FRSTOR, 1, {MEMORY,0,0}, "\300\1\xDD\204", IF_8086|IF_FPU}, - {I_FSAVE, 1, {MEMORY,0,0}, "\300\2\x9B\xDD\206", IF_8086|IF_FPU}, - {I_FSCALE, 0, {0,0,0}, "\2\xD9\xFD", IF_8086|IF_FPU}, - {I_FSETPM, 0, {0,0,0}, "\2\xDB\xE4", IF_286|IF_FPU}, - {I_FSIN, 0, {0,0,0}, "\2\xD9\xFE", IF_386|IF_FPU}, - {I_FSINCOS, 0, {0,0,0}, "\2\xD9\xFB", IF_386|IF_FPU}, - {I_FSQRT, 0, {0,0,0}, "\2\xD9\xFA", IF_8086|IF_FPU}, - {I_FST, 1, {MEMORY|BITS32,0,0}, "\300\1\xD9\202", IF_8086|IF_FPU}, - {I_FST, 1, {MEMORY|BITS64,0,0}, "\300\1\xDD\202", IF_8086|IF_FPU}, - {I_FST, 1, {FPUREG,0,0}, "\1\xDD\10\xD0", IF_8086|IF_FPU}, - {I_FSTCW, 1, {MEMORY,0,0}, "\300\2\x9B\xD9\207", IF_8086|IF_FPU|IF_SW}, - {I_FSTENV, 1, {MEMORY,0,0}, "\300\2\x9B\xD9\206", IF_8086|IF_FPU}, - {I_FSTP, 1, {MEMORY|BITS32,0,0}, "\300\1\xD9\203", IF_8086|IF_FPU}, - {I_FSTP, 1, {MEMORY|BITS64,0,0}, "\300\1\xDD\203", IF_8086|IF_FPU}, - {I_FSTP, 1, {MEMORY|BITS80,0,0}, "\300\1\xDB\207", IF_8086|IF_FPU}, - {I_FSTP, 1, {FPUREG,0,0}, "\1\xDD\10\xD8", IF_8086|IF_FPU}, - {I_FSTSW, 1, {MEMORY,0,0}, "\300\2\x9B\xDD\207", IF_8086|IF_FPU|IF_SW}, - {I_FSTSW, 1, {REG_AX,0,0}, "\3\x9B\xDF\xE0", IF_286|IF_FPU}, - {I_FSUB, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\204", IF_8086|IF_FPU}, - {I_FSUB, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\204", IF_8086|IF_FPU}, - {I_FSUB, 1, {FPUREG|TO,0,0}, "\1\xDC\10\xE8", IF_8086|IF_FPU}, - {I_FSUB, 2, {FPUREG,FPU0,0}, "\1\xDC\10\xE8", IF_8086|IF_FPU}, - {I_FSUB, 1, {FPUREG,0,0}, "\1\xD8\10\xE0", IF_8086|IF_FPU}, - {I_FSUB, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xE0", IF_8086|IF_FPU}, - {I_FSUBP, 1, {FPUREG,0,0}, "\1\xDE\10\xE8", IF_8086|IF_FPU}, - {I_FSUBP, 2, {FPUREG,FPU0,0}, "\1\xDE\10\xE8", IF_8086|IF_FPU}, - {I_FSUBR, 1, {MEMORY|BITS32,0,0}, "\300\1\xD8\205", IF_8086|IF_FPU}, - {I_FSUBR, 1, {MEMORY|BITS64,0,0}, "\300\1\xDC\205", IF_8086|IF_FPU}, - {I_FSUBR, 1, {FPUREG|TO,0,0}, "\1\xDC\10\xE0", IF_8086|IF_FPU}, - {I_FSUBR, 2, {FPUREG,FPU0,0}, "\1\xDC\10\xE0", IF_8086|IF_FPU}, - {I_FSUBR, 1, {FPUREG,0,0}, "\1\xD8\10\xE8", IF_8086|IF_FPU}, - {I_FSUBR, 2, {FPU0,FPUREG,0}, "\1\xD8\11\xE8", IF_8086|IF_FPU}, - {I_FSUBRP, 1, {FPUREG,0,0}, "\1\xDE\10\xE0", IF_8086|IF_FPU}, - {I_FSUBRP, 2, {FPUREG,FPU0,0}, "\1\xDE\10\xE0", IF_8086|IF_FPU}, - {I_FTST, 0, {0,0,0}, "\2\xD9\xE4", IF_8086|IF_FPU}, - {I_FUCOM, 1, {FPUREG,0,0}, "\1\xDD\10\xE0", IF_386|IF_FPU}, - {I_FUCOM, 2, {FPU0,FPUREG,0}, "\1\xDD\11\xE0", IF_386|IF_FPU}, - {I_FUCOMI, 1, {FPUREG,0,0}, "\1\xDB\10\xE8", IF_P6|IF_FPU}, - {I_FUCOMI, 2, {FPU0,FPUREG,0}, "\1\xDB\11\xE8", IF_P6|IF_FPU}, - {I_FUCOMIP, 1, {FPUREG,0,0}, "\1\xDF\10\xE8", IF_P6|IF_FPU}, - {I_FUCOMIP, 2, {FPU0,FPUREG,0}, "\1\xDF\11\xE8", IF_P6|IF_FPU}, - {I_FUCOMP, 1, {FPUREG,0,0}, "\1\xDD\10\xE8", IF_386|IF_FPU}, - {I_FUCOMP, 2, {FPU0,FPUREG,0}, "\1\xDD\11\xE8", IF_386|IF_FPU}, - {I_FUCOMPP, 0, {0,0,0}, "\2\xDA\xE9", IF_386|IF_FPU}, - {I_FXAM, 0, {0,0,0}, "\2\xD9\xE5", IF_8086|IF_FPU}, - {I_FXCH, 0, {0,0,0}, "\2\xD9\xC9", IF_8086|IF_FPU}, - {I_FXCH, 1, {FPUREG,0,0}, "\1\xD9\10\xC8", IF_8086|IF_FPU}, - {I_FXCH, 2, {FPUREG,FPU0,0}, "\1\xD9\10\xC8", IF_8086|IF_FPU}, - {I_FXCH, 2, {FPU0,FPUREG,0}, "\1\xD9\11\xC8", IF_8086|IF_FPU}, - {I_FXTRACT, 0, {0,0,0}, "\2\xD9\xF4", IF_8086|IF_FPU}, - {I_FYL2X, 0, {0,0,0}, "\2\xD9\xF1", IF_8086|IF_FPU}, - {I_FYL2XP1, 0, {0,0,0}, "\2\xD9\xF9", IF_8086|IF_FPU}, - {I_HLT, 0, {0,0,0}, "\1\xF4", IF_8086|IF_PRIV}, - {I_IDIV, 1, {REGMEM|BITS8,0,0}, "\300\1\xF6\207", IF_8086}, - {I_IDIV, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xF7\207", IF_8086}, - {I_IDIV, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xF7\207", IF_386}, - {I_IMUL, 1, {REGMEM|BITS8,0,0}, "\300\1\xF6\205", IF_8086}, - {I_IMUL, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xF7\205", IF_8086}, - {I_IMUL, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xF7\205", IF_386}, - {I_IMUL, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xAF\110", IF_386|IF_SM}, - {I_IMUL, 2, {REG16,REG16,0}, "\320\2\x0F\xAF\110", IF_386}, - {I_IMUL, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\xAF\110", IF_386|IF_SM}, - {I_IMUL, 2, {REG32,REG32,0}, "\321\2\x0F\xAF\110", IF_386}, - {I_IMUL, 3, {REG16,MEMORY,IMMEDIATE|BITS8}, "\320\301\1\x6B\110\16", IF_186|IF_SM}, - {I_IMUL, 3, {REG16,MEMORY,IMMEDIATE|BITS16}, "\320\301\1\x69\110\32", IF_186|IF_SM}, - {I_IMUL, 3, {REG16,REG16,IMMEDIATE|BITS8}, "\320\1\x6B\110\16", IF_186}, - {I_IMUL, 3, {REG16,REG16,IMMEDIATE|BITS16}, "\320\1\x69\110\32", IF_186}, - {I_IMUL, 3, {REG32,MEMORY,IMMEDIATE|BITS8}, "\321\301\1\x6B\110\16", IF_386|IF_SM}, - {I_IMUL, 3, {REG32,MEMORY,IMMEDIATE|BITS32}, "\321\301\1\x69\110\42", IF_386|IF_SM}, - {I_IMUL, 3, {REG32,REG32,IMMEDIATE|BITS8}, "\321\1\x6B\110\16", IF_386}, - {I_IMUL, 3, {REG32,REG32,IMMEDIATE|BITS32}, "\321\1\x69\110\42", IF_386}, - {I_IMUL, 2, {REG16,IMMEDIATE|BITS8,0}, "\320\1\x6B\100\15", IF_186}, - {I_IMUL, 2, {REG16,IMMEDIATE|BITS16,0}, "\320\1\x69\100\31", IF_186}, - {I_IMUL, 2, {REG32,IMMEDIATE|BITS8,0}, "\321\1\x6B\100\15", IF_386}, - {I_IMUL, 2, {REG32,IMMEDIATE|BITS32,0}, "\321\1\x69\100\41", IF_386}, - {I_IN, 2, {REG_AL,IMMEDIATE,0}, "\1\xE4\25", IF_8086|IF_SB}, - {I_IN, 2, {REG_AX,IMMEDIATE,0}, "\320\1\xE5\25", IF_8086|IF_SB}, - {I_IN, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\xE5\25", IF_386|IF_SB}, - {I_IN, 2, {REG_AL,REG_DX,0}, "\1\xEC", IF_8086}, - {I_IN, 2, {REG_AX,REG_DX,0}, "\320\1\xED", IF_8086}, - {I_IN, 2, {REG_EAX,REG_DX,0}, "\321\1\xED", IF_386}, - {I_INC, 1, {REG16,0,0}, "\320\10\x40", IF_8086}, - {I_INC, 1, {REG32,0,0}, "\321\10\x40", IF_386}, - {I_INC, 1, {REGMEM|BITS8,0,0}, "\300\1\xFE\200", IF_8086}, - {I_INC, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xFF\200", IF_8086}, - {I_INC, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xFF\200", IF_386}, - {I_INSB, 0, {0,0,0}, "\1\x6C", IF_186}, - {I_INSD, 0, {0,0,0}, "\321\1\x6D", IF_386}, - {I_INSW, 0, {0,0,0}, "\320\1\x6D", IF_186}, - {I_INT, 1, {IMMEDIATE,0,0}, "\1\xCD\24", IF_8086|IF_SB}, - {I_INT1, 0, {0,0,0}, "\1\xF1", IF_386}, - {I_INT3, 0, {0,0,0}, "\1\xCC", IF_8086}, - {I_INTO, 0, {0,0,0}, "\1\xCE", IF_8086}, - {I_INVD, 0, {0,0,0}, "\2\x0F\x08", IF_486|IF_PRIV}, - {I_INVLPG, 1, {MEMORY,0,0}, "\300\2\x0F\x01\207", IF_486|IF_PRIV}, - {I_IRET, 0, {0,0,0}, "\322\1\xCF", IF_8086}, - {I_IRETD, 0, {0,0,0}, "\321\1\xCF", IF_386}, - {I_IRETW, 0, {0,0,0}, "\320\1\xCF", IF_8086}, - {I_JCXZ, 1, {IMMEDIATE,0,0}, "\310\1\xE3\50", IF_8086}, - {I_JECXZ, 1, {IMMEDIATE,0,0}, "\311\1\xE3\50", IF_386}, - {I_JMP, 1, {IMMEDIATE|SHORT,0,0}, "\1\xEB\50", IF_8086}, - {I_JMP, 1, {IMMEDIATE,0,0}, "\322\1\xE9\64", IF_8086}, - {I_JMP, 1, {IMMEDIATE|BITS16,0,0}, "\320\1\xE9\64", IF_8086}, - {I_JMP, 1, {IMMEDIATE|BITS32,0,0}, "\321\1\xE9\64", IF_386}, - {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE,0}, "\322\1\xEA\35\30", IF_8086}, - {I_JMP, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0}, "\320\1\xEA\31\30", IF_8086}, - {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0}, "\320\1\xEA\31\30", IF_8086}, - {I_JMP, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0}, "\321\1\xEA\41\30", IF_386}, - {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0}, "\321\1\xEA\41\30", IF_386}, - {I_JMP, 1, {MEMORY|FAR,0,0}, "\322\300\1\xFF\205", IF_8086}, - {I_JMP, 1, {MEMORY|BITS16|FAR,0,0}, "\320\300\1\xFF\205", IF_8086}, - {I_JMP, 1, {MEMORY|BITS32|FAR,0,0}, "\321\300\1\xFF\205", IF_386}, - {I_JMP, 1, {MEMORY|NEAR,0,0}, "\322\300\1\xFF\204", IF_8086}, - {I_JMP, 1, {MEMORY|BITS16|NEAR,0,0}, "\320\300\1\xFF\204", IF_8086}, - {I_JMP, 1, {MEMORY|BITS32|NEAR,0,0}, "\321\300\1\xFF\204", IF_386}, - {I_JMP, 1, {REG16,0,0}, "\320\300\1\xFF\204", IF_8086}, - {I_JMP, 1, {REG32,0,0}, "\321\300\1\xFF\204", IF_386}, - {I_JMP, 1, {MEMORY,0,0}, "\322\300\1\xFF\204", IF_8086}, - {I_JMP, 1, {MEMORY|BITS16,0,0}, "\320\300\1\xFF\204", IF_8086}, - {I_JMP, 1, {MEMORY|BITS32,0,0}, "\321\300\1\xFF\204", IF_386}, - {I_JMPE, 1, {IMMEDIATE,0,0}, "\322\2\x0F\xB8\64", IF_IA64}, - {I_JMPE, 1, {IMMEDIATE|BITS16,0,0}, "\320\2\x0F\xB8\64", IF_IA64}, - {I_JMPE, 1, {IMMEDIATE|BITS32,0,0}, "\321\2\x0F\xB8\64", IF_IA64}, - {I_JMPE, 1, {REGMEM|BITS16,0,0}, "\320\2\x0F\x00\206", IF_IA64}, - {I_JMPE, 1, {REGMEM|BITS32,0,0}, "\321\2\x0F\x00\206", IF_IA64}, - {I_LAHF, 0, {0,0,0}, "\1\x9F", IF_8086}, - {I_LAR, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\x02\110", IF_286|IF_PROT|IF_SM}, - {I_LAR, 2, {REG16,REG16,0}, "\320\2\x0F\x02\110", IF_286|IF_PROT}, - {I_LAR, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\x02\110", IF_386|IF_PROT|IF_SM}, - {I_LAR, 2, {REG32,REG32,0}, "\321\2\x0F\x02\110", IF_386|IF_PROT}, - {I_LDS, 2, {REG16,MEMORY,0}, "\320\301\1\xC5\110", IF_8086}, - {I_LDS, 2, {REG32,MEMORY,0}, "\321\301\1\xC5\110", IF_386}, - {I_LEA, 2, {REG16,MEMORY,0}, "\320\301\1\x8D\110", IF_8086}, - {I_LEA, 2, {REG32,MEMORY,0}, "\321\301\1\x8D\110", IF_386}, - {I_LEAVE, 0, {0,0,0}, "\1\xC9", IF_186}, - {I_LES, 2, {REG16,MEMORY,0}, "\320\301\1\xC4\110", IF_8086}, - {I_LES, 2, {REG32,MEMORY,0}, "\321\301\1\xC4\110", IF_386}, - {I_LFS, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xB4\110", IF_386}, - {I_LFS, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\xB4\110", IF_386}, - {I_LGDT, 1, {MEMORY,0,0}, "\300\2\x0F\x01\202", IF_286|IF_PRIV}, - {I_LGS, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xB5\110", IF_386}, - {I_LGS, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\xB5\110", IF_386}, - {I_LIDT, 1, {MEMORY,0,0}, "\300\2\x0F\x01\203", IF_286|IF_PRIV}, - {I_LLDT, 1, {MEMORY,0,0}, "\300\1\x0F\17\202", IF_286|IF_PROT|IF_PRIV}, - {I_LLDT, 1, {MEMORY|BITS16,0,0}, "\300\1\x0F\17\202", IF_286|IF_PROT|IF_PRIV}, - {I_LLDT, 1, {REG16,0,0}, "\1\x0F\17\202", IF_286|IF_PROT|IF_PRIV}, - {I_LMSW, 1, {MEMORY,0,0}, "\300\2\x0F\x01\206", IF_286|IF_PRIV}, - {I_LMSW, 1, {MEMORY|BITS16,0,0}, "\300\2\x0F\x01\206", IF_286|IF_PRIV}, - {I_LMSW, 1, {REG16,0,0}, "\2\x0F\x01\206", IF_286|IF_PRIV}, - {I_LOADALL, 0, {0,0,0}, "\2\x0F\x07", IF_386|IF_UNDOC}, - {I_LOADALL286, 0, {0,0,0}, "\2\x0F\x05", IF_286|IF_UNDOC}, - {I_LODSB, 0, {0,0,0}, "\1\xAC", IF_8086}, - {I_LODSD, 0, {0,0,0}, "\321\1\xAD", IF_386}, - {I_LODSW, 0, {0,0,0}, "\320\1\xAD", IF_8086}, - {I_LOOP, 1, {IMMEDIATE,0,0}, "\312\1\xE2\50", IF_8086}, - {I_LOOP, 2, {IMMEDIATE,REG_CX,0}, "\310\1\xE2\50", IF_8086}, - {I_LOOP, 2, {IMMEDIATE,REG_ECX,0}, "\311\1\xE2\50", IF_386}, - {I_LOOPE, 1, {IMMEDIATE,0,0}, "\312\1\xE1\50", IF_8086}, - {I_LOOPE, 2, {IMMEDIATE,REG_CX,0}, "\310\1\xE1\50", IF_8086}, - {I_LOOPE, 2, {IMMEDIATE,REG_ECX,0}, "\311\1\xE1\50", IF_386}, - {I_LOOPNE, 1, {IMMEDIATE,0,0}, "\312\1\xE0\50", IF_8086}, - {I_LOOPNE, 2, {IMMEDIATE,REG_CX,0}, "\310\1\xE0\50", IF_8086}, - {I_LOOPNE, 2, {IMMEDIATE,REG_ECX,0}, "\311\1\xE0\50", IF_386}, - {I_LOOPNZ, 1, {IMMEDIATE,0,0}, "\312\1\xE0\50", IF_8086}, - {I_LOOPNZ, 2, {IMMEDIATE,REG_CX,0}, "\310\1\xE0\50", IF_8086}, - {I_LOOPNZ, 2, {IMMEDIATE,REG_ECX,0}, "\311\1\xE0\50", IF_386}, - {I_LOOPZ, 1, {IMMEDIATE,0,0}, "\312\1\xE1\50", IF_8086}, - {I_LOOPZ, 2, {IMMEDIATE,REG_CX,0}, "\310\1\xE1\50", IF_8086}, - {I_LOOPZ, 2, {IMMEDIATE,REG_ECX,0}, "\311\1\xE1\50", IF_386}, - {I_LSL, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\x03\110", IF_286|IF_PROT|IF_SM}, - {I_LSL, 2, {REG16,REG16,0}, "\320\2\x0F\x03\110", IF_286|IF_PROT}, - {I_LSL, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\x03\110", IF_386|IF_PROT|IF_SM}, - {I_LSL, 2, {REG32,REG32,0}, "\321\2\x0F\x03\110", IF_386|IF_PROT}, - {I_LSS, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xB2\110", IF_386}, - {I_LSS, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\xB2\110", IF_386}, - {I_LTR, 1, {MEMORY,0,0}, "\300\1\x0F\17\203", IF_286|IF_PROT|IF_PRIV}, - {I_LTR, 1, {MEMORY|BITS16,0,0}, "\300\1\x0F\17\203", IF_286|IF_PROT|IF_PRIV}, - {I_LTR, 1, {REG16,0,0}, "\1\x0F\17\203", IF_286|IF_PROT|IF_PRIV}, - {I_MONITOR, 0, {0,0,0}, "\3\x0F\x01\xC8", IF_PRESCOTT}, - {I_MOV, 2, {MEMORY,REG_SREG,0}, "\300\1\x8C\101", IF_8086|IF_SM}, - {I_MOV, 2, {REG16,REG_SREG,0}, "\320\1\x8C\101", IF_8086}, - {I_MOV, 2, {REG32,REG_SREG,0}, "\321\1\x8C\101", IF_386}, - {I_MOV, 2, {REG_SREG,MEMORY,0}, "\301\1\x8E\110", IF_8086|IF_SM}, - {I_MOV, 2, {REG_SREG,REG16,0}, "\1\x8E\110", IF_8086}, - {I_MOV, 2, {REG_SREG,REG32,0}, "\1\x8E\110", IF_386}, - {I_MOV, 2, {REG_AL,MEM_OFFS,0}, "\301\1\xA0\45", IF_8086|IF_SM}, - {I_MOV, 2, {REG_AX,MEM_OFFS,0}, "\301\320\1\xA1\45", IF_8086|IF_SM}, - {I_MOV, 2, {REG_EAX,MEM_OFFS,0}, "\301\321\1\xA1\45", IF_386|IF_SM}, - {I_MOV, 2, {MEM_OFFS,REG_AL,0}, "\300\1\xA2\44", IF_8086|IF_SM}, - {I_MOV, 2, {MEM_OFFS,REG_AX,0}, "\300\320\1\xA3\44", IF_8086|IF_SM}, - {I_MOV, 2, {MEM_OFFS,REG_EAX,0}, "\300\321\1\xA3\44", IF_386|IF_SM}, - {I_MOV, 2, {REG32,REG_CREG,0}, "\2\x0F\x20\101", IF_386|IF_PRIV}, - {I_MOV, 2, {REG32,REG_DREG,0}, "\2\x0F\x21\101", IF_386|IF_PRIV}, - {I_MOV, 2, {REG32,REG_TREG,0}, "\2\x0F\x24\101", IF_386|IF_PRIV}, - {I_MOV, 2, {REG_CREG,REG32,0}, "\2\x0F\x22\110", IF_386|IF_PRIV}, - {I_MOV, 2, {REG_DREG,REG32,0}, "\2\x0F\x23\110", IF_386|IF_PRIV}, - {I_MOV, 2, {REG_TREG,REG32,0}, "\2\x0F\x26\110", IF_386|IF_PRIV}, - {I_MOV, 2, {MEMORY,REG8,0}, "\300\1\x88\101", IF_8086|IF_SM}, - {I_MOV, 2, {REG8,REG8,0}, "\1\x88\101", IF_8086}, - {I_MOV, 2, {MEMORY,REG16,0}, "\320\300\1\x89\101", IF_8086|IF_SM}, - {I_MOV, 2, {REG16,REG16,0}, "\320\1\x89\101", IF_8086}, - {I_MOV, 2, {MEMORY,REG32,0}, "\321\300\1\x89\101", IF_386|IF_SM}, - {I_MOV, 2, {REG32,REG32,0}, "\321\1\x89\101", IF_386}, - {I_MOV, 2, {REG8,MEMORY,0}, "\301\1\x8A\110", IF_8086|IF_SM}, - {I_MOV, 2, {REG8,REG8,0}, "\1\x8A\110", IF_8086}, - {I_MOV, 2, {REG16,MEMORY,0}, "\320\301\1\x8B\110", IF_8086|IF_SM}, - {I_MOV, 2, {REG16,REG16,0}, "\320\1\x8B\110", IF_8086}, - {I_MOV, 2, {REG32,MEMORY,0}, "\321\301\1\x8B\110", IF_386|IF_SM}, - {I_MOV, 2, {REG32,REG32,0}, "\321\1\x8B\110", IF_386}, - {I_MOV, 2, {REG8,IMMEDIATE,0}, "\10\xB0\21", IF_8086|IF_SM}, - {I_MOV, 2, {REG16,IMMEDIATE,0}, "\320\10\xB8\31", IF_8086|IF_SM}, - {I_MOV, 2, {REG32,IMMEDIATE,0}, "\321\10\xB8\41", IF_386|IF_SM}, - {I_MOV, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC6\200\21", IF_8086|IF_SM}, - {I_MOV, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC7\200\31", IF_8086|IF_SM}, - {I_MOV, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC7\200\41", IF_386|IF_SM}, - {I_MOV, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\xC6\200\21", IF_8086|IF_SM}, - {I_MOV, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\1\xC7\200\31", IF_8086|IF_SM}, - {I_MOV, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\1\xC7\200\41", IF_386|IF_SM}, - {I_MOVD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x6E\110", IF_PENT|IF_MMX|IF_SD}, - {I_MOVD, 2, {MMXREG,REG32,0}, "\2\x0F\x6E\110", IF_PENT|IF_MMX}, - {I_MOVD, 2, {MEMORY,MMXREG,0}, "\300\2\x0F\x7E\101", IF_PENT|IF_MMX|IF_SD}, - {I_MOVD, 2, {REG32,MMXREG,0}, "\2\x0F\x7E\101", IF_PENT|IF_MMX}, - {I_MOVQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x6F\110", IF_PENT|IF_MMX|IF_SM}, - {I_MOVQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\x6F\110", IF_PENT|IF_MMX}, - {I_MOVQ, 2, {MEMORY,MMXREG,0}, "\300\2\x0F\x7F\101", IF_PENT|IF_MMX|IF_SM}, - {I_MOVQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\x7F\101", IF_PENT|IF_MMX}, - {I_MOVSB, 0, {0,0,0}, "\1\xA4", IF_8086}, - {I_MOVSD, 0, {0,0,0}, "\321\1\xA5", IF_386}, - {I_MOVSW, 0, {0,0,0}, "\320\1\xA5", IF_8086}, - {I_MOVSX, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xBE\110", IF_386|IF_SB}, - {I_MOVSX, 2, {REG16,REG8,0}, "\320\2\x0F\xBE\110", IF_386}, - {I_MOVSX, 2, {REG32,REGMEM|BITS8,0}, "\321\301\2\x0F\xBE\110", IF_386}, - {I_MOVSX, 2, {REG32,REGMEM|BITS16,0}, "\321\301\2\x0F\xBF\110", IF_386}, - {I_MOVZX, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\xB6\110", IF_386|IF_SB}, - {I_MOVZX, 2, {REG16,REG8,0}, "\320\2\x0F\xB6\110", IF_386}, - {I_MOVZX, 2, {REG32,REGMEM|BITS8,0}, "\321\301\2\x0F\xB6\110", IF_386}, - {I_MOVZX, 2, {REG32,REGMEM|BITS16,0}, "\321\301\2\x0F\xB7\110", IF_386}, - {I_MUL, 1, {REGMEM|BITS8,0,0}, "\300\1\xF6\204", IF_8086}, - {I_MUL, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xF7\204", IF_8086}, - {I_MUL, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xF7\204", IF_386}, - {I_MWAIT, 0, {0,0,0}, "\3\x0F\x01\xC9", IF_PRESCOTT}, - {I_NEG, 1, {REGMEM|BITS8,0,0}, "\300\1\xF6\203", IF_8086}, - {I_NEG, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xF7\203", IF_8086}, - {I_NEG, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xF7\203", IF_386}, - {I_NOP, 0, {0,0,0}, "\1\x90", IF_8086}, - {I_NOT, 1, {REGMEM|BITS8,0,0}, "\300\1\xF6\202", IF_8086}, - {I_NOT, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xF7\202", IF_8086}, - {I_NOT, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xF7\202", IF_386}, - {I_OR, 2, {MEMORY,REG8,0}, "\300\1\x08\101", IF_8086|IF_SM}, - {I_OR, 2, {REG8,REG8,0}, "\1\x08\101", IF_8086}, - {I_OR, 2, {MEMORY,REG16,0}, "\320\300\1\x09\101", IF_8086|IF_SM}, - {I_OR, 2, {REG16,REG16,0}, "\320\1\x09\101", IF_8086}, - {I_OR, 2, {MEMORY,REG32,0}, "\321\300\1\x09\101", IF_386|IF_SM}, - {I_OR, 2, {REG32,REG32,0}, "\321\1\x09\101", IF_386}, - {I_OR, 2, {REG8,MEMORY,0}, "\301\1\x0A\110", IF_8086|IF_SM}, - {I_OR, 2, {REG8,REG8,0}, "\1\x0A\110", IF_8086}, - {I_OR, 2, {REG16,MEMORY,0}, "\320\301\1\x0B\110", IF_8086|IF_SM}, - {I_OR, 2, {REG16,REG16,0}, "\320\1\x0B\110", IF_8086}, - {I_OR, 2, {REG32,MEMORY,0}, "\321\301\1\x0B\110", IF_386|IF_SM}, - {I_OR, 2, {REG32,REG32,0}, "\321\1\x0B\110", IF_386}, - {I_OR, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\201\15", IF_8086}, - {I_OR, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\201\15", IF_386}, - {I_OR, 2, {REG_AL,IMMEDIATE,0}, "\1\x0C\21", IF_8086|IF_SM}, - {I_OR, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x0D\31", IF_8086|IF_SM}, - {I_OR, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x0D\41", IF_386|IF_SM}, - {I_OR, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\201\21", IF_8086|IF_SM}, - {I_OR, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\201\131", IF_8086|IF_SM}, - {I_OR, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\201\141", IF_386|IF_SM}, - {I_OR, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\201\21", IF_8086|IF_SM}, - {I_OR, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\201\131", IF_8086|IF_SM}, - {I_OR, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\201\141", IF_386|IF_SM}, - {I_OUT, 2, {IMMEDIATE,REG_AL,0}, "\1\xE6\24", IF_8086|IF_SB}, - {I_OUT, 2, {IMMEDIATE,REG_AX,0}, "\320\1\xE7\24", IF_8086|IF_SB}, - {I_OUT, 2, {IMMEDIATE,REG_EAX,0}, "\321\1\xE7\24", IF_386|IF_SB}, - {I_OUT, 2, {REG_DX,REG_AL,0}, "\1\xEE", IF_8086}, - {I_OUT, 2, {REG_DX,REG_AX,0}, "\320\1\xEF", IF_8086}, - {I_OUT, 2, {REG_DX,REG_EAX,0}, "\321\1\xEF", IF_386}, - {I_OUTSB, 0, {0,0,0}, "\1\x6E", IF_186}, - {I_OUTSD, 0, {0,0,0}, "\321\1\x6F", IF_386}, - {I_OUTSW, 0, {0,0,0}, "\320\1\x6F", IF_186}, - {I_PACKSSDW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x6B\110", IF_PENT|IF_MMX|IF_SM}, - {I_PACKSSDW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x6B\110", IF_PENT|IF_MMX}, - {I_PACKSSWB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x63\110", IF_PENT|IF_MMX|IF_SM}, - {I_PACKSSWB, 2, {MMXREG,MMXREG,0}, "\2\x0F\x63\110", IF_PENT|IF_MMX}, - {I_PACKUSWB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x67\110", IF_PENT|IF_MMX|IF_SM}, - {I_PACKUSWB, 2, {MMXREG,MMXREG,0}, "\2\x0F\x67\110", IF_PENT|IF_MMX}, - {I_PADDB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xFC\110", IF_PENT|IF_MMX|IF_SM}, - {I_PADDB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xFC\110", IF_PENT|IF_MMX}, - {I_PADDD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xFE\110", IF_PENT|IF_MMX|IF_SM}, - {I_PADDD, 2, {MMXREG,MMXREG,0}, "\2\x0F\xFE\110", IF_PENT|IF_MMX}, - {I_PADDSB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xEC\110", IF_PENT|IF_MMX|IF_SM}, - {I_PADDSB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xEC\110", IF_PENT|IF_MMX}, - {I_PADDSIW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x51\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PADDSIW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x51\110", IF_PENT|IF_MMX|IF_CYRIX}, - {I_PADDSW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xED\110", IF_PENT|IF_MMX|IF_SM}, - {I_PADDSW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xED\110", IF_PENT|IF_MMX}, - {I_PADDUSB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xDC\110", IF_PENT|IF_MMX|IF_SM}, - {I_PADDUSB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xDC\110", IF_PENT|IF_MMX}, - {I_PADDUSW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xDD\110", IF_PENT|IF_MMX|IF_SM}, - {I_PADDUSW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xDD\110", IF_PENT|IF_MMX}, - {I_PADDW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xFD\110", IF_PENT|IF_MMX|IF_SM}, - {I_PADDW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xFD\110", IF_PENT|IF_MMX}, - {I_PAND, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xDB\110", IF_PENT|IF_MMX|IF_SM}, - {I_PAND, 2, {MMXREG,MMXREG,0}, "\2\x0F\xDB\110", IF_PENT|IF_MMX}, - {I_PANDN, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xDF\110", IF_PENT|IF_MMX|IF_SM}, - {I_PANDN, 2, {MMXREG,MMXREG,0}, "\2\x0F\xDF\110", IF_PENT|IF_MMX}, - {I_PAVEB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x50\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PAVEB, 2, {MMXREG,MMXREG,0}, "\2\x0F\x50\110", IF_PENT|IF_MMX|IF_CYRIX}, - {I_PAVGUSB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xBF", IF_PENT|IF_3DNOW|IF_SM}, - {I_PAVGUSB, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xBF", IF_PENT|IF_3DNOW}, - {I_PCMPEQB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x74\110", IF_PENT|IF_MMX|IF_SM}, - {I_PCMPEQB, 2, {MMXREG,MMXREG,0}, "\2\x0F\x74\110", IF_PENT|IF_MMX}, - {I_PCMPEQD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x76\110", IF_PENT|IF_MMX|IF_SM}, - {I_PCMPEQD, 2, {MMXREG,MMXREG,0}, "\2\x0F\x76\110", IF_PENT|IF_MMX}, - {I_PCMPEQW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x75\110", IF_PENT|IF_MMX|IF_SM}, - {I_PCMPEQW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x75\110", IF_PENT|IF_MMX}, - {I_PCMPGTB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x64\110", IF_PENT|IF_MMX|IF_SM}, - {I_PCMPGTB, 2, {MMXREG,MMXREG,0}, "\2\x0F\x64\110", IF_PENT|IF_MMX}, - {I_PCMPGTD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x66\110", IF_PENT|IF_MMX|IF_SM}, - {I_PCMPGTD, 2, {MMXREG,MMXREG,0}, "\2\x0F\x66\110", IF_PENT|IF_MMX}, - {I_PCMPGTW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x65\110", IF_PENT|IF_MMX|IF_SM}, - {I_PCMPGTW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x65\110", IF_PENT|IF_MMX}, - {I_PDISTIB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x54\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PF2ID, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x1D", IF_PENT|IF_3DNOW|IF_SM}, - {I_PF2ID, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x1D", IF_PENT|IF_3DNOW}, - {I_PFACC, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xAE", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFACC, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xAE", IF_PENT|IF_3DNOW}, - {I_PFADD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x9E", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFADD, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x9E", IF_PENT|IF_3DNOW}, - {I_PFCMPEQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xB0", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFCMPEQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xB0", IF_PENT|IF_3DNOW}, - {I_PFCMPGE, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x90", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFCMPGE, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x90", IF_PENT|IF_3DNOW}, - {I_PFCMPGT, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xA0", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFCMPGT, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xA0", IF_PENT|IF_3DNOW}, - {I_PFMAX, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xA4", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFMAX, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xA4", IF_PENT|IF_3DNOW}, - {I_PFMIN, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x94", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFMIN, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x94", IF_PENT|IF_3DNOW}, - {I_PFMUL, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xB4", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFMUL, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xB4", IF_PENT|IF_3DNOW}, - {I_PFRCP, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x96", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFRCP, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x96", IF_PENT|IF_3DNOW}, - {I_PFRCPIT1, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xA6", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFRCPIT1, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xA6", IF_PENT|IF_3DNOW}, - {I_PFRCPIT2, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xB6", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFRCPIT2, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xB6", IF_PENT|IF_3DNOW}, - {I_PFRSQIT1, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xA7", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFRSQIT1, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xA7", IF_PENT|IF_3DNOW}, - {I_PFRSQRT, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x97", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFRSQRT, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x97", IF_PENT|IF_3DNOW}, - {I_PFSUB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x9A", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFSUB, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x9A", IF_PENT|IF_3DNOW}, - {I_PFSUBR, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xAA", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFSUBR, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xAA", IF_PENT|IF_3DNOW}, - {I_PI2FD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x0D", IF_PENT|IF_3DNOW|IF_SM}, - {I_PI2FD, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x0D", IF_PENT|IF_3DNOW}, - {I_PMACHRIW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x5E\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PMADDWD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF5\110", IF_PENT|IF_MMX|IF_SM}, - {I_PMADDWD, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF5\110", IF_PENT|IF_MMX}, - {I_PMAGW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x52\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PMAGW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x52\110", IF_PENT|IF_MMX|IF_CYRIX}, - {I_PMULHRIW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x5D\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PMULHRIW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x5D\110", IF_PENT|IF_MMX|IF_CYRIX}, - {I_PMULHRWA, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\1\xB7", IF_PENT|IF_3DNOW|IF_SM}, - {I_PMULHRWA, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\1\xB7", IF_PENT|IF_3DNOW}, - {I_PMULHRWC, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x59\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PMULHRWC, 2, {MMXREG,MMXREG,0}, "\2\x0F\x59\110", IF_PENT|IF_MMX|IF_CYRIX}, - {I_PMULHW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE5\110", IF_PENT|IF_MMX|IF_SM}, - {I_PMULHW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE5\110", IF_PENT|IF_MMX}, - {I_PMULLW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xD5\110", IF_PENT|IF_MMX|IF_SM}, - {I_PMULLW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xD5\110", IF_PENT|IF_MMX}, - {I_PMVGEZB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x5C\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PMVLZB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x5B\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PMVNZB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x5A\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PMVZB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x58\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_POP, 1, {REG16,0,0}, "\320\10\x58", IF_8086}, - {I_POP, 1, {REG32,0,0}, "\321\10\x58", IF_386}, - {I_POP, 1, {REGMEM|BITS16,0,0}, "\320\300\1\x8F\200", IF_8086}, - {I_POP, 1, {REGMEM|BITS32,0,0}, "\321\300\1\x8F\200", IF_386}, - {I_POP, 1, {REG_DESS,0,0}, "\4", IF_8086}, - {I_POP, 1, {REG_FSGS,0,0}, "\1\x0F\5", IF_386}, - {I_POPA, 0, {0,0,0}, "\322\1\x61", IF_186}, - {I_POPAD, 0, {0,0,0}, "\321\1\x61", IF_386}, - {I_POPAW, 0, {0,0,0}, "\320\1\x61", IF_186}, - {I_POPF, 0, {0,0,0}, "\322\1\x9D", IF_8086}, - {I_POPFD, 0, {0,0,0}, "\321\1\x9D", IF_386}, - {I_POPFW, 0, {0,0,0}, "\320\1\x9D", IF_8086}, - {I_POR, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xEB\110", IF_PENT|IF_MMX|IF_SM}, - {I_POR, 2, {MMXREG,MMXREG,0}, "\2\x0F\xEB\110", IF_PENT|IF_MMX}, - {I_PREFETCH, 1, {MEMORY,0,0}, "\2\x0F\x0D\200", IF_PENT|IF_3DNOW|IF_SM}, - {I_PREFETCHW, 1, {MEMORY,0,0}, "\2\x0F\x0D\201", IF_PENT|IF_3DNOW|IF_SM}, - {I_PSLLD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF2\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSLLD, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF2\110", IF_PENT|IF_MMX}, - {I_PSLLD, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x72\206\25", IF_PENT|IF_MMX}, - {I_PSLLQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF3\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSLLQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF3\110", IF_PENT|IF_MMX}, - {I_PSLLQ, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x73\206\25", IF_PENT|IF_MMX}, - {I_PSLLW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF1\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSLLW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF1\110", IF_PENT|IF_MMX}, - {I_PSLLW, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x71\206\25", IF_PENT|IF_MMX}, - {I_PSRAD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE2\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSRAD, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE2\110", IF_PENT|IF_MMX}, - {I_PSRAD, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x72\204\25", IF_PENT|IF_MMX}, - {I_PSRAW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE1\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSRAW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE1\110", IF_PENT|IF_MMX}, - {I_PSRAW, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x71\204\25", IF_PENT|IF_MMX}, - {I_PSRLD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xD2\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSRLD, 2, {MMXREG,MMXREG,0}, "\2\x0F\xD2\110", IF_PENT|IF_MMX}, - {I_PSRLD, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x72\202\25", IF_PENT|IF_MMX}, - {I_PSRLQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xD3\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSRLQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\xD3\110", IF_PENT|IF_MMX}, - {I_PSRLQ, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x73\202\25", IF_PENT|IF_MMX}, - {I_PSRLW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xD1\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSRLW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xD1\110", IF_PENT|IF_MMX}, - {I_PSRLW, 2, {MMXREG,IMMEDIATE,0}, "\2\x0F\x71\202\25", IF_PENT|IF_MMX}, - {I_PSUBB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF8\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSUBB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF8\110", IF_PENT|IF_MMX}, - {I_PSUBD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xFA\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSUBD, 2, {MMXREG,MMXREG,0}, "\2\x0F\xFA\110", IF_PENT|IF_MMX}, - {I_PSUBSB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE8\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSUBSB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE8\110", IF_PENT|IF_MMX}, - {I_PSUBSIW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x55\110", IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, - {I_PSUBSIW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x55\110", IF_PENT|IF_MMX|IF_CYRIX}, - {I_PSUBSW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE9\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSUBSW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE9\110", IF_PENT|IF_MMX}, - {I_PSUBUSB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xD8\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSUBUSB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xD8\110", IF_PENT|IF_MMX}, - {I_PSUBUSW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xD9\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSUBUSW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xD9\110", IF_PENT|IF_MMX}, - {I_PSUBW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF9\110", IF_PENT|IF_MMX|IF_SM}, - {I_PSUBW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF9\110", IF_PENT|IF_MMX}, - {I_PUNPCKHBW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x68\110", IF_PENT|IF_MMX|IF_SM}, - {I_PUNPCKHBW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x68\110", IF_PENT|IF_MMX}, - {I_PUNPCKHDQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x6A\110", IF_PENT|IF_MMX|IF_SM}, - {I_PUNPCKHDQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\x6A\110", IF_PENT|IF_MMX}, - {I_PUNPCKHWD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x69\110", IF_PENT|IF_MMX|IF_SM}, - {I_PUNPCKHWD, 2, {MMXREG,MMXREG,0}, "\2\x0F\x69\110", IF_PENT|IF_MMX}, - {I_PUNPCKLBW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x60\110", IF_PENT|IF_MMX|IF_SM}, - {I_PUNPCKLBW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x60\110", IF_PENT|IF_MMX}, - {I_PUNPCKLDQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x62\110", IF_PENT|IF_MMX|IF_SM}, - {I_PUNPCKLDQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\x62\110", IF_PENT|IF_MMX}, - {I_PUNPCKLWD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x61\110", IF_PENT|IF_MMX|IF_SM}, - {I_PUNPCKLWD, 2, {MMXREG,MMXREG,0}, "\2\x0F\x61\110", IF_PENT|IF_MMX}, - {I_PUSH, 1, {REG16,0,0}, "\320\10\x50", IF_8086}, - {I_PUSH, 1, {REG32,0,0}, "\321\10\x50", IF_386}, - {I_PUSH, 1, {REGMEM|BITS16,0,0}, "\320\300\1\xFF\206", IF_8086}, - {I_PUSH, 1, {REGMEM|BITS32,0,0}, "\321\300\1\xFF\206", IF_386}, - {I_PUSH, 1, {REG_CS,0,0}, "\6", IF_8086}, - {I_PUSH, 1, {REG_DESS,0,0}, "\6", IF_8086}, - {I_PUSH, 1, {REG_FSGS,0,0}, "\1\x0F\7", IF_386}, - {I_PUSH, 1, {IMMEDIATE|BITS8,0,0}, "\1\x6A\14", IF_186}, - {I_PUSH, 1, {IMMEDIATE|BITS16,0,0}, "\320\133\1\x68\130", IF_186}, - {I_PUSH, 1, {IMMEDIATE|BITS32,0,0}, "\321\143\1\x68\140", IF_386}, - {I_PUSH, 1, {IMMEDIATE,0,0}, "\1\x68\34", IF_186}, - {I_PUSHA, 0, {0,0,0}, "\322\1\x60", IF_186}, - {I_PUSHAD, 0, {0,0,0}, "\321\1\x60", IF_386}, - {I_PUSHAW, 0, {0,0,0}, "\320\1\x60", IF_186}, - {I_PUSHF, 0, {0,0,0}, "\322\1\x9C", IF_8086}, - {I_PUSHFD, 0, {0,0,0}, "\321\1\x9C", IF_386}, - {I_PUSHFW, 0, {0,0,0}, "\320\1\x9C", IF_8086}, - {I_PXOR, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xEF\110", IF_PENT|IF_MMX|IF_SM}, - {I_PXOR, 2, {MMXREG,MMXREG,0}, "\2\x0F\xEF\110", IF_PENT|IF_MMX}, - {I_RCL, 2, {REGMEM|BITS8,UNITY,0}, "\300\1\xD0\202", IF_8086}, - {I_RCL, 2, {REGMEM|BITS8,REG_CL,0}, "\300\1\xD2\202", IF_8086}, - {I_RCL, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC0\202\25", IF_186|IF_SB}, - {I_RCL, 2, {REGMEM|BITS16,UNITY,0}, "\320\300\1\xD1\202", IF_8086}, - {I_RCL, 2, {REGMEM|BITS16,REG_CL,0}, "\320\300\1\xD3\202", IF_8086}, - {I_RCL, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC1\202\25", IF_186|IF_SB}, - {I_RCL, 2, {REGMEM|BITS32,UNITY,0}, "\321\300\1\xD1\202", IF_386}, - {I_RCL, 2, {REGMEM|BITS32,REG_CL,0}, "\321\300\1\xD3\202", IF_386}, - {I_RCL, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC1\202\25", IF_386|IF_SB}, - {I_RCR, 2, {REGMEM|BITS8,UNITY,0}, "\300\1\xD0\203", IF_8086}, - {I_RCR, 2, {REGMEM|BITS8,REG_CL,0}, "\300\1\xD2\203", IF_8086}, - {I_RCR, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC0\203\25", IF_186|IF_SB}, - {I_RCR, 2, {REGMEM|BITS16,UNITY,0}, "\320\300\1\xD1\203", IF_8086}, - {I_RCR, 2, {REGMEM|BITS16,REG_CL,0}, "\320\300\1\xD3\203", IF_8086}, - {I_RCR, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC1\203\25", IF_186|IF_SB}, - {I_RCR, 2, {REGMEM|BITS32,UNITY,0}, "\321\300\1\xD1\203", IF_386}, - {I_RCR, 2, {REGMEM|BITS32,REG_CL,0}, "\321\300\1\xD3\203", IF_386}, - {I_RCR, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC1\203\25", IF_386|IF_SB}, - {I_RDSHR, 1, {REGMEM|BITS32,0,0}, "\321\300\2\x0F\x36\200", IF_P6|IF_CYRIX|IF_SMM}, - {I_RDMSR, 0, {0,0,0}, "\2\x0F\x32", IF_PENT|IF_PRIV}, - {I_RDPMC, 0, {0,0,0}, "\2\x0F\x33", IF_P6}, - {I_RDTSC, 0, {0,0,0}, "\2\x0F\x31", IF_PENT}, - {I_RESB, 1, {IMMEDIATE,0,0}, "\340", IF_8086}, - {I_RET, 0, {0,0,0}, "\1\xC3", IF_8086}, - {I_RET, 1, {IMMEDIATE,0,0}, "\1\xC2\30", IF_8086|IF_SW}, - {I_RETF, 0, {0,0,0}, "\1\xCB", IF_8086}, - {I_RETF, 1, {IMMEDIATE,0,0}, "\1\xCA\30", IF_8086|IF_SW}, - {I_RETN, 0, {0,0,0}, "\1\xC3", IF_8086}, - {I_RETN, 1, {IMMEDIATE,0,0}, "\1\xC2\30", IF_8086|IF_SW}, - {I_ROL, 2, {REGMEM|BITS8,UNITY,0}, "\300\1\xD0\200", IF_8086}, - {I_ROL, 2, {REGMEM|BITS8,REG_CL,0}, "\300\1\xD2\200", IF_8086}, - {I_ROL, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC0\200\25", IF_186|IF_SB}, - {I_ROL, 2, {REGMEM|BITS16,UNITY,0}, "\320\300\1\xD1\200", IF_8086}, - {I_ROL, 2, {REGMEM|BITS16,REG_CL,0}, "\320\300\1\xD3\200", IF_8086}, - {I_ROL, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC1\200\25", IF_186|IF_SB}, - {I_ROL, 2, {REGMEM|BITS32,UNITY,0}, "\321\300\1\xD1\200", IF_386}, - {I_ROL, 2, {REGMEM|BITS32,REG_CL,0}, "\321\300\1\xD3\200", IF_386}, - {I_ROL, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC1\200\25", IF_386|IF_SB}, - {I_ROR, 2, {REGMEM|BITS8,UNITY,0}, "\300\1\xD0\201", IF_8086}, - {I_ROR, 2, {REGMEM|BITS8,REG_CL,0}, "\300\1\xD2\201", IF_8086}, - {I_ROR, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC0\201\25", IF_186|IF_SB}, - {I_ROR, 2, {REGMEM|BITS16,UNITY,0}, "\320\300\1\xD1\201", IF_8086}, - {I_ROR, 2, {REGMEM|BITS16,REG_CL,0}, "\320\300\1\xD3\201", IF_8086}, - {I_ROR, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC1\201\25", IF_186|IF_SB}, - {I_ROR, 2, {REGMEM|BITS32,UNITY,0}, "\321\300\1\xD1\201", IF_386}, - {I_ROR, 2, {REGMEM|BITS32,REG_CL,0}, "\321\300\1\xD3\201", IF_386}, - {I_ROR, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC1\201\25", IF_386|IF_SB}, - {I_RSDC, 2, {REG_SREG,MEMORY|BITS80,0}, "\301\2\x0F\x79\110", IF_486|IF_CYRIX|IF_SMM}, - {I_RSLDT, 1, {MEMORY|BITS80,0,0}, "\300\2\x0F\x7B\200", IF_486|IF_CYRIX|IF_SMM}, - {I_RSM, 0, {0,0,0}, "\2\x0F\xAA", IF_PENT|IF_SMM}, - {I_RSTS, 1, {MEMORY|BITS80,0,0}, "\300\2\x0F\x7D\200", IF_486|IF_CYRIX|IF_SMM}, - {I_SAHF, 0, {0,0,0}, "\1\x9E", IF_8086}, - {I_SALC, 0, {0,0,0}, "\1\xD6", IF_8086|IF_UNDOC}, - {I_SAR, 2, {REGMEM|BITS8,UNITY,0}, "\300\1\xD0\207", IF_8086}, - {I_SAR, 2, {REGMEM|BITS8,REG_CL,0}, "\300\1\xD2\207", IF_8086}, - {I_SAR, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC0\207\25", IF_186|IF_SB}, - {I_SAR, 2, {REGMEM|BITS16,UNITY,0}, "\320\300\1\xD1\207", IF_8086}, - {I_SAR, 2, {REGMEM|BITS16,REG_CL,0}, "\320\300\1\xD3\207", IF_8086}, - {I_SAR, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC1\207\25", IF_186|IF_SB}, - {I_SAR, 2, {REGMEM|BITS32,UNITY,0}, "\321\300\1\xD1\207", IF_386}, - {I_SAR, 2, {REGMEM|BITS32,REG_CL,0}, "\321\300\1\xD3\207", IF_386}, - {I_SAR, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC1\207\25", IF_386|IF_SB}, - {I_SBB, 2, {MEMORY,REG8,0}, "\300\1\x18\101", IF_8086|IF_SM}, - {I_SBB, 2, {REG8,REG8,0}, "\1\x18\101", IF_8086}, - {I_SBB, 2, {MEMORY,REG16,0}, "\320\300\1\x19\101", IF_8086|IF_SM}, - {I_SBB, 2, {REG16,REG16,0}, "\320\1\x19\101", IF_8086}, - {I_SBB, 2, {MEMORY,REG32,0}, "\321\300\1\x19\101", IF_386|IF_SM}, - {I_SBB, 2, {REG32,REG32,0}, "\321\1\x19\101", IF_386}, - {I_SBB, 2, {REG8,MEMORY,0}, "\301\1\x1A\110", IF_8086|IF_SM}, - {I_SBB, 2, {REG8,REG8,0}, "\1\x1A\110", IF_8086}, - {I_SBB, 2, {REG16,MEMORY,0}, "\320\301\1\x1B\110", IF_8086|IF_SM}, - {I_SBB, 2, {REG16,REG16,0}, "\320\1\x1B\110", IF_8086}, - {I_SBB, 2, {REG32,MEMORY,0}, "\321\301\1\x1B\110", IF_386|IF_SM}, - {I_SBB, 2, {REG32,REG32,0}, "\321\1\x1B\110", IF_386}, - {I_SBB, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\203\15", IF_8086}, - {I_SBB, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\203\15", IF_386}, - {I_SBB, 2, {REG_AL,IMMEDIATE,0}, "\1\x1C\21", IF_8086|IF_SM}, - {I_SBB, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x1D\31", IF_8086|IF_SM}, - {I_SBB, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x1D\41", IF_386|IF_SM}, - {I_SBB, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\203\21", IF_8086|IF_SM}, - {I_SBB, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\203\131", IF_8086|IF_SM}, - {I_SBB, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\203\141", IF_386|IF_SM}, - {I_SBB, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\203\21", IF_8086|IF_SM}, - {I_SBB, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\203\131", IF_8086|IF_SM}, - {I_SBB, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\203\141", IF_386|IF_SM}, - {I_SCASB, 0, {0,0,0}, "\332\1\xAE", IF_8086}, - {I_SCASD, 0, {0,0,0}, "\332\321\1\xAF", IF_386}, - {I_SCASW, 0, {0,0,0}, "\332\320\1\xAF", IF_8086}, - {I_SGDT, 1, {MEMORY,0,0}, "\300\2\x0F\x01\200", IF_286}, - {I_SHL, 2, {REGMEM|BITS8,UNITY,0}, "\300\1\xD0\204", IF_8086}, - {I_SHL, 2, {REGMEM|BITS8,REG_CL,0}, "\300\1\xD2\204", IF_8086}, - {I_SHL, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC0\204\25", IF_186|IF_SB}, - {I_SHL, 2, {REGMEM|BITS16,UNITY,0}, "\320\300\1\xD1\204", IF_8086}, - {I_SHL, 2, {REGMEM|BITS16,REG_CL,0}, "\320\300\1\xD3\204", IF_8086}, - {I_SHL, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC1\204\25", IF_186|IF_SB}, - {I_SHL, 2, {REGMEM|BITS32,UNITY,0}, "\321\300\1\xD1\204", IF_386}, - {I_SHL, 2, {REGMEM|BITS32,REG_CL,0}, "\321\300\1\xD3\204", IF_386}, - {I_SHL, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC1\204\25", IF_386|IF_SB}, - {I_SHLD, 3, {MEMORY,REG16,IMMEDIATE}, "\300\320\2\x0F\xA4\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHLD, 3, {REG16,REG16,IMMEDIATE}, "\320\2\x0F\xA4\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHLD, 3, {MEMORY,REG32,IMMEDIATE}, "\300\321\2\x0F\xA4\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHLD, 3, {REG32,REG32,IMMEDIATE}, "\321\2\x0F\xA4\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHLD, 3, {MEMORY,REG16,REG_CL}, "\300\320\2\x0F\xA5\101", IF_386|IF_SM}, - {I_SHLD, 3, {REG16,REG16,REG_CL}, "\320\2\x0F\xA5\101", IF_386}, - {I_SHLD, 3, {MEMORY,REG32,REG_CL}, "\300\321\2\x0F\xA5\101", IF_386|IF_SM}, - {I_SHLD, 3, {REG32,REG32,REG_CL}, "\321\2\x0F\xA5\101", IF_386}, - {I_SHR, 2, {REGMEM|BITS8,UNITY,0}, "\300\1\xD0\205", IF_8086}, - {I_SHR, 2, {REGMEM|BITS8,REG_CL,0}, "\300\1\xD2\205", IF_8086}, - {I_SHR, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xC0\205\25", IF_186|IF_SB}, - {I_SHR, 2, {REGMEM|BITS16,UNITY,0}, "\320\300\1\xD1\205", IF_8086}, - {I_SHR, 2, {REGMEM|BITS16,REG_CL,0}, "\320\300\1\xD3\205", IF_8086}, - {I_SHR, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xC1\205\25", IF_186|IF_SB}, - {I_SHR, 2, {REGMEM|BITS32,UNITY,0}, "\321\300\1\xD1\205", IF_386}, - {I_SHR, 2, {REGMEM|BITS32,REG_CL,0}, "\321\300\1\xD3\205", IF_386}, - {I_SHR, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xC1\205\25", IF_386|IF_SB}, - {I_SHRD, 3, {MEMORY,REG16,IMMEDIATE}, "\300\320\2\x0F\xAC\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHRD, 3, {REG16,REG16,IMMEDIATE}, "\320\2\x0F\xAC\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHRD, 3, {MEMORY,REG32,IMMEDIATE}, "\300\321\2\x0F\xAC\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHRD, 3, {REG32,REG32,IMMEDIATE}, "\321\2\x0F\xAC\101\26", IF_386|IF_SM2|IF_SB|IF_AR2}, - {I_SHRD, 3, {MEMORY,REG16,REG_CL}, "\300\320\2\x0F\xAD\101", IF_386|IF_SM}, - {I_SHRD, 3, {REG16,REG16,REG_CL}, "\320\2\x0F\xAD\101", IF_386}, - {I_SHRD, 3, {MEMORY,REG32,REG_CL}, "\300\321\2\x0F\xAD\101", IF_386|IF_SM}, - {I_SHRD, 3, {REG32,REG32,REG_CL}, "\321\2\x0F\xAD\101", IF_386}, - {I_SIDT, 1, {MEMORY,0,0}, "\300\2\x0F\x01\201", IF_286}, - {I_SLDT, 1, {MEMORY,0,0}, "\300\1\x0F\17\200", IF_286}, - {I_SLDT, 1, {MEMORY|BITS16,0,0}, "\300\1\x0F\17\200", IF_286}, - {I_SLDT, 1, {REG16,0,0}, "\320\1\x0F\17\200", IF_286}, - {I_SLDT, 1, {REG32,0,0}, "\321\1\x0F\17\200", IF_386}, - {I_SMI, 0, {0,0,0}, "\1\xF1", IF_386|IF_UNDOC}, - {I_SMINT, 0, {0,0,0}, "\2\x0F\x38", IF_P6|IF_CYRIX}, - {I_SMSW, 1, {MEMORY,0,0}, "\300\2\x0F\x01\204", IF_286}, - {I_SMSW, 1, {MEMORY|BITS16,0,0}, "\300\2\x0F\x01\204", IF_286}, - {I_SMSW, 1, {REG16,0,0}, "\320\2\x0F\x01\204", IF_286}, - {I_SMSW, 1, {REG32,0,0}, "\321\2\x0F\x01\204", IF_386}, - {I_STC, 0, {0,0,0}, "\1\xF9", IF_8086}, - {I_STD, 0, {0,0,0}, "\1\xFD", IF_8086}, - {I_STI, 0, {0,0,0}, "\1\xFB", IF_8086}, - {I_STOSB, 0, {0,0,0}, "\1\xAA", IF_8086}, - {I_STOSD, 0, {0,0,0}, "\321\1\xAB", IF_386}, - {I_STOSW, 0, {0,0,0}, "\320\1\xAB", IF_8086}, - {I_STR, 1, {MEMORY,0,0}, "\300\1\x0F\17\201", IF_286|IF_PROT}, - {I_STR, 1, {MEMORY|BITS16,0,0}, "\300\1\x0F\17\201", IF_286|IF_PROT}, - {I_STR, 1, {REG16,0,0}, "\320\1\x0F\17\201", IF_286|IF_PROT}, - {I_STR, 1, {REG32,0,0}, "\321\1\x0F\17\201", IF_386|IF_PROT}, - {I_SUB, 2, {MEMORY,REG8,0}, "\300\1\x28\101", IF_8086|IF_SM}, - {I_SUB, 2, {REG8,REG8,0}, "\1\x28\101", IF_8086}, - {I_SUB, 2, {MEMORY,REG16,0}, "\320\300\1\x29\101", IF_8086|IF_SM}, - {I_SUB, 2, {REG16,REG16,0}, "\320\1\x29\101", IF_8086}, - {I_SUB, 2, {MEMORY,REG32,0}, "\321\300\1\x29\101", IF_386|IF_SM}, - {I_SUB, 2, {REG32,REG32,0}, "\321\1\x29\101", IF_386}, - {I_SUB, 2, {REG8,MEMORY,0}, "\301\1\x2A\110", IF_8086|IF_SM}, - {I_SUB, 2, {REG8,REG8,0}, "\1\x2A\110", IF_8086}, - {I_SUB, 2, {REG16,MEMORY,0}, "\320\301\1\x2B\110", IF_8086|IF_SM}, - {I_SUB, 2, {REG16,REG16,0}, "\320\1\x2B\110", IF_8086}, - {I_SUB, 2, {REG32,MEMORY,0}, "\321\301\1\x2B\110", IF_386|IF_SM}, - {I_SUB, 2, {REG32,REG32,0}, "\321\1\x2B\110", IF_386}, - {I_SUB, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\205\15", IF_8086}, - {I_SUB, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\205\15", IF_386}, - {I_SUB, 2, {REG_AL,IMMEDIATE,0}, "\1\x2C\21", IF_8086|IF_SM}, - {I_SUB, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x2D\31", IF_8086|IF_SM}, - {I_SUB, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x2D\41", IF_386|IF_SM}, - {I_SUB, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\205\21", IF_8086|IF_SM}, - {I_SUB, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\205\131", IF_8086|IF_SM}, - {I_SUB, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\205\141", IF_386|IF_SM}, - {I_SUB, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\205\21", IF_8086|IF_SM}, - {I_SUB, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\205\131", IF_8086|IF_SM}, - {I_SUB, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\205\141", IF_386|IF_SM}, - {I_SVDC, 2, {MEMORY|BITS80,REG_SREG,0}, "\300\2\x0F\x78\101", IF_486|IF_CYRIX|IF_SMM}, - {I_SVLDT, 1, {MEMORY|BITS80,0,0}, "\300\2\x0F\x7A\200", IF_486|IF_CYRIX|IF_SMM}, - {I_SVTS, 1, {MEMORY|BITS80,0,0}, "\300\2\x0F\x7C\200", IF_486|IF_CYRIX|IF_SMM}, - {I_SYSCALL, 0, {0,0,0}, "\2\x0F\x05", IF_P6|IF_AMD}, - {I_SYSENTER, 0, {0,0,0}, "\2\x0F\x34", IF_P6}, - {I_SYSEXIT, 0, {0,0,0}, "\2\x0F\x35", IF_P6|IF_PRIV}, - {I_SYSRET, 0, {0,0,0}, "\2\x0F\x07", IF_P6|IF_PRIV|IF_AMD}, - {I_TEST, 2, {MEMORY,REG8,0}, "\300\1\x84\101", IF_8086|IF_SM}, - {I_TEST, 2, {REG8,REG8,0}, "\1\x84\101", IF_8086}, - {I_TEST, 2, {MEMORY,REG16,0}, "\320\300\1\x85\101", IF_8086|IF_SM}, - {I_TEST, 2, {REG16,REG16,0}, "\320\1\x85\101", IF_8086}, - {I_TEST, 2, {MEMORY,REG32,0}, "\321\300\1\x85\101", IF_386|IF_SM}, - {I_TEST, 2, {REG32,REG32,0}, "\321\1\x85\101", IF_386}, - {I_TEST, 2, {REG8,MEMORY,0}, "\301\1\x84\110", IF_8086|IF_SM}, - {I_TEST, 2, {REG16,MEMORY,0}, "\320\301\1\x85\110", IF_8086|IF_SM}, - {I_TEST, 2, {REG32,MEMORY,0}, "\321\301\1\x85\110", IF_386|IF_SM}, - {I_TEST, 2, {REG_AL,IMMEDIATE,0}, "\1\xA8\21", IF_8086|IF_SM}, - {I_TEST, 2, {REG_AX,IMMEDIATE,0}, "\320\1\xA9\31", IF_8086|IF_SM}, - {I_TEST, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\xA9\41", IF_386|IF_SM}, - {I_TEST, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\xF6\200\21", IF_8086|IF_SM}, - {I_TEST, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\1\xF7\200\31", IF_8086|IF_SM}, - {I_TEST, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\1\xF7\200\41", IF_386|IF_SM}, - {I_TEST, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\xF6\200\21", IF_8086|IF_SM}, - {I_TEST, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\1\xF7\200\31", IF_8086|IF_SM}, - {I_TEST, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\1\xF7\200\41", IF_386|IF_SM}, - {I_UD0, 0, {0,0,0}, "\2\x0F\xFF", IF_286|IF_UNDOC}, - {I_UD1, 0, {0,0,0}, "\2\x0F\xB9", IF_286|IF_UNDOC}, - {I_UD2, 0, {0,0,0}, "\2\x0F\x0B", IF_286}, - {I_UMOV, 2, {MEMORY,REG8,0}, "\300\2\x0F\x10\101", IF_386|IF_UNDOC|IF_SM}, - {I_UMOV, 2, {REG8,REG8,0}, "\2\x0F\x10\101", IF_386|IF_UNDOC}, - {I_UMOV, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\x11\101", IF_386|IF_UNDOC|IF_SM}, - {I_UMOV, 2, {REG16,REG16,0}, "\320\2\x0F\x11\101", IF_386|IF_UNDOC}, - {I_UMOV, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\x11\101", IF_386|IF_UNDOC|IF_SM}, - {I_UMOV, 2, {REG32,REG32,0}, "\321\2\x0F\x11\101", IF_386|IF_UNDOC}, - {I_UMOV, 2, {REG8,MEMORY,0}, "\301\2\x0F\x12\110", IF_386|IF_UNDOC|IF_SM}, - {I_UMOV, 2, {REG8,REG8,0}, "\2\x0F\x12\110", IF_386|IF_UNDOC}, - {I_UMOV, 2, {REG16,MEMORY,0}, "\320\301\2\x0F\x13\110", IF_386|IF_UNDOC|IF_SM}, - {I_UMOV, 2, {REG16,REG16,0}, "\320\2\x0F\x13\110", IF_386|IF_UNDOC}, - {I_UMOV, 2, {REG32,MEMORY,0}, "\321\301\2\x0F\x13\110", IF_386|IF_UNDOC|IF_SM}, - {I_UMOV, 2, {REG32,REG32,0}, "\321\2\x0F\x13\110", IF_386|IF_UNDOC}, - {I_VERR, 1, {MEMORY,0,0}, "\300\1\x0F\17\204", IF_286|IF_PROT}, - {I_VERR, 1, {MEMORY|BITS16,0,0}, "\300\1\x0F\17\204", IF_286|IF_PROT}, - {I_VERR, 1, {REG16,0,0}, "\1\x0F\17\204", IF_286|IF_PROT}, - {I_VERW, 1, {MEMORY,0,0}, "\300\1\x0F\17\205", IF_286|IF_PROT}, - {I_VERW, 1, {MEMORY|BITS16,0,0}, "\300\1\x0F\17\205", IF_286|IF_PROT}, - {I_VERW, 1, {REG16,0,0}, "\1\x0F\17\205", IF_286|IF_PROT}, - {I_WAIT, 0, {0,0,0}, "\1\x9B", IF_8086}, - {I_FWAIT, 0, {0,0,0}, "\1\x9B", IF_8086}, - {I_WBINVD, 0, {0,0,0}, "\2\x0F\x09", IF_486|IF_PRIV}, - {I_WRSHR, 1, {REGMEM|BITS32,0,0}, "\321\300\2\x0F\x37\200", IF_P6|IF_CYRIX|IF_SMM}, - {I_WRMSR, 0, {0,0,0}, "\2\x0F\x30", IF_PENT|IF_PRIV}, - {I_XADD, 2, {MEMORY,REG8,0}, "\300\2\x0F\xC0\101", IF_486|IF_SM}, - {I_XADD, 2, {REG8,REG8,0}, "\2\x0F\xC0\101", IF_486}, - {I_XADD, 2, {MEMORY,REG16,0}, "\320\300\2\x0F\xC1\101", IF_486|IF_SM}, - {I_XADD, 2, {REG16,REG16,0}, "\320\2\x0F\xC1\101", IF_486}, - {I_XADD, 2, {MEMORY,REG32,0}, "\321\300\2\x0F\xC1\101", IF_486|IF_SM}, - {I_XADD, 2, {REG32,REG32,0}, "\321\2\x0F\xC1\101", IF_486}, - {I_XCHG, 2, {REG_AX,REG16,0}, "\320\11\x90", IF_8086}, - {I_XCHG, 2, {REG_EAX,REG32,0}, "\321\11\x90", IF_386}, - {I_XCHG, 2, {REG16,REG_AX,0}, "\320\10\x90", IF_8086}, - {I_XCHG, 2, {REG32,REG_EAX,0}, "\321\10\x90", IF_386}, - {I_XCHG, 2, {REG8,MEMORY,0}, "\301\1\x86\110", IF_8086|IF_SM}, - {I_XCHG, 2, {REG8,REG8,0}, "\1\x86\110", IF_8086}, - {I_XCHG, 2, {REG16,MEMORY,0}, "\320\301\1\x87\110", IF_8086|IF_SM}, - {I_XCHG, 2, {REG16,REG16,0}, "\320\1\x87\110", IF_8086}, - {I_XCHG, 2, {REG32,MEMORY,0}, "\321\301\1\x87\110", IF_386|IF_SM}, - {I_XCHG, 2, {REG32,REG32,0}, "\321\1\x87\110", IF_386}, - {I_XCHG, 2, {MEMORY,REG8,0}, "\300\1\x86\101", IF_8086|IF_SM}, - {I_XCHG, 2, {REG8,REG8,0}, "\1\x86\101", IF_8086}, - {I_XCHG, 2, {MEMORY,REG16,0}, "\320\300\1\x87\101", IF_8086|IF_SM}, - {I_XCHG, 2, {REG16,REG16,0}, "\320\1\x87\101", IF_8086}, - {I_XCHG, 2, {MEMORY,REG32,0}, "\321\300\1\x87\101", IF_386|IF_SM}, - {I_XCHG, 2, {REG32,REG32,0}, "\321\1\x87\101", IF_386}, - {I_XLATB, 0, {0,0,0}, "\1\xD7", IF_8086}, - {I_XLAT, 0, {0,0,0}, "\1\xD7", IF_8086}, - {I_XOR, 2, {MEMORY,REG8,0}, "\300\1\x30\101", IF_8086|IF_SM}, - {I_XOR, 2, {REG8,REG8,0}, "\1\x30\101", IF_8086}, - {I_XOR, 2, {MEMORY,REG16,0}, "\320\300\1\x31\101", IF_8086|IF_SM}, - {I_XOR, 2, {REG16,REG16,0}, "\320\1\x31\101", IF_8086}, - {I_XOR, 2, {MEMORY,REG32,0}, "\321\300\1\x31\101", IF_386|IF_SM}, - {I_XOR, 2, {REG32,REG32,0}, "\321\1\x31\101", IF_386}, - {I_XOR, 2, {REG8,MEMORY,0}, "\301\1\x32\110", IF_8086|IF_SM}, - {I_XOR, 2, {REG8,REG8,0}, "\1\x32\110", IF_8086}, - {I_XOR, 2, {REG16,MEMORY,0}, "\320\301\1\x33\110", IF_8086|IF_SM}, - {I_XOR, 2, {REG16,REG16,0}, "\320\1\x33\110", IF_8086}, - {I_XOR, 2, {REG32,MEMORY,0}, "\321\301\1\x33\110", IF_386|IF_SM}, - {I_XOR, 2, {REG32,REG32,0}, "\321\1\x33\110", IF_386}, - {I_XOR, 2, {REGMEM|BITS16,IMMEDIATE|BITS8,0}, "\320\300\1\x83\206\15", IF_8086}, - {I_XOR, 2, {REGMEM|BITS32,IMMEDIATE|BITS8,0}, "\321\300\1\x83\206\15", IF_386}, - {I_XOR, 2, {REG_AL,IMMEDIATE,0}, "\1\x34\21", IF_8086|IF_SM}, - {I_XOR, 2, {REG_AX,IMMEDIATE,0}, "\320\1\x35\31", IF_8086|IF_SM}, - {I_XOR, 2, {REG_EAX,IMMEDIATE,0}, "\321\1\x35\41", IF_386|IF_SM}, - {I_XOR, 2, {REGMEM|BITS8,IMMEDIATE,0}, "\300\1\x80\206\21", IF_8086|IF_SM}, - {I_XOR, 2, {REGMEM|BITS16,IMMEDIATE,0}, "\320\300\134\1\x81\206\131", IF_8086|IF_SM}, - {I_XOR, 2, {REGMEM|BITS32,IMMEDIATE,0}, "\321\300\144\1\x81\206\141", IF_386|IF_SM}, - {I_XOR, 2, {MEMORY,IMMEDIATE|BITS8,0}, "\300\1\x80\206\21", IF_8086|IF_SM}, - {I_XOR, 2, {MEMORY,IMMEDIATE|BITS16,0}, "\320\300\134\1\x81\206\131", IF_8086|IF_SM}, - {I_XOR, 2, {MEMORY,IMMEDIATE|BITS32,0}, "\321\300\144\1\x81\206\141", IF_386|IF_SM}, - {I_XSTORE, 0, {0,0,0}, "\3\x0F\xA7\xC0", IF_P6|IF_CYRIX}, - {I_CMOVcc, 2, {REG16,MEMORY,0}, "\320\301\1\x0F\330\x40\110", IF_P6|IF_SM}, - {I_CMOVcc, 2, {REG16,REG16,0}, "\320\1\x0F\330\x40\110", IF_P6}, - {I_CMOVcc, 2, {REG32,MEMORY,0}, "\321\301\1\x0F\330\x40\110", IF_P6|IF_SM}, - {I_CMOVcc, 2, {REG32,REG32,0}, "\321\1\x0F\330\x40\110", IF_P6}, - {I_Jcc, 1, {IMMEDIATE|NEAR,0,0}, "\322\1\x0F\330\x80\64", IF_386}, - {I_Jcc, 1, {IMMEDIATE|BITS16|NEAR,0,0}, "\320\1\x0F\330\x80\64", IF_386}, - {I_Jcc, 1, {IMMEDIATE|BITS32|NEAR,0,0}, "\321\1\x0F\330\x80\64", IF_386}, - {I_Jcc, 1, {IMMEDIATE,0,0}, "\330\x70\50", IF_8086}, - {I_SETcc, 1, {MEMORY,0,0}, "\300\1\x0F\330\x90\200", IF_386|IF_SB}, - {I_SETcc, 1, {REG8,0,0}, "\300\1\x0F\330\x90\200", IF_386}, - {I_ADDPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x58\110", IF_KATMAI|IF_SSE}, - {I_ADDPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x58\110", IF_KATMAI|IF_SSE}, - {I_ADDSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x58\110", IF_KATMAI|IF_SSE}, - {I_ADDSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x58\110", IF_KATMAI|IF_SSE}, - {I_ANDNPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x55\110", IF_KATMAI|IF_SSE}, - {I_ANDNPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x55\110", IF_KATMAI|IF_SSE}, - {I_ANDPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x54\110", IF_KATMAI|IF_SSE}, - {I_ANDPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x54\110", IF_KATMAI|IF_SSE}, - {I_CMPEQPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x00", IF_KATMAI|IF_SSE}, - {I_CMPEQPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x00", IF_KATMAI|IF_SSE}, - {I_CMPEQSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x00", IF_KATMAI|IF_SSE}, - {I_CMPEQSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x00", IF_KATMAI|IF_SSE}, - {I_CMPLEPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x02", IF_KATMAI|IF_SSE}, - {I_CMPLEPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x02", IF_KATMAI|IF_SSE}, - {I_CMPLESS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x02", IF_KATMAI|IF_SSE}, - {I_CMPLESS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x02", IF_KATMAI|IF_SSE}, - {I_CMPLTPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x01", IF_KATMAI|IF_SSE}, - {I_CMPLTPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x01", IF_KATMAI|IF_SSE}, - {I_CMPLTSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x01", IF_KATMAI|IF_SSE}, - {I_CMPLTSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x01", IF_KATMAI|IF_SSE}, - {I_CMPNEQPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x04", IF_KATMAI|IF_SSE}, - {I_CMPNEQPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x04", IF_KATMAI|IF_SSE}, - {I_CMPNEQSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x04", IF_KATMAI|IF_SSE}, - {I_CMPNEQSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x04", IF_KATMAI|IF_SSE}, - {I_CMPNLEPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x06", IF_KATMAI|IF_SSE}, - {I_CMPNLEPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x06", IF_KATMAI|IF_SSE}, - {I_CMPNLESS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x06", IF_KATMAI|IF_SSE}, - {I_CMPNLESS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x06", IF_KATMAI|IF_SSE}, - {I_CMPNLTPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x05", IF_KATMAI|IF_SSE}, - {I_CMPNLTPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x05", IF_KATMAI|IF_SSE}, - {I_CMPNLTSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x05", IF_KATMAI|IF_SSE}, - {I_CMPNLTSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x05", IF_KATMAI|IF_SSE}, - {I_CMPORDPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x07", IF_KATMAI|IF_SSE}, - {I_CMPORDPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x07", IF_KATMAI|IF_SSE}, - {I_CMPORDSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x07", IF_KATMAI|IF_SSE}, - {I_CMPORDSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x07", IF_KATMAI|IF_SSE}, - {I_CMPUNORDPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\xC2\110\1\x03", IF_KATMAI|IF_SSE}, - {I_CMPUNORDPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\xC2\110\1\x03", IF_KATMAI|IF_SSE}, - {I_CMPUNORDSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xC2\110\1\x03", IF_KATMAI|IF_SSE}, - {I_CMPUNORDSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xC2\110\1\x03", IF_KATMAI|IF_SSE}, - {I_CMPPS, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\331\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, - {I_CMPPS, 3, {XMMREG,XMMREG,IMMEDIATE}, "\331\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, - {I_CMPSS, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\333\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, - {I_CMPSS, 3, {XMMREG,XMMREG,IMMEDIATE}, "\333\2\x0F\xC2\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, - {I_COMISS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x2F\110", IF_KATMAI|IF_SSE}, - {I_COMISS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x2F\110", IF_KATMAI|IF_SSE}, - {I_CVTPI2PS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x2A\110", IF_KATMAI|IF_SSE|IF_MMX}, - {I_CVTPI2PS, 2, {XMMREG,MMXREG,0}, "\331\2\x0F\x2A\110", IF_KATMAI|IF_SSE|IF_MMX}, - {I_CVTPS2PI, 2, {MMXREG,MEMORY,0}, "\301\331\2\x0F\x2D\110", IF_KATMAI|IF_SSE|IF_MMX}, - {I_CVTPS2PI, 2, {MMXREG,XMMREG,0}, "\331\2\x0F\x2D\110", IF_KATMAI|IF_SSE|IF_MMX}, - {I_CVTSI2SS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x2A\110", IF_KATMAI|IF_SSE|IF_SD|IF_AR1}, - {I_CVTSI2SS, 2, {XMMREG,REG32,0}, "\333\2\x0F\x2A\110", IF_KATMAI|IF_SSE}, - {I_CVTSS2SI, 2, {REG32,MEMORY,0}, "\301\333\2\x0F\x2D\110", IF_KATMAI|IF_SSE}, - {I_CVTSS2SI, 2, {REG32,XMMREG,0}, "\333\2\x0F\x2D\110", IF_KATMAI|IF_SSE}, - {I_CVTTPS2PI, 2, {MMXREG,MEMORY,0}, "\301\331\2\x0F\x2C\110", IF_KATMAI|IF_SSE|IF_MMX}, - {I_CVTTPS2PI, 2, {MMXREG,XMMREG,0}, "\331\2\x0F\x2C\110", IF_KATMAI|IF_SSE|IF_MMX}, - {I_CVTTSS2SI, 2, {REG32,MEMORY,0}, "\301\333\2\x0F\x2C\110", IF_KATMAI|IF_SSE}, - {I_CVTTSS2SI, 2, {REG32,XMMREG,0}, "\333\2\x0F\x2C\110", IF_KATMAI|IF_SSE}, - {I_DIVPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x5E\110", IF_KATMAI|IF_SSE}, - {I_DIVPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x5E\110", IF_KATMAI|IF_SSE}, - {I_DIVSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x5E\110", IF_KATMAI|IF_SSE}, - {I_DIVSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x5E\110", IF_KATMAI|IF_SSE}, - {I_LDMXCSR, 1, {MEMORY,0,0}, "\300\2\x0F\xAE\202", IF_KATMAI|IF_SSE|IF_SD}, - {I_MAXPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x5F\110", IF_KATMAI|IF_SSE}, - {I_MAXPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x5F\110", IF_KATMAI|IF_SSE}, - {I_MAXSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x5F\110", IF_KATMAI|IF_SSE}, - {I_MAXSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x5F\110", IF_KATMAI|IF_SSE}, - {I_MINPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x5D\110", IF_KATMAI|IF_SSE}, - {I_MINPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x5D\110", IF_KATMAI|IF_SSE}, - {I_MINSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x5D\110", IF_KATMAI|IF_SSE}, - {I_MINSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x5D\110", IF_KATMAI|IF_SSE}, - {I_MOVAPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x28\110", IF_KATMAI|IF_SSE}, - {I_MOVAPS, 2, {MEMORY,XMMREG,0}, "\300\2\x0F\x29\101", IF_KATMAI|IF_SSE}, - {I_MOVAPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x28\110", IF_KATMAI|IF_SSE}, - {I_MOVAPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x29\101", IF_KATMAI|IF_SSE}, - {I_MOVHPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x16\110", IF_KATMAI|IF_SSE}, - {I_MOVHPS, 2, {MEMORY,XMMREG,0}, "\300\2\x0F\x17\101", IF_KATMAI|IF_SSE}, - {I_MOVLHPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x16\110", IF_KATMAI|IF_SSE}, - {I_MOVLPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x12\110", IF_KATMAI|IF_SSE}, - {I_MOVLPS, 2, {MEMORY,XMMREG,0}, "\300\2\x0F\x13\101", IF_KATMAI|IF_SSE}, - {I_MOVHLPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x12\110", IF_KATMAI|IF_SSE}, - {I_MOVMSKPS, 2, {REG32,XMMREG,0}, "\2\x0F\x50\110", IF_KATMAI|IF_SSE}, - {I_MOVNTPS, 2, {MEMORY,XMMREG,0}, "\300\2\x0F\x2B\101", IF_KATMAI|IF_SSE}, - {I_MOVSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x10\110", IF_KATMAI|IF_SSE}, - {I_MOVSS, 2, {MEMORY,XMMREG,0}, "\300\333\2\x0F\x11\101", IF_KATMAI|IF_SSE}, - {I_MOVSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x10\110", IF_KATMAI|IF_SSE}, - {I_MOVSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x11\101", IF_KATMAI|IF_SSE}, - {I_MOVUPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x10\110", IF_KATMAI|IF_SSE}, - {I_MOVUPS, 2, {MEMORY,XMMREG,0}, "\300\331\2\x0F\x11\101", IF_KATMAI|IF_SSE}, - {I_MOVUPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x10\110", IF_KATMAI|IF_SSE}, - {I_MOVUPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x11\101", IF_KATMAI|IF_SSE}, - {I_MULPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x59\110", IF_KATMAI|IF_SSE}, - {I_MULPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x59\110", IF_KATMAI|IF_SSE}, - {I_MULSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x59\110", IF_KATMAI|IF_SSE}, - {I_MULSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x59\110", IF_KATMAI|IF_SSE}, - {I_ORPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x56\110", IF_KATMAI|IF_SSE}, - {I_ORPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x56\110", IF_KATMAI|IF_SSE}, - {I_RCPPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x53\110", IF_KATMAI|IF_SSE}, - {I_RCPPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x53\110", IF_KATMAI|IF_SSE}, - {I_RCPSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x53\110", IF_KATMAI|IF_SSE}, - {I_RCPSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x53\110", IF_KATMAI|IF_SSE}, - {I_RSQRTPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x52\110", IF_KATMAI|IF_SSE}, - {I_RSQRTPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x52\110", IF_KATMAI|IF_SSE}, - {I_RSQRTSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x52\110", IF_KATMAI|IF_SSE}, - {I_RSQRTSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x52\110", IF_KATMAI|IF_SSE}, - {I_SHUFPS, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\2\x0F\xC6\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, - {I_SHUFPS, 3, {XMMREG,XMMREG,IMMEDIATE}, "\2\x0F\xC6\110\26", IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, - {I_SQRTPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x51\110", IF_KATMAI|IF_SSE}, - {I_SQRTPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x51\110", IF_KATMAI|IF_SSE}, - {I_SQRTSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x51\110", IF_KATMAI|IF_SSE}, - {I_SQRTSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x51\110", IF_KATMAI|IF_SSE}, - {I_STMXCSR, 1, {MEMORY,0,0}, "\300\2\x0F\xAE\203", IF_KATMAI|IF_SSE|IF_SD}, - {I_SUBPS, 2, {XMMREG,MEMORY,0}, "\301\331\2\x0F\x5C\110", IF_KATMAI|IF_SSE}, - {I_SUBPS, 2, {XMMREG,XMMREG,0}, "\331\2\x0F\x5C\110", IF_KATMAI|IF_SSE}, - {I_SUBSS, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x5C\110", IF_KATMAI|IF_SSE}, - {I_SUBSS, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x5C\110", IF_KATMAI|IF_SSE}, - {I_UCOMISS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x2E\110", IF_KATMAI|IF_SSE}, - {I_UCOMISS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x2E\110", IF_KATMAI|IF_SSE}, - {I_UNPCKHPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x15\110", IF_KATMAI|IF_SSE}, - {I_UNPCKHPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x15\110", IF_KATMAI|IF_SSE}, - {I_UNPCKLPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x14\110", IF_KATMAI|IF_SSE}, - {I_UNPCKLPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x14\110", IF_KATMAI|IF_SSE}, - {I_XORPS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x57\110", IF_KATMAI|IF_SSE}, - {I_XORPS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x57\110", IF_KATMAI|IF_SSE}, - {I_FXRSTOR, 1, {MEMORY,0,0}, "\300\2\x0F\xAE\201", IF_P6|IF_SSE|IF_FPU}, - {I_FXSAVE, 1, {MEMORY,0,0}, "\300\2\x0F\xAE\200", IF_P6|IF_SSE|IF_FPU}, - {I_PREFETCHNTA, 1, {MEMORY,0,0}, "\300\2\x0F\x18\200", IF_KATMAI}, - {I_PREFETCHT0, 1, {MEMORY,0,0}, "\300\2\x0F\x18\201", IF_KATMAI}, - {I_PREFETCHT1, 1, {MEMORY,0,0}, "\300\2\x0F\x18\202", IF_KATMAI}, - {I_PREFETCHT2, 1, {MEMORY,0,0}, "\300\2\x0F\x18\203", IF_KATMAI}, - {I_SFENCE, 0, {0,0,0}, "\3\x0F\xAE\xF8", IF_KATMAI}, - {I_MASKMOVQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF7\110", IF_KATMAI|IF_MMX}, - {I_MOVNTQ, 2, {MEMORY,MMXREG,0}, "\300\2\x0F\xE7\101", IF_KATMAI|IF_MMX|IF_SM}, - {I_PAVGB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE0\110", IF_KATMAI|IF_MMX}, - {I_PAVGB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE0\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PAVGW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE3\110", IF_KATMAI|IF_MMX}, - {I_PAVGW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE3\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PEXTRW, 3, {REG32,MMXREG,IMMEDIATE}, "\2\x0F\xC5\110\26", IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, - {I_PINSRW, 3, {MMXREG,REG16,IMMEDIATE}, "\2\x0F\xC4\110\26", IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, - {I_PINSRW, 3, {MMXREG,MEMORY,IMMEDIATE}, "\301\2\x0F\xC4\110\26", IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, - {I_PMAXSW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xEE\110", IF_KATMAI|IF_MMX}, - {I_PMAXSW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xEE\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PMAXUB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xDE\110", IF_KATMAI|IF_MMX}, - {I_PMAXUB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xDE\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PMINSW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xEA\110", IF_KATMAI|IF_MMX}, - {I_PMINSW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xEA\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PMINUB, 2, {MMXREG,MMXREG,0}, "\2\x0F\xDA\110", IF_KATMAI|IF_MMX}, - {I_PMINUB, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xDA\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PMOVMSKB, 2, {REG32,MMXREG,0}, "\2\x0F\xD7\110", IF_KATMAI|IF_MMX}, - {I_PMULHUW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xE4\110", IF_KATMAI|IF_MMX}, - {I_PMULHUW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xE4\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PSADBW, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF6\110", IF_KATMAI|IF_MMX}, - {I_PSADBW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF6\110", IF_KATMAI|IF_MMX|IF_SM}, - {I_PSHUFW, 3, {MMXREG,MMXREG,IMMEDIATE}, "\2\x0F\x70\110\22", IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, - {I_PSHUFW, 3, {MMXREG,MEMORY,IMMEDIATE}, "\301\2\x0F\x70\110\22", IF_KATMAI|IF_MMX|IF_SM2|IF_SB|IF_AR2}, - {I_PF2IW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x1C", IF_PENT|IF_3DNOW|IF_SM}, - {I_PF2IW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x1C", IF_PENT|IF_3DNOW}, - {I_PFNACC, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x8A", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFNACC, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x8A", IF_PENT|IF_3DNOW}, - {I_PFPNACC, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x8E", IF_PENT|IF_3DNOW|IF_SM}, - {I_PFPNACC, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x8E", IF_PENT|IF_3DNOW}, - {I_PI2FW, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\x0C", IF_PENT|IF_3DNOW|IF_SM}, - {I_PI2FW, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\x0C", IF_PENT|IF_3DNOW}, - {I_PSWAPD, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\x0F\110\01\xBB", IF_PENT|IF_3DNOW|IF_SM}, - {I_PSWAPD, 2, {MMXREG,MMXREG,0}, "\2\x0F\x0F\110\01\xBB", IF_PENT|IF_3DNOW}, - {I_MASKMOVDQU, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF7\110", IF_WILLAMETTE|IF_SSE2}, - {I_CLFLUSH, 1, {MEMORY,0,0}, "\300\2\x0F\xAE\207", IF_WILLAMETTE|IF_SSE2}, - {I_MOVNTDQ, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\xE7\101", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVNTI, 2, {MEMORY,REG32,0}, "\300\2\x0F\xC3\101", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVNTPD, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\x2B\101", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PAUSE, 0, {0,0,0}, "\333\1\x90", IF_WILLAMETTE|IF_SSE2}, - {I_LFENCE, 0, {0,0,0}, "\3\x0F\xAE\xE8", IF_WILLAMETTE|IF_SSE2}, - {I_MFENCE, 0, {0,0,0}, "\3\x0F\xAE\xF0", IF_WILLAMETTE|IF_SSE2}, - {I_MOVD, 2, {XMMREG,REG32,0}, "\3\x66\x0F\x6E\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVD, 2, {REG32,XMMREG,0}, "\3\x66\x0F\x7E\101", IF_WILLAMETTE|IF_SSE2}, - {I_MOVD, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\x7E\101", IF_WILLAMETTE|IF_SSE2}, - {I_MOVD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x6E\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVDQA, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x6F\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVDQA, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\x7F\101", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVDQA, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x6F\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVDQA, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x7F\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVDQU, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x6F\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVDQU, 2, {MEMORY,XMMREG,0}, "\333\300\2\x0F\x7F\101", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVDQU, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x6F\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVDQU, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x7F\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVDQ2Q, 2, {MMXREG,XMMREG,0}, "\3\xF2\x0F\xD6\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVQ, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x7E\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD6\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVQ, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\xD6\101", IF_WILLAMETTE|IF_SSE2}, - {I_MOVQ, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x7E\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVQ2DQ, 2, {XMMREG,MMXREG,0}, "\333\2\x0F\xD6\110", IF_WILLAMETTE|IF_SSE2}, - {I_PACKSSWB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x63\110", IF_WILLAMETTE|IF_SSE2}, - {I_PACKSSWB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x63\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PACKSSDW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x6B\110", IF_WILLAMETTE|IF_SSE2}, - {I_PACKSSDW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x6B\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PACKUSWB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x67\110", IF_WILLAMETTE|IF_SSE2}, - {I_PACKUSWB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x67\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xFC\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xFC\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xFD\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xFD\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xFE\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xFE\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\xD4\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xD4\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD4\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD4\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDSB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xEC\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDSB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xEC\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDSW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xED\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDSW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xED\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDUSB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xDC\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDUSB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xDC\110", IF_WILLAMETTE|IF_SSE2}, - {I_PADDUSW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xDD\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PADDUSW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xDD\110", IF_WILLAMETTE|IF_SSE2}, - {I_PAND, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xDB\110", IF_WILLAMETTE|IF_SSE2}, - {I_PAND, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xDB\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PANDN, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xDF\110", IF_WILLAMETTE|IF_SSE2}, - {I_PANDN, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xDF\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PAVGB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE0\110", IF_WILLAMETTE|IF_SSE2}, - {I_PAVGB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE0\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PAVGW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE3\110", IF_WILLAMETTE|IF_SSE2}, - {I_PAVGW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE3\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PCMPEQB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x74\110", IF_WILLAMETTE|IF_SSE2}, - {I_PCMPEQB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x74\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PCMPEQW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x75\110", IF_WILLAMETTE|IF_SSE2}, - {I_PCMPEQW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x75\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PCMPEQD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x76\110", IF_WILLAMETTE|IF_SSE2}, - {I_PCMPEQD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x76\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PCMPGTB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x64\110", IF_WILLAMETTE|IF_SSE2}, - {I_PCMPGTB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x64\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PCMPGTW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x65\110", IF_WILLAMETTE|IF_SSE2}, - {I_PCMPGTW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x65\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PCMPGTD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x66\110", IF_WILLAMETTE|IF_SSE2}, - {I_PCMPGTD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x66\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PEXTRW, 3, {REG32,XMMREG,IMMEDIATE}, "\3\x66\x0F\xC5\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_PINSRW, 3, {XMMREG,REG16,IMMEDIATE}, "\3\x66\x0F\xC4\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_PINSRW, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\3\x66\x0F\xC4\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_PMADDWD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF5\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMADDWD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF5\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMAXSW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xEE\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMAXSW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xEE\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMAXUB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xDE\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMAXUB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xDE\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMINSW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xEA\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMINSW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xEA\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMINUB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xDA\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMINUB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xDA\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMOVMSKB, 2, {REG32,XMMREG,0}, "\3\x66\x0F\xD7\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMULHUW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE4\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMULHUW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE4\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMULHW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE5\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMULHW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE5\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMULLW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD5\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMULLW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD5\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMULUDQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\xF4\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMULUDQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xF4\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PMULUDQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF4\110", IF_WILLAMETTE|IF_SSE2}, - {I_PMULUDQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF4\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_POR, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xEB\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_POR, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xEB\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSADBW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF6\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSADBW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF6\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSHUFD, 3, {XMMREG,XMMREG,IMMEDIATE}, "\3\x66\x0F\x70\110\22", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_PSHUFD, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\3\x66\x0F\x70\110\22", IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, - {I_PSHUFHW, 3, {XMMREG,XMMREG,IMMEDIATE}, "\333\2\x0F\x70\110\22", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_PSHUFHW, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\333\2\x0F\x70\110\22", IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, - {I_PSHUFLW, 3, {XMMREG,XMMREG,IMMEDIATE}, "\3\xF2\x0F\x70\110\22", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_PSHUFLW, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\3\xF2\x0F\x70\110\22", IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, - {I_PSLLDQ, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x73\207\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSLLW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF1\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSLLW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF1\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSLLW, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x71\206\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSLLD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF2\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSLLD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF2\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSLLD, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x72\206\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSLLQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF3\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSLLQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF3\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSLLQ, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x73\206\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSRAW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE1\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSRAW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE1\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSRAW, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x71\204\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSRAD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE2\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSRAD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE2\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSRAD, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x72\204\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSRLDQ, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x73\203\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSRLW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD1\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSRLW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD1\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSRLW, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x71\202\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSRLD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD2\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSRLD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD2\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSRLD, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x72\202\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSRLQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD3\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSRLQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD3\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSRLQ, 2, {XMMREG,IMMEDIATE,0}, "\3\x66\x0F\x73\202\25", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, - {I_PSUBB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF8\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF8\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xF9\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xF9\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xFA\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xFA\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBQ, 2, {MMXREG,MMXREG,0}, "\2\x0F\xFB\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBQ, 2, {MMXREG,MEMORY,0}, "\301\2\x0F\xFB\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xFB\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xFB\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBSB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE8\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBSB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE8\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBSW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE9\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBSW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE9\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBUSB, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD8\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBUSB, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD8\110", IF_WILLAMETTE|IF_SSE2}, - {I_PSUBUSW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD9\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PSUBUSW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD9\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKHBW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x68\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PUNPCKHBW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x68\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKHWD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x69\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PUNPCKHWD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x69\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKHDQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x6A\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PUNPCKHDQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x6A\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKHQDQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x6D\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKHQDQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x6D\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PUNPCKLBW, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x60\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PUNPCKLBW, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x60\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKLWD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x61\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PUNPCKLWD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x61\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKLDQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x62\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PUNPCKLDQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x62\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKLQDQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x6C\110", IF_WILLAMETTE|IF_SSE2}, - {I_PUNPCKLQDQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x6C\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PXOR, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xEF\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_PXOR, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xEF\110", IF_WILLAMETTE|IF_SSE2}, - {I_ADDPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\x58\110", IF_WILLAMETTE|IF_SSE2}, - {I_ADDPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\x58\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_ADDSD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\x58\110", IF_WILLAMETTE|IF_SSE2}, - {I_ADDSD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\x58\110", IF_WILLAMETTE|IF_SSE2}, - {I_ANDNPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\x55\110", IF_WILLAMETTE|IF_SSE2}, - {I_ANDNPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\x55\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_ANDPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\x54\110", IF_WILLAMETTE|IF_SSE2}, - {I_ANDPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\x54\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPEQPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x00", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPEQPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x00", IF_WILLAMETTE|IF_SSE2}, - {I_CMPEQSD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x00", IF_WILLAMETTE|IF_SSE2}, - {I_CMPEQSD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x00", IF_WILLAMETTE|IF_SSE2}, - {I_CMPLEPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x02", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPLEPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x02", IF_WILLAMETTE|IF_SSE2}, - {I_CMPLESD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x02", IF_WILLAMETTE|IF_SSE2}, - {I_CMPLESD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x02", IF_WILLAMETTE|IF_SSE2}, - {I_CMPLTPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x01", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPLTPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x01", IF_WILLAMETTE|IF_SSE2}, - {I_CMPLTSD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x01", IF_WILLAMETTE|IF_SSE2}, - {I_CMPLTSD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x01", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNEQPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x04", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPNEQPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x04", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNEQSD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x04", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNEQSD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x04", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNLEPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x06", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPNLEPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x06", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNLESD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x06", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNLESD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x06", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNLTPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x05", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPNLTPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x05", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNLTSD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x05", IF_WILLAMETTE|IF_SSE2}, - {I_CMPNLTSD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x05", IF_WILLAMETTE|IF_SSE2}, - {I_CMPORDPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x07", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPORDPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x07", IF_WILLAMETTE|IF_SSE2}, - {I_CMPORDSD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x07", IF_WILLAMETTE|IF_SSE2}, - {I_CMPORDSD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x07", IF_WILLAMETTE|IF_SSE2}, - {I_CMPUNORDPD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\xC2\110\1\x03", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CMPUNORDPD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\xC2\110\1\x03", IF_WILLAMETTE|IF_SSE2}, - {I_CMPUNORDSD, 2, {XMMREG,MEMORY,0}, "\301\331\3\xF2\x0F\xC2\110\1\x03", IF_WILLAMETTE|IF_SSE2}, - {I_CMPUNORDSD, 2, {XMMREG,XMMREG,0}, "\331\3\xF2\x0F\xC2\110\1\x03", IF_WILLAMETTE|IF_SSE2}, - {I_CMPPD, 3, {XMMREG,XMMREG,IMMEDIATE}, "\331\3\x66\x0F\xC2\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_CMPPD, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\331\3\x66\x0F\xC2\110\26", IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, - {I_CMPSD, 3, {XMMREG,XMMREG,IMMEDIATE}, "\331\3\xF2\x0F\xC2\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_CMPSD, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\331\3\xF2\x0F\xC2\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_COMISD, 2, {XMMREG,XMMREG,0}, "\331\3\x66\x0F\x2F\110", IF_WILLAMETTE|IF_SSE2}, - {I_COMISD, 2, {XMMREG,MEMORY,0}, "\301\331\3\x66\x0F\x2F\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTDQ2PD, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\xE6\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTDQ2PD, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\xE6\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTDQ2PS, 2, {XMMREG,XMMREG,0}, "\2\x0F\x5B\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTDQ2PS, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x5B\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CVTPD2DQ, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\xE6\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPD2DQ, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\xE6\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CVTPD2PI, 2, {MMXREG,XMMREG,0}, "\3\x66\x0F\x2D\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPD2PI, 2, {MMXREG,MEMORY,0}, "\301\3\x66\x0F\x2D\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPD2PS, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPD2PS, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CVTPI2PD, 2, {XMMREG,MMXREG,0}, "\3\x66\x0F\x2A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPI2PD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x2A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPS2DQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x5B\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPS2DQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x5B\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CVTPS2PD, 2, {XMMREG,XMMREG,0}, "\2\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTPS2PD, 2, {XMMREG,MEMORY,0}, "\301\2\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSD2SI, 2, {REG32,XMMREG,0}, "\3\xF2\x0F\x2D\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSD2SI, 2, {REG32,MEMORY,0}, "\301\3\xF2\x0F\x2D\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSD2SS, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSD2SS, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSI2SD, 2, {XMMREG,REG32,0}, "\3\xF2\x0F\x2A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSI2SD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x2A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSS2SD, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTSS2SD, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x5A\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTTPD2PI, 2, {MMXREG,XMMREG,0}, "\3\x66\x0F\x2C\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTTPD2PI, 2, {MMXREG,MEMORY,0}, "\301\3\x66\x0F\x2C\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTTPD2DQ, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xE6\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTTPD2DQ, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xE6\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CVTTPS2DQ, 2, {XMMREG,XMMREG,0}, "\333\2\x0F\x5B\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTTPS2DQ, 2, {XMMREG,MEMORY,0}, "\301\333\2\x0F\x5B\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_CVTTSD2SI, 2, {REG32,XMMREG,0}, "\3\xF2\x0F\x2C\110", IF_WILLAMETTE|IF_SSE2}, - {I_CVTTSD2SI, 2, {REG32,MEMORY,0}, "\301\3\xF2\x0F\x2C\110", IF_WILLAMETTE|IF_SSE2}, - {I_DIVPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x5E\110", IF_WILLAMETTE|IF_SSE2}, - {I_DIVPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x5E\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_DIVSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x5E\110", IF_WILLAMETTE|IF_SSE2}, - {I_DIVSD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x5E\110", IF_WILLAMETTE|IF_SSE2}, - {I_MAXPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x5F\110", IF_WILLAMETTE|IF_SSE2}, - {I_MAXPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x5F\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MAXSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x5F\110", IF_WILLAMETTE|IF_SSE2}, - {I_MAXSD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x5F\110", IF_WILLAMETTE|IF_SSE2}, - {I_MINPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x5D\110", IF_WILLAMETTE|IF_SSE2}, - {I_MINPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x5D\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MINSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x5D\110", IF_WILLAMETTE|IF_SSE2}, - {I_MINSD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x5D\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVAPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x28\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVAPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x29\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVAPD, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\x29\101", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVAPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x28\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVHPD, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\x17\101", IF_WILLAMETTE|IF_SSE2}, - {I_MOVHPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x16\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVLPD, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\x13\101", IF_WILLAMETTE|IF_SSE2}, - {I_MOVLPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x12\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVMSKPD, 2, {REG32,XMMREG,0}, "\3\x66\x0F\x50\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x10\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x11\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVSD, 2, {MEMORY,XMMREG,0}, "\300\3\xF2\x0F\x11\101", IF_WILLAMETTE|IF_SSE2}, - {I_MOVSD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x10\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVUPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x10\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVUPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x11\110", IF_WILLAMETTE|IF_SSE2}, - {I_MOVUPD, 2, {MEMORY,XMMREG,0}, "\300\3\x66\x0F\x11\101", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MOVUPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x10\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MULPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x59\110", IF_WILLAMETTE|IF_SSE2}, - {I_MULPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x59\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_MULSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x59\110", IF_WILLAMETTE|IF_SSE2}, - {I_MULSD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x59\110", IF_WILLAMETTE|IF_SSE2}, - {I_ORPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x56\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_ORPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x56\110", IF_WILLAMETTE|IF_SSE2}, - {I_SHUFPD, 3, {XMMREG,XMMREG,IMMEDIATE}, "\3\x66\x0F\xC6\110\26", IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, - {I_SHUFPD, 3, {XMMREG,MEMORY,IMMEDIATE}, "\301\3\x66\x0F\xC6\110\26", IF_WILLAMETTE|IF_SSE2|IF_SM|IF_SB|IF_AR2}, - {I_SQRTPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x51\110", IF_WILLAMETTE|IF_SSE2}, - {I_SQRTPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x51\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_SQRTSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x51\110", IF_WILLAMETTE|IF_SSE2}, - {I_SQRTSD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x51\110", IF_WILLAMETTE|IF_SSE2}, - {I_SUBPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x5C\110", IF_WILLAMETTE|IF_SSE2}, - {I_SUBPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x5C\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_SUBSD, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x5C\110", IF_WILLAMETTE|IF_SSE2}, - {I_SUBSD, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x5C\110", IF_WILLAMETTE|IF_SSE2}, - {I_UCOMISD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x2E\110", IF_WILLAMETTE|IF_SSE2}, - {I_UCOMISD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x2E\110", IF_WILLAMETTE|IF_SSE2}, - {I_UNPCKHPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x15\110", IF_WILLAMETTE|IF_SSE2}, - {I_UNPCKHPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x15\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_UNPCKLPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x14\110", IF_WILLAMETTE|IF_SSE2}, - {I_UNPCKLPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x14\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_XORPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x57\110", IF_WILLAMETTE|IF_SSE2}, - {I_XORPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x57\110", IF_WILLAMETTE|IF_SSE2|IF_SM}, - {I_ADDSUBPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\xD0\110", IF_PRESCOTT|IF_SSE3|IF_SM}, - {I_ADDSUBPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\xD0\110", IF_PRESCOTT|IF_SSE3}, - {I_ADDSUBPS, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\xD0\110", IF_PRESCOTT|IF_SSE3|IF_SM}, - {I_ADDSUBPS, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\xD0\110", IF_PRESCOTT|IF_SSE3}, - {I_HADDPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x7C\110", IF_PRESCOTT|IF_SSE3|IF_SM}, - {I_HADDPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x7C\110", IF_PRESCOTT|IF_SSE3}, - {I_HADDPS, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x7C\110", IF_PRESCOTT|IF_SSE3|IF_SM}, - {I_HADDPS, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x7C\110", IF_PRESCOTT|IF_SSE3}, - {I_HSUBPD, 2, {XMMREG,MEMORY,0}, "\301\3\x66\x0F\x7D\110", IF_PRESCOTT|IF_SSE3|IF_SM}, - {I_HSUBPD, 2, {XMMREG,XMMREG,0}, "\3\x66\x0F\x7D\110", IF_PRESCOTT|IF_SSE3}, - {I_HSUBPS, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x7D\110", IF_PRESCOTT|IF_SSE3|IF_SM}, - {I_HSUBPS, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x7D\110", IF_PRESCOTT|IF_SSE3}, - {I_LDDQU, 2, {XMMREG,MEMORY,0}, "\3\xF2\x0F\xF0\110", IF_PRESCOTT|IF_SSE3}, - {I_MOVDDUP, 2, {XMMREG,MEMORY,0}, "\301\3\xF2\x0F\x12\110", IF_PRESCOTT|IF_SSE3}, - {I_MOVDDUP, 2, {XMMREG,XMMREG,0}, "\3\xF2\x0F\x12\110", IF_PRESCOTT|IF_SSE3}, - {I_MOVSHDUP, 2, {XMMREG,MEMORY,0}, "\301\3\xF3\x0F\x16\110", IF_PRESCOTT|IF_SSE3}, - {I_MOVSHDUP, 2, {XMMREG,XMMREG,0}, "\3\xF3\x0F\x16\110", IF_PRESCOTT|IF_SSE3}, - {I_MOVSLDUP, 2, {XMMREG,MEMORY,0}, "\301\3\xF3\x0F\x12\110", IF_PRESCOTT|IF_SSE3}, - {I_MOVSLDUP, 2, {XMMREG,XMMREG,0}, "\3\xF3\x0F\x12\110", IF_PRESCOTT|IF_SSE3}, - ITEMPLATE_END +static const struct itemplate instrux[] = { + /* 0 */ {I_RESB, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+19072, IF_8086}, + /* 1 */ {I_AAA, 0, {0,0,0,0,0}, nasm_bytecodes+19962, IF_8086|IF_NOLONG}, + /* 2 */ {I_AAD, 0, {0,0,0,0,0}, nasm_bytecodes+18914, IF_8086|IF_NOLONG}, + /* 3 */ {I_AAD, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+18918, IF_8086|IF_SB|IF_NOLONG}, + /* 4 */ {I_AAM, 0, {0,0,0,0,0}, nasm_bytecodes+18922, IF_8086|IF_NOLONG}, + /* 5 */ {I_AAM, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+18926, IF_8086|IF_SB|IF_NOLONG}, + /* 6 */ {I_AAS, 0, {0,0,0,0,0}, nasm_bytecodes+19965, IF_8086|IF_NOLONG}, + /* 7 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18930, IF_8086|IF_SM}, + /* 8 */ {I_ADC, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18930, IF_8086}, + /* 9 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17034, IF_8086|IF_SM}, + /* 10 */ {I_ADC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17034, IF_8086}, + /* 11 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17039, IF_386|IF_SM}, + /* 12 */ {I_ADC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17039, IF_386}, + /* 13 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17044, IF_X64|IF_SM}, + /* 14 */ {I_ADC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17044, IF_X64}, + /* 15 */ {I_ADC, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+10228, IF_8086|IF_SM}, + /* 16 */ {I_ADC, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+10228, IF_8086}, + /* 17 */ {I_ADC, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17049, IF_8086|IF_SM}, + /* 18 */ {I_ADC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17049, IF_8086}, + /* 19 */ {I_ADC, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17054, IF_386|IF_SM}, + /* 20 */ {I_ADC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17054, IF_386}, + /* 21 */ {I_ADC, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+17059, IF_X64|IF_SM}, + /* 22 */ {I_ADC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17059, IF_X64}, + /* 23 */ {I_ADC, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13536, IF_8086}, + /* 24 */ {I_ADC, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13542, IF_386}, + /* 25 */ {I_ADC, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13548, IF_X64}, + /* 26 */ {I_ADC, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+18934, IF_8086|IF_SM}, + /* 27 */ {I_ADC, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+13536, IF_8086|IF_SM}, + /* 28 */ {I_ADC, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+17064, IF_8086|IF_SM}, + /* 29 */ {I_ADC, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+13542, IF_386|IF_SM}, + /* 30 */ {I_ADC, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17069, IF_386|IF_SM}, + /* 31 */ {I_ADC, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+13548, IF_X64|IF_SM}, + /* 32 */ {I_ADC, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17074, IF_X64|IF_SM}, + /* 33 */ {I_ADC, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+17079, IF_8086|IF_SM}, + /* 34 */ {I_ADC, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+13554, IF_8086|IF_SM}, + /* 35 */ {I_ADC, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+13560, IF_386|IF_SM}, + /* 36 */ {I_ADC, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+13566, IF_X64|IF_SM}, + /* 37 */ {I_ADC, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+17079, IF_8086|IF_SM}, + /* 38 */ {I_ADC, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+13554, IF_8086|IF_SM}, + /* 39 */ {I_ADC, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+13560, IF_386|IF_SM}, + /* 40 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18938, IF_8086|IF_SM}, + /* 41 */ {I_ADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18938, IF_8086}, + /* 42 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17084, IF_8086|IF_SM}, + /* 43 */ {I_ADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17084, IF_8086}, + /* 44 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17089, IF_386|IF_SM}, + /* 45 */ {I_ADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17089, IF_386}, + /* 46 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17094, IF_X64|IF_SM}, + /* 47 */ {I_ADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17094, IF_X64}, + /* 48 */ {I_ADD, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+10879, IF_8086|IF_SM}, + /* 49 */ {I_ADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+10879, IF_8086}, + /* 50 */ {I_ADD, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17099, IF_8086|IF_SM}, + /* 51 */ {I_ADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17099, IF_8086}, + /* 52 */ {I_ADD, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17104, IF_386|IF_SM}, + /* 53 */ {I_ADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17104, IF_386}, + /* 54 */ {I_ADD, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+17109, IF_X64|IF_SM}, + /* 55 */ {I_ADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17109, IF_X64}, + /* 56 */ {I_ADD, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13572, IF_8086}, + /* 57 */ {I_ADD, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13578, IF_386}, + /* 58 */ {I_ADD, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13584, IF_X64}, + /* 59 */ {I_ADD, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+18942, IF_8086|IF_SM}, + /* 60 */ {I_ADD, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+13572, IF_8086|IF_SM}, + /* 61 */ {I_ADD, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+17114, IF_8086|IF_SM}, + /* 62 */ {I_ADD, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+13578, IF_386|IF_SM}, + /* 63 */ {I_ADD, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17119, IF_386|IF_SM}, + /* 64 */ {I_ADD, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+13584, IF_X64|IF_SM}, + /* 65 */ {I_ADD, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17124, IF_X64|IF_SM}, + /* 66 */ {I_ADD, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+17129, IF_8086|IF_SM}, + /* 67 */ {I_ADD, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+13590, IF_8086|IF_SM}, + /* 68 */ {I_ADD, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+13596, IF_386|IF_SM}, + /* 69 */ {I_ADD, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+13602, IF_X64|IF_SM}, + /* 70 */ {I_ADD, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+17129, IF_8086|IF_SM}, + /* 71 */ {I_ADD, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+13590, IF_8086|IF_SM}, + /* 72 */ {I_ADD, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+13596, IF_386|IF_SM}, + /* 73 */ {I_AND, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18946, IF_8086|IF_SM}, + /* 74 */ {I_AND, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18946, IF_8086}, + /* 75 */ {I_AND, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17134, IF_8086|IF_SM}, + /* 76 */ {I_AND, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17134, IF_8086}, + /* 77 */ {I_AND, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17139, IF_386|IF_SM}, + /* 78 */ {I_AND, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17139, IF_386}, + /* 79 */ {I_AND, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17144, IF_X64|IF_SM}, + /* 80 */ {I_AND, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17144, IF_X64}, + /* 81 */ {I_AND, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+11166, IF_8086|IF_SM}, + /* 82 */ {I_AND, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+11166, IF_8086}, + /* 83 */ {I_AND, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17149, IF_8086|IF_SM}, + /* 84 */ {I_AND, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17149, IF_8086}, + /* 85 */ {I_AND, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17154, IF_386|IF_SM}, + /* 86 */ {I_AND, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17154, IF_386}, + /* 87 */ {I_AND, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+17159, IF_X64|IF_SM}, + /* 88 */ {I_AND, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17159, IF_X64}, + /* 89 */ {I_AND, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13608, IF_8086}, + /* 90 */ {I_AND, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13614, IF_386}, + /* 91 */ {I_AND, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13620, IF_X64}, + /* 92 */ {I_AND, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+18950, IF_8086|IF_SM}, + /* 93 */ {I_AND, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+13608, IF_8086|IF_SM}, + /* 94 */ {I_AND, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+17164, IF_8086|IF_SM}, + /* 95 */ {I_AND, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+13614, IF_386|IF_SM}, + /* 96 */ {I_AND, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17169, IF_386|IF_SM}, + /* 97 */ {I_AND, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+13620, IF_X64|IF_SM}, + /* 98 */ {I_AND, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17174, IF_X64|IF_SM}, + /* 99 */ {I_AND, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+17179, IF_8086|IF_SM}, + /* 100 */ {I_AND, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+13626, IF_8086|IF_SM}, + /* 101 */ {I_AND, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+13632, IF_386|IF_SM}, + /* 102 */ {I_AND, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+13638, IF_X64|IF_SM}, + /* 103 */ {I_AND, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+17179, IF_8086|IF_SM}, + /* 104 */ {I_AND, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+13626, IF_8086|IF_SM}, + /* 105 */ {I_AND, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+13632, IF_386|IF_SM}, + /* 106 */ {I_ARPL, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18954, IF_286|IF_PROT|IF_SM|IF_NOLONG}, + /* 107 */ {I_ARPL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18954, IF_286|IF_PROT|IF_NOLONG}, + /* 108 */ {I_BOUND, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17184, IF_186|IF_NOLONG}, + /* 109 */ {I_BOUND, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17189, IF_386|IF_NOLONG}, + /* 110 */ {I_BSF, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+13644, IF_386|IF_SM}, + /* 111 */ {I_BSF, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13644, IF_386}, + /* 112 */ {I_BSF, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+13650, IF_386|IF_SM}, + /* 113 */ {I_BSF, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13650, IF_386}, + /* 114 */ {I_BSF, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+13656, IF_X64|IF_SM}, + /* 115 */ {I_BSF, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13656, IF_X64}, + /* 116 */ {I_BSR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+13662, IF_386|IF_SM}, + /* 117 */ {I_BSR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13662, IF_386}, + /* 118 */ {I_BSR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+13668, IF_386|IF_SM}, + /* 119 */ {I_BSR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13668, IF_386}, + /* 120 */ {I_BSR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+13674, IF_X64|IF_SM}, + /* 121 */ {I_BSR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13674, IF_X64}, + /* 122 */ {I_BSWAP, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+13680, IF_486}, + /* 123 */ {I_BSWAP, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+13686, IF_X64}, + /* 124 */ {I_BT, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13692, IF_386|IF_SM}, + /* 125 */ {I_BT, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13692, IF_386}, + /* 126 */ {I_BT, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13698, IF_386|IF_SM}, + /* 127 */ {I_BT, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13698, IF_386}, + /* 128 */ {I_BT, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13704, IF_X64|IF_SM}, + /* 129 */ {I_BT, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13704, IF_X64}, + /* 130 */ {I_BT, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+7236, IF_386|IF_SB}, + /* 131 */ {I_BT, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+7243, IF_386|IF_SB}, + /* 132 */ {I_BT, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+7250, IF_X64|IF_SB}, + /* 133 */ {I_BTC, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13710, IF_386|IF_SM}, + /* 134 */ {I_BTC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13710, IF_386}, + /* 135 */ {I_BTC, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13716, IF_386|IF_SM}, + /* 136 */ {I_BTC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13716, IF_386}, + /* 137 */ {I_BTC, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13722, IF_X64|IF_SM}, + /* 138 */ {I_BTC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13722, IF_X64}, + /* 139 */ {I_BTC, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+7257, IF_386|IF_SB}, + /* 140 */ {I_BTC, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+7264, IF_386|IF_SB}, + /* 141 */ {I_BTC, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+7271, IF_X64|IF_SB}, + /* 142 */ {I_BTR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13728, IF_386|IF_SM}, + /* 143 */ {I_BTR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13728, IF_386}, + /* 144 */ {I_BTR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13734, IF_386|IF_SM}, + /* 145 */ {I_BTR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13734, IF_386}, + /* 146 */ {I_BTR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13740, IF_X64|IF_SM}, + /* 147 */ {I_BTR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13740, IF_X64}, + /* 148 */ {I_BTR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+7278, IF_386|IF_SB}, + /* 149 */ {I_BTR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+7285, IF_386|IF_SB}, + /* 150 */ {I_BTR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+7292, IF_X64|IF_SB}, + /* 151 */ {I_BTS, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13746, IF_386|IF_SM}, + /* 152 */ {I_BTS, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13746, IF_386}, + /* 153 */ {I_BTS, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13752, IF_386|IF_SM}, + /* 154 */ {I_BTS, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13752, IF_386}, + /* 155 */ {I_BTS, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13758, IF_X64|IF_SM}, + /* 156 */ {I_BTS, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13758, IF_X64}, + /* 157 */ {I_BTS, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+7299, IF_386|IF_SB}, + /* 158 */ {I_BTS, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+7306, IF_386|IF_SB}, + /* 159 */ {I_BTS, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+7313, IF_X64|IF_SB}, + /* 160 */ {I_CALL, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17194, IF_8086}, + /* 161 */ {I_CALL, 1, {IMMEDIATE|NEAR,0,0,0,0}, nasm_bytecodes+17194, IF_8086}, + /* 162 */ {I_CALL, 1, {IMMEDIATE|BITS16,0,0,0,0}, nasm_bytecodes+17199, IF_8086}, + /* 163 */ {I_CALL, 1, {IMMEDIATE|BITS16|NEAR,0,0,0,0}, nasm_bytecodes+17199, IF_8086}, + /* 164 */ {I_CALL, 1, {IMMEDIATE|BITS32,0,0,0,0}, nasm_bytecodes+17204, IF_386}, + /* 165 */ {I_CALL, 1, {IMMEDIATE|BITS32|NEAR,0,0,0,0}, nasm_bytecodes+17204, IF_386}, + /* 166 */ {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, nasm_bytecodes+13782, IF_8086|IF_NOLONG}, + /* 167 */ {I_CALL, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0,0,0}, nasm_bytecodes+13788, IF_8086|IF_NOLONG}, + /* 168 */ {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+13788, IF_8086|IF_NOLONG}, + /* 169 */ {I_CALL, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0,0,0}, nasm_bytecodes+13794, IF_386|IF_NOLONG}, + /* 170 */ {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+13794, IF_386|IF_NOLONG}, + /* 171 */ {I_CALL, 1, {MEMORY|FAR,0,0,0,0}, nasm_bytecodes+17209, IF_8086|IF_NOLONG}, + /* 172 */ {I_CALL, 1, {MEMORY|FAR,0,0,0,0}, nasm_bytecodes+17214, IF_X64}, + /* 173 */ {I_CALL, 1, {MEMORY|BITS16|FAR,0,0,0,0}, nasm_bytecodes+17219, IF_8086}, + /* 174 */ {I_CALL, 1, {MEMORY|BITS32|FAR,0,0,0,0}, nasm_bytecodes+17224, IF_386}, + /* 175 */ {I_CALL, 1, {MEMORY|BITS64|FAR,0,0,0,0}, nasm_bytecodes+17214, IF_X64}, + /* 176 */ {I_CALL, 1, {MEMORY|NEAR,0,0,0,0}, nasm_bytecodes+17229, IF_8086}, + /* 177 */ {I_CALL, 1, {MEMORY|BITS16|NEAR,0,0,0,0}, nasm_bytecodes+17234, IF_8086}, + /* 178 */ {I_CALL, 1, {MEMORY|BITS32|NEAR,0,0,0,0}, nasm_bytecodes+17239, IF_386|IF_NOLONG}, + /* 179 */ {I_CALL, 1, {MEMORY|BITS64|NEAR,0,0,0,0}, nasm_bytecodes+17244, IF_X64}, + /* 180 */ {I_CALL, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17234, IF_8086}, + /* 181 */ {I_CALL, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17239, IF_386|IF_NOLONG}, + /* 182 */ {I_CALL, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17249, IF_X64}, + /* 183 */ {I_CALL, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17229, IF_8086}, + /* 184 */ {I_CALL, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+17234, IF_8086}, + /* 185 */ {I_CALL, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+17239, IF_386|IF_NOLONG}, + /* 186 */ {I_CALL, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+17249, IF_X64}, + /* 187 */ {I_CBW, 0, {0,0,0,0,0}, nasm_bytecodes+18966, IF_8086}, + /* 188 */ {I_CDQ, 0, {0,0,0,0,0}, nasm_bytecodes+18970, IF_386}, + /* 189 */ {I_CDQE, 0, {0,0,0,0,0}, nasm_bytecodes+18974, IF_X64}, + /* 190 */ {I_CLC, 0, {0,0,0,0,0}, nasm_bytecodes+18686, IF_8086}, + /* 191 */ {I_CLD, 0, {0,0,0,0,0}, nasm_bytecodes+19968, IF_8086}, + /* 192 */ {I_CLGI, 0, {0,0,0,0,0}, nasm_bytecodes+17254, IF_X64|IF_AMD}, + /* 193 */ {I_CLI, 0, {0,0,0,0,0}, nasm_bytecodes+19971, IF_8086}, + /* 194 */ {I_CLTS, 0, {0,0,0,0,0}, nasm_bytecodes+18978, IF_286|IF_PRIV}, + /* 195 */ {I_CMC, 0, {0,0,0,0,0}, nasm_bytecodes+19974, IF_8086}, + /* 196 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18982, IF_8086|IF_SM}, + /* 197 */ {I_CMP, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18982, IF_8086}, + /* 198 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17259, IF_8086|IF_SM}, + /* 199 */ {I_CMP, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17259, IF_8086}, + /* 200 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17264, IF_386|IF_SM}, + /* 201 */ {I_CMP, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17264, IF_386}, + /* 202 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17269, IF_X64|IF_SM}, + /* 203 */ {I_CMP, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17269, IF_X64}, + /* 204 */ {I_CMP, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+11124, IF_8086|IF_SM}, + /* 205 */ {I_CMP, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+11124, IF_8086}, + /* 206 */ {I_CMP, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17274, IF_8086|IF_SM}, + /* 207 */ {I_CMP, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+17274, IF_8086}, + /* 208 */ {I_CMP, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17279, IF_386|IF_SM}, + /* 209 */ {I_CMP, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+17279, IF_386}, + /* 210 */ {I_CMP, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+17284, IF_X64|IF_SM}, + /* 211 */ {I_CMP, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+17284, IF_X64}, + /* 212 */ {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13800, IF_8086}, + /* 213 */ {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13806, IF_386}, + /* 214 */ {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13812, IF_X64}, + /* 215 */ {I_CMP, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+18986, IF_8086|IF_SM}, + /* 216 */ {I_CMP, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+13800, IF_8086|IF_SM}, + /* 217 */ {I_CMP, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+17289, IF_8086|IF_SM}, + /* 218 */ {I_CMP, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+13806, IF_386|IF_SM}, + /* 219 */ {I_CMP, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17294, IF_386|IF_SM}, + /* 220 */ {I_CMP, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+13812, IF_X64|IF_SM}, + /* 221 */ {I_CMP, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17299, IF_X64|IF_SM}, + /* 222 */ {I_CMP, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+17304, IF_8086|IF_SM}, + /* 223 */ {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+13818, IF_8086|IF_SM}, + /* 224 */ {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+13824, IF_386|IF_SM}, + /* 225 */ {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+13830, IF_X64|IF_SM}, + /* 226 */ {I_CMP, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+17304, IF_8086|IF_SM}, + /* 227 */ {I_CMP, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+13818, IF_8086|IF_SM}, + /* 228 */ {I_CMP, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+13824, IF_386|IF_SM}, + /* 229 */ {I_CMPSB, 0, {0,0,0,0,0}, nasm_bytecodes+18990, IF_8086}, + /* 230 */ {I_CMPSD, 0, {0,0,0,0,0}, nasm_bytecodes+17309, IF_386}, + /* 231 */ {I_CMPSQ, 0, {0,0,0,0,0}, nasm_bytecodes+17314, IF_X64}, + /* 232 */ {I_CMPSW, 0, {0,0,0,0,0}, nasm_bytecodes+17319, IF_8086}, + /* 233 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+17324, IF_PENT|IF_SM}, + /* 234 */ {I_CMPXCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+17324, IF_PENT}, + /* 235 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13836, IF_PENT|IF_SM}, + /* 236 */ {I_CMPXCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13836, IF_PENT}, + /* 237 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13842, IF_PENT|IF_SM}, + /* 238 */ {I_CMPXCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13842, IF_PENT}, + /* 239 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13848, IF_X64|IF_SM}, + /* 240 */ {I_CMPXCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13848, IF_X64}, + /* 241 */ {I_CMPXCHG8B, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+13867, IF_PENT}, + /* 242 */ {I_CMPXCHG16B, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+13866, IF_X64}, + /* 243 */ {I_CPUID, 0, {0,0,0,0,0}, nasm_bytecodes+18994, IF_PENT}, + /* 244 */ {I_CPU_READ, 0, {0,0,0,0,0}, nasm_bytecodes+18998, IF_PENT|IF_CYRIX}, + /* 245 */ {I_CPU_WRITE, 0, {0,0,0,0,0}, nasm_bytecodes+19002, IF_PENT|IF_CYRIX}, + /* 246 */ {I_CQO, 0, {0,0,0,0,0}, nasm_bytecodes+19006, IF_X64}, + /* 247 */ {I_CWD, 0, {0,0,0,0,0}, nasm_bytecodes+19010, IF_8086}, + /* 248 */ {I_CWDE, 0, {0,0,0,0,0}, nasm_bytecodes+19014, IF_386}, + /* 249 */ {I_DAA, 0, {0,0,0,0,0}, nasm_bytecodes+19977, IF_8086|IF_NOLONG}, + /* 250 */ {I_DAS, 0, {0,0,0,0,0}, nasm_bytecodes+19980, IF_8086|IF_NOLONG}, + /* 251 */ {I_DEC, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+19018, IF_8086|IF_NOLONG}, + /* 252 */ {I_DEC, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+19022, IF_386|IF_NOLONG}, + /* 253 */ {I_DEC, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19026, IF_8086}, + /* 254 */ {I_DEC, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17334, IF_8086}, + /* 255 */ {I_DEC, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17339, IF_386}, + /* 256 */ {I_DEC, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17344, IF_X64}, + /* 257 */ {I_DIV, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19030, IF_8086}, + /* 258 */ {I_DIV, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17349, IF_8086}, + /* 259 */ {I_DIV, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17354, IF_386}, + /* 260 */ {I_DIV, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17359, IF_X64}, + /* 261 */ {I_DMINT, 0, {0,0,0,0,0}, nasm_bytecodes+19034, IF_P6|IF_CYRIX}, + /* 262 */ {I_EMMS, 0, {0,0,0,0,0}, nasm_bytecodes+19038, IF_PENT|IF_MMX}, + /* 263 */ {I_ENTER, 2, {IMMEDIATE,IMMEDIATE,0,0,0}, nasm_bytecodes+17364, IF_186}, + /* 264 */ {I_EQU, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+5778, IF_8086}, + /* 265 */ {I_EQU, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, nasm_bytecodes+5778, IF_8086}, + /* 266 */ {I_F2XM1, 0, {0,0,0,0,0}, nasm_bytecodes+19042, IF_8086|IF_FPU}, + /* 267 */ {I_FABS, 0, {0,0,0,0,0}, nasm_bytecodes+19046, IF_8086|IF_FPU}, + /* 268 */ {I_FADD, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19050, IF_8086|IF_FPU}, + /* 269 */ {I_FADD, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19054, IF_8086|IF_FPU}, + /* 270 */ {I_FADD, 1, {FPUREG|TO,0,0,0,0}, nasm_bytecodes+17369, IF_8086|IF_FPU}, + /* 271 */ {I_FADD, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17374, IF_8086|IF_FPU}, + /* 272 */ {I_FADD, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17369, IF_8086|IF_FPU}, + /* 273 */ {I_FADD, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17379, IF_8086|IF_FPU}, + /* 274 */ {I_FADDP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17384, IF_8086|IF_FPU}, + /* 275 */ {I_FADDP, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17384, IF_8086|IF_FPU}, + /* 276 */ {I_FBLD, 1, {MEMORY|BITS80,0,0,0,0}, nasm_bytecodes+19062, IF_8086|IF_FPU}, + /* 277 */ {I_FBLD, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+19062, IF_8086|IF_FPU}, + /* 278 */ {I_FBSTP, 1, {MEMORY|BITS80,0,0,0,0}, nasm_bytecodes+19066, IF_8086|IF_FPU}, + /* 279 */ {I_FBSTP, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+19066, IF_8086|IF_FPU}, + /* 280 */ {I_FCHS, 0, {0,0,0,0,0}, nasm_bytecodes+19070, IF_8086|IF_FPU}, + /* 281 */ {I_FCLEX, 0, {0,0,0,0,0}, nasm_bytecodes+17389, IF_8086|IF_FPU}, + /* 282 */ {I_FCMOVB, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17394, IF_P6|IF_FPU}, + /* 283 */ {I_FCMOVB, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17399, IF_P6|IF_FPU}, + /* 284 */ {I_FCMOVBE, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17404, IF_P6|IF_FPU}, + /* 285 */ {I_FCMOVBE, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17409, IF_P6|IF_FPU}, + /* 286 */ {I_FCMOVE, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17414, IF_P6|IF_FPU}, + /* 287 */ {I_FCMOVE, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17419, IF_P6|IF_FPU}, + /* 288 */ {I_FCMOVNB, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17424, IF_P6|IF_FPU}, + /* 289 */ {I_FCMOVNB, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17429, IF_P6|IF_FPU}, + /* 290 */ {I_FCMOVNBE, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17434, IF_P6|IF_FPU}, + /* 291 */ {I_FCMOVNBE, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17439, IF_P6|IF_FPU}, + /* 292 */ {I_FCMOVNE, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17444, IF_P6|IF_FPU}, + /* 293 */ {I_FCMOVNE, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17449, IF_P6|IF_FPU}, + /* 294 */ {I_FCMOVNU, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17454, IF_P6|IF_FPU}, + /* 295 */ {I_FCMOVNU, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17459, IF_P6|IF_FPU}, + /* 296 */ {I_FCMOVU, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17464, IF_P6|IF_FPU}, + /* 297 */ {I_FCMOVU, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17469, IF_P6|IF_FPU}, + /* 298 */ {I_FCOM, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19106, IF_8086|IF_FPU}, + /* 299 */ {I_FCOM, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19110, IF_8086|IF_FPU}, + /* 300 */ {I_FCOM, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17474, IF_8086|IF_FPU}, + /* 301 */ {I_FCOM, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17479, IF_8086|IF_FPU}, + /* 302 */ {I_FCOMI, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17484, IF_P6|IF_FPU}, + /* 303 */ {I_FCOMI, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17489, IF_P6|IF_FPU}, + /* 304 */ {I_FCOMIP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17494, IF_P6|IF_FPU}, + /* 305 */ {I_FCOMIP, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17499, IF_P6|IF_FPU}, + /* 306 */ {I_FCOMP, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19126, IF_8086|IF_FPU}, + /* 307 */ {I_FCOMP, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19130, IF_8086|IF_FPU}, + /* 308 */ {I_FCOMP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17504, IF_8086|IF_FPU}, + /* 309 */ {I_FCOMP, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17509, IF_8086|IF_FPU}, + /* 310 */ {I_FCOMPP, 0, {0,0,0,0,0}, nasm_bytecodes+19138, IF_8086|IF_FPU}, + /* 311 */ {I_FCOS, 0, {0,0,0,0,0}, nasm_bytecodes+19142, IF_386|IF_FPU}, + /* 312 */ {I_FDECSTP, 0, {0,0,0,0,0}, nasm_bytecodes+19146, IF_8086|IF_FPU}, + /* 313 */ {I_FDISI, 0, {0,0,0,0,0}, nasm_bytecodes+17514, IF_8086|IF_FPU}, + /* 314 */ {I_FDIV, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19150, IF_8086|IF_FPU}, + /* 315 */ {I_FDIV, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19154, IF_8086|IF_FPU}, + /* 316 */ {I_FDIV, 1, {FPUREG|TO,0,0,0,0}, nasm_bytecodes+17519, IF_8086|IF_FPU}, + /* 317 */ {I_FDIV, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17524, IF_8086|IF_FPU}, + /* 318 */ {I_FDIV, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17519, IF_8086|IF_FPU}, + /* 319 */ {I_FDIV, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17529, IF_8086|IF_FPU}, + /* 320 */ {I_FDIVP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17534, IF_8086|IF_FPU}, + /* 321 */ {I_FDIVP, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17534, IF_8086|IF_FPU}, + /* 322 */ {I_FDIVR, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19162, IF_8086|IF_FPU}, + /* 323 */ {I_FDIVR, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19166, IF_8086|IF_FPU}, + /* 324 */ {I_FDIVR, 1, {FPUREG|TO,0,0,0,0}, nasm_bytecodes+17539, IF_8086|IF_FPU}, + /* 325 */ {I_FDIVR, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17539, IF_8086|IF_FPU}, + /* 326 */ {I_FDIVR, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17544, IF_8086|IF_FPU}, + /* 327 */ {I_FDIVR, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17549, IF_8086|IF_FPU}, + /* 328 */ {I_FDIVRP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17554, IF_8086|IF_FPU}, + /* 329 */ {I_FDIVRP, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17554, IF_8086|IF_FPU}, + /* 330 */ {I_FEMMS, 0, {0,0,0,0,0}, nasm_bytecodes+19174, IF_PENT|IF_3DNOW}, + /* 331 */ {I_FENI, 0, {0,0,0,0,0}, nasm_bytecodes+17559, IF_8086|IF_FPU}, + /* 332 */ {I_FFREE, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17564, IF_8086|IF_FPU}, + /* 333 */ {I_FFREE, 0, {0,0,0,0,0}, nasm_bytecodes+19178, IF_8086|IF_FPU}, + /* 334 */ {I_FFREEP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17569, IF_286|IF_FPU|IF_UNDOC}, + /* 335 */ {I_FFREEP, 0, {0,0,0,0,0}, nasm_bytecodes+19182, IF_286|IF_FPU|IF_UNDOC}, + /* 336 */ {I_FIADD, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19186, IF_8086|IF_FPU}, + /* 337 */ {I_FIADD, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19190, IF_8086|IF_FPU}, + /* 338 */ {I_FICOM, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19194, IF_8086|IF_FPU}, + /* 339 */ {I_FICOM, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19198, IF_8086|IF_FPU}, + /* 340 */ {I_FICOMP, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19202, IF_8086|IF_FPU}, + /* 341 */ {I_FICOMP, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19206, IF_8086|IF_FPU}, + /* 342 */ {I_FIDIV, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19210, IF_8086|IF_FPU}, + /* 343 */ {I_FIDIV, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19214, IF_8086|IF_FPU}, + /* 344 */ {I_FIDIVR, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19218, IF_8086|IF_FPU}, + /* 345 */ {I_FIDIVR, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19222, IF_8086|IF_FPU}, + /* 346 */ {I_FILD, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19226, IF_8086|IF_FPU}, + /* 347 */ {I_FILD, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19230, IF_8086|IF_FPU}, + /* 348 */ {I_FILD, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19234, IF_8086|IF_FPU}, + /* 349 */ {I_FIMUL, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19238, IF_8086|IF_FPU}, + /* 350 */ {I_FIMUL, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19242, IF_8086|IF_FPU}, + /* 351 */ {I_FINCSTP, 0, {0,0,0,0,0}, nasm_bytecodes+19246, IF_8086|IF_FPU}, + /* 352 */ {I_FINIT, 0, {0,0,0,0,0}, nasm_bytecodes+17574, IF_8086|IF_FPU}, + /* 353 */ {I_FIST, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19250, IF_8086|IF_FPU}, + /* 354 */ {I_FIST, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19254, IF_8086|IF_FPU}, + /* 355 */ {I_FISTP, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19258, IF_8086|IF_FPU}, + /* 356 */ {I_FISTP, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19262, IF_8086|IF_FPU}, + /* 357 */ {I_FISTP, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19266, IF_8086|IF_FPU}, + /* 358 */ {I_FISTTP, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19270, IF_PRESCOTT|IF_FPU}, + /* 359 */ {I_FISTTP, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19274, IF_PRESCOTT|IF_FPU}, + /* 360 */ {I_FISTTP, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19278, IF_PRESCOTT|IF_FPU}, + /* 361 */ {I_FISUB, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19282, IF_8086|IF_FPU}, + /* 362 */ {I_FISUB, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19286, IF_8086|IF_FPU}, + /* 363 */ {I_FISUBR, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19290, IF_8086|IF_FPU}, + /* 364 */ {I_FISUBR, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+19294, IF_8086|IF_FPU}, + /* 365 */ {I_FLD, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19298, IF_8086|IF_FPU}, + /* 366 */ {I_FLD, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19302, IF_8086|IF_FPU}, + /* 367 */ {I_FLD, 1, {MEMORY|BITS80,0,0,0,0}, nasm_bytecodes+19306, IF_8086|IF_FPU}, + /* 368 */ {I_FLD, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17579, IF_8086|IF_FPU}, + /* 369 */ {I_FLD1, 0, {0,0,0,0,0}, nasm_bytecodes+19314, IF_8086|IF_FPU}, + /* 370 */ {I_FLDCW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+19318, IF_8086|IF_FPU|IF_SW}, + /* 371 */ {I_FLDENV, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+19322, IF_8086|IF_FPU}, + /* 372 */ {I_FLDL2E, 0, {0,0,0,0,0}, nasm_bytecodes+19326, IF_8086|IF_FPU}, + /* 373 */ {I_FLDL2T, 0, {0,0,0,0,0}, nasm_bytecodes+19330, IF_8086|IF_FPU}, + /* 374 */ {I_FLDLG2, 0, {0,0,0,0,0}, nasm_bytecodes+19334, IF_8086|IF_FPU}, + /* 375 */ {I_FLDLN2, 0, {0,0,0,0,0}, nasm_bytecodes+19338, IF_8086|IF_FPU}, + /* 376 */ {I_FLDPI, 0, {0,0,0,0,0}, nasm_bytecodes+19342, IF_8086|IF_FPU}, + /* 377 */ {I_FLDZ, 0, {0,0,0,0,0}, nasm_bytecodes+19346, IF_8086|IF_FPU}, + /* 378 */ {I_FMUL, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19350, IF_8086|IF_FPU}, + /* 379 */ {I_FMUL, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19354, IF_8086|IF_FPU}, + /* 380 */ {I_FMUL, 1, {FPUREG|TO,0,0,0,0}, nasm_bytecodes+17584, IF_8086|IF_FPU}, + /* 381 */ {I_FMUL, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17584, IF_8086|IF_FPU}, + /* 382 */ {I_FMUL, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17589, IF_8086|IF_FPU}, + /* 383 */ {I_FMUL, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17594, IF_8086|IF_FPU}, + /* 384 */ {I_FMULP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17599, IF_8086|IF_FPU}, + /* 385 */ {I_FMULP, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17599, IF_8086|IF_FPU}, + /* 386 */ {I_FNCLEX, 0, {0,0,0,0,0}, nasm_bytecodes+17390, IF_8086|IF_FPU}, + /* 387 */ {I_FNDISI, 0, {0,0,0,0,0}, nasm_bytecodes+17515, IF_8086|IF_FPU}, + /* 388 */ {I_FNENI, 0, {0,0,0,0,0}, nasm_bytecodes+17560, IF_8086|IF_FPU}, + /* 389 */ {I_FNINIT, 0, {0,0,0,0,0}, nasm_bytecodes+17575, IF_8086|IF_FPU}, + /* 390 */ {I_FNOP, 0, {0,0,0,0,0}, nasm_bytecodes+19362, IF_8086|IF_FPU}, + /* 391 */ {I_FNSAVE, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17605, IF_8086|IF_FPU}, + /* 392 */ {I_FNSTCW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17615, IF_8086|IF_FPU|IF_SW}, + /* 393 */ {I_FNSTENV, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17620, IF_8086|IF_FPU}, + /* 394 */ {I_FNSTSW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17630, IF_8086|IF_FPU|IF_SW}, + /* 395 */ {I_FNSTSW, 1, {REG_AX,0,0,0,0}, nasm_bytecodes+17635, IF_286|IF_FPU}, + /* 396 */ {I_FPATAN, 0, {0,0,0,0,0}, nasm_bytecodes+19366, IF_8086|IF_FPU}, + /* 397 */ {I_FPREM, 0, {0,0,0,0,0}, nasm_bytecodes+19370, IF_8086|IF_FPU}, + /* 398 */ {I_FPREM1, 0, {0,0,0,0,0}, nasm_bytecodes+19374, IF_386|IF_FPU}, + /* 399 */ {I_FPTAN, 0, {0,0,0,0,0}, nasm_bytecodes+19378, IF_8086|IF_FPU}, + /* 400 */ {I_FRNDINT, 0, {0,0,0,0,0}, nasm_bytecodes+19382, IF_8086|IF_FPU}, + /* 401 */ {I_FRSTOR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+19386, IF_8086|IF_FPU}, + /* 402 */ {I_FSAVE, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17604, IF_8086|IF_FPU}, + /* 403 */ {I_FSCALE, 0, {0,0,0,0,0}, nasm_bytecodes+19390, IF_8086|IF_FPU}, + /* 404 */ {I_FSETPM, 0, {0,0,0,0,0}, nasm_bytecodes+19394, IF_286|IF_FPU}, + /* 405 */ {I_FSIN, 0, {0,0,0,0,0}, nasm_bytecodes+19398, IF_386|IF_FPU}, + /* 406 */ {I_FSINCOS, 0, {0,0,0,0,0}, nasm_bytecodes+19402, IF_386|IF_FPU}, + /* 407 */ {I_FSQRT, 0, {0,0,0,0,0}, nasm_bytecodes+19406, IF_8086|IF_FPU}, + /* 408 */ {I_FST, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19410, IF_8086|IF_FPU}, + /* 409 */ {I_FST, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19414, IF_8086|IF_FPU}, + /* 410 */ {I_FST, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17609, IF_8086|IF_FPU}, + /* 411 */ {I_FSTCW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17614, IF_8086|IF_FPU|IF_SW}, + /* 412 */ {I_FSTENV, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17619, IF_8086|IF_FPU}, + /* 413 */ {I_FSTP, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19422, IF_8086|IF_FPU}, + /* 414 */ {I_FSTP, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19426, IF_8086|IF_FPU}, + /* 415 */ {I_FSTP, 1, {MEMORY|BITS80,0,0,0,0}, nasm_bytecodes+19430, IF_8086|IF_FPU}, + /* 416 */ {I_FSTP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17624, IF_8086|IF_FPU}, + /* 417 */ {I_FSTSW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17629, IF_8086|IF_FPU|IF_SW}, + /* 418 */ {I_FSTSW, 1, {REG_AX,0,0,0,0}, nasm_bytecodes+17634, IF_286|IF_FPU}, + /* 419 */ {I_FSUB, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19438, IF_8086|IF_FPU}, + /* 420 */ {I_FSUB, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19442, IF_8086|IF_FPU}, + /* 421 */ {I_FSUB, 1, {FPUREG|TO,0,0,0,0}, nasm_bytecodes+17639, IF_8086|IF_FPU}, + /* 422 */ {I_FSUB, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17639, IF_8086|IF_FPU}, + /* 423 */ {I_FSUB, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17644, IF_8086|IF_FPU}, + /* 424 */ {I_FSUB, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17649, IF_8086|IF_FPU}, + /* 425 */ {I_FSUBP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17654, IF_8086|IF_FPU}, + /* 426 */ {I_FSUBP, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17654, IF_8086|IF_FPU}, + /* 427 */ {I_FSUBR, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+19450, IF_8086|IF_FPU}, + /* 428 */ {I_FSUBR, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+19454, IF_8086|IF_FPU}, + /* 429 */ {I_FSUBR, 1, {FPUREG|TO,0,0,0,0}, nasm_bytecodes+17659, IF_8086|IF_FPU}, + /* 430 */ {I_FSUBR, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17659, IF_8086|IF_FPU}, + /* 431 */ {I_FSUBR, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17664, IF_8086|IF_FPU}, + /* 432 */ {I_FSUBR, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17669, IF_8086|IF_FPU}, + /* 433 */ {I_FSUBRP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17674, IF_8086|IF_FPU}, + /* 434 */ {I_FSUBRP, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17674, IF_8086|IF_FPU}, + /* 435 */ {I_FTST, 0, {0,0,0,0,0}, nasm_bytecodes+19462, IF_8086|IF_FPU}, + /* 436 */ {I_FUCOM, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17679, IF_386|IF_FPU}, + /* 437 */ {I_FUCOM, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17684, IF_386|IF_FPU}, + /* 438 */ {I_FUCOMI, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17689, IF_P6|IF_FPU}, + /* 439 */ {I_FUCOMI, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17694, IF_P6|IF_FPU}, + /* 440 */ {I_FUCOMIP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17699, IF_P6|IF_FPU}, + /* 441 */ {I_FUCOMIP, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17704, IF_P6|IF_FPU}, + /* 442 */ {I_FUCOMP, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17709, IF_386|IF_FPU}, + /* 443 */ {I_FUCOMP, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17714, IF_386|IF_FPU}, + /* 444 */ {I_FUCOMPP, 0, {0,0,0,0,0}, nasm_bytecodes+19482, IF_386|IF_FPU}, + /* 445 */ {I_FXAM, 0, {0,0,0,0,0}, nasm_bytecodes+19486, IF_8086|IF_FPU}, + /* 446 */ {I_FXCH, 1, {FPUREG,0,0,0,0}, nasm_bytecodes+17719, IF_8086|IF_FPU}, + /* 447 */ {I_FXCH, 2, {FPUREG,FPU0,0,0,0}, nasm_bytecodes+17719, IF_8086|IF_FPU}, + /* 448 */ {I_FXCH, 2, {FPU0,FPUREG,0,0,0}, nasm_bytecodes+17724, IF_8086|IF_FPU}, + /* 449 */ {I_FXTRACT, 0, {0,0,0,0,0}, nasm_bytecodes+19494, IF_8086|IF_FPU}, + /* 450 */ {I_FYL2X, 0, {0,0,0,0,0}, nasm_bytecodes+19498, IF_8086|IF_FPU}, + /* 451 */ {I_FYL2XP1, 0, {0,0,0,0,0}, nasm_bytecodes+19502, IF_8086|IF_FPU}, + /* 452 */ {I_HLT, 0, {0,0,0,0,0}, nasm_bytecodes+19983, IF_8086|IF_PRIV}, + /* 453 */ {I_IDIV, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19506, IF_8086}, + /* 454 */ {I_IDIV, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17729, IF_8086}, + /* 455 */ {I_IDIV, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17734, IF_386}, + /* 456 */ {I_IDIV, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17739, IF_X64}, + /* 457 */ {I_IMUL, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19510, IF_8086}, + /* 458 */ {I_IMUL, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17744, IF_8086}, + /* 459 */ {I_IMUL, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17749, IF_386}, + /* 460 */ {I_IMUL, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17754, IF_X64}, + /* 461 */ {I_IMUL, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+13872, IF_386|IF_SM}, + /* 462 */ {I_IMUL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+13872, IF_386}, + /* 463 */ {I_IMUL, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+13878, IF_386|IF_SM}, + /* 464 */ {I_IMUL, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+13878, IF_386}, + /* 465 */ {I_IMUL, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+13884, IF_X64|IF_SM}, + /* 466 */ {I_IMUL, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+13884, IF_X64}, + /* 467 */ {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+13890, IF_186|IF_SM}, + /* 468 */ {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,IMMEDIATE|BITS16,0,0}, nasm_bytecodes+13896, IF_186|IF_SM}, + /* 469 */ {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+13890, IF_186}, + /* 470 */ {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE|BITS16,0,0}, nasm_bytecodes+13896, IF_186}, + /* 471 */ {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+13908, IF_386|IF_SM}, + /* 472 */ {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+13914, IF_386|IF_SM}, + /* 473 */ {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+13908, IF_386}, + /* 474 */ {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+13914, IF_386}, + /* 475 */ {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+13926, IF_X64|IF_SM}, + /* 476 */ {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+13932, IF_X64|IF_SM}, + /* 477 */ {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+13926, IF_X64}, + /* 478 */ {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+13932, IF_X64}, + /* 479 */ {I_IMUL, 2, {REG_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13944, IF_186}, + /* 480 */ {I_IMUL, 2, {REG_GPR|BITS16,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+13950, IF_186}, + /* 481 */ {I_IMUL, 2, {REG_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13962, IF_386}, + /* 482 */ {I_IMUL, 2, {REG_GPR|BITS32,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+13968, IF_386}, + /* 483 */ {I_IMUL, 2, {REG_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+13980, IF_X64}, + /* 484 */ {I_IMUL, 2, {REG_GPR|BITS64,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+13986, IF_X64}, + /* 485 */ {I_IN, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+19514, IF_8086|IF_SB}, + /* 486 */ {I_IN, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+17759, IF_8086|IF_SB}, + /* 487 */ {I_IN, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+17764, IF_386|IF_SB}, + /* 488 */ {I_IN, 2, {REG_AL,REG_DX,0,0,0}, nasm_bytecodes+19989, IF_8086}, + /* 489 */ {I_IN, 2, {REG_AX,REG_DX,0,0,0}, nasm_bytecodes+19518, IF_8086}, + /* 490 */ {I_IN, 2, {REG_EAX,REG_DX,0,0,0}, nasm_bytecodes+19522, IF_386}, + /* 491 */ {I_INC, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+19526, IF_8086|IF_NOLONG}, + /* 492 */ {I_INC, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+19530, IF_386|IF_NOLONG}, + /* 493 */ {I_INC, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19534, IF_8086}, + /* 494 */ {I_INC, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17769, IF_8086}, + /* 495 */ {I_INC, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17774, IF_386}, + /* 496 */ {I_INC, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17779, IF_X64}, + /* 497 */ {I_INSB, 0, {0,0,0,0,0}, nasm_bytecodes+19992, IF_186}, + /* 498 */ {I_INSD, 0, {0,0,0,0,0}, nasm_bytecodes+19538, IF_386}, + /* 499 */ {I_INSW, 0, {0,0,0,0,0}, nasm_bytecodes+19542, IF_186}, + /* 500 */ {I_INT, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+19546, IF_8086|IF_SB}, + /* 501 */ {I_INT1, 0, {0,0,0,0,0}, nasm_bytecodes+19986, IF_386}, + /* 502 */ {I_INT3, 0, {0,0,0,0,0}, nasm_bytecodes+19995, IF_8086}, + /* 503 */ {I_INTO, 0, {0,0,0,0,0}, nasm_bytecodes+19998, IF_8086|IF_NOLONG}, + /* 504 */ {I_INVD, 0, {0,0,0,0,0}, nasm_bytecodes+19550, IF_486|IF_PRIV}, + /* 505 */ {I_INVLPG, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17784, IF_486|IF_PRIV}, + /* 506 */ {I_INVLPGA, 2, {REG_AX,REG_ECX,0,0,0}, nasm_bytecodes+13998, IF_X86_64|IF_AMD|IF_NOLONG}, + /* 507 */ {I_INVLPGA, 2, {REG_EAX,REG_ECX,0,0,0}, nasm_bytecodes+14004, IF_X86_64|IF_AMD}, + /* 508 */ {I_INVLPGA, 2, {REG_RAX,REG_ECX,0,0,0}, nasm_bytecodes+7320, IF_X64|IF_AMD}, + /* 509 */ {I_INVLPGA, 0, {0,0,0,0,0}, nasm_bytecodes+14005, IF_X86_64|IF_AMD}, + /* 510 */ {I_IRET, 0, {0,0,0,0,0}, nasm_bytecodes+19554, IF_8086}, + /* 511 */ {I_IRETD, 0, {0,0,0,0,0}, nasm_bytecodes+19558, IF_386}, + /* 512 */ {I_IRETQ, 0, {0,0,0,0,0}, nasm_bytecodes+19562, IF_X64}, + /* 513 */ {I_IRETW, 0, {0,0,0,0,0}, nasm_bytecodes+19566, IF_8086}, + /* 514 */ {I_JCXZ, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17789, IF_8086|IF_NOLONG}, + /* 515 */ {I_JECXZ, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17794, IF_386}, + /* 516 */ {I_JRCXZ, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17799, IF_X64}, + /* 517 */ {I_JMP, 1, {IMMEDIATE|SHORT,0,0,0,0}, nasm_bytecodes+17805, IF_8086}, + /* 518 */ {I_JMP, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17809, IF_8086}, + /* 519 */ {I_JMP, 1, {IMMEDIATE|BITS16,0,0,0,0}, nasm_bytecodes+17814, IF_8086}, + /* 520 */ {I_JMP, 1, {IMMEDIATE|BITS32,0,0,0,0}, nasm_bytecodes+17819, IF_386}, + /* 521 */ {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, nasm_bytecodes+14028, IF_8086|IF_NOLONG}, + /* 522 */ {I_JMP, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0,0,0}, nasm_bytecodes+14034, IF_8086|IF_NOLONG}, + /* 523 */ {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+14034, IF_8086|IF_NOLONG}, + /* 524 */ {I_JMP, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0,0,0}, nasm_bytecodes+14040, IF_386|IF_NOLONG}, + /* 525 */ {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14040, IF_386|IF_NOLONG}, + /* 526 */ {I_JMP, 1, {MEMORY|FAR,0,0,0,0}, nasm_bytecodes+17824, IF_8086|IF_NOLONG}, + /* 527 */ {I_JMP, 1, {MEMORY|FAR,0,0,0,0}, nasm_bytecodes+17829, IF_X64}, + /* 528 */ {I_JMP, 1, {MEMORY|BITS16|FAR,0,0,0,0}, nasm_bytecodes+17834, IF_8086}, + /* 529 */ {I_JMP, 1, {MEMORY|BITS32|FAR,0,0,0,0}, nasm_bytecodes+17839, IF_386}, + /* 530 */ {I_JMP, 1, {MEMORY|BITS64|FAR,0,0,0,0}, nasm_bytecodes+17829, IF_X64}, + /* 531 */ {I_JMP, 1, {MEMORY|NEAR,0,0,0,0}, nasm_bytecodes+17844, IF_8086}, + /* 532 */ {I_JMP, 1, {MEMORY|BITS16|NEAR,0,0,0,0}, nasm_bytecodes+17849, IF_8086}, + /* 533 */ {I_JMP, 1, {MEMORY|BITS32|NEAR,0,0,0,0}, nasm_bytecodes+17854, IF_386|IF_NOLONG}, + /* 534 */ {I_JMP, 1, {MEMORY|BITS64|NEAR,0,0,0,0}, nasm_bytecodes+17859, IF_X64}, + /* 535 */ {I_JMP, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17849, IF_8086}, + /* 536 */ {I_JMP, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17854, IF_386|IF_NOLONG}, + /* 537 */ {I_JMP, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17859, IF_X64}, + /* 538 */ {I_JMP, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17844, IF_8086}, + /* 539 */ {I_JMP, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+17849, IF_8086}, + /* 540 */ {I_JMP, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+17854, IF_386|IF_NOLONG}, + /* 541 */ {I_JMP, 1, {MEMORY|BITS64,0,0,0,0}, nasm_bytecodes+17859, IF_X64}, + /* 542 */ {I_JMPE, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+14046, IF_IA64}, + /* 543 */ {I_JMPE, 1, {IMMEDIATE|BITS16,0,0,0,0}, nasm_bytecodes+14052, IF_IA64}, + /* 544 */ {I_JMPE, 1, {IMMEDIATE|BITS32,0,0,0,0}, nasm_bytecodes+14058, IF_IA64}, + /* 545 */ {I_JMPE, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+14064, IF_IA64}, + /* 546 */ {I_JMPE, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14070, IF_IA64}, + /* 547 */ {I_LAHF, 0, {0,0,0,0,0}, nasm_bytecodes+20001, IF_8086}, + /* 548 */ {I_LAR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+14076, IF_286|IF_PROT|IF_SW}, + /* 549 */ {I_LAR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14076, IF_286|IF_PROT}, + /* 550 */ {I_LAR, 2, {REG_GPR|BITS16,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14076, IF_386|IF_PROT}, + /* 551 */ {I_LAR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+14082, IF_386|IF_PROT|IF_SW}, + /* 552 */ {I_LAR, 2, {REG_GPR|BITS32,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14082, IF_386|IF_PROT}, + /* 553 */ {I_LAR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14082, IF_386|IF_PROT}, + /* 554 */ {I_LAR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+14088, IF_X64|IF_PROT|IF_SW}, + /* 555 */ {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14088, IF_X64|IF_PROT}, + /* 556 */ {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14088, IF_X64|IF_PROT}, + /* 557 */ {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+14088, IF_X64|IF_PROT}, + /* 558 */ {I_LDS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17864, IF_8086|IF_NOLONG}, + /* 559 */ {I_LDS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17869, IF_386|IF_NOLONG}, + /* 560 */ {I_LEA, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17874, IF_8086}, + /* 561 */ {I_LEA, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17879, IF_386}, + /* 562 */ {I_LEA, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+17884, IF_X64}, + /* 563 */ {I_LEAVE, 0, {0,0,0,0,0}, nasm_bytecodes+18121, IF_186}, + /* 564 */ {I_LES, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+17889, IF_8086|IF_NOLONG}, + /* 565 */ {I_LES, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+17894, IF_386|IF_NOLONG}, + /* 566 */ {I_LFENCE, 0, {0,0,0,0,0}, nasm_bytecodes+17899, IF_X64|IF_AMD}, + /* 567 */ {I_LFS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+14094, IF_386}, + /* 568 */ {I_LFS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+14100, IF_386}, + /* 569 */ {I_LGDT, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17904, IF_286|IF_PRIV}, + /* 570 */ {I_LGS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+14106, IF_386}, + /* 571 */ {I_LGS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+14112, IF_386}, + /* 572 */ {I_LIDT, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17909, IF_286|IF_PRIV}, + /* 573 */ {I_LLDT, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17914, IF_286|IF_PROT|IF_PRIV}, + /* 574 */ {I_LLDT, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+17914, IF_286|IF_PROT|IF_PRIV}, + /* 575 */ {I_LLDT, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17914, IF_286|IF_PROT|IF_PRIV}, + /* 576 */ {I_LMSW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17919, IF_286|IF_PRIV}, + /* 577 */ {I_LMSW, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+17919, IF_286|IF_PRIV}, + /* 578 */ {I_LMSW, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17919, IF_286|IF_PRIV}, + /* 579 */ {I_LOADALL, 0, {0,0,0,0,0}, nasm_bytecodes+19570, IF_386|IF_UNDOC}, + /* 580 */ {I_LOADALL286, 0, {0,0,0,0,0}, nasm_bytecodes+19574, IF_286|IF_UNDOC}, + /* 581 */ {I_LODSB, 0, {0,0,0,0,0}, nasm_bytecodes+20004, IF_8086}, + /* 582 */ {I_LODSD, 0, {0,0,0,0,0}, nasm_bytecodes+19578, IF_386}, + /* 583 */ {I_LODSQ, 0, {0,0,0,0,0}, nasm_bytecodes+19582, IF_X64}, + /* 584 */ {I_LODSW, 0, {0,0,0,0,0}, nasm_bytecodes+19586, IF_8086}, + /* 585 */ {I_LOOP, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17924, IF_8086}, + /* 586 */ {I_LOOP, 2, {IMMEDIATE,REG_CX,0,0,0}, nasm_bytecodes+17929, IF_8086|IF_NOLONG}, + /* 587 */ {I_LOOP, 2, {IMMEDIATE,REG_ECX,0,0,0}, nasm_bytecodes+17934, IF_386}, + /* 588 */ {I_LOOP, 2, {IMMEDIATE,REG_RCX,0,0,0}, nasm_bytecodes+17939, IF_X64}, + /* 589 */ {I_LOOPE, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17944, IF_8086}, + /* 590 */ {I_LOOPE, 2, {IMMEDIATE,REG_CX,0,0,0}, nasm_bytecodes+17949, IF_8086|IF_NOLONG}, + /* 591 */ {I_LOOPE, 2, {IMMEDIATE,REG_ECX,0,0,0}, nasm_bytecodes+17954, IF_386}, + /* 592 */ {I_LOOPE, 2, {IMMEDIATE,REG_RCX,0,0,0}, nasm_bytecodes+17959, IF_X64}, + /* 593 */ {I_LOOPNE, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17964, IF_8086}, + /* 594 */ {I_LOOPNE, 2, {IMMEDIATE,REG_CX,0,0,0}, nasm_bytecodes+17969, IF_8086|IF_NOLONG}, + /* 595 */ {I_LOOPNE, 2, {IMMEDIATE,REG_ECX,0,0,0}, nasm_bytecodes+17974, IF_386}, + /* 596 */ {I_LOOPNE, 2, {IMMEDIATE,REG_RCX,0,0,0}, nasm_bytecodes+17979, IF_X64}, + /* 597 */ {I_LOOPNZ, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17964, IF_8086}, + /* 598 */ {I_LOOPNZ, 2, {IMMEDIATE,REG_CX,0,0,0}, nasm_bytecodes+17969, IF_8086|IF_NOLONG}, + /* 599 */ {I_LOOPNZ, 2, {IMMEDIATE,REG_ECX,0,0,0}, nasm_bytecodes+17974, IF_386}, + /* 600 */ {I_LOOPNZ, 2, {IMMEDIATE,REG_RCX,0,0,0}, nasm_bytecodes+17979, IF_X64}, + /* 601 */ {I_LOOPZ, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+17944, IF_8086}, + /* 602 */ {I_LOOPZ, 2, {IMMEDIATE,REG_CX,0,0,0}, nasm_bytecodes+17949, IF_8086|IF_NOLONG}, + /* 603 */ {I_LOOPZ, 2, {IMMEDIATE,REG_ECX,0,0,0}, nasm_bytecodes+17954, IF_386}, + /* 604 */ {I_LOOPZ, 2, {IMMEDIATE,REG_RCX,0,0,0}, nasm_bytecodes+17959, IF_X64}, + /* 605 */ {I_LSL, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+14118, IF_286|IF_PROT|IF_SW}, + /* 606 */ {I_LSL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14118, IF_286|IF_PROT}, + /* 607 */ {I_LSL, 2, {REG_GPR|BITS16,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14118, IF_386|IF_PROT}, + /* 608 */ {I_LSL, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+14124, IF_386|IF_PROT|IF_SW}, + /* 609 */ {I_LSL, 2, {REG_GPR|BITS32,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14124, IF_386|IF_PROT}, + /* 610 */ {I_LSL, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14124, IF_386|IF_PROT}, + /* 611 */ {I_LSL, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+14130, IF_X64|IF_PROT|IF_SW}, + /* 612 */ {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14130, IF_X64|IF_PROT}, + /* 613 */ {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14130, IF_X64|IF_PROT}, + /* 614 */ {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+14130, IF_X64|IF_PROT}, + /* 615 */ {I_LSS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+14136, IF_386}, + /* 616 */ {I_LSS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+14142, IF_386}, + /* 617 */ {I_LTR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+17984, IF_286|IF_PROT|IF_PRIV}, + /* 618 */ {I_LTR, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+17984, IF_286|IF_PROT|IF_PRIV}, + /* 619 */ {I_LTR, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17984, IF_286|IF_PROT|IF_PRIV}, + /* 620 */ {I_MFENCE, 0, {0,0,0,0,0}, nasm_bytecodes+17989, IF_X64|IF_AMD}, + /* 621 */ {I_MONITOR, 0, {0,0,0,0,0}, nasm_bytecodes+17994, IF_PRESCOTT}, + /* 622 */ {I_MOV, 2, {MEMORY,REG_SREG,0,0,0}, nasm_bytecodes+18005, IF_8086|IF_SM}, + /* 623 */ {I_MOV, 2, {REG_GPR|BITS16,REG_SREG,0,0,0}, nasm_bytecodes+17999, IF_8086}, + /* 624 */ {I_MOV, 2, {REG_GPR|BITS32,REG_SREG,0,0,0}, nasm_bytecodes+18004, IF_386}, + /* 625 */ {I_MOV, 2, {REG_SREG,MEMORY,0,0,0}, nasm_bytecodes+19590, IF_8086|IF_SM}, + /* 626 */ {I_MOV, 2, {REG_SREG,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+19590, IF_8086}, + /* 627 */ {I_MOV, 2, {REG_SREG,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+19590, IF_386}, + /* 628 */ {I_MOV, 2, {REG_AL,MEM_OFFS,0,0,0}, nasm_bytecodes+19594, IF_8086|IF_SM}, + /* 629 */ {I_MOV, 2, {REG_AX,MEM_OFFS,0,0,0}, nasm_bytecodes+18009, IF_8086|IF_SM}, + /* 630 */ {I_MOV, 2, {REG_EAX,MEM_OFFS,0,0,0}, nasm_bytecodes+18014, IF_386|IF_SM}, + /* 631 */ {I_MOV, 2, {REG_RAX,MEM_OFFS,0,0,0}, nasm_bytecodes+18019, IF_X64|IF_SM}, + /* 632 */ {I_MOV, 2, {MEM_OFFS,REG_AL,0,0,0}, nasm_bytecodes+19598, IF_8086|IF_SM}, + /* 633 */ {I_MOV, 2, {MEM_OFFS,REG_AX,0,0,0}, nasm_bytecodes+18024, IF_8086|IF_SM}, + /* 634 */ {I_MOV, 2, {MEM_OFFS,REG_EAX,0,0,0}, nasm_bytecodes+18029, IF_386|IF_SM}, + /* 635 */ {I_MOV, 2, {MEM_OFFS,REG_RAX,0,0,0}, nasm_bytecodes+18034, IF_X64|IF_SM}, + /* 636 */ {I_MOV, 2, {REG_GPR|BITS32,REG_CREG,0,0,0}, nasm_bytecodes+14148, IF_386|IF_PRIV|IF_NOLONG}, + /* 637 */ {I_MOV, 2, {REG_GPR|BITS64,REG_CREG,0,0,0}, nasm_bytecodes+14154, IF_X64|IF_PRIV}, + /* 638 */ {I_MOV, 2, {REG_CREG,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14160, IF_386|IF_PRIV|IF_NOLONG}, + /* 639 */ {I_MOV, 2, {REG_CREG,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+14166, IF_X64|IF_PRIV}, + /* 640 */ {I_MOV, 2, {REG_GPR|BITS32,REG_DREG,0,0,0}, nasm_bytecodes+14173, IF_386|IF_PRIV|IF_NOLONG}, + /* 641 */ {I_MOV, 2, {REG_GPR|BITS64,REG_DREG,0,0,0}, nasm_bytecodes+14172, IF_X64|IF_PRIV}, + /* 642 */ {I_MOV, 2, {REG_DREG,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14179, IF_386|IF_PRIV|IF_NOLONG}, + /* 643 */ {I_MOV, 2, {REG_DREG,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+14178, IF_X64|IF_PRIV}, + /* 644 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19602, IF_8086|IF_SM}, + /* 645 */ {I_MOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19602, IF_8086}, + /* 646 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18049, IF_8086|IF_SM}, + /* 647 */ {I_MOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18049, IF_8086}, + /* 648 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18054, IF_386|IF_SM}, + /* 649 */ {I_MOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18054, IF_386}, + /* 650 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18059, IF_X64|IF_SM}, + /* 651 */ {I_MOV, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18059, IF_X64}, + /* 652 */ {I_MOV, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+19606, IF_8086|IF_SM}, + /* 653 */ {I_MOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19606, IF_8086}, + /* 654 */ {I_MOV, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+18064, IF_8086|IF_SM}, + /* 655 */ {I_MOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18064, IF_8086}, + /* 656 */ {I_MOV, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+18069, IF_386|IF_SM}, + /* 657 */ {I_MOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18069, IF_386}, + /* 658 */ {I_MOV, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+18074, IF_X64|IF_SM}, + /* 659 */ {I_MOV, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18074, IF_X64}, + /* 660 */ {I_MOV, 2, {REG_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+19610, IF_8086|IF_SM}, + /* 661 */ {I_MOV, 2, {REG_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+18079, IF_8086|IF_SM}, + /* 662 */ {I_MOV, 2, {REG_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+18084, IF_386|IF_SM}, + /* 663 */ {I_MOV, 2, {REG_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+18089, IF_X64|IF_SM}, + /* 664 */ {I_MOV, 2, {REG_GPR|BITS64,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14184, IF_X64}, + /* 665 */ {I_MOV, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18094, IF_8086|IF_SM}, + /* 666 */ {I_MOV, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14190, IF_8086|IF_SM}, + /* 667 */ {I_MOV, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14196, IF_386|IF_SM}, + /* 668 */ {I_MOV, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14184, IF_X64|IF_SM}, + /* 669 */ {I_MOV, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+18094, IF_8086|IF_SM}, + /* 670 */ {I_MOV, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+14190, IF_8086|IF_SM}, + /* 671 */ {I_MOV, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14196, IF_386|IF_SM}, + /* 672 */ {I_MOVD, 2, {MMXREG,MEMORY,0,0,0}, nasm_bytecodes+14202, IF_PENT|IF_MMX|IF_SD}, + /* 673 */ {I_MOVD, 2, {MMXREG,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14202, IF_PENT|IF_MMX}, + /* 674 */ {I_MOVD, 2, {MEMORY,MMXREG,0,0,0}, nasm_bytecodes+14208, IF_PENT|IF_MMX|IF_SD}, + /* 675 */ {I_MOVD, 2, {REG_GPR|BITS32,MMXREG,0,0,0}, nasm_bytecodes+14208, IF_PENT|IF_MMX}, + /* 676 */ {I_MOVD, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+7355, IF_X64|IF_SD}, + /* 677 */ {I_MOVD, 2, {XMMREG,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+7355, IF_X64}, + /* 678 */ {I_MOVD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+7362, IF_X64|IF_SD}, + /* 679 */ {I_MOVD, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+7362, IF_X64|IF_SSE}, + /* 680 */ {I_MOVQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7369, IF_PENT|IF_MMX|IF_SQ}, + /* 681 */ {I_MOVQ, 2, {RM_MMX,MMXREG,0,0,0}, nasm_bytecodes+7376, IF_PENT|IF_MMX|IF_SQ}, + /* 682 */ {I_MOVQ, 2, {MMXREG,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+14202, IF_X64|IF_MMX}, + /* 683 */ {I_MOVQ, 2, {RM_GPR|BITS64,MMXREG,0,0,0}, nasm_bytecodes+14208, IF_X64|IF_MMX}, + /* 684 */ {I_MOVSB, 0, {0,0,0,0,0}, nasm_bytecodes+5497, IF_8086}, + /* 685 */ {I_MOVSD, 0, {0,0,0,0,0}, nasm_bytecodes+19614, IF_386}, + /* 686 */ {I_MOVSQ, 0, {0,0,0,0,0}, nasm_bytecodes+19618, IF_X64}, + /* 687 */ {I_MOVSW, 0, {0,0,0,0,0}, nasm_bytecodes+19622, IF_8086}, + /* 688 */ {I_MOVSX, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+14214, IF_386|IF_SB}, + /* 689 */ {I_MOVSX, 2, {REG_GPR|BITS16,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+14214, IF_386}, + /* 690 */ {I_MOVSX, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, nasm_bytecodes+14220, IF_386}, + /* 691 */ {I_MOVSX, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, nasm_bytecodes+14226, IF_386}, + /* 692 */ {I_MOVSX, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, nasm_bytecodes+14232, IF_X64}, + /* 693 */ {I_MOVSX, 2, {REG_GPR|BITS64,RM_GPR|BITS16,0,0,0}, nasm_bytecodes+14238, IF_X64}, + /* 694 */ {I_MOVSXD, 2, {REG_GPR|BITS64,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+18099, IF_X64}, + /* 695 */ {I_MOVZX, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+14244, IF_386|IF_SB}, + /* 696 */ {I_MOVZX, 2, {REG_GPR|BITS16,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+14244, IF_386}, + /* 697 */ {I_MOVZX, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, nasm_bytecodes+14250, IF_386}, + /* 698 */ {I_MOVZX, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, nasm_bytecodes+14256, IF_386}, + /* 699 */ {I_MOVZX, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, nasm_bytecodes+14262, IF_X64}, + /* 700 */ {I_MOVZX, 2, {REG_GPR|BITS64,RM_GPR|BITS16,0,0,0}, nasm_bytecodes+14268, IF_X64}, + /* 701 */ {I_MUL, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19626, IF_8086}, + /* 702 */ {I_MUL, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+18104, IF_8086}, + /* 703 */ {I_MUL, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+18109, IF_386}, + /* 704 */ {I_MUL, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+18114, IF_X64}, + /* 705 */ {I_MWAIT, 0, {0,0,0,0,0}, nasm_bytecodes+18119, IF_PRESCOTT}, + /* 706 */ {I_NEG, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19630, IF_8086}, + /* 707 */ {I_NEG, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+18124, IF_8086}, + /* 708 */ {I_NEG, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+18129, IF_386}, + /* 709 */ {I_NEG, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+18134, IF_X64}, + /* 710 */ {I_NOP, 0, {0,0,0,0,0}, nasm_bytecodes+19634, IF_8086}, + /* 711 */ {I_NOP, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+14274, IF_P6}, + /* 712 */ {I_NOP, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14280, IF_P6}, + /* 713 */ {I_NOP, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+14286, IF_X64}, + /* 714 */ {I_NOT, 1, {RM_GPR|BITS8,0,0,0,0}, nasm_bytecodes+19638, IF_8086}, + /* 715 */ {I_NOT, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+18139, IF_8086}, + /* 716 */ {I_NOT, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+18144, IF_386}, + /* 717 */ {I_NOT, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+18149, IF_X64}, + /* 718 */ {I_OR, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19642, IF_8086|IF_SM}, + /* 719 */ {I_OR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19642, IF_8086}, + /* 720 */ {I_OR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18154, IF_8086|IF_SM}, + /* 721 */ {I_OR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18154, IF_8086}, + /* 722 */ {I_OR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18159, IF_386|IF_SM}, + /* 723 */ {I_OR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18159, IF_386}, + /* 724 */ {I_OR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18164, IF_X64|IF_SM}, + /* 725 */ {I_OR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18164, IF_X64}, + /* 726 */ {I_OR, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+11411, IF_8086|IF_SM}, + /* 727 */ {I_OR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+11411, IF_8086}, + /* 728 */ {I_OR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+18169, IF_8086|IF_SM}, + /* 729 */ {I_OR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18169, IF_8086}, + /* 730 */ {I_OR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+18174, IF_386|IF_SM}, + /* 731 */ {I_OR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18174, IF_386}, + /* 732 */ {I_OR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+18179, IF_X64|IF_SM}, + /* 733 */ {I_OR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18179, IF_X64}, + /* 734 */ {I_OR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14292, IF_8086}, + /* 735 */ {I_OR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14298, IF_386}, + /* 736 */ {I_OR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14304, IF_X64}, + /* 737 */ {I_OR, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+19646, IF_8086|IF_SM}, + /* 738 */ {I_OR, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+14292, IF_8086|IF_SM}, + /* 739 */ {I_OR, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+18184, IF_8086|IF_SM}, + /* 740 */ {I_OR, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+14298, IF_386|IF_SM}, + /* 741 */ {I_OR, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18189, IF_386|IF_SM}, + /* 742 */ {I_OR, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+14304, IF_X64|IF_SM}, + /* 743 */ {I_OR, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18194, IF_X64|IF_SM}, + /* 744 */ {I_OR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18199, IF_8086|IF_SM}, + /* 745 */ {I_OR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14310, IF_8086|IF_SM}, + /* 746 */ {I_OR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14316, IF_386|IF_SM}, + /* 747 */ {I_OR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14322, IF_X64|IF_SM}, + /* 748 */ {I_OR, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+18199, IF_8086|IF_SM}, + /* 749 */ {I_OR, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+14310, IF_8086|IF_SM}, + /* 750 */ {I_OR, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14316, IF_386|IF_SM}, + /* 751 */ {I_OUT, 2, {IMMEDIATE,REG_AL,0,0,0}, nasm_bytecodes+19650, IF_8086|IF_SB}, + /* 752 */ {I_OUT, 2, {IMMEDIATE,REG_AX,0,0,0}, nasm_bytecodes+18204, IF_8086|IF_SB}, + /* 753 */ {I_OUT, 2, {IMMEDIATE,REG_EAX,0,0,0}, nasm_bytecodes+18209, IF_386|IF_SB}, + /* 754 */ {I_OUT, 2, {REG_DX,REG_AL,0,0,0}, nasm_bytecodes+20007, IF_8086}, + /* 755 */ {I_OUT, 2, {REG_DX,REG_AX,0,0,0}, nasm_bytecodes+19654, IF_8086}, + /* 756 */ {I_OUT, 2, {REG_DX,REG_EAX,0,0,0}, nasm_bytecodes+19658, IF_386}, + /* 757 */ {I_OUTSB, 0, {0,0,0,0,0}, nasm_bytecodes+20010, IF_186}, + /* 758 */ {I_OUTSD, 0, {0,0,0,0,0}, nasm_bytecodes+19662, IF_386}, + /* 759 */ {I_OUTSW, 0, {0,0,0,0,0}, nasm_bytecodes+19666, IF_186}, + /* 760 */ {I_PACKSSDW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7383, IF_PENT|IF_MMX|IF_SQ}, + /* 761 */ {I_PACKSSWB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7390, IF_PENT|IF_MMX|IF_SQ}, + /* 762 */ {I_PACKUSWB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7397, IF_PENT|IF_MMX|IF_SQ}, + /* 763 */ {I_PADDB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7404, IF_PENT|IF_MMX|IF_SQ}, + /* 764 */ {I_PADDD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7411, IF_PENT|IF_MMX|IF_SQ}, + /* 765 */ {I_PADDSB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7418, IF_PENT|IF_MMX|IF_SQ}, + /* 766 */ {I_PADDSIW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+14328, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 767 */ {I_PADDSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7425, IF_PENT|IF_MMX|IF_SQ}, + /* 768 */ {I_PADDUSB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7432, IF_PENT|IF_MMX|IF_SQ}, + /* 769 */ {I_PADDUSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7439, IF_PENT|IF_MMX|IF_SQ}, + /* 770 */ {I_PADDW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7446, IF_PENT|IF_MMX|IF_SQ}, + /* 771 */ {I_PAND, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7453, IF_PENT|IF_MMX|IF_SQ}, + /* 772 */ {I_PANDN, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7460, IF_PENT|IF_MMX|IF_SQ}, + /* 773 */ {I_PAUSE, 0, {0,0,0,0,0}, nasm_bytecodes+18214, IF_8086}, + /* 774 */ {I_PAVEB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+14334, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 775 */ {I_PAVGUSB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5436, IF_PENT|IF_3DNOW|IF_SQ}, + /* 776 */ {I_PCMPEQB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7467, IF_PENT|IF_MMX|IF_SQ}, + /* 777 */ {I_PCMPEQD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7474, IF_PENT|IF_MMX|IF_SQ}, + /* 778 */ {I_PCMPEQW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7481, IF_PENT|IF_MMX|IF_SQ}, + /* 779 */ {I_PCMPGTB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7488, IF_PENT|IF_MMX|IF_SQ}, + /* 780 */ {I_PCMPGTD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7495, IF_PENT|IF_MMX|IF_SQ}, + /* 781 */ {I_PCMPGTW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7502, IF_PENT|IF_MMX|IF_SQ}, + /* 782 */ {I_PDISTIB, 2, {MMXREG,MEMORY,0,0,0}, nasm_bytecodes+15487, IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, + /* 783 */ {I_PF2ID, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5444, IF_PENT|IF_3DNOW|IF_SQ}, + /* 784 */ {I_PFACC, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5452, IF_PENT|IF_3DNOW|IF_SQ}, + /* 785 */ {I_PFADD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5460, IF_PENT|IF_3DNOW|IF_SQ}, + /* 786 */ {I_PFCMPEQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5468, IF_PENT|IF_3DNOW|IF_SQ}, + /* 787 */ {I_PFCMPGE, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5476, IF_PENT|IF_3DNOW|IF_SQ}, + /* 788 */ {I_PFCMPGT, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5484, IF_PENT|IF_3DNOW|IF_SQ}, + /* 789 */ {I_PFMAX, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5492, IF_PENT|IF_3DNOW|IF_SQ}, + /* 790 */ {I_PFMIN, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5500, IF_PENT|IF_3DNOW|IF_SQ}, + /* 791 */ {I_PFMUL, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5508, IF_PENT|IF_3DNOW|IF_SQ}, + /* 792 */ {I_PFRCP, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5516, IF_PENT|IF_3DNOW|IF_SQ}, + /* 793 */ {I_PFRCPIT1, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5524, IF_PENT|IF_3DNOW|IF_SQ}, + /* 794 */ {I_PFRCPIT2, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5532, IF_PENT|IF_3DNOW|IF_SQ}, + /* 795 */ {I_PFRSQIT1, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5540, IF_PENT|IF_3DNOW|IF_SQ}, + /* 796 */ {I_PFRSQRT, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5548, IF_PENT|IF_3DNOW|IF_SQ}, + /* 797 */ {I_PFSUB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5556, IF_PENT|IF_3DNOW|IF_SQ}, + /* 798 */ {I_PFSUBR, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5564, IF_PENT|IF_3DNOW|IF_SQ}, + /* 799 */ {I_PI2FD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5572, IF_PENT|IF_3DNOW|IF_SQ}, + /* 800 */ {I_PMACHRIW, 2, {MMXREG,MEMORY,0,0,0}, nasm_bytecodes+15583, IF_PENT|IF_MMX|IF_SM|IF_CYRIX}, + /* 801 */ {I_PMADDWD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7509, IF_PENT|IF_MMX|IF_SQ}, + /* 802 */ {I_PMAGW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+14340, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 803 */ {I_PMULHRIW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+14346, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 804 */ {I_PMULHRWA, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5580, IF_PENT|IF_3DNOW|IF_SQ}, + /* 805 */ {I_PMULHRWC, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+14352, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 806 */ {I_PMULHW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7516, IF_PENT|IF_MMX|IF_SQ}, + /* 807 */ {I_PMULLW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7523, IF_PENT|IF_MMX|IF_SQ}, + /* 808 */ {I_PMVGEZB, 2, {MMXREG,MEMORY,0,0,0}, nasm_bytecodes+15715, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 809 */ {I_PMVLZB, 2, {MMXREG,MEMORY,0,0,0}, nasm_bytecodes+15571, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 810 */ {I_PMVNZB, 2, {MMXREG,MEMORY,0,0,0}, nasm_bytecodes+15553, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 811 */ {I_PMVZB, 2, {MMXREG,MEMORY,0,0,0}, nasm_bytecodes+15475, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 812 */ {I_POP, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+19670, IF_8086}, + /* 813 */ {I_POP, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+19674, IF_386|IF_NOLONG}, + /* 814 */ {I_POP, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+19678, IF_X64}, + /* 815 */ {I_POP, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+18219, IF_8086}, + /* 816 */ {I_POP, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+18224, IF_386|IF_NOLONG}, + /* 817 */ {I_POP, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+18229, IF_X64}, + /* 818 */ {I_POP, 1, {REG_DESS,0,0,0,0}, nasm_bytecodes+19488, IF_8086|IF_NOLONG}, + /* 819 */ {I_POP, 1, {REG_FSGS,0,0,0,0}, nasm_bytecodes+19682, IF_386}, + /* 820 */ {I_POPA, 0, {0,0,0,0,0}, nasm_bytecodes+19686, IF_186|IF_NOLONG}, + /* 821 */ {I_POPAD, 0, {0,0,0,0,0}, nasm_bytecodes+19690, IF_386|IF_NOLONG}, + /* 822 */ {I_POPAW, 0, {0,0,0,0,0}, nasm_bytecodes+19694, IF_186|IF_NOLONG}, + /* 823 */ {I_POPF, 0, {0,0,0,0,0}, nasm_bytecodes+19698, IF_8086}, + /* 824 */ {I_POPFD, 0, {0,0,0,0,0}, nasm_bytecodes+19702, IF_386|IF_NOLONG}, + /* 825 */ {I_POPFQ, 0, {0,0,0,0,0}, nasm_bytecodes+19702, IF_X64}, + /* 826 */ {I_POPFW, 0, {0,0,0,0,0}, nasm_bytecodes+19706, IF_8086}, + /* 827 */ {I_POR, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7530, IF_PENT|IF_MMX|IF_SQ}, + /* 828 */ {I_PREFETCH, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18234, IF_PENT|IF_3DNOW|IF_SQ}, + /* 829 */ {I_PREFETCHW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18239, IF_PENT|IF_3DNOW|IF_SQ}, + /* 830 */ {I_PSLLD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7537, IF_PENT|IF_MMX|IF_SQ}, + /* 831 */ {I_PSLLD, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7544, IF_PENT|IF_MMX}, + /* 832 */ {I_PSLLQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7551, IF_PENT|IF_MMX|IF_SQ}, + /* 833 */ {I_PSLLQ, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7558, IF_PENT|IF_MMX}, + /* 834 */ {I_PSLLW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7565, IF_PENT|IF_MMX|IF_SQ}, + /* 835 */ {I_PSLLW, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7572, IF_PENT|IF_MMX}, + /* 836 */ {I_PSRAD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7579, IF_PENT|IF_MMX|IF_SQ}, + /* 837 */ {I_PSRAD, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7586, IF_PENT|IF_MMX}, + /* 838 */ {I_PSRAW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7593, IF_PENT|IF_MMX|IF_SQ}, + /* 839 */ {I_PSRAW, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7600, IF_PENT|IF_MMX}, + /* 840 */ {I_PSRLD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7607, IF_PENT|IF_MMX|IF_SQ}, + /* 841 */ {I_PSRLD, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7614, IF_PENT|IF_MMX}, + /* 842 */ {I_PSRLQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7621, IF_PENT|IF_MMX|IF_SQ}, + /* 843 */ {I_PSRLQ, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7628, IF_PENT|IF_MMX}, + /* 844 */ {I_PSRLW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7635, IF_PENT|IF_MMX|IF_SQ}, + /* 845 */ {I_PSRLW, 2, {MMXREG,IMMEDIATE,0,0,0}, nasm_bytecodes+7642, IF_PENT|IF_MMX}, + /* 846 */ {I_PSUBB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7649, IF_PENT|IF_MMX|IF_SQ}, + /* 847 */ {I_PSUBD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7656, IF_PENT|IF_MMX|IF_SQ}, + /* 848 */ {I_PSUBSB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7663, IF_PENT|IF_MMX|IF_SQ}, + /* 849 */ {I_PSUBSIW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+14358, IF_PENT|IF_MMX|IF_SQ|IF_CYRIX}, + /* 850 */ {I_PSUBSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7670, IF_PENT|IF_MMX|IF_SQ}, + /* 851 */ {I_PSUBUSB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7677, IF_PENT|IF_MMX|IF_SQ}, + /* 852 */ {I_PSUBUSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7684, IF_PENT|IF_MMX|IF_SQ}, + /* 853 */ {I_PSUBW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7691, IF_PENT|IF_MMX|IF_SQ}, + /* 854 */ {I_PUNPCKHBW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7698, IF_PENT|IF_MMX|IF_SQ}, + /* 855 */ {I_PUNPCKHDQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7705, IF_PENT|IF_MMX|IF_SQ}, + /* 856 */ {I_PUNPCKHWD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7712, IF_PENT|IF_MMX|IF_SQ}, + /* 857 */ {I_PUNPCKLBW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7719, IF_PENT|IF_MMX|IF_SQ}, + /* 858 */ {I_PUNPCKLDQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7726, IF_PENT|IF_MMX|IF_SQ}, + /* 859 */ {I_PUNPCKLWD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7733, IF_PENT|IF_MMX|IF_SQ}, + /* 860 */ {I_PUSH, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+19710, IF_8086}, + /* 861 */ {I_PUSH, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+19714, IF_386|IF_NOLONG}, + /* 862 */ {I_PUSH, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+19718, IF_X64}, + /* 863 */ {I_PUSH, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+18244, IF_8086}, + /* 864 */ {I_PUSH, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+18249, IF_386|IF_NOLONG}, + /* 865 */ {I_PUSH, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+18254, IF_X64}, + /* 866 */ {I_PUSH, 1, {REG_CS,0,0,0,0}, nasm_bytecodes+19464, IF_8086|IF_NOLONG}, + /* 867 */ {I_PUSH, 1, {REG_DESS,0,0,0,0}, nasm_bytecodes+19464, IF_8086|IF_NOLONG}, + /* 868 */ {I_PUSH, 1, {REG_FSGS,0,0,0,0}, nasm_bytecodes+19722, IF_386}, + /* 869 */ {I_PUSH, 1, {IMMEDIATE|BITS8,0,0,0,0}, nasm_bytecodes+19726, IF_186}, + /* 870 */ {I_PUSH, 1, {IMMEDIATE|BITS16,0,0,0,0}, nasm_bytecodes+18259, IF_186|IF_AR0|IF_SZ}, + /* 871 */ {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, nasm_bytecodes+18264, IF_386|IF_NOLONG|IF_AR0|IF_SZ}, + /* 872 */ {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, nasm_bytecodes+18264, IF_386|IF_NOLONG|IF_SD}, + /* 873 */ {I_PUSH, 1, {IMMEDIATE|BITS64,0,0,0,0}, nasm_bytecodes+18269, IF_X64|IF_AR0|IF_SZ}, + /* 874 */ {I_PUSHA, 0, {0,0,0,0,0}, nasm_bytecodes+19730, IF_186|IF_NOLONG}, + /* 875 */ {I_PUSHAD, 0, {0,0,0,0,0}, nasm_bytecodes+19734, IF_386|IF_NOLONG}, + /* 876 */ {I_PUSHAW, 0, {0,0,0,0,0}, nasm_bytecodes+19738, IF_186|IF_NOLONG}, + /* 877 */ {I_PUSHF, 0, {0,0,0,0,0}, nasm_bytecodes+19742, IF_8086}, + /* 878 */ {I_PUSHFD, 0, {0,0,0,0,0}, nasm_bytecodes+19746, IF_386|IF_NOLONG}, + /* 879 */ {I_PUSHFQ, 0, {0,0,0,0,0}, nasm_bytecodes+19746, IF_X64}, + /* 880 */ {I_PUSHFW, 0, {0,0,0,0,0}, nasm_bytecodes+19750, IF_8086}, + /* 881 */ {I_PXOR, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7740, IF_PENT|IF_MMX|IF_SQ}, + /* 882 */ {I_RCL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, nasm_bytecodes+19754, IF_8086}, + /* 883 */ {I_RCL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, nasm_bytecodes+19758, IF_8086}, + /* 884 */ {I_RCL, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18274, IF_186|IF_SB}, + /* 885 */ {I_RCL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, nasm_bytecodes+18279, IF_8086}, + /* 886 */ {I_RCL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, nasm_bytecodes+18284, IF_8086}, + /* 887 */ {I_RCL, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14364, IF_186|IF_SB}, + /* 888 */ {I_RCL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, nasm_bytecodes+18289, IF_386}, + /* 889 */ {I_RCL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, nasm_bytecodes+18294, IF_386}, + /* 890 */ {I_RCL, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14370, IF_386|IF_SB}, + /* 891 */ {I_RCL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, nasm_bytecodes+18299, IF_X64}, + /* 892 */ {I_RCL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, nasm_bytecodes+18304, IF_X64}, + /* 893 */ {I_RCL, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14376, IF_X64|IF_SB}, + /* 894 */ {I_RCR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, nasm_bytecodes+19762, IF_8086}, + /* 895 */ {I_RCR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, nasm_bytecodes+19766, IF_8086}, + /* 896 */ {I_RCR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18309, IF_186|IF_SB}, + /* 897 */ {I_RCR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, nasm_bytecodes+18314, IF_8086}, + /* 898 */ {I_RCR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, nasm_bytecodes+18319, IF_8086}, + /* 899 */ {I_RCR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14382, IF_186|IF_SB}, + /* 900 */ {I_RCR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, nasm_bytecodes+18324, IF_386}, + /* 901 */ {I_RCR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, nasm_bytecodes+18329, IF_386}, + /* 902 */ {I_RCR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14388, IF_386|IF_SB}, + /* 903 */ {I_RCR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, nasm_bytecodes+18334, IF_X64}, + /* 904 */ {I_RCR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, nasm_bytecodes+18339, IF_X64}, + /* 905 */ {I_RCR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14394, IF_X64|IF_SB}, + /* 906 */ {I_RDSHR, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14400, IF_P6|IF_CYRIX|IF_SMM}, + /* 907 */ {I_RDMSR, 0, {0,0,0,0,0}, nasm_bytecodes+19770, IF_PENT|IF_PRIV}, + /* 908 */ {I_RDPMC, 0, {0,0,0,0,0}, nasm_bytecodes+19774, IF_P6}, + /* 909 */ {I_RDTSC, 0, {0,0,0,0,0}, nasm_bytecodes+19778, IF_PENT}, + /* 910 */ {I_RDTSCP, 0, {0,0,0,0,0}, nasm_bytecodes+18344, IF_X86_64}, + /* 911 */ {I_RET, 0, {0,0,0,0,0}, nasm_bytecodes+18891, IF_8086}, + /* 912 */ {I_RET, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+19782, IF_8086|IF_SW}, + /* 913 */ {I_RETF, 0, {0,0,0,0,0}, nasm_bytecodes+20013, IF_8086}, + /* 914 */ {I_RETF, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+19786, IF_8086|IF_SW}, + /* 915 */ {I_RETN, 0, {0,0,0,0,0}, nasm_bytecodes+18891, IF_8086}, + /* 916 */ {I_RETN, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+19782, IF_8086|IF_SW}, + /* 917 */ {I_ROL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, nasm_bytecodes+19790, IF_8086}, + /* 918 */ {I_ROL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, nasm_bytecodes+19794, IF_8086}, + /* 919 */ {I_ROL, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18349, IF_186|IF_SB}, + /* 920 */ {I_ROL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, nasm_bytecodes+18354, IF_8086}, + /* 921 */ {I_ROL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, nasm_bytecodes+18359, IF_8086}, + /* 922 */ {I_ROL, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14406, IF_186|IF_SB}, + /* 923 */ {I_ROL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, nasm_bytecodes+18364, IF_386}, + /* 924 */ {I_ROL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, nasm_bytecodes+18369, IF_386}, + /* 925 */ {I_ROL, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14412, IF_386|IF_SB}, + /* 926 */ {I_ROL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, nasm_bytecodes+18374, IF_X64}, + /* 927 */ {I_ROL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, nasm_bytecodes+18379, IF_X64}, + /* 928 */ {I_ROL, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14418, IF_X64|IF_SB}, + /* 929 */ {I_ROR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, nasm_bytecodes+19798, IF_8086}, + /* 930 */ {I_ROR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, nasm_bytecodes+19802, IF_8086}, + /* 931 */ {I_ROR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18384, IF_186|IF_SB}, + /* 932 */ {I_ROR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, nasm_bytecodes+18389, IF_8086}, + /* 933 */ {I_ROR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, nasm_bytecodes+18394, IF_8086}, + /* 934 */ {I_ROR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14424, IF_186|IF_SB}, + /* 935 */ {I_ROR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, nasm_bytecodes+18399, IF_386}, + /* 936 */ {I_ROR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, nasm_bytecodes+18404, IF_386}, + /* 937 */ {I_ROR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14430, IF_386|IF_SB}, + /* 938 */ {I_ROR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, nasm_bytecodes+18409, IF_X64}, + /* 939 */ {I_ROR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, nasm_bytecodes+18414, IF_X64}, + /* 940 */ {I_ROR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14436, IF_X64|IF_SB}, + /* 941 */ {I_RSDC, 2, {REG_SREG,MEMORY|BITS80,0,0,0}, nasm_bytecodes+15823, IF_486|IF_CYRIX|IF_SMM}, + /* 942 */ {I_RSLDT, 1, {MEMORY|BITS80,0,0,0,0}, nasm_bytecodes+18419, IF_486|IF_CYRIX|IF_SMM}, + /* 943 */ {I_RSM, 0, {0,0,0,0,0}, nasm_bytecodes+19806, IF_PENT|IF_SMM}, + /* 944 */ {I_RSTS, 1, {MEMORY|BITS80,0,0,0,0}, nasm_bytecodes+18424, IF_486|IF_CYRIX|IF_SMM}, + /* 945 */ {I_SAHF, 0, {0,0,0,0,0}, nasm_bytecodes+5465, IF_8086}, + /* 946 */ {I_SALC, 0, {0,0,0,0,0}, nasm_bytecodes+20016, IF_8086|IF_UNDOC}, + /* 947 */ {I_SAR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, nasm_bytecodes+19818, IF_8086}, + /* 948 */ {I_SAR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, nasm_bytecodes+19822, IF_8086}, + /* 949 */ {I_SAR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18464, IF_186|IF_SB}, + /* 950 */ {I_SAR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, nasm_bytecodes+18469, IF_8086}, + /* 951 */ {I_SAR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, nasm_bytecodes+18474, IF_8086}, + /* 952 */ {I_SAR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14460, IF_186|IF_SB}, + /* 953 */ {I_SAR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, nasm_bytecodes+18479, IF_386}, + /* 954 */ {I_SAR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, nasm_bytecodes+18484, IF_386}, + /* 955 */ {I_SAR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14466, IF_386|IF_SB}, + /* 956 */ {I_SAR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, nasm_bytecodes+18489, IF_X64}, + /* 957 */ {I_SAR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, nasm_bytecodes+18494, IF_X64}, + /* 958 */ {I_SAR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14472, IF_X64|IF_SB}, + /* 959 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19826, IF_8086|IF_SM}, + /* 960 */ {I_SBB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19826, IF_8086}, + /* 961 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18499, IF_8086|IF_SM}, + /* 962 */ {I_SBB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18499, IF_8086}, + /* 963 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18504, IF_386|IF_SM}, + /* 964 */ {I_SBB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18504, IF_386}, + /* 965 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18509, IF_X64|IF_SM}, + /* 966 */ {I_SBB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18509, IF_X64}, + /* 967 */ {I_SBB, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+9115, IF_8086|IF_SM}, + /* 968 */ {I_SBB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+9115, IF_8086}, + /* 969 */ {I_SBB, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+18514, IF_8086|IF_SM}, + /* 970 */ {I_SBB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18514, IF_8086}, + /* 971 */ {I_SBB, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+18519, IF_386|IF_SM}, + /* 972 */ {I_SBB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18519, IF_386}, + /* 973 */ {I_SBB, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+18524, IF_X64|IF_SM}, + /* 974 */ {I_SBB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18524, IF_X64}, + /* 975 */ {I_SBB, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14478, IF_8086}, + /* 976 */ {I_SBB, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14484, IF_386}, + /* 977 */ {I_SBB, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14490, IF_X64}, + /* 978 */ {I_SBB, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+19830, IF_8086|IF_SM}, + /* 979 */ {I_SBB, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+14478, IF_8086|IF_SM}, + /* 980 */ {I_SBB, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+18529, IF_8086|IF_SM}, + /* 981 */ {I_SBB, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+14484, IF_386|IF_SM}, + /* 982 */ {I_SBB, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18534, IF_386|IF_SM}, + /* 983 */ {I_SBB, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+14490, IF_X64|IF_SM}, + /* 984 */ {I_SBB, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18539, IF_X64|IF_SM}, + /* 985 */ {I_SBB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18544, IF_8086|IF_SM}, + /* 986 */ {I_SBB, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14496, IF_8086|IF_SM}, + /* 987 */ {I_SBB, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14502, IF_386|IF_SM}, + /* 988 */ {I_SBB, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14508, IF_X64|IF_SM}, + /* 989 */ {I_SBB, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+18544, IF_8086|IF_SM}, + /* 990 */ {I_SBB, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+14496, IF_8086|IF_SM}, + /* 991 */ {I_SBB, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14502, IF_386|IF_SM}, + /* 992 */ {I_SCASB, 0, {0,0,0,0,0}, nasm_bytecodes+19834, IF_8086}, + /* 993 */ {I_SCASD, 0, {0,0,0,0,0}, nasm_bytecodes+18549, IF_386}, + /* 994 */ {I_SCASQ, 0, {0,0,0,0,0}, nasm_bytecodes+18554, IF_X64}, + /* 995 */ {I_SCASW, 0, {0,0,0,0,0}, nasm_bytecodes+18559, IF_8086}, + /* 996 */ {I_SFENCE, 0, {0,0,0,0,0}, nasm_bytecodes+18564, IF_X64|IF_AMD}, + /* 997 */ {I_SGDT, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18569, IF_286}, + /* 998 */ {I_SHL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, nasm_bytecodes+19810, IF_8086}, + /* 999 */ {I_SHL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, nasm_bytecodes+19814, IF_8086}, + /* 1000 */ {I_SHL, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18429, IF_186|IF_SB}, + /* 1001 */ {I_SHL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, nasm_bytecodes+18434, IF_8086}, + /* 1002 */ {I_SHL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, nasm_bytecodes+18439, IF_8086}, + /* 1003 */ {I_SHL, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14442, IF_186|IF_SB}, + /* 1004 */ {I_SHL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, nasm_bytecodes+18444, IF_386}, + /* 1005 */ {I_SHL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, nasm_bytecodes+18449, IF_386}, + /* 1006 */ {I_SHL, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14448, IF_386|IF_SB}, + /* 1007 */ {I_SHL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, nasm_bytecodes+18454, IF_X64}, + /* 1008 */ {I_SHL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, nasm_bytecodes+18459, IF_X64}, + /* 1009 */ {I_SHL, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14454, IF_X64|IF_SB}, + /* 1010 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS16,IMMEDIATE,0,0}, nasm_bytecodes+7747, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1011 */ {I_SHLD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE,0,0}, nasm_bytecodes+7747, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1012 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS32,IMMEDIATE,0,0}, nasm_bytecodes+7754, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1013 */ {I_SHLD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE,0,0}, nasm_bytecodes+7754, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1014 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS64,IMMEDIATE,0,0}, nasm_bytecodes+7761, IF_X64|IF_SM2|IF_SB|IF_AR2}, + /* 1015 */ {I_SHLD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE,0,0}, nasm_bytecodes+7761, IF_X64|IF_SM2|IF_SB|IF_AR2}, + /* 1016 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS16,REG_CL,0,0}, nasm_bytecodes+14514, IF_386|IF_SM}, + /* 1017 */ {I_SHLD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,REG_CL,0,0}, nasm_bytecodes+14514, IF_386}, + /* 1018 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS32,REG_CL,0,0}, nasm_bytecodes+14520, IF_386|IF_SM}, + /* 1019 */ {I_SHLD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,REG_CL,0,0}, nasm_bytecodes+14520, IF_386}, + /* 1020 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS64,REG_CL,0,0}, nasm_bytecodes+14526, IF_X64|IF_SM}, + /* 1021 */ {I_SHLD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,REG_CL,0,0}, nasm_bytecodes+14526, IF_X64}, + /* 1022 */ {I_SHR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, nasm_bytecodes+19838, IF_8086}, + /* 1023 */ {I_SHR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, nasm_bytecodes+19842, IF_8086}, + /* 1024 */ {I_SHR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18574, IF_186|IF_SB}, + /* 1025 */ {I_SHR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, nasm_bytecodes+18579, IF_8086}, + /* 1026 */ {I_SHR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, nasm_bytecodes+18584, IF_8086}, + /* 1027 */ {I_SHR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14532, IF_186|IF_SB}, + /* 1028 */ {I_SHR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, nasm_bytecodes+18589, IF_386}, + /* 1029 */ {I_SHR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, nasm_bytecodes+18594, IF_386}, + /* 1030 */ {I_SHR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14538, IF_386|IF_SB}, + /* 1031 */ {I_SHR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, nasm_bytecodes+18599, IF_X64}, + /* 1032 */ {I_SHR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, nasm_bytecodes+18604, IF_X64}, + /* 1033 */ {I_SHR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14544, IF_X64|IF_SB}, + /* 1034 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS16,IMMEDIATE,0,0}, nasm_bytecodes+7768, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1035 */ {I_SHRD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE,0,0}, nasm_bytecodes+7768, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1036 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS32,IMMEDIATE,0,0}, nasm_bytecodes+7775, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1037 */ {I_SHRD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE,0,0}, nasm_bytecodes+7775, IF_386|IF_SM2|IF_SB|IF_AR2}, + /* 1038 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS64,IMMEDIATE,0,0}, nasm_bytecodes+7782, IF_X64|IF_SM2|IF_SB|IF_AR2}, + /* 1039 */ {I_SHRD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE,0,0}, nasm_bytecodes+7782, IF_X64|IF_SM2|IF_SB|IF_AR2}, + /* 1040 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS16,REG_CL,0,0}, nasm_bytecodes+14550, IF_386|IF_SM}, + /* 1041 */ {I_SHRD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,REG_CL,0,0}, nasm_bytecodes+14550, IF_386}, + /* 1042 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS32,REG_CL,0,0}, nasm_bytecodes+14556, IF_386|IF_SM}, + /* 1043 */ {I_SHRD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,REG_CL,0,0}, nasm_bytecodes+14556, IF_386}, + /* 1044 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS64,REG_CL,0,0}, nasm_bytecodes+14562, IF_X64|IF_SM}, + /* 1045 */ {I_SHRD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,REG_CL,0,0}, nasm_bytecodes+14562, IF_X64}, + /* 1046 */ {I_SIDT, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18609, IF_286}, + /* 1047 */ {I_SLDT, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+14587, IF_286}, + /* 1048 */ {I_SLDT, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+14587, IF_286}, + /* 1049 */ {I_SLDT, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+14568, IF_286}, + /* 1050 */ {I_SLDT, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14574, IF_386}, + /* 1051 */ {I_SLDT, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+14586, IF_X64}, + /* 1052 */ {I_SKINIT, 0, {0,0,0,0,0}, nasm_bytecodes+18614, IF_X64}, + /* 1053 */ {I_SMI, 0, {0,0,0,0,0}, nasm_bytecodes+19986, IF_386|IF_UNDOC}, + /* 1054 */ {I_SMSW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+14599, IF_286}, + /* 1055 */ {I_SMSW, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+14599, IF_286}, + /* 1056 */ {I_SMSW, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+14592, IF_286}, + /* 1057 */ {I_SMSW, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14598, IF_386}, + /* 1058 */ {I_STC, 0, {0,0,0,0,0}, nasm_bytecodes+18346, IF_8086}, + /* 1059 */ {I_STD, 0, {0,0,0,0,0}, nasm_bytecodes+20019, IF_8086}, + /* 1060 */ {I_STGI, 0, {0,0,0,0,0}, nasm_bytecodes+18619, IF_X64}, + /* 1061 */ {I_STI, 0, {0,0,0,0,0}, nasm_bytecodes+20022, IF_8086}, + /* 1062 */ {I_STOSB, 0, {0,0,0,0,0}, nasm_bytecodes+5569, IF_8086}, + /* 1063 */ {I_STOSD, 0, {0,0,0,0,0}, nasm_bytecodes+19854, IF_386}, + /* 1064 */ {I_STOSQ, 0, {0,0,0,0,0}, nasm_bytecodes+19858, IF_X64}, + /* 1065 */ {I_STOSW, 0, {0,0,0,0,0}, nasm_bytecodes+19862, IF_8086}, + /* 1066 */ {I_STR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+14617, IF_286|IF_PROT}, + /* 1067 */ {I_STR, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+14617, IF_286|IF_PROT}, + /* 1068 */ {I_STR, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+14604, IF_286|IF_PROT}, + /* 1069 */ {I_STR, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14610, IF_386|IF_PROT}, + /* 1070 */ {I_STR, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+14616, IF_X64}, + /* 1071 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19866, IF_8086|IF_SM}, + /* 1072 */ {I_SUB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19866, IF_8086}, + /* 1073 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18624, IF_8086|IF_SM}, + /* 1074 */ {I_SUB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18624, IF_8086}, + /* 1075 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18629, IF_386|IF_SM}, + /* 1076 */ {I_SUB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18629, IF_386}, + /* 1077 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18634, IF_X64|IF_SM}, + /* 1078 */ {I_SUB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18634, IF_X64}, + /* 1079 */ {I_SUB, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+10130, IF_8086|IF_SM}, + /* 1080 */ {I_SUB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+10130, IF_8086}, + /* 1081 */ {I_SUB, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+18639, IF_8086|IF_SM}, + /* 1082 */ {I_SUB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18639, IF_8086}, + /* 1083 */ {I_SUB, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+18644, IF_386|IF_SM}, + /* 1084 */ {I_SUB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18644, IF_386}, + /* 1085 */ {I_SUB, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+18649, IF_X64|IF_SM}, + /* 1086 */ {I_SUB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18649, IF_X64}, + /* 1087 */ {I_SUB, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14622, IF_8086}, + /* 1088 */ {I_SUB, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14628, IF_386}, + /* 1089 */ {I_SUB, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14634, IF_X64}, + /* 1090 */ {I_SUB, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+19870, IF_8086|IF_SM}, + /* 1091 */ {I_SUB, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+14622, IF_8086|IF_SM}, + /* 1092 */ {I_SUB, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+18654, IF_8086|IF_SM}, + /* 1093 */ {I_SUB, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+14628, IF_386|IF_SM}, + /* 1094 */ {I_SUB, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18659, IF_386|IF_SM}, + /* 1095 */ {I_SUB, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+14634, IF_X64|IF_SM}, + /* 1096 */ {I_SUB, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18664, IF_X64|IF_SM}, + /* 1097 */ {I_SUB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18669, IF_8086|IF_SM}, + /* 1098 */ {I_SUB, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14640, IF_8086|IF_SM}, + /* 1099 */ {I_SUB, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14646, IF_386|IF_SM}, + /* 1100 */ {I_SUB, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14652, IF_X64|IF_SM}, + /* 1101 */ {I_SUB, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+18669, IF_8086|IF_SM}, + /* 1102 */ {I_SUB, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+14640, IF_8086|IF_SM}, + /* 1103 */ {I_SUB, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14646, IF_386|IF_SM}, + /* 1104 */ {I_SVDC, 2, {MEMORY|BITS80,REG_SREG,0,0,0}, nasm_bytecodes+8190, IF_486|IF_CYRIX|IF_SMM}, + /* 1105 */ {I_SVTS, 1, {MEMORY|BITS80,0,0,0,0}, nasm_bytecodes+18679, IF_486|IF_CYRIX|IF_SMM}, + /* 1106 */ {I_SWAPGS, 0, {0,0,0,0,0}, nasm_bytecodes+18684, IF_X64}, + /* 1107 */ {I_SYSCALL, 0, {0,0,0,0,0}, nasm_bytecodes+19574, IF_P6|IF_AMD}, + /* 1108 */ {I_SYSENTER, 0, {0,0,0,0,0}, nasm_bytecodes+19874, IF_P6}, + /* 1109 */ {I_SYSEXIT, 0, {0,0,0,0,0}, nasm_bytecodes+19878, IF_P6|IF_PRIV}, + /* 1110 */ {I_SYSRET, 0, {0,0,0,0,0}, nasm_bytecodes+19570, IF_P6|IF_PRIV|IF_AMD}, + /* 1111 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19882, IF_8086|IF_SM}, + /* 1112 */ {I_TEST, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19882, IF_8086}, + /* 1113 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18689, IF_8086|IF_SM}, + /* 1114 */ {I_TEST, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18689, IF_8086}, + /* 1115 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18694, IF_386|IF_SM}, + /* 1116 */ {I_TEST, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18694, IF_386}, + /* 1117 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18699, IF_X64|IF_SM}, + /* 1118 */ {I_TEST, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18699, IF_X64}, + /* 1119 */ {I_TEST, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+19886, IF_8086|IF_SM}, + /* 1120 */ {I_TEST, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+18704, IF_8086|IF_SM}, + /* 1121 */ {I_TEST, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+18709, IF_386|IF_SM}, + /* 1122 */ {I_TEST, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+18714, IF_X64|IF_SM}, + /* 1123 */ {I_TEST, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+19890, IF_8086|IF_SM}, + /* 1124 */ {I_TEST, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+18719, IF_8086|IF_SM}, + /* 1125 */ {I_TEST, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18724, IF_386|IF_SM}, + /* 1126 */ {I_TEST, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18729, IF_X64|IF_SM}, + /* 1127 */ {I_TEST, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18734, IF_8086|IF_SM}, + /* 1128 */ {I_TEST, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14658, IF_8086|IF_SM}, + /* 1129 */ {I_TEST, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14664, IF_386|IF_SM}, + /* 1130 */ {I_TEST, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14670, IF_X64|IF_SM}, + /* 1131 */ {I_TEST, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+18734, IF_8086|IF_SM}, + /* 1132 */ {I_TEST, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+14658, IF_8086|IF_SM}, + /* 1133 */ {I_TEST, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14664, IF_386|IF_SM}, + /* 1134 */ {I_UD0, 0, {0,0,0,0,0}, nasm_bytecodes+19894, IF_186|IF_UNDOC}, + /* 1135 */ {I_UD1, 0, {0,0,0,0,0}, nasm_bytecodes+19898, IF_186|IF_UNDOC}, + /* 1136 */ {I_UD2, 0, {0,0,0,0,0}, nasm_bytecodes+19902, IF_186}, + /* 1137 */ {I_VERR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18739, IF_286|IF_PROT}, + /* 1138 */ {I_VERR, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+18739, IF_286|IF_PROT}, + /* 1139 */ {I_VERR, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+18739, IF_286|IF_PROT}, + /* 1140 */ {I_VERW, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18744, IF_286|IF_PROT}, + /* 1141 */ {I_VERW, 1, {MEMORY|BITS16,0,0,0,0}, nasm_bytecodes+18744, IF_286|IF_PROT}, + /* 1142 */ {I_VERW, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+18744, IF_286|IF_PROT}, + /* 1143 */ {I_FWAIT, 0, {0,0,0,0,0}, nasm_bytecodes+19468, IF_8086}, + /* 1144 */ {I_WBINVD, 0, {0,0,0,0,0}, nasm_bytecodes+19906, IF_486|IF_PRIV}, + /* 1145 */ {I_WRSHR, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14688, IF_P6|IF_CYRIX|IF_SMM}, + /* 1146 */ {I_WRMSR, 0, {0,0,0,0,0}, nasm_bytecodes+19910, IF_PENT|IF_PRIV}, + /* 1147 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18749, IF_486|IF_SM}, + /* 1148 */ {I_XADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+18749, IF_486}, + /* 1149 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14694, IF_486|IF_SM}, + /* 1150 */ {I_XADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+14694, IF_486}, + /* 1151 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14700, IF_486|IF_SM}, + /* 1152 */ {I_XADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+14700, IF_486}, + /* 1153 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+14706, IF_X64|IF_SM}, + /* 1154 */ {I_XADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+14706, IF_X64}, + /* 1155 */ {I_XCHG, 2, {REG_AX,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+19914, IF_8086}, + /* 1156 */ {I_XCHG, 2, {REG_EAX,REG32NA,0,0,0}, nasm_bytecodes+19918, IF_386}, + /* 1157 */ {I_XCHG, 2, {REG_RAX,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+19922, IF_X64}, + /* 1158 */ {I_XCHG, 2, {REG_GPR|BITS16,REG_AX,0,0,0}, nasm_bytecodes+19926, IF_8086}, + /* 1159 */ {I_XCHG, 2, {REG32NA,REG_EAX,0,0,0}, nasm_bytecodes+19930, IF_386}, + /* 1160 */ {I_XCHG, 2, {REG_GPR|BITS64,REG_RAX,0,0,0}, nasm_bytecodes+19934, IF_X64}, + /* 1161 */ {I_XCHG, 2, {REG_EAX,REG_EAX,0,0,0}, nasm_bytecodes+19938, IF_386|IF_NOLONG}, + /* 1162 */ {I_XCHG, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+19942, IF_8086|IF_SM}, + /* 1163 */ {I_XCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19942, IF_8086}, + /* 1164 */ {I_XCHG, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+18754, IF_8086|IF_SM}, + /* 1165 */ {I_XCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18754, IF_8086}, + /* 1166 */ {I_XCHG, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+18759, IF_386|IF_SM}, + /* 1167 */ {I_XCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18759, IF_386}, + /* 1168 */ {I_XCHG, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+18764, IF_X64|IF_SM}, + /* 1169 */ {I_XCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18764, IF_X64}, + /* 1170 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19946, IF_8086|IF_SM}, + /* 1171 */ {I_XCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19946, IF_8086}, + /* 1172 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18769, IF_8086|IF_SM}, + /* 1173 */ {I_XCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18769, IF_8086}, + /* 1174 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18774, IF_386|IF_SM}, + /* 1175 */ {I_XCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18774, IF_386}, + /* 1176 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18779, IF_X64|IF_SM}, + /* 1177 */ {I_XCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18779, IF_X64}, + /* 1178 */ {I_XLATB, 0, {0,0,0,0,0}, nasm_bytecodes+20025, IF_8086}, + /* 1179 */ {I_XLAT, 0, {0,0,0,0,0}, nasm_bytecodes+20025, IF_8086}, + /* 1180 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19950, IF_8086|IF_SM}, + /* 1181 */ {I_XOR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+19950, IF_8086}, + /* 1182 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18784, IF_8086|IF_SM}, + /* 1183 */ {I_XOR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18784, IF_8086}, + /* 1184 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18789, IF_386|IF_SM}, + /* 1185 */ {I_XOR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18789, IF_386}, + /* 1186 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18794, IF_X64|IF_SM}, + /* 1187 */ {I_XOR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18794, IF_X64}, + /* 1188 */ {I_XOR, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, nasm_bytecodes+11208, IF_8086|IF_SM}, + /* 1189 */ {I_XOR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, nasm_bytecodes+11208, IF_8086}, + /* 1190 */ {I_XOR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+18799, IF_8086|IF_SM}, + /* 1191 */ {I_XOR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+18799, IF_8086}, + /* 1192 */ {I_XOR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+18804, IF_386|IF_SM}, + /* 1193 */ {I_XOR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+18804, IF_386}, + /* 1194 */ {I_XOR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+18809, IF_X64|IF_SM}, + /* 1195 */ {I_XOR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+18809, IF_X64}, + /* 1196 */ {I_XOR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14724, IF_8086}, + /* 1197 */ {I_XOR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14730, IF_386}, + /* 1198 */ {I_XOR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+14736, IF_X64}, + /* 1199 */ {I_XOR, 2, {REG_AL,IMMEDIATE,0,0,0}, nasm_bytecodes+19954, IF_8086|IF_SM}, + /* 1200 */ {I_XOR, 2, {REG_AX,SBYTE16,0,0,0}, nasm_bytecodes+14724, IF_8086|IF_SM}, + /* 1201 */ {I_XOR, 2, {REG_AX,IMMEDIATE,0,0,0}, nasm_bytecodes+18814, IF_8086|IF_SM}, + /* 1202 */ {I_XOR, 2, {REG_EAX,SBYTE32,0,0,0}, nasm_bytecodes+14730, IF_386|IF_SM}, + /* 1203 */ {I_XOR, 2, {REG_EAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18819, IF_386|IF_SM}, + /* 1204 */ {I_XOR, 2, {REG_RAX,SBYTE64,0,0,0}, nasm_bytecodes+14736, IF_X64|IF_SM}, + /* 1205 */ {I_XOR, 2, {REG_RAX,IMMEDIATE,0,0,0}, nasm_bytecodes+18824, IF_X64|IF_SM}, + /* 1206 */ {I_XOR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, nasm_bytecodes+18829, IF_8086|IF_SM}, + /* 1207 */ {I_XOR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, nasm_bytecodes+14742, IF_8086|IF_SM}, + /* 1208 */ {I_XOR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, nasm_bytecodes+14748, IF_386|IF_SM}, + /* 1209 */ {I_XOR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, nasm_bytecodes+14754, IF_X64|IF_SM}, + /* 1210 */ {I_XOR, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+18829, IF_8086|IF_SM}, + /* 1211 */ {I_XOR, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, nasm_bytecodes+14742, IF_8086|IF_SM}, + /* 1212 */ {I_XOR, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, nasm_bytecodes+14748, IF_386|IF_SM}, + /* 1213 */ {I_CMOVcc, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, nasm_bytecodes+7817, IF_P6|IF_SM}, + /* 1214 */ {I_CMOVcc, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+7817, IF_P6}, + /* 1215 */ {I_CMOVcc, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+7824, IF_P6|IF_SM}, + /* 1216 */ {I_CMOVcc, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+7824, IF_P6}, + /* 1217 */ {I_CMOVcc, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+7831, IF_X64|IF_SM}, + /* 1218 */ {I_CMOVcc, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+7831, IF_X64}, + /* 1219 */ {I_Jcc, 1, {IMMEDIATE|NEAR,0,0,0,0}, nasm_bytecodes+7838, IF_386}, + /* 1220 */ {I_Jcc, 1, {IMMEDIATE|BITS16|NEAR,0,0,0,0}, nasm_bytecodes+7845, IF_386}, + /* 1221 */ {I_Jcc, 1, {IMMEDIATE|BITS32|NEAR,0,0,0,0}, nasm_bytecodes+7852, IF_386}, + /* 1222 */ {I_Jcc, 1, {IMMEDIATE,0,0,0,0}, nasm_bytecodes+18835, IF_8086}, + /* 1223 */ {I_SETcc, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+14760, IF_386|IF_SB}, + /* 1224 */ {I_SETcc, 1, {REG_GPR|BITS8,0,0,0,0}, nasm_bytecodes+14760, IF_386}, + /* 1225 */ {I_ADDPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14766, IF_KATMAI|IF_SSE}, + /* 1226 */ {I_ADDSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14772, IF_KATMAI|IF_SSE|IF_SD}, + /* 1227 */ {I_ANDNPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14778, IF_KATMAI|IF_SSE}, + /* 1228 */ {I_ANDPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14784, IF_KATMAI|IF_SSE}, + /* 1229 */ {I_CMPEQPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5588, IF_KATMAI|IF_SSE}, + /* 1230 */ {I_CMPEQSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5596, IF_KATMAI|IF_SSE}, + /* 1231 */ {I_CMPLEPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5604, IF_KATMAI|IF_SSE}, + /* 1232 */ {I_CMPLESS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5612, IF_KATMAI|IF_SSE}, + /* 1233 */ {I_CMPLTPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5620, IF_KATMAI|IF_SSE}, + /* 1234 */ {I_CMPLTSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5628, IF_KATMAI|IF_SSE}, + /* 1235 */ {I_CMPNEQPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5636, IF_KATMAI|IF_SSE}, + /* 1236 */ {I_CMPNEQSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5644, IF_KATMAI|IF_SSE}, + /* 1237 */ {I_CMPNLEPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5652, IF_KATMAI|IF_SSE}, + /* 1238 */ {I_CMPNLESS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5660, IF_KATMAI|IF_SSE}, + /* 1239 */ {I_CMPNLTPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5668, IF_KATMAI|IF_SSE}, + /* 1240 */ {I_CMPNLTSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5676, IF_KATMAI|IF_SSE}, + /* 1241 */ {I_CMPORDPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5684, IF_KATMAI|IF_SSE}, + /* 1242 */ {I_CMPORDSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5692, IF_KATMAI|IF_SSE}, + /* 1243 */ {I_CMPUNORDPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5700, IF_KATMAI|IF_SSE}, + /* 1244 */ {I_CMPUNORDSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5708, IF_KATMAI|IF_SSE}, + /* 1245 */ {I_CMPPS, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+7866, IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, + /* 1246 */ {I_CMPPS, 3, {XMMREG,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+7866, IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, + /* 1247 */ {I_CMPSS, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+7873, IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, + /* 1248 */ {I_CMPSS, 3, {XMMREG,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+7873, IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, + /* 1249 */ {I_COMISS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14790, IF_KATMAI|IF_SSE}, + /* 1250 */ {I_CVTPI2PS, 2, {XMMREG,RM_MMX,0,0,0}, nasm_bytecodes+14796, IF_KATMAI|IF_SSE|IF_MMX|IF_SQ}, + /* 1251 */ {I_CVTPS2PI, 2, {MMXREG,RM_XMM,0,0,0}, nasm_bytecodes+14802, IF_KATMAI|IF_SSE|IF_MMX|IF_SQ}, + /* 1252 */ {I_CVTSI2SS, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+7881, IF_KATMAI|IF_SSE|IF_SD|IF_AR1}, + /* 1253 */ {I_CVTSI2SS, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+7880, IF_X64|IF_SSE|IF_SQ|IF_AR1}, + /* 1254 */ {I_CVTSS2SI, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+7888, IF_KATMAI|IF_SSE|IF_SD|IF_AR1}, + /* 1255 */ {I_CVTSS2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+7888, IF_KATMAI|IF_SSE|IF_SD|IF_AR1}, + /* 1256 */ {I_CVTSS2SI, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+7887, IF_X64|IF_SSE|IF_SD|IF_AR1}, + /* 1257 */ {I_CVTSS2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+7887, IF_X64|IF_SSE|IF_SD|IF_AR1}, + /* 1258 */ {I_CVTTPS2PI, 2, {MMXREG,RM_XMM,0,0,0}, nasm_bytecodes+14808, IF_KATMAI|IF_SSE|IF_MMX|IF_SQ}, + /* 1259 */ {I_CVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM,0,0,0}, nasm_bytecodes+7895, IF_KATMAI|IF_SSE|IF_SD|IF_AR1}, + /* 1260 */ {I_CVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM,0,0,0}, nasm_bytecodes+7894, IF_X64|IF_SSE|IF_SD|IF_AR1}, + /* 1261 */ {I_DIVPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14814, IF_KATMAI|IF_SSE}, + /* 1262 */ {I_DIVSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14820, IF_KATMAI|IF_SSE}, + /* 1263 */ {I_LDMXCSR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18839, IF_KATMAI|IF_SSE|IF_SD}, + /* 1264 */ {I_MAXPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14826, IF_KATMAI|IF_SSE}, + /* 1265 */ {I_MAXSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14832, IF_KATMAI|IF_SSE}, + /* 1266 */ {I_MINPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14838, IF_KATMAI|IF_SSE}, + /* 1267 */ {I_MINSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14844, IF_KATMAI|IF_SSE}, + /* 1268 */ {I_MOVAPS, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+14850, IF_KATMAI|IF_SSE}, + /* 1269 */ {I_MOVAPS, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+14856, IF_KATMAI|IF_SSE}, + /* 1270 */ {I_MOVAPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14850, IF_KATMAI|IF_SSE}, + /* 1271 */ {I_MOVAPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14856, IF_KATMAI|IF_SSE}, + /* 1272 */ {I_MOVHPS, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+14862, IF_KATMAI|IF_SSE}, + /* 1273 */ {I_MOVHPS, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+14868, IF_KATMAI|IF_SSE}, + /* 1274 */ {I_MOVLHPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14862, IF_KATMAI|IF_SSE}, + /* 1275 */ {I_MOVLPS, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+14682, IF_KATMAI|IF_SSE}, + /* 1276 */ {I_MOVLPS, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+14874, IF_KATMAI|IF_SSE}, + /* 1277 */ {I_MOVHLPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14682, IF_KATMAI|IF_SSE}, + /* 1278 */ {I_MOVMSKPS, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+14880, IF_KATMAI|IF_SSE}, + /* 1279 */ {I_MOVMSKPS, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+7901, IF_X64|IF_SSE}, + /* 1280 */ {I_MOVNTPS, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+14886, IF_KATMAI|IF_SSE}, + /* 1281 */ {I_MOVSS, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+14892, IF_KATMAI|IF_SSE}, + /* 1282 */ {I_MOVSS, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+14898, IF_KATMAI|IF_SSE}, + /* 1283 */ {I_MOVSS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14892, IF_KATMAI|IF_SSE}, + /* 1284 */ {I_MOVSS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14898, IF_KATMAI|IF_SSE}, + /* 1285 */ {I_MOVUPS, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+14904, IF_KATMAI|IF_SSE}, + /* 1286 */ {I_MOVUPS, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+14910, IF_KATMAI|IF_SSE}, + /* 1287 */ {I_MOVUPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14904, IF_KATMAI|IF_SSE}, + /* 1288 */ {I_MOVUPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+14910, IF_KATMAI|IF_SSE}, + /* 1289 */ {I_MULPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14916, IF_KATMAI|IF_SSE}, + /* 1290 */ {I_MULSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14922, IF_KATMAI|IF_SSE}, + /* 1291 */ {I_ORPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14928, IF_KATMAI|IF_SSE}, + /* 1292 */ {I_RCPPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14934, IF_KATMAI|IF_SSE}, + /* 1293 */ {I_RCPSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14940, IF_KATMAI|IF_SSE}, + /* 1294 */ {I_RSQRTPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14946, IF_KATMAI|IF_SSE}, + /* 1295 */ {I_RSQRTSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14952, IF_KATMAI|IF_SSE}, + /* 1296 */ {I_SHUFPS, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+7908, IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, + /* 1297 */ {I_SHUFPS, 3, {XMMREG,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+7908, IF_KATMAI|IF_SSE|IF_SB|IF_AR2}, + /* 1298 */ {I_SQRTPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14958, IF_KATMAI|IF_SSE}, + /* 1299 */ {I_SQRTSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14964, IF_KATMAI|IF_SSE}, + /* 1300 */ {I_STMXCSR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18844, IF_KATMAI|IF_SSE|IF_SD}, + /* 1301 */ {I_SUBPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14970, IF_KATMAI|IF_SSE}, + /* 1302 */ {I_SUBSS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14976, IF_KATMAI|IF_SSE}, + /* 1303 */ {I_UCOMISS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14982, IF_KATMAI|IF_SSE}, + /* 1304 */ {I_UNPCKHPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14988, IF_KATMAI|IF_SSE}, + /* 1305 */ {I_UNPCKLPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+14994, IF_KATMAI|IF_SSE}, + /* 1306 */ {I_XORPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15000, IF_KATMAI|IF_SSE}, + /* 1307 */ {I_FXRSTOR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18849, IF_P6|IF_SSE|IF_FPU}, + /* 1308 */ {I_FXSAVE, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18854, IF_P6|IF_SSE|IF_FPU}, + /* 1309 */ {I_XGETBV, 0, {0,0,0,0,0}, nasm_bytecodes+15006, IF_NEHALEM}, + /* 1310 */ {I_XSETBV, 0, {0,0,0,0,0}, nasm_bytecodes+15012, IF_NEHALEM|IF_PRIV}, + /* 1311 */ {I_XSAVE, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15018, IF_NEHALEM}, + /* 1312 */ {I_XRSTOR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15024, IF_NEHALEM}, + /* 1313 */ {I_PREFETCHNTA, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15913, IF_KATMAI}, + /* 1314 */ {I_PREFETCHT0, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15931, IF_KATMAI}, + /* 1315 */ {I_PREFETCHT1, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15949, IF_KATMAI}, + /* 1316 */ {I_PREFETCHT2, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15967, IF_KATMAI}, + /* 1317 */ {I_SFENCE, 0, {0,0,0,0,0}, nasm_bytecodes+18564, IF_KATMAI}, + /* 1318 */ {I_MASKMOVQ, 2, {MMXREG,MMXREG,0,0,0}, nasm_bytecodes+15030, IF_KATMAI|IF_MMX}, + /* 1319 */ {I_MOVNTQ, 2, {MEMORY,MMXREG,0,0,0}, nasm_bytecodes+15036, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1320 */ {I_PAVGB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7915, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1321 */ {I_PAVGW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7922, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1322 */ {I_PEXTRW, 3, {REG_GPR|BITS32,MMXREG,IMMEDIATE,0,0}, nasm_bytecodes+7929, IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, + /* 1323 */ {I_PINSRW, 3, {MMXREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+7936, IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, + /* 1324 */ {I_PINSRW, 3, {MMXREG,RM_GPR|BITS16,IMMEDIATE,0,0}, nasm_bytecodes+7936, IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, + /* 1325 */ {I_PINSRW, 3, {MMXREG,REG_GPR|BITS32,IMMEDIATE,0,0}, nasm_bytecodes+7936, IF_KATMAI|IF_MMX|IF_SB|IF_AR2}, + /* 1326 */ {I_PMAXSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7943, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1327 */ {I_PMAXUB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7950, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1328 */ {I_PMINSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7957, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1329 */ {I_PMINUB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7964, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1330 */ {I_PMOVMSKB, 2, {REG_GPR|BITS32,MMXREG,0,0,0}, nasm_bytecodes+15042, IF_KATMAI|IF_MMX}, + /* 1331 */ {I_PMULHUW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7971, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1332 */ {I_PSADBW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+7978, IF_KATMAI|IF_MMX|IF_SQ}, + /* 1333 */ {I_PSHUFW, 3, {MMXREG,RM_MMX,IMMEDIATE,0,0}, nasm_bytecodes+5716, IF_KATMAI|IF_MMX|IF_SM2|IF_SB|IF_AR2}, + /* 1334 */ {I_PF2IW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5724, IF_PENT|IF_3DNOW|IF_SQ}, + /* 1335 */ {I_PFNACC, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5732, IF_PENT|IF_3DNOW|IF_SQ}, + /* 1336 */ {I_PFPNACC, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5740, IF_PENT|IF_3DNOW|IF_SQ}, + /* 1337 */ {I_PI2FW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5748, IF_PENT|IF_3DNOW|IF_SQ}, + /* 1338 */ {I_PSWAPD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+5756, IF_PENT|IF_3DNOW|IF_SQ}, + /* 1339 */ {I_MASKMOVDQU, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15048, IF_WILLAMETTE|IF_SSE2}, + /* 1340 */ {I_CLFLUSH, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18859, IF_WILLAMETTE|IF_SSE2}, + /* 1341 */ {I_MOVNTDQ, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15054, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1342 */ {I_MOVNTI, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+7986, IF_WILLAMETTE|IF_SD}, + /* 1343 */ {I_MOVNTI, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+7985, IF_X64|IF_SQ}, + /* 1344 */ {I_MOVNTPD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15060, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1345 */ {I_LFENCE, 0, {0,0,0,0,0}, nasm_bytecodes+17899, IF_WILLAMETTE|IF_SSE2}, + /* 1346 */ {I_MFENCE, 0, {0,0,0,0,0}, nasm_bytecodes+17989, IF_WILLAMETTE|IF_SSE2}, + /* 1347 */ {I_MOVD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+7992, IF_WILLAMETTE|IF_SSE2|IF_SD}, + /* 1348 */ {I_MOVD, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+7999, IF_WILLAMETTE|IF_SSE2|IF_SD}, + /* 1349 */ {I_MOVD, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+7999, IF_WILLAMETTE|IF_SSE2}, + /* 1350 */ {I_MOVD, 2, {RM_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+7992, IF_WILLAMETTE|IF_SSE2}, + /* 1351 */ {I_MOVDQA, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15066, IF_WILLAMETTE|IF_SSE2}, + /* 1352 */ {I_MOVDQA, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15072, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1353 */ {I_MOVDQA, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15066, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1354 */ {I_MOVDQA, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15072, IF_WILLAMETTE|IF_SSE2}, + /* 1355 */ {I_MOVDQU, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15078, IF_WILLAMETTE|IF_SSE2}, + /* 1356 */ {I_MOVDQU, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15084, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1357 */ {I_MOVDQU, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15078, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1358 */ {I_MOVDQU, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15084, IF_WILLAMETTE|IF_SSE2}, + /* 1359 */ {I_MOVDQ2Q, 2, {MMXREG,XMMREG,0,0,0}, nasm_bytecodes+15090, IF_WILLAMETTE|IF_SSE2}, + /* 1360 */ {I_MOVQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15096, IF_WILLAMETTE|IF_SSE2}, + /* 1361 */ {I_MOVQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15102, IF_WILLAMETTE|IF_SSE2}, + /* 1362 */ {I_MOVQ, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15102, IF_WILLAMETTE|IF_SSE2|IF_SQ}, + /* 1363 */ {I_MOVQ, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15096, IF_WILLAMETTE|IF_SSE2|IF_SQ}, + /* 1364 */ {I_MOVQ, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+8006, IF_X64|IF_SSE2}, + /* 1365 */ {I_MOVQ, 2, {RM_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+8013, IF_X64|IF_SSE2}, + /* 1366 */ {I_MOVQ2DQ, 2, {XMMREG,MMXREG,0,0,0}, nasm_bytecodes+15108, IF_WILLAMETTE|IF_SSE2}, + /* 1367 */ {I_PACKSSWB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15114, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1368 */ {I_PACKSSDW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15120, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1369 */ {I_PACKUSWB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15126, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1370 */ {I_PADDB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15132, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1371 */ {I_PADDW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15138, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1372 */ {I_PADDD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15144, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1373 */ {I_PADDQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+15150, IF_WILLAMETTE|IF_MMX|IF_SQ}, + /* 1374 */ {I_PADDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15156, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1375 */ {I_PADDSB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15162, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1376 */ {I_PADDSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15168, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1377 */ {I_PADDUSB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15174, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1378 */ {I_PADDUSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15180, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1379 */ {I_PAND, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15186, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1380 */ {I_PANDN, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15192, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1381 */ {I_PAVGB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15198, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1382 */ {I_PAVGW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15204, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1383 */ {I_PCMPEQB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15210, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1384 */ {I_PCMPEQW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15216, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1385 */ {I_PCMPEQD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15222, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1386 */ {I_PCMPGTB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15228, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1387 */ {I_PCMPGTW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15234, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1388 */ {I_PCMPGTD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15240, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1389 */ {I_PEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+8020, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1390 */ {I_PINSRW, 3, {XMMREG,REG_GPR|BITS16,IMMEDIATE,0,0}, nasm_bytecodes+8027, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1391 */ {I_PINSRW, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+8027, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1392 */ {I_PINSRW, 3, {XMMREG,MEMORY|BITS16,IMMEDIATE,0,0}, nasm_bytecodes+8027, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1393 */ {I_PMADDWD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15246, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1394 */ {I_PMAXSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15252, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1395 */ {I_PMAXUB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15258, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1396 */ {I_PMINSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15264, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1397 */ {I_PMINUB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15270, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1398 */ {I_PMOVMSKB, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+15276, IF_WILLAMETTE|IF_SSE2}, + /* 1399 */ {I_PMULHUW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15282, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1400 */ {I_PMULHW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15288, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1401 */ {I_PMULLW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15294, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1402 */ {I_PMULUDQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8034, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1403 */ {I_PMULUDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15300, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1404 */ {I_POR, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15306, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1405 */ {I_PSADBW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15312, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1406 */ {I_PSHUFD, 3, {XMMREG,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+8041, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1407 */ {I_PSHUFD, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+8041, IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, + /* 1408 */ {I_PSHUFHW, 3, {XMMREG,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+8048, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1409 */ {I_PSHUFHW, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+8048, IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, + /* 1410 */ {I_PSHUFLW, 3, {XMMREG,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+8055, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1411 */ {I_PSHUFLW, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+8055, IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, + /* 1412 */ {I_PSLLDQ, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8062, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1413 */ {I_PSLLW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15318, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1414 */ {I_PSLLW, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8069, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1415 */ {I_PSLLD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15324, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1416 */ {I_PSLLD, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8076, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1417 */ {I_PSLLQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15330, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1418 */ {I_PSLLQ, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8083, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1419 */ {I_PSRAW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15336, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1420 */ {I_PSRAW, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8090, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1421 */ {I_PSRAD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15342, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1422 */ {I_PSRAD, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8097, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1423 */ {I_PSRLDQ, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8104, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1424 */ {I_PSRLW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15348, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1425 */ {I_PSRLW, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8111, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1426 */ {I_PSRLD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15354, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1427 */ {I_PSRLD, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8118, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1428 */ {I_PSRLQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15360, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1429 */ {I_PSRLQ, 2, {XMMREG,IMMEDIATE,0,0,0}, nasm_bytecodes+8125, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR1}, + /* 1430 */ {I_PSUBB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15366, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1431 */ {I_PSUBW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15372, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1432 */ {I_PSUBD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15378, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1433 */ {I_PSUBQ, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8132, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1434 */ {I_PSUBQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15384, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1435 */ {I_PSUBSB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15390, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1436 */ {I_PSUBSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15396, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1437 */ {I_PSUBUSB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15402, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1438 */ {I_PSUBUSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15408, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1439 */ {I_PUNPCKHBW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15414, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1440 */ {I_PUNPCKHWD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15420, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1441 */ {I_PUNPCKHDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15426, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1442 */ {I_PUNPCKHQDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15432, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1443 */ {I_PUNPCKLBW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15438, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1444 */ {I_PUNPCKLWD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15444, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1445 */ {I_PUNPCKLDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15450, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1446 */ {I_PUNPCKLQDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15456, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1447 */ {I_PXOR, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15462, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1448 */ {I_ADDPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15468, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1449 */ {I_ADDSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15474, IF_WILLAMETTE|IF_SSE2|IF_SQ}, + /* 1450 */ {I_ANDNPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15480, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1451 */ {I_ANDPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15486, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1452 */ {I_CMPEQPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5764, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1453 */ {I_CMPEQSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5772, IF_WILLAMETTE|IF_SSE2}, + /* 1454 */ {I_CMPLEPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5780, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1455 */ {I_CMPLESD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5788, IF_WILLAMETTE|IF_SSE2}, + /* 1456 */ {I_CMPLTPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5796, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1457 */ {I_CMPLTSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5804, IF_WILLAMETTE|IF_SSE2}, + /* 1458 */ {I_CMPNEQPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5812, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1459 */ {I_CMPNEQSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5820, IF_WILLAMETTE|IF_SSE2}, + /* 1460 */ {I_CMPNLEPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5828, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1461 */ {I_CMPNLESD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5836, IF_WILLAMETTE|IF_SSE2}, + /* 1462 */ {I_CMPNLTPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5844, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1463 */ {I_CMPNLTSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5852, IF_WILLAMETTE|IF_SSE2}, + /* 1464 */ {I_CMPORDPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5860, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1465 */ {I_CMPORDSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5868, IF_WILLAMETTE|IF_SSE2}, + /* 1466 */ {I_CMPUNORDPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5876, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1467 */ {I_CMPUNORDSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+5884, IF_WILLAMETTE|IF_SSE2}, + /* 1468 */ {I_CMPPD, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+8139, IF_WILLAMETTE|IF_SSE2|IF_SM2|IF_SB|IF_AR2}, + /* 1469 */ {I_CMPSD, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+8146, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1470 */ {I_COMISD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15492, IF_WILLAMETTE|IF_SSE2}, + /* 1471 */ {I_CVTDQ2PD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15498, IF_WILLAMETTE|IF_SSE2|IF_SQ}, + /* 1472 */ {I_CVTDQ2PS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15504, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1473 */ {I_CVTPD2DQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15510, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1474 */ {I_CVTPD2PI, 2, {MMXREG,RM_XMM,0,0,0}, nasm_bytecodes+15516, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1475 */ {I_CVTPD2PS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15522, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1476 */ {I_CVTPI2PD, 2, {XMMREG,RM_MMX,0,0,0}, nasm_bytecodes+15528, IF_WILLAMETTE|IF_SSE2|IF_SQ}, + /* 1477 */ {I_CVTPS2DQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15534, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1478 */ {I_CVTPS2PD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15540, IF_WILLAMETTE|IF_SSE2|IF_SQ}, + /* 1479 */ {I_CVTSD2SI, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+8154, IF_WILLAMETTE|IF_SSE2|IF_SQ|IF_AR1}, + /* 1480 */ {I_CVTSD2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+8154, IF_WILLAMETTE|IF_SSE2|IF_SQ|IF_AR1}, + /* 1481 */ {I_CVTSD2SI, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+8153, IF_X64|IF_SSE2|IF_SQ|IF_AR1}, + /* 1482 */ {I_CVTSD2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+8153, IF_X64|IF_SSE2|IF_SQ|IF_AR1}, + /* 1483 */ {I_CVTSD2SS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15546, IF_WILLAMETTE|IF_SSE2|IF_SQ}, + /* 1484 */ {I_CVTSI2SD, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+8161, IF_WILLAMETTE|IF_SSE2|IF_SD|IF_AR1}, + /* 1485 */ {I_CVTSI2SD, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+8160, IF_X64|IF_SSE2|IF_SQ|IF_AR1}, + /* 1486 */ {I_CVTSS2SD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15552, IF_WILLAMETTE|IF_SSE2|IF_SD}, + /* 1487 */ {I_CVTTPD2PI, 2, {MMXREG,RM_XMM,0,0,0}, nasm_bytecodes+15558, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1488 */ {I_CVTTPD2DQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15564, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1489 */ {I_CVTTPS2DQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15570, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1490 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+8168, IF_WILLAMETTE|IF_SSE2|IF_SQ|IF_AR1}, + /* 1491 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+8168, IF_WILLAMETTE|IF_SSE2|IF_SQ|IF_AR1}, + /* 1492 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+8167, IF_X64|IF_SSE2|IF_SQ|IF_AR1}, + /* 1493 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+8167, IF_X64|IF_SSE2|IF_SQ|IF_AR1}, + /* 1494 */ {I_DIVPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15576, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1495 */ {I_DIVSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15582, IF_WILLAMETTE|IF_SSE2}, + /* 1496 */ {I_MAXPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15588, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1497 */ {I_MAXSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15594, IF_WILLAMETTE|IF_SSE2}, + /* 1498 */ {I_MINPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15600, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1499 */ {I_MINSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15606, IF_WILLAMETTE|IF_SSE2}, + /* 1500 */ {I_MOVAPD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15612, IF_WILLAMETTE|IF_SSE2}, + /* 1501 */ {I_MOVAPD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15618, IF_WILLAMETTE|IF_SSE2}, + /* 1502 */ {I_MOVAPD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15618, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1503 */ {I_MOVAPD, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15612, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1504 */ {I_MOVHPD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15624, IF_WILLAMETTE|IF_SSE2}, + /* 1505 */ {I_MOVHPD, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15630, IF_WILLAMETTE|IF_SSE2}, + /* 1506 */ {I_MOVLPD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15636, IF_WILLAMETTE|IF_SSE2}, + /* 1507 */ {I_MOVLPD, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15642, IF_WILLAMETTE|IF_SSE2}, + /* 1508 */ {I_MOVMSKPD, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+15648, IF_WILLAMETTE|IF_SSE2}, + /* 1509 */ {I_MOVMSKPD, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+8174, IF_X64|IF_SSE2}, + /* 1510 */ {I_MOVSD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15654, IF_WILLAMETTE|IF_SSE2}, + /* 1511 */ {I_MOVSD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15660, IF_WILLAMETTE|IF_SSE2}, + /* 1512 */ {I_MOVSD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15660, IF_WILLAMETTE|IF_SSE2}, + /* 1513 */ {I_MOVSD, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15654, IF_WILLAMETTE|IF_SSE2}, + /* 1514 */ {I_MOVUPD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15666, IF_WILLAMETTE|IF_SSE2}, + /* 1515 */ {I_MOVUPD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15672, IF_WILLAMETTE|IF_SSE2}, + /* 1516 */ {I_MOVUPD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15672, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1517 */ {I_MOVUPD, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15666, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1518 */ {I_MULPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15678, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1519 */ {I_MULSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15684, IF_WILLAMETTE|IF_SSE2}, + /* 1520 */ {I_ORPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15690, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1521 */ {I_SHUFPD, 3, {XMMREG,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+8181, IF_WILLAMETTE|IF_SSE2|IF_SB|IF_AR2}, + /* 1522 */ {I_SHUFPD, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+8181, IF_WILLAMETTE|IF_SSE2|IF_SM|IF_SB|IF_AR2}, + /* 1523 */ {I_SQRTPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15696, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1524 */ {I_SQRTSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15702, IF_WILLAMETTE|IF_SSE2}, + /* 1525 */ {I_SUBPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15708, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1526 */ {I_SUBSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15714, IF_WILLAMETTE|IF_SSE2}, + /* 1527 */ {I_UCOMISD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15720, IF_WILLAMETTE|IF_SSE2}, + /* 1528 */ {I_UNPCKHPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15726, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1529 */ {I_UNPCKLPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15732, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1530 */ {I_XORPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15738, IF_WILLAMETTE|IF_SSE2|IF_SO}, + /* 1531 */ {I_ADDSUBPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15744, IF_PRESCOTT|IF_SSE3|IF_SO}, + /* 1532 */ {I_ADDSUBPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15750, IF_PRESCOTT|IF_SSE3|IF_SO}, + /* 1533 */ {I_HADDPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15756, IF_PRESCOTT|IF_SSE3|IF_SO}, + /* 1534 */ {I_HADDPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15762, IF_PRESCOTT|IF_SSE3|IF_SO}, + /* 1535 */ {I_HSUBPD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15768, IF_PRESCOTT|IF_SSE3|IF_SO}, + /* 1536 */ {I_HSUBPS, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15774, IF_PRESCOTT|IF_SSE3|IF_SO}, + /* 1537 */ {I_LDDQU, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+15780, IF_PRESCOTT|IF_SSE3|IF_SO}, + /* 1538 */ {I_MOVDDUP, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15786, IF_PRESCOTT|IF_SSE3}, + /* 1539 */ {I_MOVSHDUP, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15792, IF_PRESCOTT|IF_SSE3}, + /* 1540 */ {I_MOVSLDUP, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+15798, IF_PRESCOTT|IF_SSE3}, + /* 1541 */ {I_VMCALL, 0, {0,0,0,0,0}, nasm_bytecodes+18864, IF_VMX}, + /* 1542 */ {I_VMCLEAR, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15804, IF_VMX}, + /* 1543 */ {I_VMLAUNCH, 0, {0,0,0,0,0}, nasm_bytecodes+18869, IF_VMX}, + /* 1544 */ {I_VMLOAD, 0, {0,0,0,0,0}, nasm_bytecodes+18874, IF_X64|IF_VMX}, + /* 1545 */ {I_VMMCALL, 0, {0,0,0,0,0}, nasm_bytecodes+18879, IF_X64|IF_VMX}, + /* 1546 */ {I_VMPTRLD, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15811, IF_VMX}, + /* 1547 */ {I_VMPTRST, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+18884, IF_VMX}, + /* 1548 */ {I_VMREAD, 2, {RM_GPR|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+8189, IF_VMX|IF_NOLONG|IF_SD}, + /* 1549 */ {I_VMREAD, 2, {RM_GPR|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+8188, IF_X64|IF_VMX|IF_SQ}, + /* 1550 */ {I_VMRESUME, 0, {0,0,0,0,0}, nasm_bytecodes+18889, IF_VMX}, + /* 1551 */ {I_VMRUN, 0, {0,0,0,0,0}, nasm_bytecodes+18894, IF_X64|IF_VMX}, + /* 1552 */ {I_VMSAVE, 0, {0,0,0,0,0}, nasm_bytecodes+18899, IF_X64|IF_VMX}, + /* 1553 */ {I_VMWRITE, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+8196, IF_VMX|IF_NOLONG|IF_SD}, + /* 1554 */ {I_VMWRITE, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+8195, IF_X64|IF_VMX|IF_SQ}, + /* 1555 */ {I_VMXOFF, 0, {0,0,0,0,0}, nasm_bytecodes+18904, IF_VMX}, + /* 1556 */ {I_VMXON, 1, {MEMORY,0,0,0,0}, nasm_bytecodes+15810, IF_VMX}, + /* 1557 */ {I_INVEPT, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+5893, IF_VMX|IF_SO|IF_NOLONG}, + /* 1558 */ {I_INVEPT, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+5892, IF_VMX|IF_SO|IF_LONG}, + /* 1559 */ {I_INVVPID, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, nasm_bytecodes+5901, IF_VMX|IF_SO|IF_NOLONG}, + /* 1560 */ {I_INVVPID, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, nasm_bytecodes+5900, IF_VMX|IF_SO|IF_LONG}, + /* 1561 */ {I_PABSB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8202, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1562 */ {I_PABSB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8209, IF_SSSE3}, + /* 1563 */ {I_PABSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8216, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1564 */ {I_PABSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8223, IF_SSSE3}, + /* 1565 */ {I_PABSD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8230, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1566 */ {I_PABSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8237, IF_SSSE3}, + /* 1567 */ {I_PALIGNR, 3, {MMXREG,RM_MMX,IMMEDIATE,0,0}, nasm_bytecodes+5908, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1568 */ {I_PALIGNR, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5916, IF_SSSE3}, + /* 1569 */ {I_PHADDW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8244, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1570 */ {I_PHADDW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8251, IF_SSSE3}, + /* 1571 */ {I_PHADDD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8258, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1572 */ {I_PHADDD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8265, IF_SSSE3}, + /* 1573 */ {I_PHADDSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8272, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1574 */ {I_PHADDSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8279, IF_SSSE3}, + /* 1575 */ {I_PHSUBW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8286, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1576 */ {I_PHSUBW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8293, IF_SSSE3}, + /* 1577 */ {I_PHSUBD, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8300, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1578 */ {I_PHSUBD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8307, IF_SSSE3}, + /* 1579 */ {I_PHSUBSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8314, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1580 */ {I_PHSUBSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8321, IF_SSSE3}, + /* 1581 */ {I_PMADDUBSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8328, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1582 */ {I_PMADDUBSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8335, IF_SSSE3}, + /* 1583 */ {I_PMULHRSW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8342, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1584 */ {I_PMULHRSW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8349, IF_SSSE3}, + /* 1585 */ {I_PSHUFB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8356, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1586 */ {I_PSHUFB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8363, IF_SSSE3}, + /* 1587 */ {I_PSIGNB, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8370, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1588 */ {I_PSIGNB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8377, IF_SSSE3}, + /* 1589 */ {I_PSIGNW, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8384, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1590 */ {I_PSIGNW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8391, IF_SSSE3}, + /* 1591 */ {I_PSIGND, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+8398, IF_SSSE3|IF_MMX|IF_SQ}, + /* 1592 */ {I_PSIGND, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8405, IF_SSSE3}, + /* 1593 */ {I_EXTRQ, 3, {XMMREG,IMMEDIATE,IMMEDIATE,0,0}, nasm_bytecodes+5924, IF_SSE4A|IF_AMD}, + /* 1594 */ {I_EXTRQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15816, IF_SSE4A|IF_AMD}, + /* 1595 */ {I_INSERTQ, 4, {XMMREG,XMMREG,IMMEDIATE,IMMEDIATE,0}, nasm_bytecodes+5932, IF_SSE4A|IF_AMD}, + /* 1596 */ {I_INSERTQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+15822, IF_SSE4A|IF_AMD}, + /* 1597 */ {I_MOVNTSD, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15828, IF_SSE4A|IF_AMD|IF_SQ}, + /* 1598 */ {I_MOVNTSS, 2, {MEMORY,XMMREG,0,0,0}, nasm_bytecodes+15834, IF_SSE4A|IF_AMD|IF_SD}, + /* 1599 */ {I_LZCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, nasm_bytecodes+8412, IF_P6|IF_AMD}, + /* 1600 */ {I_LZCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+8419, IF_P6|IF_AMD}, + /* 1601 */ {I_LZCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+8426, IF_X64|IF_AMD}, + /* 1602 */ {I_BLENDPD, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5940, IF_SSE41}, + /* 1603 */ {I_BLENDPS, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5948, IF_SSE41}, + /* 1604 */ {I_BLENDVPD, 3, {XMMREG,RM_XMM,XMM0,0,0}, nasm_bytecodes+8433, IF_SSE41}, + /* 1605 */ {I_BLENDVPS, 3, {XMMREG,RM_XMM,XMM0,0,0}, nasm_bytecodes+8440, IF_SSE41}, + /* 1606 */ {I_DPPD, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5956, IF_SSE41}, + /* 1607 */ {I_DPPS, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5964, IF_SSE41}, + /* 1608 */ {I_EXTRACTPS, 3, {RM_GPR|BITS32,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+1, IF_SSE41}, + /* 1609 */ {I_EXTRACTPS, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+0, IF_SSE41|IF_X64}, + /* 1610 */ {I_INSERTPS, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5972, IF_SSE41|IF_SD}, + /* 1611 */ {I_MOVNTDQA, 2, {XMMREG,MEMORY,0,0,0}, nasm_bytecodes+8447, IF_SSE41}, + /* 1612 */ {I_MPSADBW, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5980, IF_SSE41}, + /* 1613 */ {I_PACKUSDW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8454, IF_SSE41}, + /* 1614 */ {I_PBLENDVB, 3, {XMMREG,RM_XMM,XMM0,0,0}, nasm_bytecodes+8461, IF_SSE41}, + /* 1615 */ {I_PBLENDW, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5988, IF_SSE41}, + /* 1616 */ {I_PCMPEQQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8468, IF_SSE41}, + /* 1617 */ {I_PEXTRB, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+10, IF_SSE41}, + /* 1618 */ {I_PEXTRB, 3, {MEMORY|BITS8,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+10, IF_SSE41}, + /* 1619 */ {I_PEXTRB, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+9, IF_SSE41|IF_X64}, + /* 1620 */ {I_PEXTRD, 3, {RM_GPR|BITS32,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+19, IF_SSE41}, + /* 1621 */ {I_PEXTRQ, 3, {RM_GPR|BITS64,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+18, IF_SSE41|IF_X64}, + /* 1622 */ {I_PEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+28, IF_SSE41}, + /* 1623 */ {I_PEXTRW, 3, {MEMORY|BITS16,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+28, IF_SSE41}, + /* 1624 */ {I_PEXTRW, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE,0,0}, nasm_bytecodes+27, IF_SSE41|IF_X64}, + /* 1625 */ {I_PHMINPOSUW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8475, IF_SSE41}, + /* 1626 */ {I_PINSRB, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+37, IF_SSE41|IF_SB|IF_AR2}, + /* 1627 */ {I_PINSRB, 3, {XMMREG,RM_GPR|BITS8,IMMEDIATE,0,0}, nasm_bytecodes+36, IF_SSE41|IF_SB|IF_AR2}, + /* 1628 */ {I_PINSRB, 3, {XMMREG,REG_GPR|BITS32,IMMEDIATE,0,0}, nasm_bytecodes+37, IF_SSE41|IF_SB|IF_AR2}, + /* 1629 */ {I_PINSRD, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+46, IF_SSE41|IF_SB|IF_AR2}, + /* 1630 */ {I_PINSRD, 3, {XMMREG,RM_GPR|BITS32,IMMEDIATE,0,0}, nasm_bytecodes+46, IF_SSE41|IF_SB|IF_AR2}, + /* 1631 */ {I_PINSRQ, 3, {XMMREG,MEMORY,IMMEDIATE,0,0}, nasm_bytecodes+45, IF_SSE41|IF_X64|IF_SB|IF_AR2}, + /* 1632 */ {I_PINSRQ, 3, {XMMREG,RM_GPR|BITS64,IMMEDIATE,0,0}, nasm_bytecodes+45, IF_SSE41|IF_X64|IF_SB|IF_AR2}, + /* 1633 */ {I_PMAXSB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8482, IF_SSE41}, + /* 1634 */ {I_PMAXSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8489, IF_SSE41}, + /* 1635 */ {I_PMAXUD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8496, IF_SSE41}, + /* 1636 */ {I_PMAXUW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8503, IF_SSE41}, + /* 1637 */ {I_PMINSB, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8510, IF_SSE41}, + /* 1638 */ {I_PMINSD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8517, IF_SSE41}, + /* 1639 */ {I_PMINUD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8524, IF_SSE41}, + /* 1640 */ {I_PMINUW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8531, IF_SSE41}, + /* 1641 */ {I_PMOVSXBW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8538, IF_SSE41|IF_SQ}, + /* 1642 */ {I_PMOVSXBD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8545, IF_SSE41|IF_SD}, + /* 1643 */ {I_PMOVSXBQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8552, IF_SSE41|IF_SW}, + /* 1644 */ {I_PMOVSXWD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8559, IF_SSE41|IF_SQ}, + /* 1645 */ {I_PMOVSXWQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8566, IF_SSE41|IF_SD}, + /* 1646 */ {I_PMOVSXDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8573, IF_SSE41|IF_SQ}, + /* 1647 */ {I_PMOVZXBW, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8580, IF_SSE41|IF_SQ}, + /* 1648 */ {I_PMOVZXBD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8587, IF_SSE41|IF_SD}, + /* 1649 */ {I_PMOVZXBQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8594, IF_SSE41|IF_SW}, + /* 1650 */ {I_PMOVZXWD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8601, IF_SSE41|IF_SQ}, + /* 1651 */ {I_PMOVZXWQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8608, IF_SSE41|IF_SD}, + /* 1652 */ {I_PMOVZXDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8615, IF_SSE41|IF_SQ}, + /* 1653 */ {I_PMULDQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8622, IF_SSE41}, + /* 1654 */ {I_PMULLD, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8629, IF_SSE41}, + /* 1655 */ {I_PTEST, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8636, IF_SSE41}, + /* 1656 */ {I_ROUNDPD, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+5996, IF_SSE41}, + /* 1657 */ {I_ROUNDPS, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+6004, IF_SSE41}, + /* 1658 */ {I_ROUNDSD, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+6012, IF_SSE41}, + /* 1659 */ {I_ROUNDSS, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+6020, IF_SSE41}, + /* 1660 */ {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, nasm_bytecodes+6045, IF_SSE42}, + /* 1661 */ {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, nasm_bytecodes+6028, IF_SSE42}, + /* 1662 */ {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+6036, IF_SSE42}, + /* 1663 */ {I_CRC32, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, nasm_bytecodes+6044, IF_SSE42|IF_X64}, + /* 1664 */ {I_CRC32, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+6052, IF_SSE42|IF_X64}, + /* 1665 */ {I_PCMPESTRI, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+6060, IF_SSE42}, + /* 1666 */ {I_PCMPESTRM, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+6068, IF_SSE42}, + /* 1667 */ {I_PCMPISTRI, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+6076, IF_SSE42}, + /* 1668 */ {I_PCMPISTRM, 3, {XMMREG,RM_XMM,IMMEDIATE,0,0}, nasm_bytecodes+6084, IF_SSE42}, + /* 1669 */ {I_PCMPGTQ, 2, {XMMREG,RM_XMM,0,0,0}, nasm_bytecodes+8643, IF_SSE42}, + /* 1670 */ {I_POPCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, nasm_bytecodes+8650, IF_NEHALEM|IF_SW}, + /* 1671 */ {I_POPCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+8657, IF_NEHALEM|IF_SD}, + /* 1672 */ {I_POPCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+8664, IF_NEHALEM|IF_SQ|IF_X64}, + /* 1673 */ {I_GETSEC, 0, {0,0,0,0,0}, nasm_bytecodes+19958, IF_KATMAI}, + /* 1674 */ {I_PFRCPV, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+6092, IF_PENT|IF_3DNOW|IF_SQ|IF_CYRIX}, + /* 1675 */ {I_PFRSQRTV, 2, {MMXREG,RM_MMX,0,0,0}, nasm_bytecodes+6100, IF_PENT|IF_3DNOW|IF_SQ|IF_CYRIX}, + /* 1676 */ {I_MOVBE, 2, {REG_GPR|BITS16,MEMORY|BITS16,0,0,0}, nasm_bytecodes+8671, IF_NEHALEM|IF_SM}, + /* 1677 */ {I_MOVBE, 2, {REG_GPR|BITS32,MEMORY|BITS32,0,0,0}, nasm_bytecodes+8678, IF_NEHALEM|IF_SM}, + /* 1678 */ {I_MOVBE, 2, {REG_GPR|BITS64,MEMORY|BITS64,0,0,0}, nasm_bytecodes+8685, IF_NEHALEM|IF_SM}, + /* 1679 */ {I_MOVBE, 2, {MEMORY|BITS16,REG_GPR|BITS16,0,0,0}, nasm_bytecodes+8692, IF_NEHALEM|IF_SM}, + /* 1680 */ {I_MOVBE, 2, {MEMORY|BITS32,REG_GPR|BITS32,0,0,0}, nasm_bytecodes+8699, IF_NEHALEM|IF_SM}, + /* 1681 */ {I_MOVBE, 2, {MEMORY|BITS64,REG_GPR|BITS64,0,0,0}, nasm_bytecodes+8706, IF_NEHALEM|IF_SM}, + /* 1682 */ {I_AESENC, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8713, IF_SSE|IF_WESTMERE}, + /* 1683 */ {I_AESENCLAST, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8720, IF_SSE|IF_WESTMERE}, + /* 1684 */ {I_AESDEC, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8727, IF_SSE|IF_WESTMERE}, + /* 1685 */ {I_AESDECLAST, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8734, IF_SSE|IF_WESTMERE}, + /* 1686 */ {I_AESIMC, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8741, IF_SSE|IF_WESTMERE}, + /* 1687 */ {I_AESKEYGENASSIST, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6108, IF_SSE|IF_WESTMERE}, + /* 1688 */ {I_VAESENC, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8748, IF_AVX|IF_SANDYBRIDGE}, + /* 1689 */ {I_VAESENC, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8755, IF_AVX|IF_SANDYBRIDGE}, + /* 1690 */ {I_VAESENCLAST, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8762, IF_AVX|IF_SANDYBRIDGE}, + /* 1691 */ {I_VAESENCLAST, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8769, IF_AVX|IF_SANDYBRIDGE}, + /* 1692 */ {I_VAESDEC, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8776, IF_AVX|IF_SANDYBRIDGE}, + /* 1693 */ {I_VAESDEC, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8783, IF_AVX|IF_SANDYBRIDGE}, + /* 1694 */ {I_VAESDECLAST, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8790, IF_AVX|IF_SANDYBRIDGE}, + /* 1695 */ {I_VAESDECLAST, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8797, IF_AVX|IF_SANDYBRIDGE}, + /* 1696 */ {I_VAESIMC, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8804, IF_AVX|IF_SANDYBRIDGE}, + /* 1697 */ {I_VAESKEYGENASSIST, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6116, IF_AVX|IF_SANDYBRIDGE}, + /* 1698 */ {I_VADDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8811, IF_AVX|IF_SANDYBRIDGE}, + /* 1699 */ {I_VADDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8818, IF_AVX|IF_SANDYBRIDGE}, + /* 1700 */ {I_VADDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+8825, IF_AVX|IF_SANDYBRIDGE}, + /* 1701 */ {I_VADDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+8832, IF_AVX|IF_SANDYBRIDGE}, + /* 1702 */ {I_VADDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8839, IF_AVX|IF_SANDYBRIDGE}, + /* 1703 */ {I_VADDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8846, IF_AVX|IF_SANDYBRIDGE}, + /* 1704 */ {I_VADDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+8853, IF_AVX|IF_SANDYBRIDGE}, + /* 1705 */ {I_VADDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+8860, IF_AVX|IF_SANDYBRIDGE}, + /* 1706 */ {I_VADDSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+8867, IF_AVX|IF_SANDYBRIDGE}, + /* 1707 */ {I_VADDSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+8874, IF_AVX|IF_SANDYBRIDGE}, + /* 1708 */ {I_VADDSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+8881, IF_AVX|IF_SANDYBRIDGE}, + /* 1709 */ {I_VADDSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+8888, IF_AVX|IF_SANDYBRIDGE}, + /* 1710 */ {I_VADDSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8895, IF_AVX|IF_SANDYBRIDGE}, + /* 1711 */ {I_VADDSUBPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8902, IF_AVX|IF_SANDYBRIDGE}, + /* 1712 */ {I_VADDSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+8909, IF_AVX|IF_SANDYBRIDGE}, + /* 1713 */ {I_VADDSUBPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+8916, IF_AVX|IF_SANDYBRIDGE}, + /* 1714 */ {I_VADDSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8923, IF_AVX|IF_SANDYBRIDGE}, + /* 1715 */ {I_VADDSUBPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8930, IF_AVX|IF_SANDYBRIDGE}, + /* 1716 */ {I_VADDSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+8937, IF_AVX|IF_SANDYBRIDGE}, + /* 1717 */ {I_VADDSUBPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+8944, IF_AVX|IF_SANDYBRIDGE}, + /* 1718 */ {I_VANDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8951, IF_AVX|IF_SANDYBRIDGE}, + /* 1719 */ {I_VANDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8958, IF_AVX|IF_SANDYBRIDGE}, + /* 1720 */ {I_VANDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+8965, IF_AVX|IF_SANDYBRIDGE}, + /* 1721 */ {I_VANDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+8972, IF_AVX|IF_SANDYBRIDGE}, + /* 1722 */ {I_VANDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+8979, IF_AVX|IF_SANDYBRIDGE}, + /* 1723 */ {I_VANDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+8986, IF_AVX|IF_SANDYBRIDGE}, + /* 1724 */ {I_VANDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+8993, IF_AVX|IF_SANDYBRIDGE}, + /* 1725 */ {I_VANDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9000, IF_AVX|IF_SANDYBRIDGE}, + /* 1726 */ {I_VANDNPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9007, IF_AVX|IF_SANDYBRIDGE}, + /* 1727 */ {I_VANDNPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9014, IF_AVX|IF_SANDYBRIDGE}, + /* 1728 */ {I_VANDNPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9021, IF_AVX|IF_SANDYBRIDGE}, + /* 1729 */ {I_VANDNPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9028, IF_AVX|IF_SANDYBRIDGE}, + /* 1730 */ {I_VANDNPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9035, IF_AVX|IF_SANDYBRIDGE}, + /* 1731 */ {I_VANDNPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9042, IF_AVX|IF_SANDYBRIDGE}, + /* 1732 */ {I_VANDNPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9049, IF_AVX|IF_SANDYBRIDGE}, + /* 1733 */ {I_VANDNPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9056, IF_AVX|IF_SANDYBRIDGE}, + /* 1734 */ {I_VBLENDPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6124, IF_AVX|IF_SANDYBRIDGE}, + /* 1735 */ {I_VBLENDPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6132, IF_AVX|IF_SANDYBRIDGE}, + /* 1736 */ {I_VBLENDPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6140, IF_AVX|IF_SANDYBRIDGE}, + /* 1737 */ {I_VBLENDPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6148, IF_AVX|IF_SANDYBRIDGE}, + /* 1738 */ {I_VBLENDPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6156, IF_AVX|IF_SANDYBRIDGE}, + /* 1739 */ {I_VBLENDPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6164, IF_AVX|IF_SANDYBRIDGE}, + /* 1740 */ {I_VBLENDPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6172, IF_AVX|IF_SANDYBRIDGE}, + /* 1741 */ {I_VBLENDPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6180, IF_AVX|IF_SANDYBRIDGE}, + /* 1742 */ {I_VBLENDVPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+54, IF_AVX|IF_SANDYBRIDGE}, + /* 1743 */ {I_VBLENDVPD, 3, {XMMREG,RM_XMM|BITS128,XMM0,0,0}, nasm_bytecodes+9063, IF_AVX|IF_SANDYBRIDGE}, + /* 1744 */ {I_VBLENDVPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+63, IF_AVX|IF_SANDYBRIDGE}, + /* 1745 */ {I_VBLENDVPD, 3, {YMMREG,RM_YMM|BITS256,YMM0,0,0}, nasm_bytecodes+9070, IF_AVX|IF_SANDYBRIDGE}, + /* 1746 */ {I_VBLENDVPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+72, IF_AVX|IF_SANDYBRIDGE}, + /* 1747 */ {I_VBLENDVPS, 3, {XMMREG,RM_XMM|BITS128,XMM0,0,0}, nasm_bytecodes+9077, IF_AVX|IF_SANDYBRIDGE}, + /* 1748 */ {I_VBLENDVPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+81, IF_AVX|IF_SANDYBRIDGE}, + /* 1749 */ {I_VBLENDVPD, 3, {YMMREG,RM_YMM|BITS256,YMM0,0,0}, nasm_bytecodes+9084, IF_AVX|IF_SANDYBRIDGE}, + /* 1750 */ {I_VBROADCASTSS, 2, {XMMREG,MEMORY|BITS32,0,0,0}, nasm_bytecodes+9091, IF_AVX|IF_SANDYBRIDGE}, + /* 1751 */ {I_VBROADCASTSS, 2, {YMMREG,MEMORY|BITS32,0,0,0}, nasm_bytecodes+9098, IF_AVX|IF_SANDYBRIDGE}, + /* 1752 */ {I_VBROADCASTSD, 2, {YMMREG,MEMORY|BITS64,0,0,0}, nasm_bytecodes+9105, IF_AVX|IF_SANDYBRIDGE}, + /* 1753 */ {I_VBROADCASTF128, 2, {YMMREG,MEMORY|BITS128,0,0,0}, nasm_bytecodes+9112, IF_AVX|IF_SANDYBRIDGE}, + /* 1754 */ {I_VCMPEQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+90, IF_AVX|IF_SANDYBRIDGE}, + /* 1755 */ {I_VCMPEQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+99, IF_AVX|IF_SANDYBRIDGE}, + /* 1756 */ {I_VCMPEQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+108, IF_AVX|IF_SANDYBRIDGE}, + /* 1757 */ {I_VCMPEQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+117, IF_AVX|IF_SANDYBRIDGE}, + /* 1758 */ {I_VCMPLTPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+126, IF_AVX|IF_SANDYBRIDGE}, + /* 1759 */ {I_VCMPLTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+135, IF_AVX|IF_SANDYBRIDGE}, + /* 1760 */ {I_VCMPLTPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+144, IF_AVX|IF_SANDYBRIDGE}, + /* 1761 */ {I_VCMPLTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+153, IF_AVX|IF_SANDYBRIDGE}, + /* 1762 */ {I_VCMPLEPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+162, IF_AVX|IF_SANDYBRIDGE}, + /* 1763 */ {I_VCMPLEPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+171, IF_AVX|IF_SANDYBRIDGE}, + /* 1764 */ {I_VCMPLEPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+180, IF_AVX|IF_SANDYBRIDGE}, + /* 1765 */ {I_VCMPLEPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+189, IF_AVX|IF_SANDYBRIDGE}, + /* 1766 */ {I_VCMPUNORDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+198, IF_AVX|IF_SANDYBRIDGE}, + /* 1767 */ {I_VCMPUNORDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+207, IF_AVX|IF_SANDYBRIDGE}, + /* 1768 */ {I_VCMPUNORDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+216, IF_AVX|IF_SANDYBRIDGE}, + /* 1769 */ {I_VCMPUNORDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+225, IF_AVX|IF_SANDYBRIDGE}, + /* 1770 */ {I_VCMPNEQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+234, IF_AVX|IF_SANDYBRIDGE}, + /* 1771 */ {I_VCMPNEQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+243, IF_AVX|IF_SANDYBRIDGE}, + /* 1772 */ {I_VCMPNEQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+252, IF_AVX|IF_SANDYBRIDGE}, + /* 1773 */ {I_VCMPNEQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+261, IF_AVX|IF_SANDYBRIDGE}, + /* 1774 */ {I_VCMPNLTPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+270, IF_AVX|IF_SANDYBRIDGE}, + /* 1775 */ {I_VCMPNLTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+279, IF_AVX|IF_SANDYBRIDGE}, + /* 1776 */ {I_VCMPNLTPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+288, IF_AVX|IF_SANDYBRIDGE}, + /* 1777 */ {I_VCMPNLTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+297, IF_AVX|IF_SANDYBRIDGE}, + /* 1778 */ {I_VCMPNLEPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+306, IF_AVX|IF_SANDYBRIDGE}, + /* 1779 */ {I_VCMPNLEPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+315, IF_AVX|IF_SANDYBRIDGE}, + /* 1780 */ {I_VCMPNLEPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+324, IF_AVX|IF_SANDYBRIDGE}, + /* 1781 */ {I_VCMPNLEPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+333, IF_AVX|IF_SANDYBRIDGE}, + /* 1782 */ {I_VCMPORDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+342, IF_AVX|IF_SANDYBRIDGE}, + /* 1783 */ {I_VCMPORDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+351, IF_AVX|IF_SANDYBRIDGE}, + /* 1784 */ {I_VCMPORDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+360, IF_AVX|IF_SANDYBRIDGE}, + /* 1785 */ {I_VCMPORDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+369, IF_AVX|IF_SANDYBRIDGE}, + /* 1786 */ {I_VCMPEQ_UQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+378, IF_AVX|IF_SANDYBRIDGE}, + /* 1787 */ {I_VCMPEQ_UQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+387, IF_AVX|IF_SANDYBRIDGE}, + /* 1788 */ {I_VCMPEQ_UQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+396, IF_AVX|IF_SANDYBRIDGE}, + /* 1789 */ {I_VCMPEQ_UQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+405, IF_AVX|IF_SANDYBRIDGE}, + /* 1790 */ {I_VCMPNGEPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+414, IF_AVX|IF_SANDYBRIDGE}, + /* 1791 */ {I_VCMPNGEPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+423, IF_AVX|IF_SANDYBRIDGE}, + /* 1792 */ {I_VCMPNGEPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+432, IF_AVX|IF_SANDYBRIDGE}, + /* 1793 */ {I_VCMPNGEPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+441, IF_AVX|IF_SANDYBRIDGE}, + /* 1794 */ {I_VCMPNGTPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+450, IF_AVX|IF_SANDYBRIDGE}, + /* 1795 */ {I_VCMPNGTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+459, IF_AVX|IF_SANDYBRIDGE}, + /* 1796 */ {I_VCMPNGTPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+468, IF_AVX|IF_SANDYBRIDGE}, + /* 1797 */ {I_VCMPNGTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+477, IF_AVX|IF_SANDYBRIDGE}, + /* 1798 */ {I_VCMPFALSEPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+486, IF_AVX|IF_SANDYBRIDGE}, + /* 1799 */ {I_VCMPFALSEPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+495, IF_AVX|IF_SANDYBRIDGE}, + /* 1800 */ {I_VCMPFALSEPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+504, IF_AVX|IF_SANDYBRIDGE}, + /* 1801 */ {I_VCMPFALSEPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+513, IF_AVX|IF_SANDYBRIDGE}, + /* 1802 */ {I_VCMPNEQ_OQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+522, IF_AVX|IF_SANDYBRIDGE}, + /* 1803 */ {I_VCMPNEQ_OQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+531, IF_AVX|IF_SANDYBRIDGE}, + /* 1804 */ {I_VCMPNEQ_OQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+540, IF_AVX|IF_SANDYBRIDGE}, + /* 1805 */ {I_VCMPNEQ_OQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+549, IF_AVX|IF_SANDYBRIDGE}, + /* 1806 */ {I_VCMPGEPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+558, IF_AVX|IF_SANDYBRIDGE}, + /* 1807 */ {I_VCMPGEPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+567, IF_AVX|IF_SANDYBRIDGE}, + /* 1808 */ {I_VCMPGEPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+576, IF_AVX|IF_SANDYBRIDGE}, + /* 1809 */ {I_VCMPGEPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+585, IF_AVX|IF_SANDYBRIDGE}, + /* 1810 */ {I_VCMPGTPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+594, IF_AVX|IF_SANDYBRIDGE}, + /* 1811 */ {I_VCMPGTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+603, IF_AVX|IF_SANDYBRIDGE}, + /* 1812 */ {I_VCMPGTPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+612, IF_AVX|IF_SANDYBRIDGE}, + /* 1813 */ {I_VCMPGTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+621, IF_AVX|IF_SANDYBRIDGE}, + /* 1814 */ {I_VCMPTRUEPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+630, IF_AVX|IF_SANDYBRIDGE}, + /* 1815 */ {I_VCMPTRUEPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+639, IF_AVX|IF_SANDYBRIDGE}, + /* 1816 */ {I_VCMPTRUEPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+648, IF_AVX|IF_SANDYBRIDGE}, + /* 1817 */ {I_VCMPTRUEPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+657, IF_AVX|IF_SANDYBRIDGE}, + /* 1818 */ {I_VCMPEQ_OSPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+666, IF_AVX|IF_SANDYBRIDGE}, + /* 1819 */ {I_VCMPEQ_OSPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+675, IF_AVX|IF_SANDYBRIDGE}, + /* 1820 */ {I_VCMPEQ_OSPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+684, IF_AVX|IF_SANDYBRIDGE}, + /* 1821 */ {I_VCMPEQ_OSPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+693, IF_AVX|IF_SANDYBRIDGE}, + /* 1822 */ {I_VCMPLT_OQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+702, IF_AVX|IF_SANDYBRIDGE}, + /* 1823 */ {I_VCMPLT_OQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+711, IF_AVX|IF_SANDYBRIDGE}, + /* 1824 */ {I_VCMPLT_OQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+720, IF_AVX|IF_SANDYBRIDGE}, + /* 1825 */ {I_VCMPLT_OQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+729, IF_AVX|IF_SANDYBRIDGE}, + /* 1826 */ {I_VCMPLE_OQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+738, IF_AVX|IF_SANDYBRIDGE}, + /* 1827 */ {I_VCMPLE_OQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+747, IF_AVX|IF_SANDYBRIDGE}, + /* 1828 */ {I_VCMPLE_OQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+756, IF_AVX|IF_SANDYBRIDGE}, + /* 1829 */ {I_VCMPLE_OQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+765, IF_AVX|IF_SANDYBRIDGE}, + /* 1830 */ {I_VCMPUNORD_SPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+774, IF_AVX|IF_SANDYBRIDGE}, + /* 1831 */ {I_VCMPUNORD_SPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+783, IF_AVX|IF_SANDYBRIDGE}, + /* 1832 */ {I_VCMPUNORD_SPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+792, IF_AVX|IF_SANDYBRIDGE}, + /* 1833 */ {I_VCMPUNORD_SPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+801, IF_AVX|IF_SANDYBRIDGE}, + /* 1834 */ {I_VCMPNEQ_USPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+810, IF_AVX|IF_SANDYBRIDGE}, + /* 1835 */ {I_VCMPNEQ_USPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+819, IF_AVX|IF_SANDYBRIDGE}, + /* 1836 */ {I_VCMPNEQ_USPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+828, IF_AVX|IF_SANDYBRIDGE}, + /* 1837 */ {I_VCMPNEQ_USPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+837, IF_AVX|IF_SANDYBRIDGE}, + /* 1838 */ {I_VCMPNLT_UQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+846, IF_AVX|IF_SANDYBRIDGE}, + /* 1839 */ {I_VCMPNLT_UQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+855, IF_AVX|IF_SANDYBRIDGE}, + /* 1840 */ {I_VCMPNLT_UQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+864, IF_AVX|IF_SANDYBRIDGE}, + /* 1841 */ {I_VCMPNLT_UQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+873, IF_AVX|IF_SANDYBRIDGE}, + /* 1842 */ {I_VCMPNLE_UQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+882, IF_AVX|IF_SANDYBRIDGE}, + /* 1843 */ {I_VCMPNLE_UQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+891, IF_AVX|IF_SANDYBRIDGE}, + /* 1844 */ {I_VCMPNLE_UQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+900, IF_AVX|IF_SANDYBRIDGE}, + /* 1845 */ {I_VCMPNLE_UQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+909, IF_AVX|IF_SANDYBRIDGE}, + /* 1846 */ {I_VCMPORD_SPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+918, IF_AVX|IF_SANDYBRIDGE}, + /* 1847 */ {I_VCMPORD_SPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+927, IF_AVX|IF_SANDYBRIDGE}, + /* 1848 */ {I_VCMPORD_SPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+936, IF_AVX|IF_SANDYBRIDGE}, + /* 1849 */ {I_VCMPORD_SPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+945, IF_AVX|IF_SANDYBRIDGE}, + /* 1850 */ {I_VCMPEQ_USPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+954, IF_AVX|IF_SANDYBRIDGE}, + /* 1851 */ {I_VCMPEQ_USPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+963, IF_AVX|IF_SANDYBRIDGE}, + /* 1852 */ {I_VCMPEQ_USPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+972, IF_AVX|IF_SANDYBRIDGE}, + /* 1853 */ {I_VCMPEQ_USPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+981, IF_AVX|IF_SANDYBRIDGE}, + /* 1854 */ {I_VCMPNGE_UQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+990, IF_AVX|IF_SANDYBRIDGE}, + /* 1855 */ {I_VCMPNGE_UQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+999, IF_AVX|IF_SANDYBRIDGE}, + /* 1856 */ {I_VCMPNGE_UQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1008, IF_AVX|IF_SANDYBRIDGE}, + /* 1857 */ {I_VCMPNGE_UQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1017, IF_AVX|IF_SANDYBRIDGE}, + /* 1858 */ {I_VCMPNGT_UQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1026, IF_AVX|IF_SANDYBRIDGE}, + /* 1859 */ {I_VCMPNGT_UQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1035, IF_AVX|IF_SANDYBRIDGE}, + /* 1860 */ {I_VCMPNGT_UQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1044, IF_AVX|IF_SANDYBRIDGE}, + /* 1861 */ {I_VCMPNGT_UQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1053, IF_AVX|IF_SANDYBRIDGE}, + /* 1862 */ {I_VCMPFALSE_OSPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1062, IF_AVX|IF_SANDYBRIDGE}, + /* 1863 */ {I_VCMPFALSE_OSPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1071, IF_AVX|IF_SANDYBRIDGE}, + /* 1864 */ {I_VCMPFALSE_OSPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1080, IF_AVX|IF_SANDYBRIDGE}, + /* 1865 */ {I_VCMPFALSE_OSPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1089, IF_AVX|IF_SANDYBRIDGE}, + /* 1866 */ {I_VCMPNEQ_OSPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1098, IF_AVX|IF_SANDYBRIDGE}, + /* 1867 */ {I_VCMPNEQ_OSPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1107, IF_AVX|IF_SANDYBRIDGE}, + /* 1868 */ {I_VCMPNEQ_OSPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1116, IF_AVX|IF_SANDYBRIDGE}, + /* 1869 */ {I_VCMPNEQ_OSPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1125, IF_AVX|IF_SANDYBRIDGE}, + /* 1870 */ {I_VCMPGE_OQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1134, IF_AVX|IF_SANDYBRIDGE}, + /* 1871 */ {I_VCMPGE_OQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1143, IF_AVX|IF_SANDYBRIDGE}, + /* 1872 */ {I_VCMPGE_OQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1152, IF_AVX|IF_SANDYBRIDGE}, + /* 1873 */ {I_VCMPGE_OQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1161, IF_AVX|IF_SANDYBRIDGE}, + /* 1874 */ {I_VCMPGT_OQPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1170, IF_AVX|IF_SANDYBRIDGE}, + /* 1875 */ {I_VCMPGT_OQPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1179, IF_AVX|IF_SANDYBRIDGE}, + /* 1876 */ {I_VCMPGT_OQPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1188, IF_AVX|IF_SANDYBRIDGE}, + /* 1877 */ {I_VCMPGT_OQPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1197, IF_AVX|IF_SANDYBRIDGE}, + /* 1878 */ {I_VCMPTRUE_USPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1206, IF_AVX|IF_SANDYBRIDGE}, + /* 1879 */ {I_VCMPTRUE_USPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1215, IF_AVX|IF_SANDYBRIDGE}, + /* 1880 */ {I_VCMPTRUE_USPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1224, IF_AVX|IF_SANDYBRIDGE}, + /* 1881 */ {I_VCMPTRUE_USPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1233, IF_AVX|IF_SANDYBRIDGE}, + /* 1882 */ {I_VCMPPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6188, IF_AVX|IF_SANDYBRIDGE}, + /* 1883 */ {I_VCMPPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6196, IF_AVX|IF_SANDYBRIDGE}, + /* 1884 */ {I_VCMPPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6204, IF_AVX|IF_SANDYBRIDGE}, + /* 1885 */ {I_VCMPPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6212, IF_AVX|IF_SANDYBRIDGE}, + /* 1886 */ {I_VCMPEQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1242, IF_AVX|IF_SANDYBRIDGE}, + /* 1887 */ {I_VCMPEQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1251, IF_AVX|IF_SANDYBRIDGE}, + /* 1888 */ {I_VCMPEQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1260, IF_AVX|IF_SANDYBRIDGE}, + /* 1889 */ {I_VCMPEQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1269, IF_AVX|IF_SANDYBRIDGE}, + /* 1890 */ {I_VCMPLTPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1278, IF_AVX|IF_SANDYBRIDGE}, + /* 1891 */ {I_VCMPLTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1287, IF_AVX|IF_SANDYBRIDGE}, + /* 1892 */ {I_VCMPLTPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1296, IF_AVX|IF_SANDYBRIDGE}, + /* 1893 */ {I_VCMPLTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1305, IF_AVX|IF_SANDYBRIDGE}, + /* 1894 */ {I_VCMPLEPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1314, IF_AVX|IF_SANDYBRIDGE}, + /* 1895 */ {I_VCMPLEPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1323, IF_AVX|IF_SANDYBRIDGE}, + /* 1896 */ {I_VCMPLEPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1332, IF_AVX|IF_SANDYBRIDGE}, + /* 1897 */ {I_VCMPLEPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1341, IF_AVX|IF_SANDYBRIDGE}, + /* 1898 */ {I_VCMPUNORDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1350, IF_AVX|IF_SANDYBRIDGE}, + /* 1899 */ {I_VCMPUNORDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1359, IF_AVX|IF_SANDYBRIDGE}, + /* 1900 */ {I_VCMPUNORDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1368, IF_AVX|IF_SANDYBRIDGE}, + /* 1901 */ {I_VCMPUNORDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1377, IF_AVX|IF_SANDYBRIDGE}, + /* 1902 */ {I_VCMPNEQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1386, IF_AVX|IF_SANDYBRIDGE}, + /* 1903 */ {I_VCMPNEQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1395, IF_AVX|IF_SANDYBRIDGE}, + /* 1904 */ {I_VCMPNEQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1404, IF_AVX|IF_SANDYBRIDGE}, + /* 1905 */ {I_VCMPNEQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1413, IF_AVX|IF_SANDYBRIDGE}, + /* 1906 */ {I_VCMPNLTPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1422, IF_AVX|IF_SANDYBRIDGE}, + /* 1907 */ {I_VCMPNLTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1431, IF_AVX|IF_SANDYBRIDGE}, + /* 1908 */ {I_VCMPNLTPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1440, IF_AVX|IF_SANDYBRIDGE}, + /* 1909 */ {I_VCMPNLTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1449, IF_AVX|IF_SANDYBRIDGE}, + /* 1910 */ {I_VCMPNLEPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1458, IF_AVX|IF_SANDYBRIDGE}, + /* 1911 */ {I_VCMPNLEPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1467, IF_AVX|IF_SANDYBRIDGE}, + /* 1912 */ {I_VCMPNLEPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1476, IF_AVX|IF_SANDYBRIDGE}, + /* 1913 */ {I_VCMPNLEPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1485, IF_AVX|IF_SANDYBRIDGE}, + /* 1914 */ {I_VCMPORDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1494, IF_AVX|IF_SANDYBRIDGE}, + /* 1915 */ {I_VCMPORDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1503, IF_AVX|IF_SANDYBRIDGE}, + /* 1916 */ {I_VCMPORDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1512, IF_AVX|IF_SANDYBRIDGE}, + /* 1917 */ {I_VCMPORDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1521, IF_AVX|IF_SANDYBRIDGE}, + /* 1918 */ {I_VCMPEQ_UQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1530, IF_AVX|IF_SANDYBRIDGE}, + /* 1919 */ {I_VCMPEQ_UQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1539, IF_AVX|IF_SANDYBRIDGE}, + /* 1920 */ {I_VCMPEQ_UQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1548, IF_AVX|IF_SANDYBRIDGE}, + /* 1921 */ {I_VCMPEQ_UQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1557, IF_AVX|IF_SANDYBRIDGE}, + /* 1922 */ {I_VCMPNGEPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1566, IF_AVX|IF_SANDYBRIDGE}, + /* 1923 */ {I_VCMPNGEPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1575, IF_AVX|IF_SANDYBRIDGE}, + /* 1924 */ {I_VCMPNGEPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1584, IF_AVX|IF_SANDYBRIDGE}, + /* 1925 */ {I_VCMPNGEPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1593, IF_AVX|IF_SANDYBRIDGE}, + /* 1926 */ {I_VCMPNGTPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1602, IF_AVX|IF_SANDYBRIDGE}, + /* 1927 */ {I_VCMPNGTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1611, IF_AVX|IF_SANDYBRIDGE}, + /* 1928 */ {I_VCMPNGTPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1620, IF_AVX|IF_SANDYBRIDGE}, + /* 1929 */ {I_VCMPNGTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1629, IF_AVX|IF_SANDYBRIDGE}, + /* 1930 */ {I_VCMPFALSEPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1638, IF_AVX|IF_SANDYBRIDGE}, + /* 1931 */ {I_VCMPFALSEPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1647, IF_AVX|IF_SANDYBRIDGE}, + /* 1932 */ {I_VCMPFALSEPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1656, IF_AVX|IF_SANDYBRIDGE}, + /* 1933 */ {I_VCMPFALSEPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1665, IF_AVX|IF_SANDYBRIDGE}, + /* 1934 */ {I_VCMPNEQ_OQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1674, IF_AVX|IF_SANDYBRIDGE}, + /* 1935 */ {I_VCMPNEQ_OQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1683, IF_AVX|IF_SANDYBRIDGE}, + /* 1936 */ {I_VCMPNEQ_OQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1692, IF_AVX|IF_SANDYBRIDGE}, + /* 1937 */ {I_VCMPNEQ_OQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1701, IF_AVX|IF_SANDYBRIDGE}, + /* 1938 */ {I_VCMPGEPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1710, IF_AVX|IF_SANDYBRIDGE}, + /* 1939 */ {I_VCMPGEPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1719, IF_AVX|IF_SANDYBRIDGE}, + /* 1940 */ {I_VCMPGEPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1728, IF_AVX|IF_SANDYBRIDGE}, + /* 1941 */ {I_VCMPGEPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1737, IF_AVX|IF_SANDYBRIDGE}, + /* 1942 */ {I_VCMPGTPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1746, IF_AVX|IF_SANDYBRIDGE}, + /* 1943 */ {I_VCMPGTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1755, IF_AVX|IF_SANDYBRIDGE}, + /* 1944 */ {I_VCMPGTPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1764, IF_AVX|IF_SANDYBRIDGE}, + /* 1945 */ {I_VCMPGTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1773, IF_AVX|IF_SANDYBRIDGE}, + /* 1946 */ {I_VCMPTRUEPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1782, IF_AVX|IF_SANDYBRIDGE}, + /* 1947 */ {I_VCMPTRUEPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1791, IF_AVX|IF_SANDYBRIDGE}, + /* 1948 */ {I_VCMPTRUEPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1800, IF_AVX|IF_SANDYBRIDGE}, + /* 1949 */ {I_VCMPTRUEPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1809, IF_AVX|IF_SANDYBRIDGE}, + /* 1950 */ {I_VCMPEQ_OSPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1818, IF_AVX|IF_SANDYBRIDGE}, + /* 1951 */ {I_VCMPEQ_OSPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1827, IF_AVX|IF_SANDYBRIDGE}, + /* 1952 */ {I_VCMPEQ_OSPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1836, IF_AVX|IF_SANDYBRIDGE}, + /* 1953 */ {I_VCMPEQ_OSPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1845, IF_AVX|IF_SANDYBRIDGE}, + /* 1954 */ {I_VCMPLT_OQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1854, IF_AVX|IF_SANDYBRIDGE}, + /* 1955 */ {I_VCMPLT_OQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1863, IF_AVX|IF_SANDYBRIDGE}, + /* 1956 */ {I_VCMPLT_OQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1872, IF_AVX|IF_SANDYBRIDGE}, + /* 1957 */ {I_VCMPLT_OQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1881, IF_AVX|IF_SANDYBRIDGE}, + /* 1958 */ {I_VCMPLE_OQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1890, IF_AVX|IF_SANDYBRIDGE}, + /* 1959 */ {I_VCMPLE_OQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1899, IF_AVX|IF_SANDYBRIDGE}, + /* 1960 */ {I_VCMPLE_OQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1908, IF_AVX|IF_SANDYBRIDGE}, + /* 1961 */ {I_VCMPLE_OQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1917, IF_AVX|IF_SANDYBRIDGE}, + /* 1962 */ {I_VCMPUNORD_SPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1926, IF_AVX|IF_SANDYBRIDGE}, + /* 1963 */ {I_VCMPUNORD_SPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1935, IF_AVX|IF_SANDYBRIDGE}, + /* 1964 */ {I_VCMPUNORD_SPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1944, IF_AVX|IF_SANDYBRIDGE}, + /* 1965 */ {I_VCMPUNORD_SPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1953, IF_AVX|IF_SANDYBRIDGE}, + /* 1966 */ {I_VCMPNEQ_USPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1962, IF_AVX|IF_SANDYBRIDGE}, + /* 1967 */ {I_VCMPNEQ_USPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+1971, IF_AVX|IF_SANDYBRIDGE}, + /* 1968 */ {I_VCMPNEQ_USPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+1980, IF_AVX|IF_SANDYBRIDGE}, + /* 1969 */ {I_VCMPNEQ_USPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+1989, IF_AVX|IF_SANDYBRIDGE}, + /* 1970 */ {I_VCMPNLT_UQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+1998, IF_AVX|IF_SANDYBRIDGE}, + /* 1971 */ {I_VCMPNLT_UQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2007, IF_AVX|IF_SANDYBRIDGE}, + /* 1972 */ {I_VCMPNLT_UQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2016, IF_AVX|IF_SANDYBRIDGE}, + /* 1973 */ {I_VCMPNLT_UQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2025, IF_AVX|IF_SANDYBRIDGE}, + /* 1974 */ {I_VCMPNLE_UQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2034, IF_AVX|IF_SANDYBRIDGE}, + /* 1975 */ {I_VCMPNLE_UQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2043, IF_AVX|IF_SANDYBRIDGE}, + /* 1976 */ {I_VCMPNLE_UQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2052, IF_AVX|IF_SANDYBRIDGE}, + /* 1977 */ {I_VCMPNLE_UQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2061, IF_AVX|IF_SANDYBRIDGE}, + /* 1978 */ {I_VCMPORD_SPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2070, IF_AVX|IF_SANDYBRIDGE}, + /* 1979 */ {I_VCMPORD_SPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2079, IF_AVX|IF_SANDYBRIDGE}, + /* 1980 */ {I_VCMPORD_SPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2088, IF_AVX|IF_SANDYBRIDGE}, + /* 1981 */ {I_VCMPORD_SPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2097, IF_AVX|IF_SANDYBRIDGE}, + /* 1982 */ {I_VCMPEQ_USPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2106, IF_AVX|IF_SANDYBRIDGE}, + /* 1983 */ {I_VCMPEQ_USPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2115, IF_AVX|IF_SANDYBRIDGE}, + /* 1984 */ {I_VCMPEQ_USPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2124, IF_AVX|IF_SANDYBRIDGE}, + /* 1985 */ {I_VCMPEQ_USPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2133, IF_AVX|IF_SANDYBRIDGE}, + /* 1986 */ {I_VCMPNGE_UQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2142, IF_AVX|IF_SANDYBRIDGE}, + /* 1987 */ {I_VCMPNGE_UQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2151, IF_AVX|IF_SANDYBRIDGE}, + /* 1988 */ {I_VCMPNGE_UQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2160, IF_AVX|IF_SANDYBRIDGE}, + /* 1989 */ {I_VCMPNGE_UQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2169, IF_AVX|IF_SANDYBRIDGE}, + /* 1990 */ {I_VCMPNGT_UQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2178, IF_AVX|IF_SANDYBRIDGE}, + /* 1991 */ {I_VCMPNGT_UQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2187, IF_AVX|IF_SANDYBRIDGE}, + /* 1992 */ {I_VCMPNGT_UQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2196, IF_AVX|IF_SANDYBRIDGE}, + /* 1993 */ {I_VCMPNGT_UQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2205, IF_AVX|IF_SANDYBRIDGE}, + /* 1994 */ {I_VCMPFALSE_OSPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2214, IF_AVX|IF_SANDYBRIDGE}, + /* 1995 */ {I_VCMPFALSE_OSPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2223, IF_AVX|IF_SANDYBRIDGE}, + /* 1996 */ {I_VCMPFALSE_OSPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2232, IF_AVX|IF_SANDYBRIDGE}, + /* 1997 */ {I_VCMPFALSE_OSPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2241, IF_AVX|IF_SANDYBRIDGE}, + /* 1998 */ {I_VCMPNEQ_OSPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2250, IF_AVX|IF_SANDYBRIDGE}, + /* 1999 */ {I_VCMPNEQ_OSPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2259, IF_AVX|IF_SANDYBRIDGE}, + /* 2000 */ {I_VCMPNEQ_OSPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2268, IF_AVX|IF_SANDYBRIDGE}, + /* 2001 */ {I_VCMPNEQ_OSPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2277, IF_AVX|IF_SANDYBRIDGE}, + /* 2002 */ {I_VCMPGE_OQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2286, IF_AVX|IF_SANDYBRIDGE}, + /* 2003 */ {I_VCMPGE_OQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2295, IF_AVX|IF_SANDYBRIDGE}, + /* 2004 */ {I_VCMPGE_OQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2304, IF_AVX|IF_SANDYBRIDGE}, + /* 2005 */ {I_VCMPGE_OQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2313, IF_AVX|IF_SANDYBRIDGE}, + /* 2006 */ {I_VCMPGT_OQPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2322, IF_AVX|IF_SANDYBRIDGE}, + /* 2007 */ {I_VCMPGT_OQPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2331, IF_AVX|IF_SANDYBRIDGE}, + /* 2008 */ {I_VCMPGT_OQPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2340, IF_AVX|IF_SANDYBRIDGE}, + /* 2009 */ {I_VCMPGT_OQPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2349, IF_AVX|IF_SANDYBRIDGE}, + /* 2010 */ {I_VCMPTRUE_USPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+2358, IF_AVX|IF_SANDYBRIDGE}, + /* 2011 */ {I_VCMPTRUE_USPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+2367, IF_AVX|IF_SANDYBRIDGE}, + /* 2012 */ {I_VCMPTRUE_USPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+2376, IF_AVX|IF_SANDYBRIDGE}, + /* 2013 */ {I_VCMPTRUE_USPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+2385, IF_AVX|IF_SANDYBRIDGE}, + /* 2014 */ {I_VCMPPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6220, IF_AVX|IF_SANDYBRIDGE}, + /* 2015 */ {I_VCMPPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6228, IF_AVX|IF_SANDYBRIDGE}, + /* 2016 */ {I_VCMPPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6236, IF_AVX|IF_SANDYBRIDGE}, + /* 2017 */ {I_VCMPPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6244, IF_AVX|IF_SANDYBRIDGE}, + /* 2018 */ {I_VCMPEQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2394, IF_AVX|IF_SANDYBRIDGE}, + /* 2019 */ {I_VCMPEQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2403, IF_AVX|IF_SANDYBRIDGE}, + /* 2020 */ {I_VCMPLTSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2412, IF_AVX|IF_SANDYBRIDGE}, + /* 2021 */ {I_VCMPLTSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2421, IF_AVX|IF_SANDYBRIDGE}, + /* 2022 */ {I_VCMPLESD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2430, IF_AVX|IF_SANDYBRIDGE}, + /* 2023 */ {I_VCMPLESD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2439, IF_AVX|IF_SANDYBRIDGE}, + /* 2024 */ {I_VCMPUNORDSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2448, IF_AVX|IF_SANDYBRIDGE}, + /* 2025 */ {I_VCMPUNORDSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2457, IF_AVX|IF_SANDYBRIDGE}, + /* 2026 */ {I_VCMPNEQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2466, IF_AVX|IF_SANDYBRIDGE}, + /* 2027 */ {I_VCMPNEQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2475, IF_AVX|IF_SANDYBRIDGE}, + /* 2028 */ {I_VCMPNLTSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2484, IF_AVX|IF_SANDYBRIDGE}, + /* 2029 */ {I_VCMPNLTSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2493, IF_AVX|IF_SANDYBRIDGE}, + /* 2030 */ {I_VCMPNLESD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2502, IF_AVX|IF_SANDYBRIDGE}, + /* 2031 */ {I_VCMPNLESD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2511, IF_AVX|IF_SANDYBRIDGE}, + /* 2032 */ {I_VCMPORDSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2520, IF_AVX|IF_SANDYBRIDGE}, + /* 2033 */ {I_VCMPORDSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2529, IF_AVX|IF_SANDYBRIDGE}, + /* 2034 */ {I_VCMPEQ_UQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2538, IF_AVX|IF_SANDYBRIDGE}, + /* 2035 */ {I_VCMPEQ_UQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2547, IF_AVX|IF_SANDYBRIDGE}, + /* 2036 */ {I_VCMPNGESD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2556, IF_AVX|IF_SANDYBRIDGE}, + /* 2037 */ {I_VCMPNGESD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2565, IF_AVX|IF_SANDYBRIDGE}, + /* 2038 */ {I_VCMPNGTSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2574, IF_AVX|IF_SANDYBRIDGE}, + /* 2039 */ {I_VCMPNGTSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2583, IF_AVX|IF_SANDYBRIDGE}, + /* 2040 */ {I_VCMPFALSESD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2592, IF_AVX|IF_SANDYBRIDGE}, + /* 2041 */ {I_VCMPFALSESD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2601, IF_AVX|IF_SANDYBRIDGE}, + /* 2042 */ {I_VCMPNEQ_OQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2610, IF_AVX|IF_SANDYBRIDGE}, + /* 2043 */ {I_VCMPNEQ_OQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2619, IF_AVX|IF_SANDYBRIDGE}, + /* 2044 */ {I_VCMPGESD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2628, IF_AVX|IF_SANDYBRIDGE}, + /* 2045 */ {I_VCMPGESD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2637, IF_AVX|IF_SANDYBRIDGE}, + /* 2046 */ {I_VCMPGTSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2646, IF_AVX|IF_SANDYBRIDGE}, + /* 2047 */ {I_VCMPGTSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2655, IF_AVX|IF_SANDYBRIDGE}, + /* 2048 */ {I_VCMPTRUESD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2664, IF_AVX|IF_SANDYBRIDGE}, + /* 2049 */ {I_VCMPTRUESD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2673, IF_AVX|IF_SANDYBRIDGE}, + /* 2050 */ {I_VCMPEQ_OSSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2682, IF_AVX|IF_SANDYBRIDGE}, + /* 2051 */ {I_VCMPEQ_OSSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2691, IF_AVX|IF_SANDYBRIDGE}, + /* 2052 */ {I_VCMPLT_OQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2700, IF_AVX|IF_SANDYBRIDGE}, + /* 2053 */ {I_VCMPLT_OQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2709, IF_AVX|IF_SANDYBRIDGE}, + /* 2054 */ {I_VCMPLE_OQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2718, IF_AVX|IF_SANDYBRIDGE}, + /* 2055 */ {I_VCMPLE_OQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2727, IF_AVX|IF_SANDYBRIDGE}, + /* 2056 */ {I_VCMPUNORD_SSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2736, IF_AVX|IF_SANDYBRIDGE}, + /* 2057 */ {I_VCMPUNORD_SSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2745, IF_AVX|IF_SANDYBRIDGE}, + /* 2058 */ {I_VCMPNEQ_USSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2754, IF_AVX|IF_SANDYBRIDGE}, + /* 2059 */ {I_VCMPNEQ_USSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2763, IF_AVX|IF_SANDYBRIDGE}, + /* 2060 */ {I_VCMPNLT_UQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2772, IF_AVX|IF_SANDYBRIDGE}, + /* 2061 */ {I_VCMPNLT_UQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2781, IF_AVX|IF_SANDYBRIDGE}, + /* 2062 */ {I_VCMPNLE_UQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2790, IF_AVX|IF_SANDYBRIDGE}, + /* 2063 */ {I_VCMPNLE_UQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2799, IF_AVX|IF_SANDYBRIDGE}, + /* 2064 */ {I_VCMPORD_SSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2808, IF_AVX|IF_SANDYBRIDGE}, + /* 2065 */ {I_VCMPORD_SSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2817, IF_AVX|IF_SANDYBRIDGE}, + /* 2066 */ {I_VCMPEQ_USSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2826, IF_AVX|IF_SANDYBRIDGE}, + /* 2067 */ {I_VCMPEQ_USSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2835, IF_AVX|IF_SANDYBRIDGE}, + /* 2068 */ {I_VCMPNGE_UQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2844, IF_AVX|IF_SANDYBRIDGE}, + /* 2069 */ {I_VCMPNGE_UQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2853, IF_AVX|IF_SANDYBRIDGE}, + /* 2070 */ {I_VCMPNGT_UQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2862, IF_AVX|IF_SANDYBRIDGE}, + /* 2071 */ {I_VCMPNGT_UQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2871, IF_AVX|IF_SANDYBRIDGE}, + /* 2072 */ {I_VCMPFALSE_OSSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2880, IF_AVX|IF_SANDYBRIDGE}, + /* 2073 */ {I_VCMPFALSE_OSSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2889, IF_AVX|IF_SANDYBRIDGE}, + /* 2074 */ {I_VCMPNEQ_OSSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2898, IF_AVX|IF_SANDYBRIDGE}, + /* 2075 */ {I_VCMPNEQ_OSSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2907, IF_AVX|IF_SANDYBRIDGE}, + /* 2076 */ {I_VCMPGE_OQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2916, IF_AVX|IF_SANDYBRIDGE}, + /* 2077 */ {I_VCMPGE_OQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2925, IF_AVX|IF_SANDYBRIDGE}, + /* 2078 */ {I_VCMPGT_OQSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2934, IF_AVX|IF_SANDYBRIDGE}, + /* 2079 */ {I_VCMPGT_OQSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2943, IF_AVX|IF_SANDYBRIDGE}, + /* 2080 */ {I_VCMPTRUE_USSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+2952, IF_AVX|IF_SANDYBRIDGE}, + /* 2081 */ {I_VCMPTRUE_USSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+2961, IF_AVX|IF_SANDYBRIDGE}, + /* 2082 */ {I_VCMPSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, nasm_bytecodes+6252, IF_AVX|IF_SANDYBRIDGE}, + /* 2083 */ {I_VCMPSD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6260, IF_AVX|IF_SANDYBRIDGE}, + /* 2084 */ {I_VCMPEQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+2970, IF_AVX|IF_SANDYBRIDGE}, + /* 2085 */ {I_VCMPEQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+2979, IF_AVX|IF_SANDYBRIDGE}, + /* 2086 */ {I_VCMPLTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+2988, IF_AVX|IF_SANDYBRIDGE}, + /* 2087 */ {I_VCMPLTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+2997, IF_AVX|IF_SANDYBRIDGE}, + /* 2088 */ {I_VCMPLESS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3006, IF_AVX|IF_SANDYBRIDGE}, + /* 2089 */ {I_VCMPLESS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3015, IF_AVX|IF_SANDYBRIDGE}, + /* 2090 */ {I_VCMPUNORDSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3024, IF_AVX|IF_SANDYBRIDGE}, + /* 2091 */ {I_VCMPUNORDSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3033, IF_AVX|IF_SANDYBRIDGE}, + /* 2092 */ {I_VCMPNEQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3042, IF_AVX|IF_SANDYBRIDGE}, + /* 2093 */ {I_VCMPNEQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3051, IF_AVX|IF_SANDYBRIDGE}, + /* 2094 */ {I_VCMPNLTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3060, IF_AVX|IF_SANDYBRIDGE}, + /* 2095 */ {I_VCMPNLTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3069, IF_AVX|IF_SANDYBRIDGE}, + /* 2096 */ {I_VCMPNLESS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3078, IF_AVX|IF_SANDYBRIDGE}, + /* 2097 */ {I_VCMPNLESS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3087, IF_AVX|IF_SANDYBRIDGE}, + /* 2098 */ {I_VCMPORDSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3096, IF_AVX|IF_SANDYBRIDGE}, + /* 2099 */ {I_VCMPORDSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3105, IF_AVX|IF_SANDYBRIDGE}, + /* 2100 */ {I_VCMPEQ_UQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3114, IF_AVX|IF_SANDYBRIDGE}, + /* 2101 */ {I_VCMPEQ_UQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3123, IF_AVX|IF_SANDYBRIDGE}, + /* 2102 */ {I_VCMPNGESS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3132, IF_AVX|IF_SANDYBRIDGE}, + /* 2103 */ {I_VCMPNGESS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3141, IF_AVX|IF_SANDYBRIDGE}, + /* 2104 */ {I_VCMPNGTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3150, IF_AVX|IF_SANDYBRIDGE}, + /* 2105 */ {I_VCMPNGTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3159, IF_AVX|IF_SANDYBRIDGE}, + /* 2106 */ {I_VCMPFALSESS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3168, IF_AVX|IF_SANDYBRIDGE}, + /* 2107 */ {I_VCMPFALSESS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3177, IF_AVX|IF_SANDYBRIDGE}, + /* 2108 */ {I_VCMPNEQ_OQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3186, IF_AVX|IF_SANDYBRIDGE}, + /* 2109 */ {I_VCMPNEQ_OQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3195, IF_AVX|IF_SANDYBRIDGE}, + /* 2110 */ {I_VCMPGESS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3204, IF_AVX|IF_SANDYBRIDGE}, + /* 2111 */ {I_VCMPGESS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3213, IF_AVX|IF_SANDYBRIDGE}, + /* 2112 */ {I_VCMPGTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3222, IF_AVX|IF_SANDYBRIDGE}, + /* 2113 */ {I_VCMPGTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3231, IF_AVX|IF_SANDYBRIDGE}, + /* 2114 */ {I_VCMPTRUESS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3240, IF_AVX|IF_SANDYBRIDGE}, + /* 2115 */ {I_VCMPTRUESS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3249, IF_AVX|IF_SANDYBRIDGE}, + /* 2116 */ {I_VCMPEQ_OSSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3258, IF_AVX|IF_SANDYBRIDGE}, + /* 2117 */ {I_VCMPEQ_OSSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3267, IF_AVX|IF_SANDYBRIDGE}, + /* 2118 */ {I_VCMPLT_OQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3276, IF_AVX|IF_SANDYBRIDGE}, + /* 2119 */ {I_VCMPLT_OQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3285, IF_AVX|IF_SANDYBRIDGE}, + /* 2120 */ {I_VCMPLE_OQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3294, IF_AVX|IF_SANDYBRIDGE}, + /* 2121 */ {I_VCMPLE_OQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3303, IF_AVX|IF_SANDYBRIDGE}, + /* 2122 */ {I_VCMPUNORD_SSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3312, IF_AVX|IF_SANDYBRIDGE}, + /* 2123 */ {I_VCMPUNORD_SSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3321, IF_AVX|IF_SANDYBRIDGE}, + /* 2124 */ {I_VCMPNEQ_USSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3330, IF_AVX|IF_SANDYBRIDGE}, + /* 2125 */ {I_VCMPNEQ_USSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3339, IF_AVX|IF_SANDYBRIDGE}, + /* 2126 */ {I_VCMPNLT_UQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3348, IF_AVX|IF_SANDYBRIDGE}, + /* 2127 */ {I_VCMPNLT_UQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3357, IF_AVX|IF_SANDYBRIDGE}, + /* 2128 */ {I_VCMPNLE_UQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3366, IF_AVX|IF_SANDYBRIDGE}, + /* 2129 */ {I_VCMPNLE_UQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3375, IF_AVX|IF_SANDYBRIDGE}, + /* 2130 */ {I_VCMPORD_SSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3384, IF_AVX|IF_SANDYBRIDGE}, + /* 2131 */ {I_VCMPORD_SSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3393, IF_AVX|IF_SANDYBRIDGE}, + /* 2132 */ {I_VCMPEQ_USSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3402, IF_AVX|IF_SANDYBRIDGE}, + /* 2133 */ {I_VCMPEQ_USSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3411, IF_AVX|IF_SANDYBRIDGE}, + /* 2134 */ {I_VCMPNGE_UQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3420, IF_AVX|IF_SANDYBRIDGE}, + /* 2135 */ {I_VCMPNGE_UQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3429, IF_AVX|IF_SANDYBRIDGE}, + /* 2136 */ {I_VCMPNGT_UQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3438, IF_AVX|IF_SANDYBRIDGE}, + /* 2137 */ {I_VCMPNGT_UQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3447, IF_AVX|IF_SANDYBRIDGE}, + /* 2138 */ {I_VCMPFALSE_OSSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3456, IF_AVX|IF_SANDYBRIDGE}, + /* 2139 */ {I_VCMPFALSE_OSSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3465, IF_AVX|IF_SANDYBRIDGE}, + /* 2140 */ {I_VCMPNEQ_OSSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3474, IF_AVX|IF_SANDYBRIDGE}, + /* 2141 */ {I_VCMPNEQ_OSSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3483, IF_AVX|IF_SANDYBRIDGE}, + /* 2142 */ {I_VCMPGE_OQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3492, IF_AVX|IF_SANDYBRIDGE}, + /* 2143 */ {I_VCMPGE_OQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3501, IF_AVX|IF_SANDYBRIDGE}, + /* 2144 */ {I_VCMPGT_OQSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3510, IF_AVX|IF_SANDYBRIDGE}, + /* 2145 */ {I_VCMPGT_OQSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3519, IF_AVX|IF_SANDYBRIDGE}, + /* 2146 */ {I_VCMPTRUE_USSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+3528, IF_AVX|IF_SANDYBRIDGE}, + /* 2147 */ {I_VCMPTRUE_USSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+3537, IF_AVX|IF_SANDYBRIDGE}, + /* 2148 */ {I_VCMPSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, nasm_bytecodes+6268, IF_AVX|IF_SANDYBRIDGE}, + /* 2149 */ {I_VCMPSS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6276, IF_AVX|IF_SANDYBRIDGE}, + /* 2150 */ {I_VCOMISD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9119, IF_AVX|IF_SANDYBRIDGE}, + /* 2151 */ {I_VCOMISS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9126, IF_AVX|IF_SANDYBRIDGE}, + /* 2152 */ {I_VCVTDQ2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9133, IF_AVX|IF_SANDYBRIDGE}, + /* 2153 */ {I_VCVTDQ2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9140, IF_AVX|IF_SANDYBRIDGE}, + /* 2154 */ {I_VCVTDQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9147, IF_AVX|IF_SANDYBRIDGE}, + /* 2155 */ {I_VCVTDQ2PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9154, IF_AVX|IF_SANDYBRIDGE}, + /* 2156 */ {I_VCVTPD2DQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+9161, IF_AVX|IF_SANDYBRIDGE}, + /* 2157 */ {I_VCVTPD2DQ, 2, {XMMREG,MEMORY|BITS128,0,0,0}, nasm_bytecodes+9161, IF_AVX|IF_SANDYBRIDGE|IF_SO}, + /* 2158 */ {I_VCVTPD2DQ, 2, {XMMREG,YMMREG,0,0,0}, nasm_bytecodes+9168, IF_AVX|IF_SANDYBRIDGE}, + /* 2159 */ {I_VCVTPD2DQ, 2, {XMMREG,MEMORY|BITS256,0,0,0}, nasm_bytecodes+9168, IF_AVX|IF_SANDYBRIDGE|IF_SY}, + /* 2160 */ {I_VCVTPD2PS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+9175, IF_AVX|IF_SANDYBRIDGE}, + /* 2161 */ {I_VCVTPD2PS, 2, {XMMREG,MEMORY|BITS128,0,0,0}, nasm_bytecodes+9175, IF_AVX|IF_SANDYBRIDGE|IF_SO}, + /* 2162 */ {I_VCVTPD2PS, 2, {XMMREG,YMMREG,0,0,0}, nasm_bytecodes+9182, IF_AVX|IF_SANDYBRIDGE}, + /* 2163 */ {I_VCVTPD2PS, 2, {XMMREG,MEMORY|BITS256,0,0,0}, nasm_bytecodes+9182, IF_AVX|IF_SANDYBRIDGE|IF_SY}, + /* 2164 */ {I_VCVTPS2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9189, IF_AVX|IF_SANDYBRIDGE}, + /* 2165 */ {I_VCVTPS2DQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9196, IF_AVX|IF_SANDYBRIDGE}, + /* 2166 */ {I_VCVTPS2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9203, IF_AVX|IF_SANDYBRIDGE}, + /* 2167 */ {I_VCVTPS2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9210, IF_AVX|IF_SANDYBRIDGE}, + /* 2168 */ {I_VCVTSD2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9217, IF_AVX|IF_SANDYBRIDGE}, + /* 2169 */ {I_VCVTSD2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9224, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2170 */ {I_VCVTSD2SS, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+9231, IF_AVX|IF_SANDYBRIDGE}, + /* 2171 */ {I_VCVTSD2SS, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9238, IF_AVX|IF_SANDYBRIDGE}, + /* 2172 */ {I_VCVTSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, nasm_bytecodes+9245, IF_AVX|IF_SANDYBRIDGE|IF_SD}, + /* 2173 */ {I_VCVTSI2SD, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+9252, IF_AVX|IF_SANDYBRIDGE|IF_SD}, + /* 2174 */ {I_VCVTSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, nasm_bytecodes+9259, IF_AVX|IF_SANDYBRIDGE|IF_LONG|IF_SQ}, + /* 2175 */ {I_VCVTSI2SD, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+9266, IF_AVX|IF_SANDYBRIDGE|IF_LONG|IF_SQ}, + /* 2176 */ {I_VCVTSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, nasm_bytecodes+9273, IF_AVX|IF_SANDYBRIDGE|IF_SD}, + /* 2177 */ {I_VCVTSI2SS, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+9280, IF_AVX|IF_SANDYBRIDGE|IF_SD}, + /* 2178 */ {I_VCVTSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, nasm_bytecodes+9287, IF_AVX|IF_SANDYBRIDGE|IF_LONG|IF_SQ}, + /* 2179 */ {I_VCVTSI2SS, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+9294, IF_AVX|IF_SANDYBRIDGE|IF_LONG|IF_SQ}, + /* 2180 */ {I_VCVTSS2SD, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+9301, IF_AVX|IF_SANDYBRIDGE}, + /* 2181 */ {I_VCVTSS2SD, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9308, IF_AVX|IF_SANDYBRIDGE}, + /* 2182 */ {I_VCVTSS2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9315, IF_AVX|IF_SANDYBRIDGE}, + /* 2183 */ {I_VCVTSS2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9322, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2184 */ {I_VCVTTPD2DQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+9329, IF_AVX|IF_SANDYBRIDGE}, + /* 2185 */ {I_VCVTTPD2DQ, 2, {XMMREG,MEMORY|BITS128,0,0,0}, nasm_bytecodes+9329, IF_AVX|IF_SANDYBRIDGE|IF_SO}, + /* 2186 */ {I_VCVTTPD2DQ, 2, {XMMREG,YMMREG,0,0,0}, nasm_bytecodes+9336, IF_AVX|IF_SANDYBRIDGE}, + /* 2187 */ {I_VCVTTPD2DQ, 2, {XMMREG,MEMORY|BITS256,0,0,0}, nasm_bytecodes+9336, IF_AVX|IF_SANDYBRIDGE|IF_SY}, + /* 2188 */ {I_VCVTTPS2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9343, IF_AVX|IF_SANDYBRIDGE}, + /* 2189 */ {I_VCVTTPS2DQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9350, IF_AVX|IF_SANDYBRIDGE}, + /* 2190 */ {I_VCVTTSD2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9357, IF_AVX|IF_SANDYBRIDGE}, + /* 2191 */ {I_VCVTTSD2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9364, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2192 */ {I_VCVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9371, IF_AVX|IF_SANDYBRIDGE}, + /* 2193 */ {I_VCVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9378, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2194 */ {I_VDIVPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9385, IF_AVX|IF_SANDYBRIDGE}, + /* 2195 */ {I_VDIVPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9392, IF_AVX|IF_SANDYBRIDGE}, + /* 2196 */ {I_VDIVPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9399, IF_AVX|IF_SANDYBRIDGE}, + /* 2197 */ {I_VDIVPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9406, IF_AVX|IF_SANDYBRIDGE}, + /* 2198 */ {I_VDIVPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9413, IF_AVX|IF_SANDYBRIDGE}, + /* 2199 */ {I_VDIVPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9420, IF_AVX|IF_SANDYBRIDGE}, + /* 2200 */ {I_VDIVPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9427, IF_AVX|IF_SANDYBRIDGE}, + /* 2201 */ {I_VDIVPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9434, IF_AVX|IF_SANDYBRIDGE}, + /* 2202 */ {I_VDIVSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+9441, IF_AVX|IF_SANDYBRIDGE}, + /* 2203 */ {I_VDIVSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9448, IF_AVX|IF_SANDYBRIDGE}, + /* 2204 */ {I_VDIVSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+9455, IF_AVX|IF_SANDYBRIDGE}, + /* 2205 */ {I_VDIVSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9462, IF_AVX|IF_SANDYBRIDGE}, + /* 2206 */ {I_VDPPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6284, IF_AVX|IF_SANDYBRIDGE}, + /* 2207 */ {I_VDPPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6292, IF_AVX|IF_SANDYBRIDGE}, + /* 2208 */ {I_VDPPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6300, IF_AVX|IF_SANDYBRIDGE}, + /* 2209 */ {I_VDPPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6308, IF_AVX|IF_SANDYBRIDGE}, + /* 2210 */ {I_VDPPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6316, IF_AVX|IF_SANDYBRIDGE}, + /* 2211 */ {I_VDPPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6324, IF_AVX|IF_SANDYBRIDGE}, + /* 2212 */ {I_VEXTRACTF128, 3, {RM_XMM|BITS128,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6332, IF_AVX|IF_SANDYBRIDGE}, + /* 2213 */ {I_VEXTRACTPS, 3, {RM_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6340, IF_AVX|IF_SANDYBRIDGE}, + /* 2214 */ {I_VHADDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9469, IF_AVX|IF_SANDYBRIDGE}, + /* 2215 */ {I_VHADDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9476, IF_AVX|IF_SANDYBRIDGE}, + /* 2216 */ {I_VHADDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9483, IF_AVX|IF_SANDYBRIDGE}, + /* 2217 */ {I_VHADDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9490, IF_AVX|IF_SANDYBRIDGE}, + /* 2218 */ {I_VHADDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9497, IF_AVX|IF_SANDYBRIDGE}, + /* 2219 */ {I_VHADDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9504, IF_AVX|IF_SANDYBRIDGE}, + /* 2220 */ {I_VHADDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9511, IF_AVX|IF_SANDYBRIDGE}, + /* 2221 */ {I_VHADDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9518, IF_AVX|IF_SANDYBRIDGE}, + /* 2222 */ {I_VHSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9525, IF_AVX|IF_SANDYBRIDGE}, + /* 2223 */ {I_VHSUBPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9532, IF_AVX|IF_SANDYBRIDGE}, + /* 2224 */ {I_VHSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9539, IF_AVX|IF_SANDYBRIDGE}, + /* 2225 */ {I_VHSUBPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9546, IF_AVX|IF_SANDYBRIDGE}, + /* 2226 */ {I_VHSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9553, IF_AVX|IF_SANDYBRIDGE}, + /* 2227 */ {I_VHSUBPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9560, IF_AVX|IF_SANDYBRIDGE}, + /* 2228 */ {I_VHSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9567, IF_AVX|IF_SANDYBRIDGE}, + /* 2229 */ {I_VHSUBPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9574, IF_AVX|IF_SANDYBRIDGE}, + /* 2230 */ {I_VINSERTF128, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6348, IF_AVX|IF_SANDYBRIDGE}, + /* 2231 */ {I_VINSERTPS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, nasm_bytecodes+6356, IF_AVX|IF_SANDYBRIDGE}, + /* 2232 */ {I_VINSERTPS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6364, IF_AVX|IF_SANDYBRIDGE}, + /* 2233 */ {I_VLDDQU, 2, {XMMREG,MEMORY|BITS128,0,0,0}, nasm_bytecodes+9581, IF_AVX|IF_SANDYBRIDGE}, + /* 2234 */ {I_VLDQQU, 2, {YMMREG,MEMORY|BITS256,0,0,0}, nasm_bytecodes+9588, IF_AVX|IF_SANDYBRIDGE}, + /* 2235 */ {I_VLDDQU, 2, {YMMREG,MEMORY|BITS256,0,0,0}, nasm_bytecodes+9588, IF_AVX|IF_SANDYBRIDGE}, + /* 2236 */ {I_VLDMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+9595, IF_AVX|IF_SANDYBRIDGE}, + /* 2237 */ {I_VMASKMOVDQU, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+9602, IF_AVX|IF_SANDYBRIDGE}, + /* 2238 */ {I_VMASKMOVPS, 3, {XMMREG,XMMREG,MEMORY|BITS128,0,0}, nasm_bytecodes+9609, IF_AVX|IF_SANDYBRIDGE}, + /* 2239 */ {I_VMASKMOVPS, 3, {YMMREG,YMMREG,MEMORY|BITS256,0,0}, nasm_bytecodes+9616, IF_AVX|IF_SANDYBRIDGE}, + /* 2240 */ {I_VMASKMOVPS, 3, {MEMORY|BITS128,XMMREG,XMMREG,0,0}, nasm_bytecodes+9623, IF_AVX|IF_SANDYBRIDGE|IF_SO}, + /* 2241 */ {I_VMASKMOVPS, 3, {MEMORY|BITS256,XMMREG,XMMREG,0,0}, nasm_bytecodes+9630, IF_AVX|IF_SANDYBRIDGE|IF_SY}, + /* 2242 */ {I_VMASKMOVPD, 3, {XMMREG,XMMREG,MEMORY|BITS128,0,0}, nasm_bytecodes+9637, IF_AVX|IF_SANDYBRIDGE}, + /* 2243 */ {I_VMASKMOVPD, 3, {YMMREG,YMMREG,MEMORY|BITS256,0,0}, nasm_bytecodes+9644, IF_AVX|IF_SANDYBRIDGE}, + /* 2244 */ {I_VMASKMOVPD, 3, {MEMORY|BITS128,XMMREG,XMMREG,0,0}, nasm_bytecodes+9651, IF_AVX|IF_SANDYBRIDGE}, + /* 2245 */ {I_VMASKMOVPD, 3, {MEMORY|BITS256,YMMREG,YMMREG,0,0}, nasm_bytecodes+9658, IF_AVX|IF_SANDYBRIDGE}, + /* 2246 */ {I_VMAXPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9665, IF_AVX|IF_SANDYBRIDGE}, + /* 2247 */ {I_VMAXPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9672, IF_AVX|IF_SANDYBRIDGE}, + /* 2248 */ {I_VMAXPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9679, IF_AVX|IF_SANDYBRIDGE}, + /* 2249 */ {I_VMAXPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9686, IF_AVX|IF_SANDYBRIDGE}, + /* 2250 */ {I_VMAXPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9693, IF_AVX|IF_SANDYBRIDGE}, + /* 2251 */ {I_VMAXPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9700, IF_AVX|IF_SANDYBRIDGE}, + /* 2252 */ {I_VMAXPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9707, IF_AVX|IF_SANDYBRIDGE}, + /* 2253 */ {I_VMAXPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9714, IF_AVX|IF_SANDYBRIDGE}, + /* 2254 */ {I_VMAXSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+9721, IF_AVX|IF_SANDYBRIDGE}, + /* 2255 */ {I_VMAXSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9728, IF_AVX|IF_SANDYBRIDGE}, + /* 2256 */ {I_VMAXSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+9735, IF_AVX|IF_SANDYBRIDGE}, + /* 2257 */ {I_VMAXSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9742, IF_AVX|IF_SANDYBRIDGE}, + /* 2258 */ {I_VMINPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9749, IF_AVX|IF_SANDYBRIDGE}, + /* 2259 */ {I_VMINPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9756, IF_AVX|IF_SANDYBRIDGE}, + /* 2260 */ {I_VMINPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9763, IF_AVX|IF_SANDYBRIDGE}, + /* 2261 */ {I_VMINPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9770, IF_AVX|IF_SANDYBRIDGE}, + /* 2262 */ {I_VMINPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+9777, IF_AVX|IF_SANDYBRIDGE}, + /* 2263 */ {I_VMINPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9784, IF_AVX|IF_SANDYBRIDGE}, + /* 2264 */ {I_VMINPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+9791, IF_AVX|IF_SANDYBRIDGE}, + /* 2265 */ {I_VMINPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9798, IF_AVX|IF_SANDYBRIDGE}, + /* 2266 */ {I_VMINSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+9805, IF_AVX|IF_SANDYBRIDGE}, + /* 2267 */ {I_VMINSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9812, IF_AVX|IF_SANDYBRIDGE}, + /* 2268 */ {I_VMINSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+9819, IF_AVX|IF_SANDYBRIDGE}, + /* 2269 */ {I_VMINSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+9826, IF_AVX|IF_SANDYBRIDGE}, + /* 2270 */ {I_VMOVAPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9833, IF_AVX|IF_SANDYBRIDGE}, + /* 2271 */ {I_VMOVAPD, 2, {RM_XMM|BITS128,XMMREG,0,0,0}, nasm_bytecodes+9840, IF_AVX|IF_SANDYBRIDGE}, + /* 2272 */ {I_VMOVAPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9847, IF_AVX|IF_SANDYBRIDGE}, + /* 2273 */ {I_VMOVAPD, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+9854, IF_AVX|IF_SANDYBRIDGE}, + /* 2274 */ {I_VMOVAPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9861, IF_AVX|IF_SANDYBRIDGE}, + /* 2275 */ {I_VMOVAPS, 2, {RM_XMM|BITS128,XMMREG,0,0,0}, nasm_bytecodes+9868, IF_AVX|IF_SANDYBRIDGE}, + /* 2276 */ {I_VMOVAPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9875, IF_AVX|IF_SANDYBRIDGE}, + /* 2277 */ {I_VMOVAPS, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+9882, IF_AVX|IF_SANDYBRIDGE}, + /* 2278 */ {I_VMOVQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9889, IF_AVX|IF_SANDYBRIDGE|IF_SQ}, + /* 2279 */ {I_VMOVQ, 2, {RM_XMM|BITS64,XMMREG,0,0,0}, nasm_bytecodes+9896, IF_AVX|IF_SANDYBRIDGE|IF_SQ}, + /* 2280 */ {I_VMOVQ, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, nasm_bytecodes+9903, IF_AVX|IF_SANDYBRIDGE|IF_LONG|IF_SQ}, + /* 2281 */ {I_VMOVQ, 2, {RM_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+9910, IF_AVX|IF_SANDYBRIDGE|IF_LONG|IF_SQ}, + /* 2282 */ {I_VMOVD, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, nasm_bytecodes+9917, IF_AVX|IF_SANDYBRIDGE}, + /* 2283 */ {I_VMOVD, 2, {RM_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+9924, IF_AVX|IF_SANDYBRIDGE}, + /* 2284 */ {I_VMOVDDUP, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+9931, IF_AVX|IF_SANDYBRIDGE}, + /* 2285 */ {I_VMOVDDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9938, IF_AVX|IF_SANDYBRIDGE}, + /* 2286 */ {I_VMOVDQA, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9945, IF_AVX|IF_SANDYBRIDGE}, + /* 2287 */ {I_VMOVDQA, 2, {RM_XMM|BITS128,XMMREG,0,0,0}, nasm_bytecodes+9952, IF_AVX|IF_SANDYBRIDGE}, + /* 2288 */ {I_VMOVQQA, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9959, IF_AVX|IF_SANDYBRIDGE}, + /* 2289 */ {I_VMOVQQA, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+9966, IF_AVX|IF_SANDYBRIDGE}, + /* 2290 */ {I_VMOVDQA, 2, {YMMREG,RM_YMM,0,0,0}, nasm_bytecodes+9959, IF_AVX|IF_SANDYBRIDGE}, + /* 2291 */ {I_VMOVDQA, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+9966, IF_AVX|IF_SANDYBRIDGE}, + /* 2292 */ {I_VMOVDQU, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+9973, IF_AVX|IF_SANDYBRIDGE}, + /* 2293 */ {I_VMOVDQU, 2, {RM_XMM|BITS128,XMMREG,0,0,0}, nasm_bytecodes+9980, IF_AVX|IF_SANDYBRIDGE}, + /* 2294 */ {I_VMOVQQU, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9987, IF_AVX|IF_SANDYBRIDGE}, + /* 2295 */ {I_VMOVQQU, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+9994, IF_AVX|IF_SANDYBRIDGE}, + /* 2296 */ {I_VMOVDQU, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+9987, IF_AVX|IF_SANDYBRIDGE}, + /* 2297 */ {I_VMOVDQU, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+9994, IF_AVX|IF_SANDYBRIDGE}, + /* 2298 */ {I_VMOVHLPS, 3, {XMMREG,XMMREG,XMMREG,0,0}, nasm_bytecodes+10001, IF_AVX|IF_SANDYBRIDGE}, + /* 2299 */ {I_VMOVHLPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+10008, IF_AVX|IF_SANDYBRIDGE}, + /* 2300 */ {I_VMOVHPD, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, nasm_bytecodes+10015, IF_AVX|IF_SANDYBRIDGE}, + /* 2301 */ {I_VMOVHPD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, nasm_bytecodes+10022, IF_AVX|IF_SANDYBRIDGE}, + /* 2302 */ {I_VMOVHPD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10029, IF_AVX|IF_SANDYBRIDGE}, + /* 2303 */ {I_VMOVHPS, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, nasm_bytecodes+10036, IF_AVX|IF_SANDYBRIDGE}, + /* 2304 */ {I_VMOVHPS, 2, {XMMREG,MEMORY|BITS64,0,0,0}, nasm_bytecodes+10043, IF_AVX|IF_SANDYBRIDGE}, + /* 2305 */ {I_VMOVHPS, 2, {MEMORY|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10050, IF_AVX|IF_SANDYBRIDGE}, + /* 2306 */ {I_VMOVLHPS, 3, {XMMREG,XMMREG,XMMREG,0,0}, nasm_bytecodes+10036, IF_AVX|IF_SANDYBRIDGE}, + /* 2307 */ {I_VMOVLHPS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+10043, IF_AVX|IF_SANDYBRIDGE}, + /* 2308 */ {I_VMOVLPD, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, nasm_bytecodes+10057, IF_AVX|IF_SANDYBRIDGE}, + /* 2309 */ {I_VMOVLPD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, nasm_bytecodes+10064, IF_AVX|IF_SANDYBRIDGE}, + /* 2310 */ {I_VMOVLPD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10071, IF_AVX|IF_SANDYBRIDGE}, + /* 2311 */ {I_VMOVLPS, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, nasm_bytecodes+10001, IF_AVX|IF_SANDYBRIDGE}, + /* 2312 */ {I_VMOVLPS, 2, {XMMREG,MEMORY|BITS64,0,0,0}, nasm_bytecodes+10008, IF_AVX|IF_SANDYBRIDGE}, + /* 2313 */ {I_VMOVLPS, 2, {MEMORY|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10078, IF_AVX|IF_SANDYBRIDGE}, + /* 2314 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10085, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2315 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+10085, IF_AVX|IF_SANDYBRIDGE}, + /* 2316 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS64,YMMREG,0,0,0}, nasm_bytecodes+10092, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2317 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS32,YMMREG,0,0,0}, nasm_bytecodes+10092, IF_AVX|IF_SANDYBRIDGE}, + /* 2318 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10099, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2319 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+10099, IF_AVX|IF_SANDYBRIDGE}, + /* 2320 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS64,YMMREG,0,0,0}, nasm_bytecodes+10106, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2321 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS32,YMMREG,0,0,0}, nasm_bytecodes+10106, IF_AVX|IF_SANDYBRIDGE}, + /* 2322 */ {I_VMOVNTDQ, 2, {MEMORY|BITS128,XMMREG,0,0,0}, nasm_bytecodes+10113, IF_AVX|IF_SANDYBRIDGE}, + /* 2323 */ {I_VMOVNTQQ, 2, {MEMORY|BITS256,YMMREG,0,0,0}, nasm_bytecodes+10120, IF_AVX|IF_SANDYBRIDGE}, + /* 2324 */ {I_VMOVNTDQ, 2, {MEMORY|BITS256,YMMREG,0,0,0}, nasm_bytecodes+10120, IF_AVX|IF_SANDYBRIDGE}, + /* 2325 */ {I_VMOVNTDQA, 2, {XMMREG,MEMORY|BITS128,0,0,0}, nasm_bytecodes+10127, IF_AVX|IF_SANDYBRIDGE}, + /* 2326 */ {I_VMOVNTPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, nasm_bytecodes+10134, IF_AVX|IF_SANDYBRIDGE}, + /* 2327 */ {I_VMOVNTPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, nasm_bytecodes+10141, IF_AVX|IF_SANDYBRIDGE}, + /* 2328 */ {I_VMOVNTPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, nasm_bytecodes+10148, IF_AVX|IF_SANDYBRIDGE}, + /* 2329 */ {I_VMOVNTPS, 2, {MEMORY|BITS128,YMMREG,0,0,0}, nasm_bytecodes+10155, IF_AVX|IF_SANDYBRIDGE}, + /* 2330 */ {I_VMOVSD, 3, {XMMREG,XMMREG,XMMREG,0,0}, nasm_bytecodes+10162, IF_AVX|IF_SANDYBRIDGE}, + /* 2331 */ {I_VMOVSD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+10169, IF_AVX|IF_SANDYBRIDGE}, + /* 2332 */ {I_VMOVSD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, nasm_bytecodes+10176, IF_AVX|IF_SANDYBRIDGE}, + /* 2333 */ {I_VMOVSD, 3, {XMMREG,XMMREG,XMMREG,0,0}, nasm_bytecodes+10183, IF_AVX|IF_SANDYBRIDGE}, + /* 2334 */ {I_VMOVSD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+10190, IF_AVX|IF_SANDYBRIDGE}, + /* 2335 */ {I_VMOVSD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10197, IF_AVX|IF_SANDYBRIDGE}, + /* 2336 */ {I_VMOVSHDUP, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10204, IF_AVX|IF_SANDYBRIDGE}, + /* 2337 */ {I_VMOVSHDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10211, IF_AVX|IF_SANDYBRIDGE}, + /* 2338 */ {I_VMOVSLDUP, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10218, IF_AVX|IF_SANDYBRIDGE}, + /* 2339 */ {I_VMOVSLDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10225, IF_AVX|IF_SANDYBRIDGE}, + /* 2340 */ {I_VMOVSS, 3, {XMMREG,XMMREG,XMMREG,0,0}, nasm_bytecodes+10232, IF_AVX|IF_SANDYBRIDGE}, + /* 2341 */ {I_VMOVSS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+10239, IF_AVX|IF_SANDYBRIDGE}, + /* 2342 */ {I_VMOVSS, 2, {XMMREG,MEMORY|BITS64,0,0,0}, nasm_bytecodes+10246, IF_AVX|IF_SANDYBRIDGE}, + /* 2343 */ {I_VMOVSS, 3, {XMMREG,XMMREG,XMMREG,0,0}, nasm_bytecodes+10253, IF_AVX|IF_SANDYBRIDGE}, + /* 2344 */ {I_VMOVSS, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+10260, IF_AVX|IF_SANDYBRIDGE}, + /* 2345 */ {I_VMOVSS, 2, {MEMORY|BITS64,XMMREG,0,0,0}, nasm_bytecodes+10267, IF_AVX|IF_SANDYBRIDGE}, + /* 2346 */ {I_VMOVUPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10274, IF_AVX|IF_SANDYBRIDGE}, + /* 2347 */ {I_VMOVUPD, 2, {RM_XMM|BITS128,XMMREG,0,0,0}, nasm_bytecodes+10281, IF_AVX|IF_SANDYBRIDGE}, + /* 2348 */ {I_VMOVUPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10288, IF_AVX|IF_SANDYBRIDGE}, + /* 2349 */ {I_VMOVUPD, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+10295, IF_AVX|IF_SANDYBRIDGE}, + /* 2350 */ {I_VMOVUPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10302, IF_AVX|IF_SANDYBRIDGE}, + /* 2351 */ {I_VMOVUPS, 2, {RM_XMM|BITS128,XMMREG,0,0,0}, nasm_bytecodes+10309, IF_AVX|IF_SANDYBRIDGE}, + /* 2352 */ {I_VMOVUPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10316, IF_AVX|IF_SANDYBRIDGE}, + /* 2353 */ {I_VMOVUPS, 2, {RM_YMM|BITS256,YMMREG,0,0,0}, nasm_bytecodes+10323, IF_AVX|IF_SANDYBRIDGE}, + /* 2354 */ {I_VMPSADBW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6372, IF_AVX|IF_SANDYBRIDGE}, + /* 2355 */ {I_VMPSADBW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6380, IF_AVX|IF_SANDYBRIDGE}, + /* 2356 */ {I_VMULPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10330, IF_AVX|IF_SANDYBRIDGE}, + /* 2357 */ {I_VMULPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10337, IF_AVX|IF_SANDYBRIDGE}, + /* 2358 */ {I_VMULPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+10344, IF_AVX|IF_SANDYBRIDGE}, + /* 2359 */ {I_VMULPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10351, IF_AVX|IF_SANDYBRIDGE}, + /* 2360 */ {I_VMULPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10358, IF_AVX|IF_SANDYBRIDGE}, + /* 2361 */ {I_VMULPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10365, IF_AVX|IF_SANDYBRIDGE}, + /* 2362 */ {I_VMULPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+10372, IF_AVX|IF_SANDYBRIDGE}, + /* 2363 */ {I_VMULPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10379, IF_AVX|IF_SANDYBRIDGE}, + /* 2364 */ {I_VMULSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+10386, IF_AVX|IF_SANDYBRIDGE}, + /* 2365 */ {I_VMULSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+10393, IF_AVX|IF_SANDYBRIDGE}, + /* 2366 */ {I_VMULSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+10400, IF_AVX|IF_SANDYBRIDGE}, + /* 2367 */ {I_VMULSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+10407, IF_AVX|IF_SANDYBRIDGE}, + /* 2368 */ {I_VORPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10414, IF_AVX|IF_SANDYBRIDGE}, + /* 2369 */ {I_VORPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10421, IF_AVX|IF_SANDYBRIDGE}, + /* 2370 */ {I_VORPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+10428, IF_AVX|IF_SANDYBRIDGE}, + /* 2371 */ {I_VORPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10435, IF_AVX|IF_SANDYBRIDGE}, + /* 2372 */ {I_VORPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10442, IF_AVX|IF_SANDYBRIDGE}, + /* 2373 */ {I_VORPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10449, IF_AVX|IF_SANDYBRIDGE}, + /* 2374 */ {I_VORPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+10456, IF_AVX|IF_SANDYBRIDGE}, + /* 2375 */ {I_VORPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+10463, IF_AVX|IF_SANDYBRIDGE}, + /* 2376 */ {I_VPABSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10470, IF_AVX|IF_SANDYBRIDGE}, + /* 2377 */ {I_VPABSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10477, IF_AVX|IF_SANDYBRIDGE}, + /* 2378 */ {I_VPABSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10484, IF_AVX|IF_SANDYBRIDGE}, + /* 2379 */ {I_VPACKSSWB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10491, IF_AVX|IF_SANDYBRIDGE}, + /* 2380 */ {I_VPACKSSWB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10498, IF_AVX|IF_SANDYBRIDGE}, + /* 2381 */ {I_VPACKSSDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10505, IF_AVX|IF_SANDYBRIDGE}, + /* 2382 */ {I_VPACKSSDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10512, IF_AVX|IF_SANDYBRIDGE}, + /* 2383 */ {I_VPACKUSWB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10519, IF_AVX|IF_SANDYBRIDGE}, + /* 2384 */ {I_VPACKUSWB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10526, IF_AVX|IF_SANDYBRIDGE}, + /* 2385 */ {I_VPACKUSDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10533, IF_AVX|IF_SANDYBRIDGE}, + /* 2386 */ {I_VPACKUSDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10540, IF_AVX|IF_SANDYBRIDGE}, + /* 2387 */ {I_VPADDB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10547, IF_AVX|IF_SANDYBRIDGE}, + /* 2388 */ {I_VPADDB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10554, IF_AVX|IF_SANDYBRIDGE}, + /* 2389 */ {I_VPADDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10561, IF_AVX|IF_SANDYBRIDGE}, + /* 2390 */ {I_VPADDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10568, IF_AVX|IF_SANDYBRIDGE}, + /* 2391 */ {I_VPADDD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10575, IF_AVX|IF_SANDYBRIDGE}, + /* 2392 */ {I_VPADDD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10582, IF_AVX|IF_SANDYBRIDGE}, + /* 2393 */ {I_VPADDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10589, IF_AVX|IF_SANDYBRIDGE}, + /* 2394 */ {I_VPADDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10596, IF_AVX|IF_SANDYBRIDGE}, + /* 2395 */ {I_VPADDSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10603, IF_AVX|IF_SANDYBRIDGE}, + /* 2396 */ {I_VPADDSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10610, IF_AVX|IF_SANDYBRIDGE}, + /* 2397 */ {I_VPADDSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10617, IF_AVX|IF_SANDYBRIDGE}, + /* 2398 */ {I_VPADDSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10624, IF_AVX|IF_SANDYBRIDGE}, + /* 2399 */ {I_VPADDUSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10631, IF_AVX|IF_SANDYBRIDGE}, + /* 2400 */ {I_VPADDUSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10638, IF_AVX|IF_SANDYBRIDGE}, + /* 2401 */ {I_VPADDUSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10645, IF_AVX|IF_SANDYBRIDGE}, + /* 2402 */ {I_VPADDUSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10652, IF_AVX|IF_SANDYBRIDGE}, + /* 2403 */ {I_VPALIGNR, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6388, IF_AVX|IF_SANDYBRIDGE}, + /* 2404 */ {I_VPALIGNR, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6396, IF_AVX|IF_SANDYBRIDGE}, + /* 2405 */ {I_VPAND, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10659, IF_AVX|IF_SANDYBRIDGE}, + /* 2406 */ {I_VPAND, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10666, IF_AVX|IF_SANDYBRIDGE}, + /* 2407 */ {I_VPANDN, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10673, IF_AVX|IF_SANDYBRIDGE}, + /* 2408 */ {I_VPANDN, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10680, IF_AVX|IF_SANDYBRIDGE}, + /* 2409 */ {I_VPAVGB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10687, IF_AVX|IF_SANDYBRIDGE}, + /* 2410 */ {I_VPAVGB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10694, IF_AVX|IF_SANDYBRIDGE}, + /* 2411 */ {I_VPAVGW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10701, IF_AVX|IF_SANDYBRIDGE}, + /* 2412 */ {I_VPAVGW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10708, IF_AVX|IF_SANDYBRIDGE}, + /* 2413 */ {I_VPBLENDVB, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3546, IF_AVX|IF_SANDYBRIDGE}, + /* 2414 */ {I_VPBLENDVB, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+3555, IF_AVX|IF_SANDYBRIDGE}, + /* 2415 */ {I_VPBLENDW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6404, IF_AVX|IF_SANDYBRIDGE}, + /* 2416 */ {I_VPBLENDW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6412, IF_AVX|IF_SANDYBRIDGE}, + /* 2417 */ {I_VPCMPESTRI, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6420, IF_AVX|IF_SANDYBRIDGE}, + /* 2418 */ {I_VPCMPESTRM, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6428, IF_AVX|IF_SANDYBRIDGE}, + /* 2419 */ {I_VPCMPISTRI, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6436, IF_AVX|IF_SANDYBRIDGE}, + /* 2420 */ {I_VPCMPISTRM, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6444, IF_AVX|IF_SANDYBRIDGE}, + /* 2421 */ {I_VPCMPEQB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10715, IF_AVX|IF_SANDYBRIDGE}, + /* 2422 */ {I_VPCMPEQB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10722, IF_AVX|IF_SANDYBRIDGE}, + /* 2423 */ {I_VPCMPEQW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10729, IF_AVX|IF_SANDYBRIDGE}, + /* 2424 */ {I_VPCMPEQW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10736, IF_AVX|IF_SANDYBRIDGE}, + /* 2425 */ {I_VPCMPEQD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10743, IF_AVX|IF_SANDYBRIDGE}, + /* 2426 */ {I_VPCMPEQD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10750, IF_AVX|IF_SANDYBRIDGE}, + /* 2427 */ {I_VPCMPEQQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10757, IF_AVX|IF_SANDYBRIDGE}, + /* 2428 */ {I_VPCMPEQQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10764, IF_AVX|IF_SANDYBRIDGE}, + /* 2429 */ {I_VPCMPGTB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10771, IF_AVX|IF_SANDYBRIDGE}, + /* 2430 */ {I_VPCMPGTB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10778, IF_AVX|IF_SANDYBRIDGE}, + /* 2431 */ {I_VPCMPGTW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10785, IF_AVX|IF_SANDYBRIDGE}, + /* 2432 */ {I_VPCMPGTW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10792, IF_AVX|IF_SANDYBRIDGE}, + /* 2433 */ {I_VPCMPGTD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10799, IF_AVX|IF_SANDYBRIDGE}, + /* 2434 */ {I_VPCMPGTD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10806, IF_AVX|IF_SANDYBRIDGE}, + /* 2435 */ {I_VPCMPGTQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10813, IF_AVX|IF_SANDYBRIDGE}, + /* 2436 */ {I_VPCMPGTQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10820, IF_AVX|IF_SANDYBRIDGE}, + /* 2437 */ {I_VPERMILPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10827, IF_AVX|IF_SANDYBRIDGE}, + /* 2438 */ {I_VPERMILPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+10834, IF_AVX|IF_SANDYBRIDGE}, + /* 2439 */ {I_VPERMILPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6452, IF_AVX|IF_SANDYBRIDGE}, + /* 2440 */ {I_VPERMILPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6460, IF_AVX|IF_SANDYBRIDGE}, + /* 2441 */ {I_VPERMILTD2PD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3564, IF_AVX|IF_SANDYBRIDGE}, + /* 2442 */ {I_VPERMILTD2PD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+3573, IF_AVX|IF_SANDYBRIDGE}, + /* 2443 */ {I_VPERMILTD2PD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+3582, IF_AVX|IF_SANDYBRIDGE}, + /* 2444 */ {I_VPERMILTD2PD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+3591, IF_AVX|IF_SANDYBRIDGE}, + /* 2445 */ {I_VPERMILMO2PD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3600, IF_AVX|IF_SANDYBRIDGE}, + /* 2446 */ {I_VPERMILMO2PD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+3609, IF_AVX|IF_SANDYBRIDGE}, + /* 2447 */ {I_VPERMILMO2PD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+3618, IF_AVX|IF_SANDYBRIDGE}, + /* 2448 */ {I_VPERMILMO2PD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+3627, IF_AVX|IF_SANDYBRIDGE}, + /* 2449 */ {I_VPERMILMZ2PD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3636, IF_AVX|IF_SANDYBRIDGE}, + /* 2450 */ {I_VPERMILMZ2PD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+3645, IF_AVX|IF_SANDYBRIDGE}, + /* 2451 */ {I_VPERMILMZ2PD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+3654, IF_AVX|IF_SANDYBRIDGE}, + /* 2452 */ {I_VPERMILMZ2PD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+3663, IF_AVX|IF_SANDYBRIDGE}, + /* 2453 */ {I_VPERMIL2PD, 5, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,IMMEDIATE|BITS8}, nasm_bytecodes+3672, IF_AVX|IF_SANDYBRIDGE}, + /* 2454 */ {I_VPERMIL2PD, 5, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8}, nasm_bytecodes+3681, IF_AVX|IF_SANDYBRIDGE}, + /* 2455 */ {I_VPERMIL2PD, 5, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,IMMEDIATE|BITS8}, nasm_bytecodes+3690, IF_AVX|IF_SANDYBRIDGE}, + /* 2456 */ {I_VPERMIL2PD, 5, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8}, nasm_bytecodes+3699, IF_AVX|IF_SANDYBRIDGE}, + /* 2457 */ {I_VPERMILPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10841, IF_AVX|IF_SANDYBRIDGE}, + /* 2458 */ {I_VPERMILPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+10848, IF_AVX|IF_SANDYBRIDGE}, + /* 2459 */ {I_VPERMILPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6468, IF_AVX|IF_SANDYBRIDGE}, + /* 2460 */ {I_VPERMILPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6476, IF_AVX|IF_SANDYBRIDGE}, + /* 2461 */ {I_VPERMILTD2PS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3708, IF_AVX|IF_SANDYBRIDGE}, + /* 2462 */ {I_VPERMILTD2PS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+3717, IF_AVX|IF_SANDYBRIDGE}, + /* 2463 */ {I_VPERMILTD2PS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+3726, IF_AVX|IF_SANDYBRIDGE}, + /* 2464 */ {I_VPERMILTD2PS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+3735, IF_AVX|IF_SANDYBRIDGE}, + /* 2465 */ {I_VPERMILMO2PS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3744, IF_AVX|IF_SANDYBRIDGE}, + /* 2466 */ {I_VPERMILMO2PS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+3753, IF_AVX|IF_SANDYBRIDGE}, + /* 2467 */ {I_VPERMILMO2PS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+3762, IF_AVX|IF_SANDYBRIDGE}, + /* 2468 */ {I_VPERMILMO2PS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+3771, IF_AVX|IF_SANDYBRIDGE}, + /* 2469 */ {I_VPERMILMZ2PS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3780, IF_AVX|IF_SANDYBRIDGE}, + /* 2470 */ {I_VPERMILMZ2PS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+3789, IF_AVX|IF_SANDYBRIDGE}, + /* 2471 */ {I_VPERMILMZ2PS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+3798, IF_AVX|IF_SANDYBRIDGE}, + /* 2472 */ {I_VPERMILMZ2PS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+3807, IF_AVX|IF_SANDYBRIDGE}, + /* 2473 */ {I_VPERMIL2PS, 5, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,IMMEDIATE|BITS8}, nasm_bytecodes+3816, IF_AVX|IF_SANDYBRIDGE}, + /* 2474 */ {I_VPERMIL2PS, 5, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8}, nasm_bytecodes+3825, IF_AVX|IF_SANDYBRIDGE}, + /* 2475 */ {I_VPERMIL2PS, 5, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,IMMEDIATE|BITS8}, nasm_bytecodes+3834, IF_AVX|IF_SANDYBRIDGE}, + /* 2476 */ {I_VPERMIL2PS, 5, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8}, nasm_bytecodes+3843, IF_AVX|IF_SANDYBRIDGE}, + /* 2477 */ {I_VPERM2F128, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6484, IF_AVX|IF_SANDYBRIDGE}, + /* 2478 */ {I_VPEXTRB, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6492, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2479 */ {I_VPEXTRB, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6492, IF_AVX|IF_SANDYBRIDGE}, + /* 2480 */ {I_VPEXTRB, 3, {MEMORY|BITS8,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6492, IF_AVX|IF_SANDYBRIDGE}, + /* 2481 */ {I_VPEXTRW, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6500, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2482 */ {I_VPEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6500, IF_AVX|IF_SANDYBRIDGE}, + /* 2483 */ {I_VPEXTRW, 3, {MEMORY|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6500, IF_AVX|IF_SANDYBRIDGE}, + /* 2484 */ {I_VPEXTRW, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6508, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2485 */ {I_VPEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6508, IF_AVX|IF_SANDYBRIDGE}, + /* 2486 */ {I_VPEXTRW, 3, {MEMORY|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6508, IF_AVX|IF_SANDYBRIDGE}, + /* 2487 */ {I_VPEXTRD, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6516, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2488 */ {I_VPEXTRD, 3, {RM_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6516, IF_AVX|IF_SANDYBRIDGE}, + /* 2489 */ {I_VPEXTRQ, 3, {RM_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6524, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2490 */ {I_VPHADDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10855, IF_AVX|IF_SANDYBRIDGE}, + /* 2491 */ {I_VPHADDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10862, IF_AVX|IF_SANDYBRIDGE}, + /* 2492 */ {I_VPHADDD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10869, IF_AVX|IF_SANDYBRIDGE}, + /* 2493 */ {I_VPHADDD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10876, IF_AVX|IF_SANDYBRIDGE}, + /* 2494 */ {I_VPHADDSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10883, IF_AVX|IF_SANDYBRIDGE}, + /* 2495 */ {I_VPHADDSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10890, IF_AVX|IF_SANDYBRIDGE}, + /* 2496 */ {I_VPHMINPOSUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10897, IF_AVX|IF_SANDYBRIDGE}, + /* 2497 */ {I_VPHSUBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10904, IF_AVX|IF_SANDYBRIDGE}, + /* 2498 */ {I_VPHSUBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10911, IF_AVX|IF_SANDYBRIDGE}, + /* 2499 */ {I_VPHSUBD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10918, IF_AVX|IF_SANDYBRIDGE}, + /* 2500 */ {I_VPHSUBD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10925, IF_AVX|IF_SANDYBRIDGE}, + /* 2501 */ {I_VPHSUBSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10932, IF_AVX|IF_SANDYBRIDGE}, + /* 2502 */ {I_VPHSUBSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10939, IF_AVX|IF_SANDYBRIDGE}, + /* 2503 */ {I_VPINSRB, 4, {XMMREG,XMMREG,MEMORY|BITS8,IMMEDIATE|BITS8,0}, nasm_bytecodes+6532, IF_AVX|IF_SANDYBRIDGE}, + /* 2504 */ {I_VPINSRB, 3, {XMMREG,MEMORY|BITS8,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6540, IF_AVX|IF_SANDYBRIDGE}, + /* 2505 */ {I_VPINSRB, 4, {XMMREG,XMMREG,RM_GPR|BITS8,IMMEDIATE|BITS8,0}, nasm_bytecodes+6532, IF_AVX|IF_SANDYBRIDGE}, + /* 2506 */ {I_VPINSRB, 3, {XMMREG,RM_GPR|BITS8,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6540, IF_AVX|IF_SANDYBRIDGE}, + /* 2507 */ {I_VPINSRB, 4, {XMMREG,XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, nasm_bytecodes+6532, IF_AVX|IF_SANDYBRIDGE}, + /* 2508 */ {I_VPINSRB, 3, {XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6540, IF_AVX|IF_SANDYBRIDGE}, + /* 2509 */ {I_VPINSRW, 4, {XMMREG,XMMREG,MEMORY|BITS16,IMMEDIATE|BITS8,0}, nasm_bytecodes+6548, IF_AVX|IF_SANDYBRIDGE}, + /* 2510 */ {I_VPINSRW, 3, {XMMREG,MEMORY|BITS16,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6556, IF_AVX|IF_SANDYBRIDGE}, + /* 2511 */ {I_VPINSRW, 4, {XMMREG,XMMREG,RM_GPR|BITS16,IMMEDIATE|BITS8,0}, nasm_bytecodes+6548, IF_AVX|IF_SANDYBRIDGE}, + /* 2512 */ {I_VPINSRW, 3, {XMMREG,RM_GPR|BITS16,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6556, IF_AVX|IF_SANDYBRIDGE}, + /* 2513 */ {I_VPINSRW, 4, {XMMREG,XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, nasm_bytecodes+6548, IF_AVX|IF_SANDYBRIDGE}, + /* 2514 */ {I_VPINSRW, 3, {XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6556, IF_AVX|IF_SANDYBRIDGE}, + /* 2515 */ {I_VPINSRD, 4, {XMMREG,XMMREG,MEMORY|BITS32,IMMEDIATE|BITS8,0}, nasm_bytecodes+6564, IF_AVX|IF_SANDYBRIDGE}, + /* 2516 */ {I_VPINSRD, 3, {XMMREG,MEMORY|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6572, IF_AVX|IF_SANDYBRIDGE}, + /* 2517 */ {I_VPINSRD, 4, {XMMREG,XMMREG,RM_GPR|BITS32,IMMEDIATE|BITS8,0}, nasm_bytecodes+6564, IF_AVX|IF_SANDYBRIDGE}, + /* 2518 */ {I_VPINSRD, 3, {XMMREG,RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6572, IF_AVX|IF_SANDYBRIDGE}, + /* 2519 */ {I_VPINSRQ, 4, {XMMREG,XMMREG,MEMORY|BITS64,IMMEDIATE|BITS8,0}, nasm_bytecodes+6580, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2520 */ {I_VPINSRQ, 3, {XMMREG,MEMORY|BITS64,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6588, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2521 */ {I_VPINSRQ, 4, {XMMREG,XMMREG,RM_GPR|BITS64,IMMEDIATE|BITS8,0}, nasm_bytecodes+6580, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2522 */ {I_VPINSRQ, 3, {XMMREG,RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6588, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2523 */ {I_VPMADDWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10946, IF_AVX|IF_SANDYBRIDGE}, + /* 2524 */ {I_VPMADDWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10953, IF_AVX|IF_SANDYBRIDGE}, + /* 2525 */ {I_VPMADDUBSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10960, IF_AVX|IF_SANDYBRIDGE}, + /* 2526 */ {I_VPMADDUBSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10967, IF_AVX|IF_SANDYBRIDGE}, + /* 2527 */ {I_VPMAXSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10974, IF_AVX|IF_SANDYBRIDGE}, + /* 2528 */ {I_VPMAXSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10981, IF_AVX|IF_SANDYBRIDGE}, + /* 2529 */ {I_VPMAXSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+10988, IF_AVX|IF_SANDYBRIDGE}, + /* 2530 */ {I_VPMAXSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+10995, IF_AVX|IF_SANDYBRIDGE}, + /* 2531 */ {I_VPMAXSD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11002, IF_AVX|IF_SANDYBRIDGE}, + /* 2532 */ {I_VPMAXSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11009, IF_AVX|IF_SANDYBRIDGE}, + /* 2533 */ {I_VPMAXUB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11016, IF_AVX|IF_SANDYBRIDGE}, + /* 2534 */ {I_VPMAXUB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11023, IF_AVX|IF_SANDYBRIDGE}, + /* 2535 */ {I_VPMAXUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11030, IF_AVX|IF_SANDYBRIDGE}, + /* 2536 */ {I_VPMAXUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11037, IF_AVX|IF_SANDYBRIDGE}, + /* 2537 */ {I_VPMAXUD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11044, IF_AVX|IF_SANDYBRIDGE}, + /* 2538 */ {I_VPMAXUD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11051, IF_AVX|IF_SANDYBRIDGE}, + /* 2539 */ {I_VPMINSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11058, IF_AVX|IF_SANDYBRIDGE}, + /* 2540 */ {I_VPMINSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11065, IF_AVX|IF_SANDYBRIDGE}, + /* 2541 */ {I_VPMINSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11072, IF_AVX|IF_SANDYBRIDGE}, + /* 2542 */ {I_VPMINSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11079, IF_AVX|IF_SANDYBRIDGE}, + /* 2543 */ {I_VPMINSD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11086, IF_AVX|IF_SANDYBRIDGE}, + /* 2544 */ {I_VPMINSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11093, IF_AVX|IF_SANDYBRIDGE}, + /* 2545 */ {I_VPMINUB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11100, IF_AVX|IF_SANDYBRIDGE}, + /* 2546 */ {I_VPMINUB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11107, IF_AVX|IF_SANDYBRIDGE}, + /* 2547 */ {I_VPMINUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11114, IF_AVX|IF_SANDYBRIDGE}, + /* 2548 */ {I_VPMINUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11121, IF_AVX|IF_SANDYBRIDGE}, + /* 2549 */ {I_VPMINUD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11128, IF_AVX|IF_SANDYBRIDGE}, + /* 2550 */ {I_VPMINUD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11135, IF_AVX|IF_SANDYBRIDGE}, + /* 2551 */ {I_VPMOVMSKB, 2, {REG_GPR|BITS64,XMMREG,0,0,0}, nasm_bytecodes+11142, IF_AVX|IF_SANDYBRIDGE|IF_LONG}, + /* 2552 */ {I_VPMOVMSKB, 2, {REG_GPR|BITS32,XMMREG,0,0,0}, nasm_bytecodes+11142, IF_AVX|IF_SANDYBRIDGE}, + /* 2553 */ {I_VPMOVSXBW, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11149, IF_AVX|IF_SANDYBRIDGE}, + /* 2554 */ {I_VPMOVSXBD, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11156, IF_AVX|IF_SANDYBRIDGE}, + /* 2555 */ {I_VPMOVSXBQ, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, nasm_bytecodes+11163, IF_AVX|IF_SANDYBRIDGE}, + /* 2556 */ {I_VPMOVSXWD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11170, IF_AVX|IF_SANDYBRIDGE}, + /* 2557 */ {I_VPMOVSXWQ, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11177, IF_AVX|IF_SANDYBRIDGE}, + /* 2558 */ {I_VPMOVSXDQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11184, IF_AVX|IF_SANDYBRIDGE}, + /* 2559 */ {I_VPMOVZXBW, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11191, IF_AVX|IF_SANDYBRIDGE}, + /* 2560 */ {I_VPMOVZXBD, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11198, IF_AVX|IF_SANDYBRIDGE}, + /* 2561 */ {I_VPMOVZXBQ, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, nasm_bytecodes+11205, IF_AVX|IF_SANDYBRIDGE}, + /* 2562 */ {I_VPMOVZXWD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11212, IF_AVX|IF_SANDYBRIDGE}, + /* 2563 */ {I_VPMOVZXWQ, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11219, IF_AVX|IF_SANDYBRIDGE}, + /* 2564 */ {I_VPMOVZXDQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11226, IF_AVX|IF_SANDYBRIDGE}, + /* 2565 */ {I_VPMULHUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11233, IF_AVX|IF_SANDYBRIDGE}, + /* 2566 */ {I_VPMULHUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11240, IF_AVX|IF_SANDYBRIDGE}, + /* 2567 */ {I_VPMULHRSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11247, IF_AVX|IF_SANDYBRIDGE}, + /* 2568 */ {I_VPMULHRSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11254, IF_AVX|IF_SANDYBRIDGE}, + /* 2569 */ {I_VPMULHW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11261, IF_AVX|IF_SANDYBRIDGE}, + /* 2570 */ {I_VPMULHW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11268, IF_AVX|IF_SANDYBRIDGE}, + /* 2571 */ {I_VPMULLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11275, IF_AVX|IF_SANDYBRIDGE}, + /* 2572 */ {I_VPMULLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11282, IF_AVX|IF_SANDYBRIDGE}, + /* 2573 */ {I_VPMULLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11289, IF_AVX|IF_SANDYBRIDGE}, + /* 2574 */ {I_VPMULLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11296, IF_AVX|IF_SANDYBRIDGE}, + /* 2575 */ {I_VPMULUDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11303, IF_AVX|IF_SANDYBRIDGE}, + /* 2576 */ {I_VPMULUDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11310, IF_AVX|IF_SANDYBRIDGE}, + /* 2577 */ {I_VPMULDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11317, IF_AVX|IF_SANDYBRIDGE}, + /* 2578 */ {I_VPMULDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11324, IF_AVX|IF_SANDYBRIDGE}, + /* 2579 */ {I_VPOR, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11331, IF_AVX|IF_SANDYBRIDGE}, + /* 2580 */ {I_VPOR, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11338, IF_AVX|IF_SANDYBRIDGE}, + /* 2581 */ {I_VPSADBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11345, IF_AVX|IF_SANDYBRIDGE}, + /* 2582 */ {I_VPSADBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11352, IF_AVX|IF_SANDYBRIDGE}, + /* 2583 */ {I_VPSHUFB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11359, IF_AVX|IF_SANDYBRIDGE}, + /* 2584 */ {I_VPSHUFB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11366, IF_AVX|IF_SANDYBRIDGE}, + /* 2585 */ {I_VPSHUFD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6596, IF_AVX|IF_SANDYBRIDGE}, + /* 2586 */ {I_VPSHUFHW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6604, IF_AVX|IF_SANDYBRIDGE}, + /* 2587 */ {I_VPSHUFLW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6612, IF_AVX|IF_SANDYBRIDGE}, + /* 2588 */ {I_VPSIGNB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11373, IF_AVX|IF_SANDYBRIDGE}, + /* 2589 */ {I_VPSIGNB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11380, IF_AVX|IF_SANDYBRIDGE}, + /* 2590 */ {I_VPSIGNW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11387, IF_AVX|IF_SANDYBRIDGE}, + /* 2591 */ {I_VPSIGNW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11394, IF_AVX|IF_SANDYBRIDGE}, + /* 2592 */ {I_VPSIGND, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11401, IF_AVX|IF_SANDYBRIDGE}, + /* 2593 */ {I_VPSIGND, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11408, IF_AVX|IF_SANDYBRIDGE}, + /* 2594 */ {I_VPSLLDQ, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6620, IF_AVX|IF_SANDYBRIDGE}, + /* 2595 */ {I_VPSLLDQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6628, IF_AVX|IF_SANDYBRIDGE}, + /* 2596 */ {I_VPSRLDQ, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6636, IF_AVX|IF_SANDYBRIDGE}, + /* 2597 */ {I_VPSRLDQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6644, IF_AVX|IF_SANDYBRIDGE}, + /* 2598 */ {I_VPSLLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11415, IF_AVX|IF_SANDYBRIDGE}, + /* 2599 */ {I_VPSLLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11422, IF_AVX|IF_SANDYBRIDGE}, + /* 2600 */ {I_VPSLLW, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6652, IF_AVX|IF_SANDYBRIDGE}, + /* 2601 */ {I_VPSLLW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6660, IF_AVX|IF_SANDYBRIDGE}, + /* 2602 */ {I_VPSLLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11429, IF_AVX|IF_SANDYBRIDGE}, + /* 2603 */ {I_VPSLLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11436, IF_AVX|IF_SANDYBRIDGE}, + /* 2604 */ {I_VPSLLD, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6668, IF_AVX|IF_SANDYBRIDGE}, + /* 2605 */ {I_VPSLLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6676, IF_AVX|IF_SANDYBRIDGE}, + /* 2606 */ {I_VPSLLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11443, IF_AVX|IF_SANDYBRIDGE}, + /* 2607 */ {I_VPSLLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11450, IF_AVX|IF_SANDYBRIDGE}, + /* 2608 */ {I_VPSLLQ, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6684, IF_AVX|IF_SANDYBRIDGE}, + /* 2609 */ {I_VPSLLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6692, IF_AVX|IF_SANDYBRIDGE}, + /* 2610 */ {I_VPSRAW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11457, IF_AVX|IF_SANDYBRIDGE}, + /* 2611 */ {I_VPSRAW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11464, IF_AVX|IF_SANDYBRIDGE}, + /* 2612 */ {I_VPSRAW, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6700, IF_AVX|IF_SANDYBRIDGE}, + /* 2613 */ {I_VPSRAW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6708, IF_AVX|IF_SANDYBRIDGE}, + /* 2614 */ {I_VPSRAD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11471, IF_AVX|IF_SANDYBRIDGE}, + /* 2615 */ {I_VPSRAD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11478, IF_AVX|IF_SANDYBRIDGE}, + /* 2616 */ {I_VPSRAD, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6716, IF_AVX|IF_SANDYBRIDGE}, + /* 2617 */ {I_VPSRAD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6724, IF_AVX|IF_SANDYBRIDGE}, + /* 2618 */ {I_VPSRLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11485, IF_AVX|IF_SANDYBRIDGE}, + /* 2619 */ {I_VPSRLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11492, IF_AVX|IF_SANDYBRIDGE}, + /* 2620 */ {I_VPSRLW, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6732, IF_AVX|IF_SANDYBRIDGE}, + /* 2621 */ {I_VPSRLW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6740, IF_AVX|IF_SANDYBRIDGE}, + /* 2622 */ {I_VPSRLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11499, IF_AVX|IF_SANDYBRIDGE}, + /* 2623 */ {I_VPSRLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11506, IF_AVX|IF_SANDYBRIDGE}, + /* 2624 */ {I_VPSRLD, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6748, IF_AVX|IF_SANDYBRIDGE}, + /* 2625 */ {I_VPSRLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6756, IF_AVX|IF_SANDYBRIDGE}, + /* 2626 */ {I_VPSRLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11513, IF_AVX|IF_SANDYBRIDGE}, + /* 2627 */ {I_VPSRLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11520, IF_AVX|IF_SANDYBRIDGE}, + /* 2628 */ {I_VPSRLQ, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6764, IF_AVX|IF_SANDYBRIDGE}, + /* 2629 */ {I_VPSRLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6772, IF_AVX|IF_SANDYBRIDGE}, + /* 2630 */ {I_VPTEST, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11527, IF_AVX|IF_SANDYBRIDGE}, + /* 2631 */ {I_VPTEST, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11534, IF_AVX|IF_SANDYBRIDGE}, + /* 2632 */ {I_VPSUBB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11541, IF_AVX|IF_SANDYBRIDGE}, + /* 2633 */ {I_VPSUBB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11548, IF_AVX|IF_SANDYBRIDGE}, + /* 2634 */ {I_VPSUBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11555, IF_AVX|IF_SANDYBRIDGE}, + /* 2635 */ {I_VPSUBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11562, IF_AVX|IF_SANDYBRIDGE}, + /* 2636 */ {I_VPSUBD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11569, IF_AVX|IF_SANDYBRIDGE}, + /* 2637 */ {I_VPSUBD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11576, IF_AVX|IF_SANDYBRIDGE}, + /* 2638 */ {I_VPSUBQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11583, IF_AVX|IF_SANDYBRIDGE}, + /* 2639 */ {I_VPSUBQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11590, IF_AVX|IF_SANDYBRIDGE}, + /* 2640 */ {I_VPSUBSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11597, IF_AVX|IF_SANDYBRIDGE}, + /* 2641 */ {I_VPSUBSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11604, IF_AVX|IF_SANDYBRIDGE}, + /* 2642 */ {I_VPSUBSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11611, IF_AVX|IF_SANDYBRIDGE}, + /* 2643 */ {I_VPSUBSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11618, IF_AVX|IF_SANDYBRIDGE}, + /* 2644 */ {I_VPSUBUSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11625, IF_AVX|IF_SANDYBRIDGE}, + /* 2645 */ {I_VPSUBUSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11632, IF_AVX|IF_SANDYBRIDGE}, + /* 2646 */ {I_VPSUBUSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11639, IF_AVX|IF_SANDYBRIDGE}, + /* 2647 */ {I_VPSUBUSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11646, IF_AVX|IF_SANDYBRIDGE}, + /* 2648 */ {I_VPUNPCKHBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11653, IF_AVX|IF_SANDYBRIDGE}, + /* 2649 */ {I_VPUNPCKHBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11660, IF_AVX|IF_SANDYBRIDGE}, + /* 2650 */ {I_VPUNPCKHWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11667, IF_AVX|IF_SANDYBRIDGE}, + /* 2651 */ {I_VPUNPCKHWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11674, IF_AVX|IF_SANDYBRIDGE}, + /* 2652 */ {I_VPUNPCKHDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11681, IF_AVX|IF_SANDYBRIDGE}, + /* 2653 */ {I_VPUNPCKHDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11688, IF_AVX|IF_SANDYBRIDGE}, + /* 2654 */ {I_VPUNPCKHQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11695, IF_AVX|IF_SANDYBRIDGE}, + /* 2655 */ {I_VPUNPCKHQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11702, IF_AVX|IF_SANDYBRIDGE}, + /* 2656 */ {I_VPUNPCKLBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11709, IF_AVX|IF_SANDYBRIDGE}, + /* 2657 */ {I_VPUNPCKLBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11716, IF_AVX|IF_SANDYBRIDGE}, + /* 2658 */ {I_VPUNPCKLWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11723, IF_AVX|IF_SANDYBRIDGE}, + /* 2659 */ {I_VPUNPCKLWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11730, IF_AVX|IF_SANDYBRIDGE}, + /* 2660 */ {I_VPUNPCKLDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11737, IF_AVX|IF_SANDYBRIDGE}, + /* 2661 */ {I_VPUNPCKLDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11744, IF_AVX|IF_SANDYBRIDGE}, + /* 2662 */ {I_VPUNPCKLQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11751, IF_AVX|IF_SANDYBRIDGE}, + /* 2663 */ {I_VPUNPCKLQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11758, IF_AVX|IF_SANDYBRIDGE}, + /* 2664 */ {I_VPXOR, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11765, IF_AVX|IF_SANDYBRIDGE}, + /* 2665 */ {I_VPXOR, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11772, IF_AVX|IF_SANDYBRIDGE}, + /* 2666 */ {I_VRCPPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11779, IF_AVX|IF_SANDYBRIDGE}, + /* 2667 */ {I_VRCPPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11786, IF_AVX|IF_SANDYBRIDGE}, + /* 2668 */ {I_VRCPSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+11793, IF_AVX|IF_SANDYBRIDGE}, + /* 2669 */ {I_VRCPSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11800, IF_AVX|IF_SANDYBRIDGE}, + /* 2670 */ {I_VRSQRTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11807, IF_AVX|IF_SANDYBRIDGE}, + /* 2671 */ {I_VRSQRTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11814, IF_AVX|IF_SANDYBRIDGE}, + /* 2672 */ {I_VRSQRTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+11821, IF_AVX|IF_SANDYBRIDGE}, + /* 2673 */ {I_VRSQRTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11828, IF_AVX|IF_SANDYBRIDGE}, + /* 2674 */ {I_VROUNDPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6780, IF_AVX|IF_SANDYBRIDGE}, + /* 2675 */ {I_VROUNDPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6788, IF_AVX|IF_SANDYBRIDGE}, + /* 2676 */ {I_VROUNDPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6796, IF_AVX|IF_SANDYBRIDGE}, + /* 2677 */ {I_VROUNDPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6804, IF_AVX|IF_SANDYBRIDGE}, + /* 2678 */ {I_VROUNDSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, nasm_bytecodes+6812, IF_AVX|IF_SANDYBRIDGE}, + /* 2679 */ {I_VROUNDSD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6820, IF_AVX|IF_SANDYBRIDGE}, + /* 2680 */ {I_VROUNDSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, nasm_bytecodes+6828, IF_AVX|IF_SANDYBRIDGE}, + /* 2681 */ {I_VROUNDSS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6836, IF_AVX|IF_SANDYBRIDGE}, + /* 2682 */ {I_VSHUFPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6844, IF_AVX|IF_SANDYBRIDGE}, + /* 2683 */ {I_VSHUFPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6852, IF_AVX|IF_SANDYBRIDGE}, + /* 2684 */ {I_VSHUFPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6860, IF_AVX|IF_SANDYBRIDGE}, + /* 2685 */ {I_VSHUFPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6868, IF_AVX|IF_SANDYBRIDGE}, + /* 2686 */ {I_VSHUFPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6876, IF_AVX|IF_SANDYBRIDGE}, + /* 2687 */ {I_VSHUFPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6884, IF_AVX|IF_SANDYBRIDGE}, + /* 2688 */ {I_VSHUFPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, nasm_bytecodes+6892, IF_AVX|IF_SANDYBRIDGE}, + /* 2689 */ {I_VSHUFPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6900, IF_AVX|IF_SANDYBRIDGE}, + /* 2690 */ {I_VSQRTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11835, IF_AVX|IF_SANDYBRIDGE}, + /* 2691 */ {I_VSQRTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11842, IF_AVX|IF_SANDYBRIDGE}, + /* 2692 */ {I_VSQRTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11849, IF_AVX|IF_SANDYBRIDGE}, + /* 2693 */ {I_VSQRTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11856, IF_AVX|IF_SANDYBRIDGE}, + /* 2694 */ {I_VSQRTSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+11863, IF_AVX|IF_SANDYBRIDGE}, + /* 2695 */ {I_VSQRTSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11870, IF_AVX|IF_SANDYBRIDGE}, + /* 2696 */ {I_VSQRTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+11877, IF_AVX|IF_SANDYBRIDGE}, + /* 2697 */ {I_VSQRTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11884, IF_AVX|IF_SANDYBRIDGE}, + /* 2698 */ {I_VSTMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, nasm_bytecodes+11891, IF_AVX|IF_SANDYBRIDGE}, + /* 2699 */ {I_VSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11898, IF_AVX|IF_SANDYBRIDGE}, + /* 2700 */ {I_VSUBPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11905, IF_AVX|IF_SANDYBRIDGE}, + /* 2701 */ {I_VSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+11912, IF_AVX|IF_SANDYBRIDGE}, + /* 2702 */ {I_VSUBPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11919, IF_AVX|IF_SANDYBRIDGE}, + /* 2703 */ {I_VSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+11926, IF_AVX|IF_SANDYBRIDGE}, + /* 2704 */ {I_VSUBPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11933, IF_AVX|IF_SANDYBRIDGE}, + /* 2705 */ {I_VSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+11940, IF_AVX|IF_SANDYBRIDGE}, + /* 2706 */ {I_VSUBPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11947, IF_AVX|IF_SANDYBRIDGE}, + /* 2707 */ {I_VSUBSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+11954, IF_AVX|IF_SANDYBRIDGE}, + /* 2708 */ {I_VSUBSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+11961, IF_AVX|IF_SANDYBRIDGE}, + /* 2709 */ {I_VSUBSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+11968, IF_AVX|IF_SANDYBRIDGE}, + /* 2710 */ {I_VSUBSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+11975, IF_AVX|IF_SANDYBRIDGE}, + /* 2711 */ {I_VTESTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11982, IF_AVX|IF_SANDYBRIDGE}, + /* 2712 */ {I_VTESTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+11989, IF_AVX|IF_SANDYBRIDGE}, + /* 2713 */ {I_VTESTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+11996, IF_AVX|IF_SANDYBRIDGE}, + /* 2714 */ {I_VTESTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12003, IF_AVX|IF_SANDYBRIDGE}, + /* 2715 */ {I_VUCOMISD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+12010, IF_AVX|IF_SANDYBRIDGE}, + /* 2716 */ {I_VUCOMISS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+12017, IF_AVX|IF_SANDYBRIDGE}, + /* 2717 */ {I_VUNPCKHPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12024, IF_AVX|IF_SANDYBRIDGE}, + /* 2718 */ {I_VUNPCKHPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12031, IF_AVX|IF_SANDYBRIDGE}, + /* 2719 */ {I_VUNPCKHPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12038, IF_AVX|IF_SANDYBRIDGE}, + /* 2720 */ {I_VUNPCKHPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12045, IF_AVX|IF_SANDYBRIDGE}, + /* 2721 */ {I_VUNPCKHPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12052, IF_AVX|IF_SANDYBRIDGE}, + /* 2722 */ {I_VUNPCKHPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12059, IF_AVX|IF_SANDYBRIDGE}, + /* 2723 */ {I_VUNPCKHPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12066, IF_AVX|IF_SANDYBRIDGE}, + /* 2724 */ {I_VUNPCKHPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12073, IF_AVX|IF_SANDYBRIDGE}, + /* 2725 */ {I_VUNPCKLPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12080, IF_AVX|IF_SANDYBRIDGE}, + /* 2726 */ {I_VUNPCKLPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12087, IF_AVX|IF_SANDYBRIDGE}, + /* 2727 */ {I_VUNPCKLPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12094, IF_AVX|IF_SANDYBRIDGE}, + /* 2728 */ {I_VUNPCKLPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12101, IF_AVX|IF_SANDYBRIDGE}, + /* 2729 */ {I_VUNPCKLPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12108, IF_AVX|IF_SANDYBRIDGE}, + /* 2730 */ {I_VUNPCKLPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12115, IF_AVX|IF_SANDYBRIDGE}, + /* 2731 */ {I_VUNPCKLPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12122, IF_AVX|IF_SANDYBRIDGE}, + /* 2732 */ {I_VUNPCKLPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12129, IF_AVX|IF_SANDYBRIDGE}, + /* 2733 */ {I_VXORPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12136, IF_AVX|IF_SANDYBRIDGE}, + /* 2734 */ {I_VXORPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12143, IF_AVX|IF_SANDYBRIDGE}, + /* 2735 */ {I_VXORPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12150, IF_AVX|IF_SANDYBRIDGE}, + /* 2736 */ {I_VXORPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12157, IF_AVX|IF_SANDYBRIDGE}, + /* 2737 */ {I_VXORPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12164, IF_AVX|IF_SANDYBRIDGE}, + /* 2738 */ {I_VXORPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12171, IF_AVX|IF_SANDYBRIDGE}, + /* 2739 */ {I_VXORPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12178, IF_AVX|IF_SANDYBRIDGE}, + /* 2740 */ {I_VXORPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12185, IF_AVX|IF_SANDYBRIDGE}, + /* 2741 */ {I_VZEROALL, 0, {0,0,0,0,0}, nasm_bytecodes+15840, IF_AVX|IF_SANDYBRIDGE}, + /* 2742 */ {I_VZEROUPPER, 0, {0,0,0,0,0}, nasm_bytecodes+15846, IF_AVX|IF_SANDYBRIDGE}, + /* 2743 */ {I_PCLMULLQLQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3852, IF_SSE|IF_WESTMERE}, + /* 2744 */ {I_PCLMULHQLQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3861, IF_SSE|IF_WESTMERE}, + /* 2745 */ {I_PCLMULLQHQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3870, IF_SSE|IF_WESTMERE}, + /* 2746 */ {I_PCLMULHQHQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3879, IF_SSE|IF_WESTMERE}, + /* 2747 */ {I_PCLMULQDQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6908, IF_SSE|IF_WESTMERE}, + /* 2748 */ {I_VPCLMULLQLQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+3888, IF_AVX|IF_SANDYBRIDGE}, + /* 2749 */ {I_VPCLMULLQLQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3897, IF_AVX|IF_SANDYBRIDGE}, + /* 2750 */ {I_VPCLMULHQLQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+3906, IF_AVX|IF_SANDYBRIDGE}, + /* 2751 */ {I_VPCLMULHQLQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3915, IF_AVX|IF_SANDYBRIDGE}, + /* 2752 */ {I_VPCLMULLQHQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+3924, IF_AVX|IF_SANDYBRIDGE}, + /* 2753 */ {I_VPCLMULLQHQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3933, IF_AVX|IF_SANDYBRIDGE}, + /* 2754 */ {I_VPCLMULHQHQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+3942, IF_AVX|IF_SANDYBRIDGE}, + /* 2755 */ {I_VPCLMULHQHQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+3951, IF_AVX|IF_SANDYBRIDGE}, + /* 2756 */ {I_VPCLMULQDQ, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+6916, IF_AVX|IF_SANDYBRIDGE}, + /* 2757 */ {I_VPCLMULQDQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6924, IF_AVX|IF_SANDYBRIDGE}, + /* 2758 */ {I_VFMADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12192, IF_FMA|IF_FUTURE}, + /* 2759 */ {I_VFMADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12199, IF_FMA|IF_FUTURE}, + /* 2760 */ {I_VFMADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12206, IF_FMA|IF_FUTURE}, + /* 2761 */ {I_VFMADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12213, IF_FMA|IF_FUTURE}, + /* 2762 */ {I_VFMADD312PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12192, IF_FMA|IF_FUTURE}, + /* 2763 */ {I_VFMADD312PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12199, IF_FMA|IF_FUTURE}, + /* 2764 */ {I_VFMADD312PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12206, IF_FMA|IF_FUTURE}, + /* 2765 */ {I_VFMADD312PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12213, IF_FMA|IF_FUTURE}, + /* 2766 */ {I_VFMADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12220, IF_FMA|IF_FUTURE}, + /* 2767 */ {I_VFMADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12227, IF_FMA|IF_FUTURE}, + /* 2768 */ {I_VFMADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12234, IF_FMA|IF_FUTURE}, + /* 2769 */ {I_VFMADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12241, IF_FMA|IF_FUTURE}, + /* 2770 */ {I_VFMADD123PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12220, IF_FMA|IF_FUTURE}, + /* 2771 */ {I_VFMADD123PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12227, IF_FMA|IF_FUTURE}, + /* 2772 */ {I_VFMADD123PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12234, IF_FMA|IF_FUTURE}, + /* 2773 */ {I_VFMADD123PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12241, IF_FMA|IF_FUTURE}, + /* 2774 */ {I_VFMADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12248, IF_FMA|IF_FUTURE}, + /* 2775 */ {I_VFMADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12255, IF_FMA|IF_FUTURE}, + /* 2776 */ {I_VFMADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12262, IF_FMA|IF_FUTURE}, + /* 2777 */ {I_VFMADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12269, IF_FMA|IF_FUTURE}, + /* 2778 */ {I_VFMADD321PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12248, IF_FMA|IF_FUTURE}, + /* 2779 */ {I_VFMADD321PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12255, IF_FMA|IF_FUTURE}, + /* 2780 */ {I_VFMADD321PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12262, IF_FMA|IF_FUTURE}, + /* 2781 */ {I_VFMADD321PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12269, IF_FMA|IF_FUTURE}, + /* 2782 */ {I_VFMADDSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12276, IF_FMA|IF_FUTURE}, + /* 2783 */ {I_VFMADDSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12283, IF_FMA|IF_FUTURE}, + /* 2784 */ {I_VFMADDSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12290, IF_FMA|IF_FUTURE}, + /* 2785 */ {I_VFMADDSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12297, IF_FMA|IF_FUTURE}, + /* 2786 */ {I_VFMADDSUB312PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12276, IF_FMA|IF_FUTURE}, + /* 2787 */ {I_VFMADDSUB312PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12283, IF_FMA|IF_FUTURE}, + /* 2788 */ {I_VFMADDSUB312PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12290, IF_FMA|IF_FUTURE}, + /* 2789 */ {I_VFMADDSUB312PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12297, IF_FMA|IF_FUTURE}, + /* 2790 */ {I_VFMADDSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12304, IF_FMA|IF_FUTURE}, + /* 2791 */ {I_VFMADDSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12311, IF_FMA|IF_FUTURE}, + /* 2792 */ {I_VFMADDSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12318, IF_FMA|IF_FUTURE}, + /* 2793 */ {I_VFMADDSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12325, IF_FMA|IF_FUTURE}, + /* 2794 */ {I_VFMADDSUB123PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12304, IF_FMA|IF_FUTURE}, + /* 2795 */ {I_VFMADDSUB123PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12311, IF_FMA|IF_FUTURE}, + /* 2796 */ {I_VFMADDSUB123PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12318, IF_FMA|IF_FUTURE}, + /* 2797 */ {I_VFMADDSUB123PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12325, IF_FMA|IF_FUTURE}, + /* 2798 */ {I_VFMADDSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12332, IF_FMA|IF_FUTURE}, + /* 2799 */ {I_VFMADDSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12339, IF_FMA|IF_FUTURE}, + /* 2800 */ {I_VFMADDSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12346, IF_FMA|IF_FUTURE}, + /* 2801 */ {I_VFMADDSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12353, IF_FMA|IF_FUTURE}, + /* 2802 */ {I_VFMADDSUB321PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12332, IF_FMA|IF_FUTURE}, + /* 2803 */ {I_VFMADDSUB321PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12339, IF_FMA|IF_FUTURE}, + /* 2804 */ {I_VFMADDSUB321PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12346, IF_FMA|IF_FUTURE}, + /* 2805 */ {I_VFMADDSUB321PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12353, IF_FMA|IF_FUTURE}, + /* 2806 */ {I_VFMSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12360, IF_FMA|IF_FUTURE}, + /* 2807 */ {I_VFMSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12367, IF_FMA|IF_FUTURE}, + /* 2808 */ {I_VFMSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12374, IF_FMA|IF_FUTURE}, + /* 2809 */ {I_VFMSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12381, IF_FMA|IF_FUTURE}, + /* 2810 */ {I_VFMSUB312PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12360, IF_FMA|IF_FUTURE}, + /* 2811 */ {I_VFMSUB312PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12367, IF_FMA|IF_FUTURE}, + /* 2812 */ {I_VFMSUB312PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12374, IF_FMA|IF_FUTURE}, + /* 2813 */ {I_VFMSUB312PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12381, IF_FMA|IF_FUTURE}, + /* 2814 */ {I_VFMSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12388, IF_FMA|IF_FUTURE}, + /* 2815 */ {I_VFMSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12395, IF_FMA|IF_FUTURE}, + /* 2816 */ {I_VFMSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12402, IF_FMA|IF_FUTURE}, + /* 2817 */ {I_VFMSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12409, IF_FMA|IF_FUTURE}, + /* 2818 */ {I_VFMSUB123PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12388, IF_FMA|IF_FUTURE}, + /* 2819 */ {I_VFMSUB123PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12395, IF_FMA|IF_FUTURE}, + /* 2820 */ {I_VFMSUB123PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12402, IF_FMA|IF_FUTURE}, + /* 2821 */ {I_VFMSUB123PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12409, IF_FMA|IF_FUTURE}, + /* 2822 */ {I_VFMSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12416, IF_FMA|IF_FUTURE}, + /* 2823 */ {I_VFMSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12423, IF_FMA|IF_FUTURE}, + /* 2824 */ {I_VFMSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12430, IF_FMA|IF_FUTURE}, + /* 2825 */ {I_VFMSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12437, IF_FMA|IF_FUTURE}, + /* 2826 */ {I_VFMSUB321PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12416, IF_FMA|IF_FUTURE}, + /* 2827 */ {I_VFMSUB321PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12423, IF_FMA|IF_FUTURE}, + /* 2828 */ {I_VFMSUB321PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12430, IF_FMA|IF_FUTURE}, + /* 2829 */ {I_VFMSUB321PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12437, IF_FMA|IF_FUTURE}, + /* 2830 */ {I_VFMSUBADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12444, IF_FMA|IF_FUTURE}, + /* 2831 */ {I_VFMSUBADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12451, IF_FMA|IF_FUTURE}, + /* 2832 */ {I_VFMSUBADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12458, IF_FMA|IF_FUTURE}, + /* 2833 */ {I_VFMSUBADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12465, IF_FMA|IF_FUTURE}, + /* 2834 */ {I_VFMSUBADD312PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12444, IF_FMA|IF_FUTURE}, + /* 2835 */ {I_VFMSUBADD312PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12451, IF_FMA|IF_FUTURE}, + /* 2836 */ {I_VFMSUBADD312PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12458, IF_FMA|IF_FUTURE}, + /* 2837 */ {I_VFMSUBADD312PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12465, IF_FMA|IF_FUTURE}, + /* 2838 */ {I_VFMSUBADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12472, IF_FMA|IF_FUTURE}, + /* 2839 */ {I_VFMSUBADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12479, IF_FMA|IF_FUTURE}, + /* 2840 */ {I_VFMSUBADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12486, IF_FMA|IF_FUTURE}, + /* 2841 */ {I_VFMSUBADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12493, IF_FMA|IF_FUTURE}, + /* 2842 */ {I_VFMSUBADD123PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12472, IF_FMA|IF_FUTURE}, + /* 2843 */ {I_VFMSUBADD123PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12479, IF_FMA|IF_FUTURE}, + /* 2844 */ {I_VFMSUBADD123PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12486, IF_FMA|IF_FUTURE}, + /* 2845 */ {I_VFMSUBADD123PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12493, IF_FMA|IF_FUTURE}, + /* 2846 */ {I_VFMSUBADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12500, IF_FMA|IF_FUTURE}, + /* 2847 */ {I_VFMSUBADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12507, IF_FMA|IF_FUTURE}, + /* 2848 */ {I_VFMSUBADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12514, IF_FMA|IF_FUTURE}, + /* 2849 */ {I_VFMSUBADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12521, IF_FMA|IF_FUTURE}, + /* 2850 */ {I_VFMSUBADD321PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12500, IF_FMA|IF_FUTURE}, + /* 2851 */ {I_VFMSUBADD321PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12507, IF_FMA|IF_FUTURE}, + /* 2852 */ {I_VFMSUBADD321PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12514, IF_FMA|IF_FUTURE}, + /* 2853 */ {I_VFMSUBADD321PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12521, IF_FMA|IF_FUTURE}, + /* 2854 */ {I_VFNMADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12528, IF_FMA|IF_FUTURE}, + /* 2855 */ {I_VFNMADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12535, IF_FMA|IF_FUTURE}, + /* 2856 */ {I_VFNMADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12542, IF_FMA|IF_FUTURE}, + /* 2857 */ {I_VFNMADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12549, IF_FMA|IF_FUTURE}, + /* 2858 */ {I_VFNMADD312PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12528, IF_FMA|IF_FUTURE}, + /* 2859 */ {I_VFNMADD312PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12535, IF_FMA|IF_FUTURE}, + /* 2860 */ {I_VFNMADD312PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12542, IF_FMA|IF_FUTURE}, + /* 2861 */ {I_VFNMADD312PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12549, IF_FMA|IF_FUTURE}, + /* 2862 */ {I_VFNMADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12556, IF_FMA|IF_FUTURE}, + /* 2863 */ {I_VFNMADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12563, IF_FMA|IF_FUTURE}, + /* 2864 */ {I_VFNMADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12570, IF_FMA|IF_FUTURE}, + /* 2865 */ {I_VFNMADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12577, IF_FMA|IF_FUTURE}, + /* 2866 */ {I_VFNMADD123PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12556, IF_FMA|IF_FUTURE}, + /* 2867 */ {I_VFNMADD123PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12563, IF_FMA|IF_FUTURE}, + /* 2868 */ {I_VFNMADD123PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12570, IF_FMA|IF_FUTURE}, + /* 2869 */ {I_VFNMADD123PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12577, IF_FMA|IF_FUTURE}, + /* 2870 */ {I_VFNMADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12584, IF_FMA|IF_FUTURE}, + /* 2871 */ {I_VFNMADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12591, IF_FMA|IF_FUTURE}, + /* 2872 */ {I_VFNMADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12598, IF_FMA|IF_FUTURE}, + /* 2873 */ {I_VFNMADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12605, IF_FMA|IF_FUTURE}, + /* 2874 */ {I_VFNMADD321PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12584, IF_FMA|IF_FUTURE}, + /* 2875 */ {I_VFNMADD321PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12591, IF_FMA|IF_FUTURE}, + /* 2876 */ {I_VFNMADD321PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12598, IF_FMA|IF_FUTURE}, + /* 2877 */ {I_VFNMADD321PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12605, IF_FMA|IF_FUTURE}, + /* 2878 */ {I_VFNMSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12612, IF_FMA|IF_FUTURE}, + /* 2879 */ {I_VFNMSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12619, IF_FMA|IF_FUTURE}, + /* 2880 */ {I_VFNMSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12626, IF_FMA|IF_FUTURE}, + /* 2881 */ {I_VFNMSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12633, IF_FMA|IF_FUTURE}, + /* 2882 */ {I_VFNMSUB312PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12612, IF_FMA|IF_FUTURE}, + /* 2883 */ {I_VFNMSUB312PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12619, IF_FMA|IF_FUTURE}, + /* 2884 */ {I_VFNMSUB312PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12626, IF_FMA|IF_FUTURE}, + /* 2885 */ {I_VFNMSUB312PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12633, IF_FMA|IF_FUTURE}, + /* 2886 */ {I_VFNMSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12640, IF_FMA|IF_FUTURE}, + /* 2887 */ {I_VFNMSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12647, IF_FMA|IF_FUTURE}, + /* 2888 */ {I_VFNMSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12654, IF_FMA|IF_FUTURE}, + /* 2889 */ {I_VFNMSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12661, IF_FMA|IF_FUTURE}, + /* 2890 */ {I_VFNMSUB123PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12640, IF_FMA|IF_FUTURE}, + /* 2891 */ {I_VFNMSUB123PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12647, IF_FMA|IF_FUTURE}, + /* 2892 */ {I_VFNMSUB123PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12654, IF_FMA|IF_FUTURE}, + /* 2893 */ {I_VFNMSUB123PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12661, IF_FMA|IF_FUTURE}, + /* 2894 */ {I_VFNMSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12668, IF_FMA|IF_FUTURE}, + /* 2895 */ {I_VFNMSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12675, IF_FMA|IF_FUTURE}, + /* 2896 */ {I_VFNMSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12682, IF_FMA|IF_FUTURE}, + /* 2897 */ {I_VFNMSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12689, IF_FMA|IF_FUTURE}, + /* 2898 */ {I_VFNMSUB321PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12668, IF_FMA|IF_FUTURE}, + /* 2899 */ {I_VFNMSUB321PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12675, IF_FMA|IF_FUTURE}, + /* 2900 */ {I_VFNMSUB321PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+12682, IF_FMA|IF_FUTURE}, + /* 2901 */ {I_VFNMSUB321PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+12689, IF_FMA|IF_FUTURE}, + /* 2902 */ {I_VFMADD132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12696, IF_FMA|IF_FUTURE}, + /* 2903 */ {I_VFMADD132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12703, IF_FMA|IF_FUTURE}, + /* 2904 */ {I_VFMADD312SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12696, IF_FMA|IF_FUTURE}, + /* 2905 */ {I_VFMADD312SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12703, IF_FMA|IF_FUTURE}, + /* 2906 */ {I_VFMADD213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12710, IF_FMA|IF_FUTURE}, + /* 2907 */ {I_VFMADD213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12717, IF_FMA|IF_FUTURE}, + /* 2908 */ {I_VFMADD123SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12710, IF_FMA|IF_FUTURE}, + /* 2909 */ {I_VFMADD123SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12717, IF_FMA|IF_FUTURE}, + /* 2910 */ {I_VFMADD231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12724, IF_FMA|IF_FUTURE}, + /* 2911 */ {I_VFMADD231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12731, IF_FMA|IF_FUTURE}, + /* 2912 */ {I_VFMADD321SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12724, IF_FMA|IF_FUTURE}, + /* 2913 */ {I_VFMADD321SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12731, IF_FMA|IF_FUTURE}, + /* 2914 */ {I_VFMSUB132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12738, IF_FMA|IF_FUTURE}, + /* 2915 */ {I_VFMSUB132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12745, IF_FMA|IF_FUTURE}, + /* 2916 */ {I_VFMSUB312SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12738, IF_FMA|IF_FUTURE}, + /* 2917 */ {I_VFMSUB312SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12745, IF_FMA|IF_FUTURE}, + /* 2918 */ {I_VFMSUB213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12752, IF_FMA|IF_FUTURE}, + /* 2919 */ {I_VFMSUB213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12759, IF_FMA|IF_FUTURE}, + /* 2920 */ {I_VFMSUB123SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12752, IF_FMA|IF_FUTURE}, + /* 2921 */ {I_VFMSUB123SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12759, IF_FMA|IF_FUTURE}, + /* 2922 */ {I_VFMSUB231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12766, IF_FMA|IF_FUTURE}, + /* 2923 */ {I_VFMSUB231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12773, IF_FMA|IF_FUTURE}, + /* 2924 */ {I_VFMSUB321SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12766, IF_FMA|IF_FUTURE}, + /* 2925 */ {I_VFMSUB321SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12773, IF_FMA|IF_FUTURE}, + /* 2926 */ {I_VFNMADD132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12780, IF_FMA|IF_FUTURE}, + /* 2927 */ {I_VFNMADD132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12787, IF_FMA|IF_FUTURE}, + /* 2928 */ {I_VFNMADD312SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12780, IF_FMA|IF_FUTURE}, + /* 2929 */ {I_VFNMADD312SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12787, IF_FMA|IF_FUTURE}, + /* 2930 */ {I_VFNMADD213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12794, IF_FMA|IF_FUTURE}, + /* 2931 */ {I_VFNMADD213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12801, IF_FMA|IF_FUTURE}, + /* 2932 */ {I_VFNMADD123SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12794, IF_FMA|IF_FUTURE}, + /* 2933 */ {I_VFNMADD123SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12801, IF_FMA|IF_FUTURE}, + /* 2934 */ {I_VFNMADD231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12808, IF_FMA|IF_FUTURE}, + /* 2935 */ {I_VFNMADD231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12815, IF_FMA|IF_FUTURE}, + /* 2936 */ {I_VFNMADD321SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12808, IF_FMA|IF_FUTURE}, + /* 2937 */ {I_VFNMADD321SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12815, IF_FMA|IF_FUTURE}, + /* 2938 */ {I_VFNMSUB132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12822, IF_FMA|IF_FUTURE}, + /* 2939 */ {I_VFNMSUB132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12829, IF_FMA|IF_FUTURE}, + /* 2940 */ {I_VFNMSUB312SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12822, IF_FMA|IF_FUTURE}, + /* 2941 */ {I_VFNMSUB312SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12829, IF_FMA|IF_FUTURE}, + /* 2942 */ {I_VFNMSUB213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12836, IF_FMA|IF_FUTURE}, + /* 2943 */ {I_VFNMSUB213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12843, IF_FMA|IF_FUTURE}, + /* 2944 */ {I_VFNMSUB123SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12836, IF_FMA|IF_FUTURE}, + /* 2945 */ {I_VFNMSUB123SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12843, IF_FMA|IF_FUTURE}, + /* 2946 */ {I_VFNMSUB231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12850, IF_FMA|IF_FUTURE}, + /* 2947 */ {I_VFNMSUB231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12857, IF_FMA|IF_FUTURE}, + /* 2948 */ {I_VFNMSUB321SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+12850, IF_FMA|IF_FUTURE}, + /* 2949 */ {I_VFNMSUB321SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+12857, IF_FMA|IF_FUTURE}, + /* 2950 */ {I_XSTORE, 0, {0,0,0,0,0}, nasm_bytecodes+18909, IF_PENT|IF_CYRIX}, + /* 2951 */ {I_XCRYPTECB, 0, {0,0,0,0,0}, nasm_bytecodes+15852, IF_PENT|IF_CYRIX}, + /* 2952 */ {I_XCRYPTCBC, 0, {0,0,0,0,0}, nasm_bytecodes+15858, IF_PENT|IF_CYRIX}, + /* 2953 */ {I_XCRYPTCTR, 0, {0,0,0,0,0}, nasm_bytecodes+15864, IF_PENT|IF_CYRIX}, + /* 2954 */ {I_XCRYPTCFB, 0, {0,0,0,0,0}, nasm_bytecodes+15870, IF_PENT|IF_CYRIX}, + /* 2955 */ {I_XCRYPTOFB, 0, {0,0,0,0,0}, nasm_bytecodes+15876, IF_PENT|IF_CYRIX}, + /* 2956 */ {I_MONTMUL, 0, {0,0,0,0,0}, nasm_bytecodes+15882, IF_PENT|IF_CYRIX}, + /* 2957 */ {I_XSHA1, 0, {0,0,0,0,0}, nasm_bytecodes+15888, IF_PENT|IF_CYRIX}, + /* 2958 */ {I_XSHA256, 0, {0,0,0,0,0}, nasm_bytecodes+15894, IF_PENT|IF_CYRIX}, + /* 2959 */ {I_LLWPCB, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+12864, IF_AMD}, + /* 2960 */ {I_LLWPCB, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+12871, IF_AMD|IF_386}, + /* 2961 */ {I_LLWPCB, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+12878, IF_AMD|IF_X64}, + /* 2962 */ {I_SLWPCB, 1, {REG_GPR|BITS16,0,0,0,0}, nasm_bytecodes+12885, IF_AMD}, + /* 2963 */ {I_SLWPCB, 1, {REG_GPR|BITS32,0,0,0,0}, nasm_bytecodes+12892, IF_AMD|IF_386}, + /* 2964 */ {I_SLWPCB, 1, {REG_GPR|BITS64,0,0,0,0}, nasm_bytecodes+12899, IF_AMD|IF_X64}, + /* 2965 */ {I_LWPVAL, 3, {REG_GPR|BITS16,RM_GPR|BITS32,IMMEDIATE|BITS16,0,0}, nasm_bytecodes+6932, IF_AMD|IF_386}, + /* 2966 */ {I_LWPVAL, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+6940, IF_AMD|IF_386}, + /* 2967 */ {I_LWPVAL, 3, {REG_GPR|BITS64,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+6948, IF_AMD|IF_X64}, + /* 2968 */ {I_LWPINS, 3, {REG_GPR|BITS16,RM_GPR|BITS32,IMMEDIATE|BITS16,0,0}, nasm_bytecodes+6956, IF_AMD|IF_386}, + /* 2969 */ {I_LWPINS, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+6964, IF_AMD|IF_386}, + /* 2970 */ {I_LWPINS, 3, {REG_GPR|BITS64,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, nasm_bytecodes+6972, IF_AMD|IF_X64}, + /* 2971 */ {I_VCVTPH2PS, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6980, IF_AMD|IF_SSE5}, + /* 2972 */ {I_VCVTPH2PS, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+6988, IF_AMD|IF_SSE5}, + /* 2973 */ {I_VCVTPH2PS, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6996, IF_AMD|IF_SSE5}, + /* 2974 */ {I_VCVTPH2PS, 3, {YMMREG,RM_YMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+6996, IF_AMD|IF_SSE5}, + /* 2975 */ {I_VCVTPH2PS, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+7004, IF_AMD|IF_SSE5}, + /* 2976 */ {I_VCVTPS2PH, 3, {RM_XMM|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7012, IF_AMD|IF_SSE5}, + /* 2977 */ {I_VCVTPS2PH, 2, {RM_XMM|BITS64,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+7020, IF_AMD|IF_SSE5}, + /* 2978 */ {I_VCVTPS2PH, 3, {RM_XMM|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7028, IF_AMD|IF_SSE5}, + /* 2979 */ {I_VCVTPS2PH, 3, {RM_YMM|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7028, IF_AMD|IF_SSE5}, + /* 2980 */ {I_VCVTPS2PH, 2, {RM_YMM|BITS128,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+7036, IF_AMD|IF_SSE5}, + /* 2981 */ {I_VFMADDPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+3960, IF_AMD|IF_SSE5}, + /* 2982 */ {I_VFMADDPD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+3969, IF_AMD|IF_SSE5}, + /* 2983 */ {I_VFMADDPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+3978, IF_AMD|IF_SSE5}, + /* 2984 */ {I_VFMADDPD, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+3987, IF_AMD|IF_SSE5}, + /* 2985 */ {I_VFMADDPD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+3996, IF_AMD|IF_SSE5}, + /* 2986 */ {I_VFMADDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4005, IF_AMD|IF_SSE5}, + /* 2987 */ {I_VFMADDPD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4014, IF_AMD|IF_SSE5}, + /* 2988 */ {I_VFMADDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4023, IF_AMD|IF_SSE5}, + /* 2989 */ {I_VFMADDPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4032, IF_AMD|IF_SSE5}, + /* 2990 */ {I_VFMADDPS, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4041, IF_AMD|IF_SSE5}, + /* 2991 */ {I_VFMADDPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4050, IF_AMD|IF_SSE5}, + /* 2992 */ {I_VFMADDPS, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4059, IF_AMD|IF_SSE5}, + /* 2993 */ {I_VFMADDPS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4068, IF_AMD|IF_SSE5}, + /* 2994 */ {I_VFMADDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4077, IF_AMD|IF_SSE5}, + /* 2995 */ {I_VFMADDPS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4086, IF_AMD|IF_SSE5}, + /* 2996 */ {I_VFMADDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4095, IF_AMD|IF_SSE5}, + /* 2997 */ {I_VFMADDSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,XMMREG,0}, nasm_bytecodes+4104, IF_AMD|IF_SSE5}, + /* 2998 */ {I_VFMADDSD, 3, {XMMREG,RM_XMM|BITS64,XMMREG,0,0}, nasm_bytecodes+4113, IF_AMD|IF_SSE5}, + /* 2999 */ {I_VFMADDSD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS64,0}, nasm_bytecodes+4122, IF_AMD|IF_SSE5}, + /* 3000 */ {I_VFMADDSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+4131, IF_AMD|IF_SSE5}, + /* 3001 */ {I_VFMADDSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,XMMREG,0}, nasm_bytecodes+4140, IF_AMD|IF_SSE5}, + /* 3002 */ {I_VFMADDSS, 3, {XMMREG,RM_XMM|BITS32,XMMREG,0,0}, nasm_bytecodes+4149, IF_AMD|IF_SSE5}, + /* 3003 */ {I_VFMADDSS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS32,0}, nasm_bytecodes+4158, IF_AMD|IF_SSE5}, + /* 3004 */ {I_VFMADDSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+4167, IF_AMD|IF_SSE5}, + /* 3005 */ {I_VFMADDSUBPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4176, IF_AMD|IF_SSE5}, + /* 3006 */ {I_VFMADDSUBPD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4185, IF_AMD|IF_SSE5}, + /* 3007 */ {I_VFMADDSUBPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4194, IF_AMD|IF_SSE5}, + /* 3008 */ {I_VFMADDSUBPD, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4203, IF_AMD|IF_SSE5}, + /* 3009 */ {I_VFMADDSUBPD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4212, IF_AMD|IF_SSE5}, + /* 3010 */ {I_VFMADDSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4221, IF_AMD|IF_SSE5}, + /* 3011 */ {I_VFMADDSUBPD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4230, IF_AMD|IF_SSE5}, + /* 3012 */ {I_VFMADDSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4239, IF_AMD|IF_SSE5}, + /* 3013 */ {I_VFMADDSUBPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4248, IF_AMD|IF_SSE5}, + /* 3014 */ {I_VFMADDSUBPS, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4257, IF_AMD|IF_SSE5}, + /* 3015 */ {I_VFMADDSUBPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4266, IF_AMD|IF_SSE5}, + /* 3016 */ {I_VFMADDSUBPS, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4275, IF_AMD|IF_SSE5}, + /* 3017 */ {I_VFMADDSUBPS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4284, IF_AMD|IF_SSE5}, + /* 3018 */ {I_VFMADDSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4293, IF_AMD|IF_SSE5}, + /* 3019 */ {I_VFMADDSUBPS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4302, IF_AMD|IF_SSE5}, + /* 3020 */ {I_VFMADDSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4311, IF_AMD|IF_SSE5}, + /* 3021 */ {I_VFMSUBADDPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4320, IF_AMD|IF_SSE5}, + /* 3022 */ {I_VFMSUBADDPD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4329, IF_AMD|IF_SSE5}, + /* 3023 */ {I_VFMSUBADDPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4338, IF_AMD|IF_SSE5}, + /* 3024 */ {I_VFMSUBADDPD, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4347, IF_AMD|IF_SSE5}, + /* 3025 */ {I_VFMSUBADDPD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4356, IF_AMD|IF_SSE5}, + /* 3026 */ {I_VFMSUBADDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4365, IF_AMD|IF_SSE5}, + /* 3027 */ {I_VFMSUBADDPD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4374, IF_AMD|IF_SSE5}, + /* 3028 */ {I_VFMSUBADDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4383, IF_AMD|IF_SSE5}, + /* 3029 */ {I_VFMSUBADDPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4392, IF_AMD|IF_SSE5}, + /* 3030 */ {I_VFMSUBADDPS, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4401, IF_AMD|IF_SSE5}, + /* 3031 */ {I_VFMSUBADDPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4410, IF_AMD|IF_SSE5}, + /* 3032 */ {I_VFMSUBADDPS, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4419, IF_AMD|IF_SSE5}, + /* 3033 */ {I_VFMSUBADDPS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4428, IF_AMD|IF_SSE5}, + /* 3034 */ {I_VFMSUBADDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4437, IF_AMD|IF_SSE5}, + /* 3035 */ {I_VFMSUBADDPS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4446, IF_AMD|IF_SSE5}, + /* 3036 */ {I_VFMSUBADDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4455, IF_AMD|IF_SSE5}, + /* 3037 */ {I_VFMSUBPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4464, IF_AMD|IF_SSE5}, + /* 3038 */ {I_VFMSUBPD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4473, IF_AMD|IF_SSE5}, + /* 3039 */ {I_VFMSUBPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4482, IF_AMD|IF_SSE5}, + /* 3040 */ {I_VFMSUBPD, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4491, IF_AMD|IF_SSE5}, + /* 3041 */ {I_VFMSUBPD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4500, IF_AMD|IF_SSE5}, + /* 3042 */ {I_VFMSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4509, IF_AMD|IF_SSE5}, + /* 3043 */ {I_VFMSUBPD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4518, IF_AMD|IF_SSE5}, + /* 3044 */ {I_VFMSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4527, IF_AMD|IF_SSE5}, + /* 3045 */ {I_VFMSUBPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4536, IF_AMD|IF_SSE5}, + /* 3046 */ {I_VFMSUBPS, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4545, IF_AMD|IF_SSE5}, + /* 3047 */ {I_VFMSUBPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4554, IF_AMD|IF_SSE5}, + /* 3048 */ {I_VFMSUBPS, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4563, IF_AMD|IF_SSE5}, + /* 3049 */ {I_VFMSUBPS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4572, IF_AMD|IF_SSE5}, + /* 3050 */ {I_VFMSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4581, IF_AMD|IF_SSE5}, + /* 3051 */ {I_VFMSUBPS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4590, IF_AMD|IF_SSE5}, + /* 3052 */ {I_VFMSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4599, IF_AMD|IF_SSE5}, + /* 3053 */ {I_VFMSUBSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,XMMREG,0}, nasm_bytecodes+4608, IF_AMD|IF_SSE5}, + /* 3054 */ {I_VFMSUBSD, 3, {XMMREG,RM_XMM|BITS64,XMMREG,0,0}, nasm_bytecodes+4617, IF_AMD|IF_SSE5}, + /* 3055 */ {I_VFMSUBSD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS64,0}, nasm_bytecodes+4626, IF_AMD|IF_SSE5}, + /* 3056 */ {I_VFMSUBSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+4635, IF_AMD|IF_SSE5}, + /* 3057 */ {I_VFMSUBSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,XMMREG,0}, nasm_bytecodes+4644, IF_AMD|IF_SSE5}, + /* 3058 */ {I_VFMSUBSS, 3, {XMMREG,RM_XMM|BITS32,XMMREG,0,0}, nasm_bytecodes+4653, IF_AMD|IF_SSE5}, + /* 3059 */ {I_VFMSUBSS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS32,0}, nasm_bytecodes+4662, IF_AMD|IF_SSE5}, + /* 3060 */ {I_VFMSUBSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+4671, IF_AMD|IF_SSE5}, + /* 3061 */ {I_VFNMADDPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4680, IF_AMD|IF_SSE5}, + /* 3062 */ {I_VFNMADDPD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4689, IF_AMD|IF_SSE5}, + /* 3063 */ {I_VFNMADDPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4698, IF_AMD|IF_SSE5}, + /* 3064 */ {I_VFNMADDPD, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4707, IF_AMD|IF_SSE5}, + /* 3065 */ {I_VFNMADDPD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4716, IF_AMD|IF_SSE5}, + /* 3066 */ {I_VFNMADDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4725, IF_AMD|IF_SSE5}, + /* 3067 */ {I_VFNMADDPD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4734, IF_AMD|IF_SSE5}, + /* 3068 */ {I_VFNMADDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4743, IF_AMD|IF_SSE5}, + /* 3069 */ {I_VFNMADDPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4752, IF_AMD|IF_SSE5}, + /* 3070 */ {I_VFNMADDPS, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4761, IF_AMD|IF_SSE5}, + /* 3071 */ {I_VFNMADDPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4770, IF_AMD|IF_SSE5}, + /* 3072 */ {I_VFNMADDPS, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4779, IF_AMD|IF_SSE5}, + /* 3073 */ {I_VFNMADDPS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4788, IF_AMD|IF_SSE5}, + /* 3074 */ {I_VFNMADDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4797, IF_AMD|IF_SSE5}, + /* 3075 */ {I_VFNMADDPS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4806, IF_AMD|IF_SSE5}, + /* 3076 */ {I_VFNMADDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4815, IF_AMD|IF_SSE5}, + /* 3077 */ {I_VFNMADDSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,XMMREG,0}, nasm_bytecodes+4824, IF_AMD|IF_SSE5}, + /* 3078 */ {I_VFNMADDSD, 3, {XMMREG,RM_XMM|BITS64,XMMREG,0,0}, nasm_bytecodes+4833, IF_AMD|IF_SSE5}, + /* 3079 */ {I_VFNMADDSD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS64,0}, nasm_bytecodes+4842, IF_AMD|IF_SSE5}, + /* 3080 */ {I_VFNMADDSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+4851, IF_AMD|IF_SSE5}, + /* 3081 */ {I_VFNMADDSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,XMMREG,0}, nasm_bytecodes+4860, IF_AMD|IF_SSE5}, + /* 3082 */ {I_VFNMADDSS, 3, {XMMREG,RM_XMM|BITS32,XMMREG,0,0}, nasm_bytecodes+4869, IF_AMD|IF_SSE5}, + /* 3083 */ {I_VFNMADDSS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS32,0}, nasm_bytecodes+4878, IF_AMD|IF_SSE5}, + /* 3084 */ {I_VFNMADDSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+4887, IF_AMD|IF_SSE5}, + /* 3085 */ {I_VFNMSUBPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4896, IF_AMD|IF_SSE5}, + /* 3086 */ {I_VFNMSUBPD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4905, IF_AMD|IF_SSE5}, + /* 3087 */ {I_VFNMSUBPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4914, IF_AMD|IF_SSE5}, + /* 3088 */ {I_VFNMSUBPD, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4923, IF_AMD|IF_SSE5}, + /* 3089 */ {I_VFNMSUBPD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+4932, IF_AMD|IF_SSE5}, + /* 3090 */ {I_VFNMSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+4941, IF_AMD|IF_SSE5}, + /* 3091 */ {I_VFNMSUBPD, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+4950, IF_AMD|IF_SSE5}, + /* 3092 */ {I_VFNMSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+4959, IF_AMD|IF_SSE5}, + /* 3093 */ {I_VFNMSUBPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+4968, IF_AMD|IF_SSE5}, + /* 3094 */ {I_VFNMSUBPS, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+4977, IF_AMD|IF_SSE5}, + /* 3095 */ {I_VFNMSUBPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+4986, IF_AMD|IF_SSE5}, + /* 3096 */ {I_VFNMSUBPS, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+4995, IF_AMD|IF_SSE5}, + /* 3097 */ {I_VFNMSUBPS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+5004, IF_AMD|IF_SSE5}, + /* 3098 */ {I_VFNMSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+5013, IF_AMD|IF_SSE5}, + /* 3099 */ {I_VFNMSUBPS, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+5022, IF_AMD|IF_SSE5}, + /* 3100 */ {I_VFNMSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+5031, IF_AMD|IF_SSE5}, + /* 3101 */ {I_VFNMSUBSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,XMMREG,0}, nasm_bytecodes+5040, IF_AMD|IF_SSE5}, + /* 3102 */ {I_VFNMSUBSD, 3, {XMMREG,RM_XMM|BITS64,XMMREG,0,0}, nasm_bytecodes+5049, IF_AMD|IF_SSE5}, + /* 3103 */ {I_VFNMSUBSD, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS64,0}, nasm_bytecodes+5058, IF_AMD|IF_SSE5}, + /* 3104 */ {I_VFNMSUBSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, nasm_bytecodes+5067, IF_AMD|IF_SSE5}, + /* 3105 */ {I_VFNMSUBSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,XMMREG,0}, nasm_bytecodes+5076, IF_AMD|IF_SSE5}, + /* 3106 */ {I_VFNMSUBSS, 3, {XMMREG,RM_XMM|BITS32,XMMREG,0,0}, nasm_bytecodes+5085, IF_AMD|IF_SSE5}, + /* 3107 */ {I_VFNMSUBSS, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS32,0}, nasm_bytecodes+5094, IF_AMD|IF_SSE5}, + /* 3108 */ {I_VFNMSUBSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, nasm_bytecodes+5103, IF_AMD|IF_SSE5}, + /* 3109 */ {I_VFRCZPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12906, IF_AMD|IF_SSE5}, + /* 3110 */ {I_VFRCZPD, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+12913, IF_AMD|IF_SSE5}, + /* 3111 */ {I_VFRCZPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12920, IF_AMD|IF_SSE5}, + /* 3112 */ {I_VFRCZPD, 1, {YMMREG,0,0,0,0}, nasm_bytecodes+12927, IF_AMD|IF_SSE5}, + /* 3113 */ {I_VFRCZPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12934, IF_AMD|IF_SSE5}, + /* 3114 */ {I_VFRCZPS, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+12941, IF_AMD|IF_SSE5}, + /* 3115 */ {I_VFRCZPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, nasm_bytecodes+12948, IF_AMD|IF_SSE5}, + /* 3116 */ {I_VFRCZPS, 1, {YMMREG,0,0,0,0}, nasm_bytecodes+12955, IF_AMD|IF_SSE5}, + /* 3117 */ {I_VFRCZSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, nasm_bytecodes+12962, IF_AMD|IF_SSE5}, + /* 3118 */ {I_VFRCZSD, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+12969, IF_AMD|IF_SSE5}, + /* 3119 */ {I_VFRCZSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, nasm_bytecodes+12976, IF_AMD|IF_SSE5}, + /* 3120 */ {I_VFRCZSS, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+12983, IF_AMD|IF_SSE5}, + /* 3121 */ {I_VPCMOV, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5112, IF_AMD|IF_SSE5}, + /* 3122 */ {I_VPCMOV, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5121, IF_AMD|IF_SSE5}, + /* 3123 */ {I_VPCMOV, 4, {YMMREG,YMMREG,RM_YMM|BITS256,YMMREG,0}, nasm_bytecodes+5130, IF_AMD|IF_SSE5}, + /* 3124 */ {I_VPCMOV, 3, {YMMREG,RM_YMM|BITS256,YMMREG,0,0}, nasm_bytecodes+5139, IF_AMD|IF_SSE5}, + /* 3125 */ {I_VPCMOV, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+5148, IF_AMD|IF_SSE5}, + /* 3126 */ {I_VPCMOV, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+5157, IF_AMD|IF_SSE5}, + /* 3127 */ {I_VPCMOV, 4, {YMMREG,YMMREG,YMMREG,RM_YMM|BITS256,0}, nasm_bytecodes+5166, IF_AMD|IF_SSE5}, + /* 3128 */ {I_VPCMOV, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, nasm_bytecodes+5175, IF_AMD|IF_SSE5}, + /* 3129 */ {I_VPCOMB, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7044, IF_AMD|IF_SSE5}, + /* 3130 */ {I_VPCOMB, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7052, IF_AMD|IF_SSE5}, + /* 3131 */ {I_VPCOMD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7060, IF_AMD|IF_SSE5}, + /* 3132 */ {I_VPCOMD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7068, IF_AMD|IF_SSE5}, + /* 3133 */ {I_VPCOMQ, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7076, IF_AMD|IF_SSE5}, + /* 3134 */ {I_VPCOMQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7084, IF_AMD|IF_SSE5}, + /* 3135 */ {I_VPCOMUB, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7092, IF_AMD|IF_SSE5}, + /* 3136 */ {I_VPCOMUB, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7100, IF_AMD|IF_SSE5}, + /* 3137 */ {I_VPCOMUD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7108, IF_AMD|IF_SSE5}, + /* 3138 */ {I_VPCOMUD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7116, IF_AMD|IF_SSE5}, + /* 3139 */ {I_VPCOMUQ, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7124, IF_AMD|IF_SSE5}, + /* 3140 */ {I_VPCOMUQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7132, IF_AMD|IF_SSE5}, + /* 3141 */ {I_VPCOMUW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7140, IF_AMD|IF_SSE5}, + /* 3142 */ {I_VPCOMUW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7148, IF_AMD|IF_SSE5}, + /* 3143 */ {I_VPCOMW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, nasm_bytecodes+7156, IF_AMD|IF_SSE5}, + /* 3144 */ {I_VPCOMW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7164, IF_AMD|IF_SSE5}, + /* 3145 */ {I_VPHADDBD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+12990, IF_AMD|IF_SSE5}, + /* 3146 */ {I_VPHADDBD, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+12997, IF_AMD|IF_SSE5}, + /* 3147 */ {I_VPHADDBQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13004, IF_AMD|IF_SSE5}, + /* 3148 */ {I_VPHADDBQ, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13011, IF_AMD|IF_SSE5}, + /* 3149 */ {I_VPHADDBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13018, IF_AMD|IF_SSE5}, + /* 3150 */ {I_VPHADDBW, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13025, IF_AMD|IF_SSE5}, + /* 3151 */ {I_VPHADDDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13032, IF_AMD|IF_SSE5}, + /* 3152 */ {I_VPHADDDQ, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13039, IF_AMD|IF_SSE5}, + /* 3153 */ {I_VPHADDUBD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13046, IF_AMD|IF_SSE5}, + /* 3154 */ {I_VPHADDUBD, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13053, IF_AMD|IF_SSE5}, + /* 3155 */ {I_VPHADDUBQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13060, IF_AMD|IF_SSE5}, + /* 3156 */ {I_VPHADDUBQ, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13067, IF_AMD|IF_SSE5}, + /* 3157 */ {I_VPHADDUBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13074, IF_AMD|IF_SSE5}, + /* 3158 */ {I_VPHADDUBW, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13081, IF_AMD|IF_SSE5}, + /* 3159 */ {I_VPHADDUDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13088, IF_AMD|IF_SSE5}, + /* 3160 */ {I_VPHADDUDQ, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13095, IF_AMD|IF_SSE5}, + /* 3161 */ {I_VPHADDUWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13102, IF_AMD|IF_SSE5}, + /* 3162 */ {I_VPHADDUWD, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13109, IF_AMD|IF_SSE5}, + /* 3163 */ {I_VPHADDUWQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13116, IF_AMD|IF_SSE5}, + /* 3164 */ {I_VPHADDUWQ, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13123, IF_AMD|IF_SSE5}, + /* 3165 */ {I_VPHADDWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13130, IF_AMD|IF_SSE5}, + /* 3166 */ {I_VPHADDWD, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13137, IF_AMD|IF_SSE5}, + /* 3167 */ {I_VPHADDWQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13144, IF_AMD|IF_SSE5}, + /* 3168 */ {I_VPHADDWQ, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13151, IF_AMD|IF_SSE5}, + /* 3169 */ {I_VPHSUBBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13158, IF_AMD|IF_SSE5}, + /* 3170 */ {I_VPHSUBBW, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13165, IF_AMD|IF_SSE5}, + /* 3171 */ {I_VPHSUBDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13172, IF_AMD|IF_SSE5}, + /* 3172 */ {I_VPHSUBDQ, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13179, IF_AMD|IF_SSE5}, + /* 3173 */ {I_VPHSUBWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13186, IF_AMD|IF_SSE5}, + /* 3174 */ {I_VPHSUBWD, 1, {XMMREG,0,0,0,0}, nasm_bytecodes+13193, IF_AMD|IF_SSE5}, + /* 3175 */ {I_VPMACSDD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5184, IF_AMD|IF_SSE5}, + /* 3176 */ {I_VPMACSDD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5193, IF_AMD|IF_SSE5}, + /* 3177 */ {I_VPMACSDQH, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5202, IF_AMD|IF_SSE5}, + /* 3178 */ {I_VPMACSDQH, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5211, IF_AMD|IF_SSE5}, + /* 3179 */ {I_VPMACSDQL, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5220, IF_AMD|IF_SSE5}, + /* 3180 */ {I_VPMACSDQL, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5229, IF_AMD|IF_SSE5}, + /* 3181 */ {I_VPMACSSDD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5238, IF_AMD|IF_SSE5}, + /* 3182 */ {I_VPMACSSDD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5247, IF_AMD|IF_SSE5}, + /* 3183 */ {I_VPMACSSDQH, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5256, IF_AMD|IF_SSE5}, + /* 3184 */ {I_VPMACSSDQH, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5265, IF_AMD|IF_SSE5}, + /* 3185 */ {I_VPMACSSDQL, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5274, IF_AMD|IF_SSE5}, + /* 3186 */ {I_VPMACSSDQL, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5283, IF_AMD|IF_SSE5}, + /* 3187 */ {I_VPMACSSWD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5292, IF_AMD|IF_SSE5}, + /* 3188 */ {I_VPMACSSWD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5301, IF_AMD|IF_SSE5}, + /* 3189 */ {I_VPMACSSWW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5310, IF_AMD|IF_SSE5}, + /* 3190 */ {I_VPMACSSWW, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5319, IF_AMD|IF_SSE5}, + /* 3191 */ {I_VPMACSWD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5328, IF_AMD|IF_SSE5}, + /* 3192 */ {I_VPMACSWD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5337, IF_AMD|IF_SSE5}, + /* 3193 */ {I_VPMACSWW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5346, IF_AMD|IF_SSE5}, + /* 3194 */ {I_VPMACSWW, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5355, IF_AMD|IF_SSE5}, + /* 3195 */ {I_VPMADCSSWD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5364, IF_AMD|IF_SSE5}, + /* 3196 */ {I_VPMADCSSWD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5373, IF_AMD|IF_SSE5}, + /* 3197 */ {I_VPMADCSWD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5382, IF_AMD|IF_SSE5}, + /* 3198 */ {I_VPMADCSWD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5391, IF_AMD|IF_SSE5}, + /* 3199 */ {I_VPPERM, 4, {XMMREG,XMMREG,XMMREG,RM_XMM|BITS128,0}, nasm_bytecodes+5400, IF_AMD|IF_SSE5}, + /* 3200 */ {I_VPPERM, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+5409, IF_AMD|IF_SSE5}, + /* 3201 */ {I_VPPERM, 4, {XMMREG,XMMREG,RM_XMM|BITS128,XMMREG,0}, nasm_bytecodes+5418, IF_AMD|IF_SSE5}, + /* 3202 */ {I_VPPERM, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+5427, IF_AMD|IF_SSE5}, + /* 3203 */ {I_VPROTB, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13200, IF_AMD|IF_SSE5}, + /* 3204 */ {I_VPROTB, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13207, IF_AMD|IF_SSE5}, + /* 3205 */ {I_VPROTB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13214, IF_AMD|IF_SSE5}, + /* 3206 */ {I_VPROTB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13221, IF_AMD|IF_SSE5}, + /* 3207 */ {I_VPROTB, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7172, IF_AMD|IF_SSE5}, + /* 3208 */ {I_VPROTB, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+7180, IF_AMD|IF_SSE5}, + /* 3209 */ {I_VPROTD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13228, IF_AMD|IF_SSE5}, + /* 3210 */ {I_VPROTD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13235, IF_AMD|IF_SSE5}, + /* 3211 */ {I_VPROTD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13242, IF_AMD|IF_SSE5}, + /* 3212 */ {I_VPROTD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13249, IF_AMD|IF_SSE5}, + /* 3213 */ {I_VPROTD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7188, IF_AMD|IF_SSE5}, + /* 3214 */ {I_VPROTD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+7196, IF_AMD|IF_SSE5}, + /* 3215 */ {I_VPROTQ, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13256, IF_AMD|IF_SSE5}, + /* 3216 */ {I_VPROTQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13263, IF_AMD|IF_SSE5}, + /* 3217 */ {I_VPROTQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13270, IF_AMD|IF_SSE5}, + /* 3218 */ {I_VPROTQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13277, IF_AMD|IF_SSE5}, + /* 3219 */ {I_VPROTQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7204, IF_AMD|IF_SSE5}, + /* 3220 */ {I_VPROTQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+7212, IF_AMD|IF_SSE5}, + /* 3221 */ {I_VPROTW, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13284, IF_AMD|IF_SSE5}, + /* 3222 */ {I_VPROTW, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13291, IF_AMD|IF_SSE5}, + /* 3223 */ {I_VPROTW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13298, IF_AMD|IF_SSE5}, + /* 3224 */ {I_VPROTW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13305, IF_AMD|IF_SSE5}, + /* 3225 */ {I_VPROTW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, nasm_bytecodes+7220, IF_AMD|IF_SSE5}, + /* 3226 */ {I_VPROTW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, nasm_bytecodes+7228, IF_AMD|IF_SSE5}, + /* 3227 */ {I_VPSHAB, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13312, IF_AMD|IF_SSE5}, + /* 3228 */ {I_VPSHAB, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13319, IF_AMD|IF_SSE5}, + /* 3229 */ {I_VPSHAB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13326, IF_AMD|IF_SSE5}, + /* 3230 */ {I_VPSHAB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13333, IF_AMD|IF_SSE5}, + /* 3231 */ {I_VPSHAD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13340, IF_AMD|IF_SSE5}, + /* 3232 */ {I_VPSHAD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13347, IF_AMD|IF_SSE5}, + /* 3233 */ {I_VPSHAD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13354, IF_AMD|IF_SSE5}, + /* 3234 */ {I_VPSHAD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13361, IF_AMD|IF_SSE5}, + /* 3235 */ {I_VPSHAQ, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13368, IF_AMD|IF_SSE5}, + /* 3236 */ {I_VPSHAQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13375, IF_AMD|IF_SSE5}, + /* 3237 */ {I_VPSHAQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13382, IF_AMD|IF_SSE5}, + /* 3238 */ {I_VPSHAQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13389, IF_AMD|IF_SSE5}, + /* 3239 */ {I_VPSHAW, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13396, IF_AMD|IF_SSE5}, + /* 3240 */ {I_VPSHAW, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13403, IF_AMD|IF_SSE5}, + /* 3241 */ {I_VPSHAW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13410, IF_AMD|IF_SSE5}, + /* 3242 */ {I_VPSHAW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13417, IF_AMD|IF_SSE5}, + /* 3243 */ {I_VPSHLB, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13424, IF_AMD|IF_SSE5}, + /* 3244 */ {I_VPSHLB, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13431, IF_AMD|IF_SSE5}, + /* 3245 */ {I_VPSHLB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13438, IF_AMD|IF_SSE5}, + /* 3246 */ {I_VPSHLB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13445, IF_AMD|IF_SSE5}, + /* 3247 */ {I_VPSHLD, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13452, IF_AMD|IF_SSE5}, + /* 3248 */ {I_VPSHLD, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13459, IF_AMD|IF_SSE5}, + /* 3249 */ {I_VPSHLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13466, IF_AMD|IF_SSE5}, + /* 3250 */ {I_VPSHLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13473, IF_AMD|IF_SSE5}, + /* 3251 */ {I_VPSHLQ, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13480, IF_AMD|IF_SSE5}, + /* 3252 */ {I_VPSHLQ, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13487, IF_AMD|IF_SSE5}, + /* 3253 */ {I_VPSHLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13494, IF_AMD|IF_SSE5}, + /* 3254 */ {I_VPSHLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13501, IF_AMD|IF_SSE5}, + /* 3255 */ {I_VPSHLW, 3, {XMMREG,RM_XMM|BITS128,XMMREG,0,0}, nasm_bytecodes+13508, IF_AMD|IF_SSE5}, + /* 3256 */ {I_VPSHLW, 2, {XMMREG,XMMREG,0,0,0}, nasm_bytecodes+13515, IF_AMD|IF_SSE5}, + /* 3257 */ {I_VPSHLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, nasm_bytecodes+13522, IF_AMD|IF_SSE5}, + /* 3258 */ {I_VPSHLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, nasm_bytecodes+13529, IF_AMD|IF_SSE5}, + /* 3259 */ {I_HINT_NOP0, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+15900, IF_P6|IF_UNDOC}, + /* 3260 */ {I_HINT_NOP0, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+15906, IF_P6|IF_UNDOC}, + /* 3261 */ {I_HINT_NOP0, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+15912, IF_X64|IF_UNDOC}, + /* 3262 */ {I_HINT_NOP1, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+15918, IF_P6|IF_UNDOC}, + /* 3263 */ {I_HINT_NOP1, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+15924, IF_P6|IF_UNDOC}, + /* 3264 */ {I_HINT_NOP1, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+15930, IF_X64|IF_UNDOC}, + /* 3265 */ {I_HINT_NOP2, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+15936, IF_P6|IF_UNDOC}, + /* 3266 */ {I_HINT_NOP2, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+15942, IF_P6|IF_UNDOC}, + /* 3267 */ {I_HINT_NOP2, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+15948, IF_X64|IF_UNDOC}, + /* 3268 */ {I_HINT_NOP3, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+15954, IF_P6|IF_UNDOC}, + /* 3269 */ {I_HINT_NOP3, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+15960, IF_P6|IF_UNDOC}, + /* 3270 */ {I_HINT_NOP3, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+15966, IF_X64|IF_UNDOC}, + /* 3271 */ {I_HINT_NOP4, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+15972, IF_P6|IF_UNDOC}, + /* 3272 */ {I_HINT_NOP4, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+15978, IF_P6|IF_UNDOC}, + /* 3273 */ {I_HINT_NOP4, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+15984, IF_X64|IF_UNDOC}, + /* 3274 */ {I_HINT_NOP5, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+15990, IF_P6|IF_UNDOC}, + /* 3275 */ {I_HINT_NOP5, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+15996, IF_P6|IF_UNDOC}, + /* 3276 */ {I_HINT_NOP5, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16002, IF_X64|IF_UNDOC}, + /* 3277 */ {I_HINT_NOP6, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16008, IF_P6|IF_UNDOC}, + /* 3278 */ {I_HINT_NOP6, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16014, IF_P6|IF_UNDOC}, + /* 3279 */ {I_HINT_NOP6, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16020, IF_X64|IF_UNDOC}, + /* 3280 */ {I_HINT_NOP7, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16026, IF_P6|IF_UNDOC}, + /* 3281 */ {I_HINT_NOP7, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16032, IF_P6|IF_UNDOC}, + /* 3282 */ {I_HINT_NOP7, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16038, IF_X64|IF_UNDOC}, + /* 3283 */ {I_HINT_NOP8, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16044, IF_P6|IF_UNDOC}, + /* 3284 */ {I_HINT_NOP8, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16050, IF_P6|IF_UNDOC}, + /* 3285 */ {I_HINT_NOP8, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16056, IF_X64|IF_UNDOC}, + /* 3286 */ {I_HINT_NOP9, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16062, IF_P6|IF_UNDOC}, + /* 3287 */ {I_HINT_NOP9, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16068, IF_P6|IF_UNDOC}, + /* 3288 */ {I_HINT_NOP9, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16074, IF_X64|IF_UNDOC}, + /* 3289 */ {I_HINT_NOP10, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16080, IF_P6|IF_UNDOC}, + /* 3290 */ {I_HINT_NOP10, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16086, IF_P6|IF_UNDOC}, + /* 3291 */ {I_HINT_NOP10, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16092, IF_X64|IF_UNDOC}, + /* 3292 */ {I_HINT_NOP11, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16098, IF_P6|IF_UNDOC}, + /* 3293 */ {I_HINT_NOP11, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16104, IF_P6|IF_UNDOC}, + /* 3294 */ {I_HINT_NOP11, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16110, IF_X64|IF_UNDOC}, + /* 3295 */ {I_HINT_NOP12, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16116, IF_P6|IF_UNDOC}, + /* 3296 */ {I_HINT_NOP12, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16122, IF_P6|IF_UNDOC}, + /* 3297 */ {I_HINT_NOP12, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16128, IF_X64|IF_UNDOC}, + /* 3298 */ {I_HINT_NOP13, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16134, IF_P6|IF_UNDOC}, + /* 3299 */ {I_HINT_NOP13, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16140, IF_P6|IF_UNDOC}, + /* 3300 */ {I_HINT_NOP13, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16146, IF_X64|IF_UNDOC}, + /* 3301 */ {I_HINT_NOP14, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16152, IF_P6|IF_UNDOC}, + /* 3302 */ {I_HINT_NOP14, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16158, IF_P6|IF_UNDOC}, + /* 3303 */ {I_HINT_NOP14, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16164, IF_X64|IF_UNDOC}, + /* 3304 */ {I_HINT_NOP15, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16170, IF_P6|IF_UNDOC}, + /* 3305 */ {I_HINT_NOP15, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16176, IF_P6|IF_UNDOC}, + /* 3306 */ {I_HINT_NOP15, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16182, IF_X64|IF_UNDOC}, + /* 3307 */ {I_HINT_NOP16, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16188, IF_P6|IF_UNDOC}, + /* 3308 */ {I_HINT_NOP16, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16194, IF_P6|IF_UNDOC}, + /* 3309 */ {I_HINT_NOP16, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16200, IF_X64|IF_UNDOC}, + /* 3310 */ {I_HINT_NOP17, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16206, IF_P6|IF_UNDOC}, + /* 3311 */ {I_HINT_NOP17, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16212, IF_P6|IF_UNDOC}, + /* 3312 */ {I_HINT_NOP17, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16218, IF_X64|IF_UNDOC}, + /* 3313 */ {I_HINT_NOP18, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16224, IF_P6|IF_UNDOC}, + /* 3314 */ {I_HINT_NOP18, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16230, IF_P6|IF_UNDOC}, + /* 3315 */ {I_HINT_NOP18, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16236, IF_X64|IF_UNDOC}, + /* 3316 */ {I_HINT_NOP19, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16242, IF_P6|IF_UNDOC}, + /* 3317 */ {I_HINT_NOP19, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16248, IF_P6|IF_UNDOC}, + /* 3318 */ {I_HINT_NOP19, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16254, IF_X64|IF_UNDOC}, + /* 3319 */ {I_HINT_NOP20, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16260, IF_P6|IF_UNDOC}, + /* 3320 */ {I_HINT_NOP20, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16266, IF_P6|IF_UNDOC}, + /* 3321 */ {I_HINT_NOP20, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16272, IF_X64|IF_UNDOC}, + /* 3322 */ {I_HINT_NOP21, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16278, IF_P6|IF_UNDOC}, + /* 3323 */ {I_HINT_NOP21, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16284, IF_P6|IF_UNDOC}, + /* 3324 */ {I_HINT_NOP21, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16290, IF_X64|IF_UNDOC}, + /* 3325 */ {I_HINT_NOP22, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16296, IF_P6|IF_UNDOC}, + /* 3326 */ {I_HINT_NOP22, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16302, IF_P6|IF_UNDOC}, + /* 3327 */ {I_HINT_NOP22, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16308, IF_X64|IF_UNDOC}, + /* 3328 */ {I_HINT_NOP23, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16314, IF_P6|IF_UNDOC}, + /* 3329 */ {I_HINT_NOP23, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16320, IF_P6|IF_UNDOC}, + /* 3330 */ {I_HINT_NOP23, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16326, IF_X64|IF_UNDOC}, + /* 3331 */ {I_HINT_NOP24, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16332, IF_P6|IF_UNDOC}, + /* 3332 */ {I_HINT_NOP24, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16338, IF_P6|IF_UNDOC}, + /* 3333 */ {I_HINT_NOP24, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16344, IF_X64|IF_UNDOC}, + /* 3334 */ {I_HINT_NOP25, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16350, IF_P6|IF_UNDOC}, + /* 3335 */ {I_HINT_NOP25, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16356, IF_P6|IF_UNDOC}, + /* 3336 */ {I_HINT_NOP25, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16362, IF_X64|IF_UNDOC}, + /* 3337 */ {I_HINT_NOP26, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16368, IF_P6|IF_UNDOC}, + /* 3338 */ {I_HINT_NOP26, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16374, IF_P6|IF_UNDOC}, + /* 3339 */ {I_HINT_NOP26, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16380, IF_X64|IF_UNDOC}, + /* 3340 */ {I_HINT_NOP27, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16386, IF_P6|IF_UNDOC}, + /* 3341 */ {I_HINT_NOP27, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16392, IF_P6|IF_UNDOC}, + /* 3342 */ {I_HINT_NOP27, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16398, IF_X64|IF_UNDOC}, + /* 3343 */ {I_HINT_NOP28, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16404, IF_P6|IF_UNDOC}, + /* 3344 */ {I_HINT_NOP28, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16410, IF_P6|IF_UNDOC}, + /* 3345 */ {I_HINT_NOP28, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16416, IF_X64|IF_UNDOC}, + /* 3346 */ {I_HINT_NOP29, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16422, IF_P6|IF_UNDOC}, + /* 3347 */ {I_HINT_NOP29, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16428, IF_P6|IF_UNDOC}, + /* 3348 */ {I_HINT_NOP29, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16434, IF_X64|IF_UNDOC}, + /* 3349 */ {I_HINT_NOP30, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16440, IF_P6|IF_UNDOC}, + /* 3350 */ {I_HINT_NOP30, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16446, IF_P6|IF_UNDOC}, + /* 3351 */ {I_HINT_NOP30, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16452, IF_X64|IF_UNDOC}, + /* 3352 */ {I_HINT_NOP31, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16458, IF_P6|IF_UNDOC}, + /* 3353 */ {I_HINT_NOP31, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16464, IF_P6|IF_UNDOC}, + /* 3354 */ {I_HINT_NOP31, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16470, IF_X64|IF_UNDOC}, + /* 3355 */ {I_HINT_NOP32, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16476, IF_P6|IF_UNDOC}, + /* 3356 */ {I_HINT_NOP32, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16482, IF_P6|IF_UNDOC}, + /* 3357 */ {I_HINT_NOP32, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16488, IF_X64|IF_UNDOC}, + /* 3358 */ {I_HINT_NOP33, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16494, IF_P6|IF_UNDOC}, + /* 3359 */ {I_HINT_NOP33, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16500, IF_P6|IF_UNDOC}, + /* 3360 */ {I_HINT_NOP33, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16506, IF_X64|IF_UNDOC}, + /* 3361 */ {I_HINT_NOP34, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16512, IF_P6|IF_UNDOC}, + /* 3362 */ {I_HINT_NOP34, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16518, IF_P6|IF_UNDOC}, + /* 3363 */ {I_HINT_NOP34, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16524, IF_X64|IF_UNDOC}, + /* 3364 */ {I_HINT_NOP35, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16530, IF_P6|IF_UNDOC}, + /* 3365 */ {I_HINT_NOP35, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16536, IF_P6|IF_UNDOC}, + /* 3366 */ {I_HINT_NOP35, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16542, IF_X64|IF_UNDOC}, + /* 3367 */ {I_HINT_NOP36, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16548, IF_P6|IF_UNDOC}, + /* 3368 */ {I_HINT_NOP36, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16554, IF_P6|IF_UNDOC}, + /* 3369 */ {I_HINT_NOP36, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16560, IF_X64|IF_UNDOC}, + /* 3370 */ {I_HINT_NOP37, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16566, IF_P6|IF_UNDOC}, + /* 3371 */ {I_HINT_NOP37, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16572, IF_P6|IF_UNDOC}, + /* 3372 */ {I_HINT_NOP37, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16578, IF_X64|IF_UNDOC}, + /* 3373 */ {I_HINT_NOP38, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16584, IF_P6|IF_UNDOC}, + /* 3374 */ {I_HINT_NOP38, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16590, IF_P6|IF_UNDOC}, + /* 3375 */ {I_HINT_NOP38, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16596, IF_X64|IF_UNDOC}, + /* 3376 */ {I_HINT_NOP39, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16602, IF_P6|IF_UNDOC}, + /* 3377 */ {I_HINT_NOP39, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16608, IF_P6|IF_UNDOC}, + /* 3378 */ {I_HINT_NOP39, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16614, IF_X64|IF_UNDOC}, + /* 3379 */ {I_HINT_NOP40, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16620, IF_P6|IF_UNDOC}, + /* 3380 */ {I_HINT_NOP40, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16626, IF_P6|IF_UNDOC}, + /* 3381 */ {I_HINT_NOP40, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16632, IF_X64|IF_UNDOC}, + /* 3382 */ {I_HINT_NOP41, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16638, IF_P6|IF_UNDOC}, + /* 3383 */ {I_HINT_NOP41, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16644, IF_P6|IF_UNDOC}, + /* 3384 */ {I_HINT_NOP41, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16650, IF_X64|IF_UNDOC}, + /* 3385 */ {I_HINT_NOP42, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16656, IF_P6|IF_UNDOC}, + /* 3386 */ {I_HINT_NOP42, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16662, IF_P6|IF_UNDOC}, + /* 3387 */ {I_HINT_NOP42, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16668, IF_X64|IF_UNDOC}, + /* 3388 */ {I_HINT_NOP43, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16674, IF_P6|IF_UNDOC}, + /* 3389 */ {I_HINT_NOP43, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16680, IF_P6|IF_UNDOC}, + /* 3390 */ {I_HINT_NOP43, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16686, IF_X64|IF_UNDOC}, + /* 3391 */ {I_HINT_NOP44, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16692, IF_P6|IF_UNDOC}, + /* 3392 */ {I_HINT_NOP44, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16698, IF_P6|IF_UNDOC}, + /* 3393 */ {I_HINT_NOP44, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16704, IF_X64|IF_UNDOC}, + /* 3394 */ {I_HINT_NOP45, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16710, IF_P6|IF_UNDOC}, + /* 3395 */ {I_HINT_NOP45, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16716, IF_P6|IF_UNDOC}, + /* 3396 */ {I_HINT_NOP45, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16722, IF_X64|IF_UNDOC}, + /* 3397 */ {I_HINT_NOP46, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16728, IF_P6|IF_UNDOC}, + /* 3398 */ {I_HINT_NOP46, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16734, IF_P6|IF_UNDOC}, + /* 3399 */ {I_HINT_NOP46, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16740, IF_X64|IF_UNDOC}, + /* 3400 */ {I_HINT_NOP47, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16746, IF_P6|IF_UNDOC}, + /* 3401 */ {I_HINT_NOP47, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16752, IF_P6|IF_UNDOC}, + /* 3402 */ {I_HINT_NOP47, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16758, IF_X64|IF_UNDOC}, + /* 3403 */ {I_HINT_NOP48, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16764, IF_P6|IF_UNDOC}, + /* 3404 */ {I_HINT_NOP48, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16770, IF_P6|IF_UNDOC}, + /* 3405 */ {I_HINT_NOP48, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16776, IF_X64|IF_UNDOC}, + /* 3406 */ {I_HINT_NOP49, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16782, IF_P6|IF_UNDOC}, + /* 3407 */ {I_HINT_NOP49, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16788, IF_P6|IF_UNDOC}, + /* 3408 */ {I_HINT_NOP49, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16794, IF_X64|IF_UNDOC}, + /* 3409 */ {I_HINT_NOP50, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16800, IF_P6|IF_UNDOC}, + /* 3410 */ {I_HINT_NOP50, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16806, IF_P6|IF_UNDOC}, + /* 3411 */ {I_HINT_NOP50, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16812, IF_X64|IF_UNDOC}, + /* 3412 */ {I_HINT_NOP51, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16818, IF_P6|IF_UNDOC}, + /* 3413 */ {I_HINT_NOP51, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16824, IF_P6|IF_UNDOC}, + /* 3414 */ {I_HINT_NOP51, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16830, IF_X64|IF_UNDOC}, + /* 3415 */ {I_HINT_NOP52, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16836, IF_P6|IF_UNDOC}, + /* 3416 */ {I_HINT_NOP52, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16842, IF_P6|IF_UNDOC}, + /* 3417 */ {I_HINT_NOP52, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16848, IF_X64|IF_UNDOC}, + /* 3418 */ {I_HINT_NOP53, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16854, IF_P6|IF_UNDOC}, + /* 3419 */ {I_HINT_NOP53, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16860, IF_P6|IF_UNDOC}, + /* 3420 */ {I_HINT_NOP53, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16866, IF_X64|IF_UNDOC}, + /* 3421 */ {I_HINT_NOP54, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16872, IF_P6|IF_UNDOC}, + /* 3422 */ {I_HINT_NOP54, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16878, IF_P6|IF_UNDOC}, + /* 3423 */ {I_HINT_NOP54, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16884, IF_X64|IF_UNDOC}, + /* 3424 */ {I_HINT_NOP55, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16890, IF_P6|IF_UNDOC}, + /* 3425 */ {I_HINT_NOP55, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16896, IF_P6|IF_UNDOC}, + /* 3426 */ {I_HINT_NOP55, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16902, IF_X64|IF_UNDOC}, + /* 3427 */ {I_HINT_NOP56, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+14274, IF_P6|IF_UNDOC}, + /* 3428 */ {I_HINT_NOP56, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+14280, IF_P6|IF_UNDOC}, + /* 3429 */ {I_HINT_NOP56, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+14286, IF_X64|IF_UNDOC}, + /* 3430 */ {I_HINT_NOP57, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16908, IF_P6|IF_UNDOC}, + /* 3431 */ {I_HINT_NOP57, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16914, IF_P6|IF_UNDOC}, + /* 3432 */ {I_HINT_NOP57, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16920, IF_X64|IF_UNDOC}, + /* 3433 */ {I_HINT_NOP58, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16926, IF_P6|IF_UNDOC}, + /* 3434 */ {I_HINT_NOP58, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16932, IF_P6|IF_UNDOC}, + /* 3435 */ {I_HINT_NOP58, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16938, IF_X64|IF_UNDOC}, + /* 3436 */ {I_HINT_NOP59, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16944, IF_P6|IF_UNDOC}, + /* 3437 */ {I_HINT_NOP59, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16950, IF_P6|IF_UNDOC}, + /* 3438 */ {I_HINT_NOP59, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16956, IF_X64|IF_UNDOC}, + /* 3439 */ {I_HINT_NOP60, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16962, IF_P6|IF_UNDOC}, + /* 3440 */ {I_HINT_NOP60, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16968, IF_P6|IF_UNDOC}, + /* 3441 */ {I_HINT_NOP60, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16974, IF_X64|IF_UNDOC}, + /* 3442 */ {I_HINT_NOP61, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16980, IF_P6|IF_UNDOC}, + /* 3443 */ {I_HINT_NOP61, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+16986, IF_P6|IF_UNDOC}, + /* 3444 */ {I_HINT_NOP61, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+16992, IF_X64|IF_UNDOC}, + /* 3445 */ {I_HINT_NOP62, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+16998, IF_P6|IF_UNDOC}, + /* 3446 */ {I_HINT_NOP62, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17004, IF_P6|IF_UNDOC}, + /* 3447 */ {I_HINT_NOP62, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17010, IF_X64|IF_UNDOC}, + /* 3448 */ {I_HINT_NOP63, 1, {RM_GPR|BITS16,0,0,0,0}, nasm_bytecodes+17016, IF_P6|IF_UNDOC}, + /* 3449 */ {I_HINT_NOP63, 1, {RM_GPR|BITS32,0,0,0,0}, nasm_bytecodes+17022, IF_P6|IF_UNDOC}, + /* 3450 */ {I_HINT_NOP63, 1, {RM_GPR|BITS64,0,0,0,0}, nasm_bytecodes+17028, IF_X64|IF_UNDOC}, }; -static struct itemplate *itable_00[] = { - instrux + 29, - instrux + 30, - NULL -}; - -static struct itemplate *itable_01[] = { - instrux + 31, - instrux + 32, - instrux + 33, - instrux + 34, - NULL -}; - -static struct itemplate *itable_02[] = { - instrux + 35, - instrux + 36, - NULL -}; - -static struct itemplate *itable_03[] = { - instrux + 37, - instrux + 38, - instrux + 39, +static const struct itemplate * const itable_00[] = { instrux + 40, - NULL + instrux + 41, }; -static struct itemplate *itable_04[] = { +static const struct itemplate * const itable_01[] = { + instrux + 42, instrux + 43, - NULL -}; - -static struct itemplate *itable_05[] = { instrux + 44, instrux + 45, - NULL + instrux + 46, + instrux + 47, }; -static struct itemplate *itable_06[] = { - instrux + 778, - instrux + 779, - NULL +static const struct itemplate * const itable_02[] = { + instrux + 48, + instrux + 49, }; -static struct itemplate *itable_07[] = { - instrux + 710, - NULL +static const struct itemplate * const itable_03[] = { + instrux + 50, + instrux + 51, + instrux + 52, + instrux + 53, + instrux + 54, + instrux + 55, }; -static struct itemplate *itable_08[] = { +static const struct itemplate * const itable_04[] = { + instrux + 59, +}; + +static const struct itemplate * const itable_05[] = { + instrux + 61, + instrux + 63, + instrux + 65, +}; + +static const struct itemplate * const itable_06[] = { + instrux + 866, + instrux + 867, +}; + +static const struct itemplate * const itable_07[] = { + instrux + 818, +}; + +static const struct itemplate * const itable_08[] = { + instrux + 718, + instrux + 719, +}; + +static const struct itemplate * const itable_09[] = { + instrux + 720, + instrux + 721, + instrux + 722, + instrux + 723, + instrux + 724, + instrux + 725, +}; + +static const struct itemplate * const itable_0A[] = { + instrux + 726, + instrux + 727, +}; + +static const struct itemplate * const itable_0B[] = { + instrux + 728, + instrux + 729, + instrux + 730, + instrux + 731, + instrux + 732, + instrux + 733, +}; + +static const struct itemplate * const itable_0C[] = { + instrux + 737, +}; + +static const struct itemplate * const itable_0D[] = { + instrux + 739, + instrux + 741, + instrux + 743, +}; + +static const struct itemplate * const itable_0E[] = { + instrux + 866, + instrux + 867, +}; + +static const struct itemplate * const itable_0F00[] = { + instrux + 545, + instrux + 546, + instrux + 573, + instrux + 574, + instrux + 575, + instrux + 617, + instrux + 618, + instrux + 619, + instrux + 1047, + instrux + 1048, + instrux + 1049, + instrux + 1050, + instrux + 1051, + instrux + 1066, + instrux + 1067, + instrux + 1068, + instrux + 1069, + instrux + 1070, + instrux + 1137, + instrux + 1138, + instrux + 1139, + instrux + 1140, + instrux + 1141, + instrux + 1142, +}; + +static const struct itemplate * const itable_0F01[] = { + instrux + 192, + instrux + 505, + instrux + 506, + instrux + 507, + instrux + 508, + instrux + 509, + instrux + 569, + instrux + 572, + instrux + 576, + instrux + 577, instrux + 578, - instrux + 579, - NULL + instrux + 621, + instrux + 705, + instrux + 910, + instrux + 997, + instrux + 1046, + instrux + 1052, + instrux + 1054, + instrux + 1055, + instrux + 1056, + instrux + 1057, + instrux + 1060, + instrux + 1106, + instrux + 1309, + instrux + 1310, + instrux + 1541, + instrux + 1543, + instrux + 1544, + instrux + 1545, + instrux + 1550, + instrux + 1551, + instrux + 1552, + instrux + 1555, }; -static struct itemplate *itable_09[] = { +static const struct itemplate * const itable_0F02[] = { + instrux + 548, + instrux + 549, + instrux + 550, + instrux + 551, + instrux + 552, + instrux + 553, + instrux + 554, + instrux + 555, + instrux + 556, + instrux + 557, +}; + +static const struct itemplate * const itable_0F03[] = { + instrux + 605, + instrux + 606, + instrux + 607, + instrux + 608, + instrux + 609, + instrux + 610, + instrux + 611, + instrux + 612, + instrux + 613, + instrux + 614, +}; + +static const struct itemplate * const itable_0F05[] = { instrux + 580, - instrux + 581, - instrux + 582, - instrux + 583, - NULL + instrux + 1107, }; -static struct itemplate *itable_0A[] = { - instrux + 584, - instrux + 585, - NULL +static const struct itemplate * const itable_0F06[] = { + instrux + 194, }; -static struct itemplate *itable_0B[] = { - instrux + 586, - instrux + 587, - instrux + 588, - instrux + 589, - NULL +static const struct itemplate * const itable_0F07[] = { + instrux + 579, + instrux + 1110, }; -static struct itemplate *itable_0C[] = { - instrux + 592, - NULL +static const struct itemplate * const itable_0F08[] = { + instrux + 504, }; -static struct itemplate *itable_0D[] = { - instrux + 593, - instrux + 594, - NULL +static const struct itemplate * const itable_0F09[] = { + instrux + 1144, }; -static struct itemplate *itable_0E[] = { - instrux + 778, +static const struct itemplate * const itable_0F0B[] = { + instrux + 1136, +}; + +static const struct itemplate * const itable_0F0D[] = { + instrux + 828, + instrux + 829, +}; + +static const struct itemplate * const itable_0F0E[] = { + instrux + 330, +}; + +static const struct itemplate * const itable_0F0F[] = { + instrux + 775, + instrux + 783, + instrux + 784, + instrux + 785, + instrux + 786, + instrux + 787, + instrux + 788, + instrux + 789, + instrux + 790, + instrux + 791, + instrux + 792, + instrux + 793, + instrux + 794, + instrux + 795, + instrux + 796, + instrux + 797, + instrux + 798, + instrux + 799, + instrux + 804, + instrux + 1334, + instrux + 1335, + instrux + 1336, + instrux + 1337, + instrux + 1338, + instrux + 1674, + instrux + 1675, +}; + +static const struct itemplate * const itable_0F10[] = { + instrux + 1281, + instrux + 1283, + instrux + 1285, + instrux + 1287, + instrux + 1510, + instrux + 1513, + instrux + 1514, + instrux + 1517, +}; + +static const struct itemplate * const itable_0F11[] = { + instrux + 1282, + instrux + 1284, + instrux + 1286, + instrux + 1288, + instrux + 1511, + instrux + 1512, + instrux + 1515, + instrux + 1516, +}; + +static const struct itemplate * const itable_0F12[] = { + instrux + 1275, + instrux + 1277, + instrux + 1507, + instrux + 1538, + instrux + 1540, +}; + +static const struct itemplate * const itable_0F13[] = { + instrux + 1276, + instrux + 1506, +}; + +static const struct itemplate * const itable_0F14[] = { + instrux + 1305, + instrux + 1529, +}; + +static const struct itemplate * const itable_0F15[] = { + instrux + 1304, + instrux + 1528, +}; + +static const struct itemplate * const itable_0F16[] = { + instrux + 1272, + instrux + 1274, + instrux + 1505, + instrux + 1539, +}; + +static const struct itemplate * const itable_0F17[] = { + instrux + 1273, + instrux + 1504, +}; + +static const struct itemplate * const itable_0F18[] = { + instrux + 1313, + instrux + 1314, + instrux + 1315, + instrux + 1316, + instrux + 3259, + instrux + 3260, + instrux + 3261, + instrux + 3262, + instrux + 3263, + instrux + 3264, + instrux + 3265, + instrux + 3266, + instrux + 3267, + instrux + 3268, + instrux + 3269, + instrux + 3270, + instrux + 3271, + instrux + 3272, + instrux + 3273, + instrux + 3274, + instrux + 3275, + instrux + 3276, + instrux + 3277, + instrux + 3278, + instrux + 3279, + instrux + 3280, + instrux + 3281, + instrux + 3282, +}; + +static const struct itemplate * const itable_0F19[] = { + instrux + 3283, + instrux + 3284, + instrux + 3285, + instrux + 3286, + instrux + 3287, + instrux + 3288, + instrux + 3289, + instrux + 3290, + instrux + 3291, + instrux + 3292, + instrux + 3293, + instrux + 3294, + instrux + 3295, + instrux + 3296, + instrux + 3297, + instrux + 3298, + instrux + 3299, + instrux + 3300, + instrux + 3301, + instrux + 3302, + instrux + 3303, + instrux + 3304, + instrux + 3305, + instrux + 3306, +}; + +static const struct itemplate * const itable_0F1A[] = { + instrux + 3307, + instrux + 3308, + instrux + 3309, + instrux + 3310, + instrux + 3311, + instrux + 3312, + instrux + 3313, + instrux + 3314, + instrux + 3315, + instrux + 3316, + instrux + 3317, + instrux + 3318, + instrux + 3319, + instrux + 3320, + instrux + 3321, + instrux + 3322, + instrux + 3323, + instrux + 3324, + instrux + 3325, + instrux + 3326, + instrux + 3327, + instrux + 3328, + instrux + 3329, + instrux + 3330, +}; + +static const struct itemplate * const itable_0F1B[] = { + instrux + 3331, + instrux + 3332, + instrux + 3333, + instrux + 3334, + instrux + 3335, + instrux + 3336, + instrux + 3337, + instrux + 3338, + instrux + 3339, + instrux + 3340, + instrux + 3341, + instrux + 3342, + instrux + 3343, + instrux + 3344, + instrux + 3345, + instrux + 3346, + instrux + 3347, + instrux + 3348, + instrux + 3349, + instrux + 3350, + instrux + 3351, + instrux + 3352, + instrux + 3353, + instrux + 3354, +}; + +static const struct itemplate * const itable_0F1C[] = { + instrux + 3355, + instrux + 3356, + instrux + 3357, + instrux + 3358, + instrux + 3359, + instrux + 3360, + instrux + 3361, + instrux + 3362, + instrux + 3363, + instrux + 3364, + instrux + 3365, + instrux + 3366, + instrux + 3367, + instrux + 3368, + instrux + 3369, + instrux + 3370, + instrux + 3371, + instrux + 3372, + instrux + 3373, + instrux + 3374, + instrux + 3375, + instrux + 3376, + instrux + 3377, + instrux + 3378, +}; + +static const struct itemplate * const itable_0F1D[] = { + instrux + 3379, + instrux + 3380, + instrux + 3381, + instrux + 3382, + instrux + 3383, + instrux + 3384, + instrux + 3385, + instrux + 3386, + instrux + 3387, + instrux + 3388, + instrux + 3389, + instrux + 3390, + instrux + 3391, + instrux + 3392, + instrux + 3393, + instrux + 3394, + instrux + 3395, + instrux + 3396, + instrux + 3397, + instrux + 3398, + instrux + 3399, + instrux + 3400, + instrux + 3401, + instrux + 3402, +}; + +static const struct itemplate * const itable_0F1E[] = { + instrux + 3403, + instrux + 3404, + instrux + 3405, + instrux + 3406, + instrux + 3407, + instrux + 3408, + instrux + 3409, + instrux + 3410, + instrux + 3411, + instrux + 3412, + instrux + 3413, + instrux + 3414, + instrux + 3415, + instrux + 3416, + instrux + 3417, + instrux + 3418, + instrux + 3419, + instrux + 3420, + instrux + 3421, + instrux + 3422, + instrux + 3423, + instrux + 3424, + instrux + 3425, + instrux + 3426, +}; + +static const struct itemplate * const itable_0F1F[] = { + instrux + 711, + instrux + 712, + instrux + 713, + instrux + 3427, + instrux + 3428, + instrux + 3429, + instrux + 3430, + instrux + 3431, + instrux + 3432, + instrux + 3433, + instrux + 3434, + instrux + 3435, + instrux + 3436, + instrux + 3437, + instrux + 3438, + instrux + 3439, + instrux + 3440, + instrux + 3441, + instrux + 3442, + instrux + 3443, + instrux + 3444, + instrux + 3445, + instrux + 3446, + instrux + 3447, + instrux + 3448, + instrux + 3449, + instrux + 3450, +}; + +static const struct itemplate * const itable_0F20[] = { + instrux + 636, + instrux + 637, +}; + +static const struct itemplate * const itable_0F21[] = { + instrux + 640, + instrux + 641, +}; + +static const struct itemplate * const itable_0F22[] = { + instrux + 638, + instrux + 639, +}; + +static const struct itemplate * const itable_0F23[] = { + instrux + 642, + instrux + 643, +}; + +static const struct itemplate * const itable_0F28[] = { + instrux + 1268, + instrux + 1270, + instrux + 1500, + instrux + 1503, +}; + +static const struct itemplate * const itable_0F29[] = { + instrux + 1269, + instrux + 1271, + instrux + 1501, + instrux + 1502, +}; + +static const struct itemplate * const itable_0F2A[] = { + instrux + 1250, + instrux + 1252, + instrux + 1253, + instrux + 1476, + instrux + 1484, + instrux + 1485, +}; + +static const struct itemplate * const itable_0F2B[] = { + instrux + 1280, + instrux + 1344, + instrux + 1597, + instrux + 1598, +}; + +static const struct itemplate * const itable_0F2C[] = { + instrux + 1258, + instrux + 1259, + instrux + 1260, + instrux + 1487, + instrux + 1490, + instrux + 1491, + instrux + 1492, + instrux + 1493, +}; + +static const struct itemplate * const itable_0F2D[] = { + instrux + 1251, + instrux + 1254, + instrux + 1255, + instrux + 1256, + instrux + 1257, + instrux + 1474, + instrux + 1479, + instrux + 1480, + instrux + 1481, + instrux + 1482, +}; + +static const struct itemplate * const itable_0F2E[] = { + instrux + 1303, + instrux + 1527, +}; + +static const struct itemplate * const itable_0F2F[] = { + instrux + 1249, + instrux + 1470, +}; + +static const struct itemplate * const itable_0F30[] = { + instrux + 1146, +}; + +static const struct itemplate * const itable_0F31[] = { + instrux + 909, +}; + +static const struct itemplate * const itable_0F32[] = { + instrux + 907, +}; + +static const struct itemplate * const itable_0F33[] = { + instrux + 908, +}; + +static const struct itemplate * const itable_0F34[] = { + instrux + 1108, +}; + +static const struct itemplate * const itable_0F35[] = { + instrux + 1109, +}; + +static const struct itemplate * const itable_0F36[] = { + instrux + 906, +}; + +static const struct itemplate * const itable_0F37[] = { + instrux + 1145, + instrux + 1673, +}; + +static const struct itemplate * const itable_0F3800[] = { + instrux + 1585, + instrux + 1586, +}; + +static const struct itemplate * const itable_0F3801[] = { + instrux + 1569, + instrux + 1570, +}; + +static const struct itemplate * const itable_0F3802[] = { + instrux + 1571, + instrux + 1572, +}; + +static const struct itemplate * const itable_0F3803[] = { + instrux + 1573, + instrux + 1574, +}; + +static const struct itemplate * const itable_0F3804[] = { + instrux + 1581, + instrux + 1582, +}; + +static const struct itemplate * const itable_0F3805[] = { + instrux + 1575, + instrux + 1576, +}; + +static const struct itemplate * const itable_0F3806[] = { + instrux + 1577, + instrux + 1578, +}; + +static const struct itemplate * const itable_0F3807[] = { + instrux + 1579, + instrux + 1580, +}; + +static const struct itemplate * const itable_0F3808[] = { + instrux + 1587, + instrux + 1588, +}; + +static const struct itemplate * const itable_0F3809[] = { + instrux + 1589, + instrux + 1590, +}; + +static const struct itemplate * const itable_0F380A[] = { + instrux + 1591, + instrux + 1592, +}; + +static const struct itemplate * const itable_0F380B[] = { + instrux + 1583, + instrux + 1584, +}; + +static const struct itemplate * const itable_0F3810[] = { + instrux + 1614, +}; + +static const struct itemplate * const itable_0F3814[] = { + instrux + 1605, +}; + +static const struct itemplate * const itable_0F3815[] = { + instrux + 1604, +}; + +static const struct itemplate * const itable_0F3817[] = { + instrux + 1655, +}; + +static const struct itemplate * const itable_0F381C[] = { + instrux + 1561, + instrux + 1562, +}; + +static const struct itemplate * const itable_0F381D[] = { + instrux + 1563, + instrux + 1564, +}; + +static const struct itemplate * const itable_0F381E[] = { + instrux + 1565, + instrux + 1566, +}; + +static const struct itemplate * const itable_0F3820[] = { + instrux + 1641, +}; + +static const struct itemplate * const itable_0F3821[] = { + instrux + 1642, +}; + +static const struct itemplate * const itable_0F3822[] = { + instrux + 1643, +}; + +static const struct itemplate * const itable_0F3823[] = { + instrux + 1644, +}; + +static const struct itemplate * const itable_0F3824[] = { + instrux + 1645, +}; + +static const struct itemplate * const itable_0F3825[] = { + instrux + 1646, +}; + +static const struct itemplate * const itable_0F3828[] = { + instrux + 1653, +}; + +static const struct itemplate * const itable_0F3829[] = { + instrux + 1616, +}; + +static const struct itemplate * const itable_0F382A[] = { + instrux + 1611, +}; + +static const struct itemplate * const itable_0F382B[] = { + instrux + 1613, +}; + +static const struct itemplate * const itable_0F3830[] = { + instrux + 1647, +}; + +static const struct itemplate * const itable_0F3831[] = { + instrux + 1648, +}; + +static const struct itemplate * const itable_0F3832[] = { + instrux + 1649, +}; + +static const struct itemplate * const itable_0F3833[] = { + instrux + 1650, +}; + +static const struct itemplate * const itable_0F3834[] = { + instrux + 1651, +}; + +static const struct itemplate * const itable_0F3835[] = { + instrux + 1652, +}; + +static const struct itemplate * const itable_0F3837[] = { + instrux + 1669, +}; + +static const struct itemplate * const itable_0F3838[] = { + instrux + 1637, +}; + +static const struct itemplate * const itable_0F3839[] = { + instrux + 1638, +}; + +static const struct itemplate * const itable_0F383A[] = { + instrux + 1640, +}; + +static const struct itemplate * const itable_0F383B[] = { + instrux + 1639, +}; + +static const struct itemplate * const itable_0F383C[] = { + instrux + 1633, +}; + +static const struct itemplate * const itable_0F383D[] = { + instrux + 1634, +}; + +static const struct itemplate * const itable_0F383E[] = { + instrux + 1636, +}; + +static const struct itemplate * const itable_0F383F[] = { + instrux + 1635, +}; + +static const struct itemplate * const itable_0F3840[] = { + instrux + 1654, +}; + +static const struct itemplate * const itable_0F3841[] = { + instrux + 1625, +}; + +static const struct itemplate * const itable_0F3880[] = { + instrux + 1557, + instrux + 1558, +}; + +static const struct itemplate * const itable_0F3881[] = { + instrux + 1559, + instrux + 1560, +}; + +static const struct itemplate * const itable_0F38DB[] = { + instrux + 1686, +}; + +static const struct itemplate * const itable_0F38DC[] = { + instrux + 1682, +}; + +static const struct itemplate * const itable_0F38DD[] = { + instrux + 1683, +}; + +static const struct itemplate * const itable_0F38DE[] = { + instrux + 1684, +}; + +static const struct itemplate * const itable_0F38DF[] = { + instrux + 1685, +}; + +static const struct itemplate * const itable_0F38F0[] = { + instrux + 1660, + instrux + 1663, + instrux + 1676, + instrux + 1677, + instrux + 1678, +}; + +static const struct itemplate * const itable_0F38F1[] = { + instrux + 1661, + instrux + 1662, + instrux + 1664, + instrux + 1679, + instrux + 1680, + instrux + 1681, +}; + +static const struct itemplate * const itable_0F39[] = { + instrux + 261, +}; + +static const struct itemplate * const itable_0F3A08[] = { + instrux + 1657, +}; + +static const struct itemplate * const itable_0F3A09[] = { + instrux + 1656, +}; + +static const struct itemplate * const itable_0F3A0A[] = { + instrux + 1659, +}; + +static const struct itemplate * const itable_0F3A0B[] = { + instrux + 1658, +}; + +static const struct itemplate * const itable_0F3A0C[] = { + instrux + 1603, +}; + +static const struct itemplate * const itable_0F3A0D[] = { + instrux + 1602, +}; + +static const struct itemplate * const itable_0F3A0E[] = { + instrux + 1615, +}; + +static const struct itemplate * const itable_0F3A0F[] = { + instrux + 1567, + instrux + 1568, +}; + +static const struct itemplate * const itable_0F3A14[] = { + instrux + 1617, + instrux + 1618, + instrux + 1619, +}; + +static const struct itemplate * const itable_0F3A15[] = { + instrux + 1622, + instrux + 1623, + instrux + 1624, +}; + +static const struct itemplate * const itable_0F3A16[] = { + instrux + 1620, + instrux + 1621, +}; + +static const struct itemplate * const itable_0F3A17[] = { + instrux + 1608, + instrux + 1609, +}; + +static const struct itemplate * const itable_0F3A20[] = { + instrux + 1626, + instrux + 1627, + instrux + 1628, +}; + +static const struct itemplate * const itable_0F3A21[] = { + instrux + 1610, +}; + +static const struct itemplate * const itable_0F3A22[] = { + instrux + 1629, + instrux + 1630, + instrux + 1631, + instrux + 1632, +}; + +static const struct itemplate * const itable_0F3A40[] = { + instrux + 1607, +}; + +static const struct itemplate * const itable_0F3A41[] = { + instrux + 1606, +}; + +static const struct itemplate * const itable_0F3A42[] = { + instrux + 1612, +}; + +static const struct itemplate * const itable_0F3A44[] = { + instrux + 2743, + instrux + 2744, + instrux + 2745, + instrux + 2746, + instrux + 2747, +}; + +static const struct itemplate * const itable_0F3A60[] = { + instrux + 1666, +}; + +static const struct itemplate * const itable_0F3A61[] = { + instrux + 1665, +}; + +static const struct itemplate * const itable_0F3A62[] = { + instrux + 1668, +}; + +static const struct itemplate * const itable_0F3A63[] = { + instrux + 1667, +}; + +static const struct itemplate * const itable_0F3ADF[] = { + instrux + 1687, +}; + +static const struct itemplate * const itable_0F3C[] = { + instrux + 245, +}; + +static const struct itemplate * const itable_0F3D[] = { + instrux + 244, +}; + +static const struct itemplate * const itable_0F40[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F41[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F42[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F43[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F44[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F45[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F46[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F47[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F48[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F49[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F4A[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F4B[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F4C[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F4D[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F4E[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F4F[] = { + instrux + 1213, + instrux + 1214, + instrux + 1215, + instrux + 1216, + instrux + 1217, + instrux + 1218, +}; + +static const struct itemplate * const itable_0F50[] = { + instrux + 774, + instrux + 1278, + instrux + 1279, + instrux + 1508, + instrux + 1509, +}; + +static const struct itemplate * const itable_0F51[] = { + instrux + 766, + instrux + 1298, + instrux + 1299, + instrux + 1523, + instrux + 1524, +}; + +static const struct itemplate * const itable_0F52[] = { + instrux + 802, + instrux + 1294, + instrux + 1295, +}; + +static const struct itemplate * const itable_0F53[] = { + instrux + 1292, + instrux + 1293, +}; + +static const struct itemplate * const itable_0F54[] = { + instrux + 782, + instrux + 1228, + instrux + 1451, +}; + +static const struct itemplate * const itable_0F55[] = { + instrux + 849, + instrux + 1227, + instrux + 1450, +}; + +static const struct itemplate * const itable_0F56[] = { + instrux + 1291, + instrux + 1520, +}; + +static const struct itemplate * const itable_0F57[] = { + instrux + 1306, + instrux + 1530, +}; + +static const struct itemplate * const itable_0F58[] = { + instrux + 811, + instrux + 1225, + instrux + 1226, + instrux + 1448, + instrux + 1449, +}; + +static const struct itemplate * const itable_0F59[] = { + instrux + 805, + instrux + 1289, + instrux + 1290, + instrux + 1518, + instrux + 1519, +}; + +static const struct itemplate * const itable_0F5A[] = { + instrux + 810, + instrux + 1475, + instrux + 1478, + instrux + 1483, + instrux + 1486, +}; + +static const struct itemplate * const itable_0F5B[] = { + instrux + 809, + instrux + 1472, + instrux + 1477, + instrux + 1489, +}; + +static const struct itemplate * const itable_0F5C[] = { + instrux + 808, + instrux + 1301, + instrux + 1302, + instrux + 1525, + instrux + 1526, +}; + +static const struct itemplate * const itable_0F5D[] = { + instrux + 803, + instrux + 1266, + instrux + 1267, + instrux + 1498, + instrux + 1499, +}; + +static const struct itemplate * const itable_0F5E[] = { + instrux + 800, + instrux + 1261, + instrux + 1262, + instrux + 1494, + instrux + 1495, +}; + +static const struct itemplate * const itable_0F5F[] = { + instrux + 1264, + instrux + 1265, + instrux + 1496, + instrux + 1497, +}; + +static const struct itemplate * const itable_0F60[] = { + instrux + 857, + instrux + 1443, +}; + +static const struct itemplate * const itable_0F61[] = { + instrux + 859, + instrux + 1444, +}; + +static const struct itemplate * const itable_0F62[] = { + instrux + 858, + instrux + 1445, +}; + +static const struct itemplate * const itable_0F63[] = { + instrux + 761, + instrux + 1367, +}; + +static const struct itemplate * const itable_0F64[] = { instrux + 779, - NULL + instrux + 1386, }; -static struct itemplate *itable_0F[] = { +static const struct itemplate * const itable_0F65[] = { + instrux + 781, + instrux + 1387, +}; + +static const struct itemplate * const itable_0F66[] = { + instrux + 780, + instrux + 1388, +}; + +static const struct itemplate * const itable_0F67[] = { + instrux + 762, + instrux + 1369, +}; + +static const struct itemplate * const itable_0F68[] = { + instrux + 854, + instrux + 1439, +}; + +static const struct itemplate * const itable_0F69[] = { + instrux + 856, + instrux + 1440, +}; + +static const struct itemplate * const itable_0F6A[] = { + instrux + 855, + instrux + 1441, +}; + +static const struct itemplate * const itable_0F6B[] = { + instrux + 760, + instrux + 1368, +}; + +static const struct itemplate * const itable_0F6C[] = { + instrux + 1446, +}; + +static const struct itemplate * const itable_0F6D[] = { + instrux + 1442, +}; + +static const struct itemplate * const itable_0F6E[] = { + instrux + 672, + instrux + 673, + instrux + 676, + instrux + 677, + instrux + 682, + instrux + 1348, + instrux + 1349, + instrux + 1364, +}; + +static const struct itemplate * const itable_0F6F[] = { + instrux + 680, + instrux + 1351, + instrux + 1353, + instrux + 1355, + instrux + 1357, +}; + +static const struct itemplate * const itable_0F70[] = { + instrux + 1333, + instrux + 1406, + instrux + 1407, + instrux + 1408, + instrux + 1409, + instrux + 1410, + instrux + 1411, +}; + +static const struct itemplate * const itable_0F71[] = { + instrux + 835, + instrux + 839, + instrux + 845, + instrux + 1414, + instrux + 1420, + instrux + 1425, +}; + +static const struct itemplate * const itable_0F72[] = { + instrux + 831, + instrux + 837, + instrux + 841, + instrux + 1416, + instrux + 1422, + instrux + 1427, +}; + +static const struct itemplate * const itable_0F73[] = { + instrux + 833, + instrux + 843, + instrux + 1412, + instrux + 1418, + instrux + 1423, + instrux + 1429, +}; + +static const struct itemplate * const itable_0F74[] = { + instrux + 776, + instrux + 1383, +}; + +static const struct itemplate * const itable_0F75[] = { + instrux + 778, + instrux + 1384, +}; + +static const struct itemplate * const itable_0F76[] = { + instrux + 777, + instrux + 1385, +}; + +static const struct itemplate * const itable_0F77[] = { + instrux + 262, +}; + +static const struct itemplate * const itable_0F78[] = { + instrux + 1104, + instrux + 1548, + instrux + 1549, + instrux + 1593, + instrux + 1595, +}; + +static const struct itemplate * const itable_0F79[] = { + instrux + 941, + instrux + 1553, + instrux + 1554, + instrux + 1594, + instrux + 1596, +}; + +static const struct itemplate * const itable_0F7B[] = { + instrux + 942, +}; + +static const struct itemplate * const itable_0F7C[] = { + instrux + 1105, + instrux + 1533, + instrux + 1534, +}; + +static const struct itemplate * const itable_0F7D[] = { + instrux + 944, + instrux + 1535, + instrux + 1536, +}; + +static const struct itemplate * const itable_0F7E[] = { + instrux + 674, + instrux + 675, + instrux + 678, + instrux + 679, + instrux + 683, + instrux + 1347, + instrux + 1350, + instrux + 1360, + instrux + 1363, + instrux + 1365, +}; + +static const struct itemplate * const itable_0F7F[] = { + instrux + 681, + instrux + 1352, + instrux + 1354, + instrux + 1356, + instrux + 1358, +}; + +static const struct itemplate * const itable_0F80[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F81[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F82[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F83[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F84[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F85[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F86[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F87[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F88[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F89[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F8A[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F8B[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F8C[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F8D[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F8E[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F8F[] = { + instrux + 1219, + instrux + 1220, + instrux + 1221, +}; + +static const struct itemplate * const itable_0F90[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F91[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F92[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F93[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F94[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F95[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F96[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F97[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F98[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F99[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F9A[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F9B[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F9C[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F9D[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F9E[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0F9F[] = { + instrux + 1223, + instrux + 1224, +}; + +static const struct itemplate * const itable_0FA0[] = { + instrux + 868, +}; + +static const struct itemplate * const itable_0FA1[] = { + instrux + 819, +}; + +static const struct itemplate * const itable_0FA2[] = { + instrux + 243, +}; + +static const struct itemplate * const itable_0FA3[] = { + instrux + 124, + instrux + 125, + instrux + 126, + instrux + 127, + instrux + 128, + instrux + 129, +}; + +static const struct itemplate * const itable_0FA4[] = { + instrux + 1010, + instrux + 1011, + instrux + 1012, + instrux + 1013, + instrux + 1014, + instrux + 1015, +}; + +static const struct itemplate * const itable_0FA5[] = { + instrux + 1016, + instrux + 1017, + instrux + 1018, + instrux + 1019, + instrux + 1020, + instrux + 1021, +}; + +static const struct itemplate * const itable_0FA6C0[] = { + instrux + 2956, +}; + +static const struct itemplate * const itable_0FA6C8[] = { + instrux + 2957, +}; + +static const struct itemplate * const itable_0FA6D0[] = { + instrux + 2958, +}; + +static const struct itemplate * const itable_0FA7C0[] = { + instrux + 2950, +}; + +static const struct itemplate * const itable_0FA7C8[] = { + instrux + 2951, +}; + +static const struct itemplate * const itable_0FA7D0[] = { + instrux + 2952, +}; + +static const struct itemplate * const itable_0FA7D8[] = { + instrux + 2953, +}; + +static const struct itemplate * const itable_0FA7E0[] = { + instrux + 2954, +}; + +static const struct itemplate * const itable_0FA7E8[] = { + instrux + 2955, +}; + +static const struct itemplate * const itable_0FA8[] = { + instrux + 868, +}; + +static const struct itemplate * const itable_0FA9[] = { + instrux + 819, +}; + +static const struct itemplate * const itable_0FAA[] = { + instrux + 943, +}; + +static const struct itemplate * const itable_0FAB[] = { + instrux + 151, + instrux + 152, + instrux + 153, + instrux + 154, + instrux + 155, + instrux + 156, +}; + +static const struct itemplate * const itable_0FAC[] = { + instrux + 1034, + instrux + 1035, + instrux + 1036, + instrux + 1037, + instrux + 1038, + instrux + 1039, +}; + +static const struct itemplate * const itable_0FAD[] = { + instrux + 1040, + instrux + 1041, + instrux + 1042, + instrux + 1043, + instrux + 1044, + instrux + 1045, +}; + +static const struct itemplate * const itable_0FAE[] = { + instrux + 566, + instrux + 620, + instrux + 996, + instrux + 1263, + instrux + 1300, + instrux + 1307, + instrux + 1308, + instrux + 1311, + instrux + 1312, + instrux + 1317, + instrux + 1340, + instrux + 1345, + instrux + 1346, +}; + +static const struct itemplate * const itable_0FAF[] = { + instrux + 461, + instrux + 462, + instrux + 463, + instrux + 464, + instrux + 465, + instrux + 466, +}; + +static const struct itemplate * const itable_0FB0[] = { + instrux + 233, + instrux + 234, +}; + +static const struct itemplate * const itable_0FB1[] = { + instrux + 235, + instrux + 236, + instrux + 237, + instrux + 238, + instrux + 239, + instrux + 240, +}; + +static const struct itemplate * const itable_0FB2[] = { + instrux + 615, + instrux + 616, +}; + +static const struct itemplate * const itable_0FB3[] = { + instrux + 142, + instrux + 143, + instrux + 144, + instrux + 145, + instrux + 146, + instrux + 147, +}; + +static const struct itemplate * const itable_0FB4[] = { + instrux + 567, + instrux + 568, +}; + +static const struct itemplate * const itable_0FB5[] = { + instrux + 570, + instrux + 571, +}; + +static const struct itemplate * const itable_0FB6[] = { + instrux + 695, + instrux + 696, + instrux + 697, + instrux + 699, +}; + +static const struct itemplate * const itable_0FB7[] = { + instrux + 698, + instrux + 700, +}; + +static const struct itemplate * const itable_0FB8[] = { + instrux + 542, + instrux + 543, + instrux + 544, + instrux + 1670, + instrux + 1671, + instrux + 1672, +}; + +static const struct itemplate * const itable_0FB9[] = { + instrux + 1135, +}; + +static const struct itemplate * const itable_0FBA[] = { + instrux + 130, + instrux + 131, + instrux + 132, + instrux + 139, + instrux + 140, + instrux + 141, + instrux + 148, + instrux + 149, + instrux + 150, + instrux + 157, + instrux + 158, + instrux + 159, +}; + +static const struct itemplate * const itable_0FBB[] = { + instrux + 133, + instrux + 134, + instrux + 135, + instrux + 136, + instrux + 137, + instrux + 138, +}; + +static const struct itemplate * const itable_0FBC[] = { + instrux + 110, + instrux + 111, + instrux + 112, + instrux + 113, + instrux + 114, + instrux + 115, +}; + +static const struct itemplate * const itable_0FBD[] = { + instrux + 116, + instrux + 117, + instrux + 118, + instrux + 119, + instrux + 120, + instrux + 121, + instrux + 1599, + instrux + 1600, + instrux + 1601, +}; + +static const struct itemplate * const itable_0FBE[] = { + instrux + 688, + instrux + 689, + instrux + 690, + instrux + 692, +}; + +static const struct itemplate * const itable_0FBF[] = { + instrux + 691, + instrux + 693, +}; + +static const struct itemplate * const itable_0FC0[] = { + instrux + 1147, + instrux + 1148, +}; + +static const struct itemplate * const itable_0FC1[] = { + instrux + 1149, + instrux + 1150, + instrux + 1151, + instrux + 1152, + instrux + 1153, + instrux + 1154, +}; + +static const struct itemplate * const itable_0FC2[] = { + instrux + 1229, + instrux + 1230, + instrux + 1231, + instrux + 1232, + instrux + 1233, + instrux + 1234, + instrux + 1235, + instrux + 1236, + instrux + 1237, + instrux + 1238, + instrux + 1239, + instrux + 1240, + instrux + 1241, + instrux + 1242, + instrux + 1243, + instrux + 1244, + instrux + 1245, + instrux + 1246, + instrux + 1247, + instrux + 1248, + instrux + 1452, + instrux + 1453, + instrux + 1454, + instrux + 1455, + instrux + 1456, + instrux + 1457, + instrux + 1458, + instrux + 1459, + instrux + 1460, + instrux + 1461, + instrux + 1462, + instrux + 1463, + instrux + 1464, + instrux + 1465, + instrux + 1466, + instrux + 1467, + instrux + 1468, + instrux + 1469, +}; + +static const struct itemplate * const itable_0FC3[] = { + instrux + 1342, + instrux + 1343, +}; + +static const struct itemplate * const itable_0FC4[] = { + instrux + 1323, + instrux + 1324, + instrux + 1325, + instrux + 1390, + instrux + 1391, + instrux + 1392, +}; + +static const struct itemplate * const itable_0FC5[] = { + instrux + 1322, + instrux + 1389, +}; + +static const struct itemplate * const itable_0FC6[] = { + instrux + 1296, + instrux + 1297, + instrux + 1521, + instrux + 1522, +}; + +static const struct itemplate * const itable_0FC7[] = { + instrux + 241, + instrux + 242, + instrux + 1542, + instrux + 1546, + instrux + 1547, + instrux + 1556, +}; + +static const struct itemplate * const itable_0FC8[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FC9[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FCA[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FCB[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FCC[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FCD[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FCE[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FCF[] = { + instrux + 122, + instrux + 123, +}; + +static const struct itemplate * const itable_0FD0[] = { + instrux + 1531, + instrux + 1532, +}; + +static const struct itemplate * const itable_0FD1[] = { + instrux + 844, + instrux + 1424, +}; + +static const struct itemplate * const itable_0FD2[] = { + instrux + 840, + instrux + 1426, +}; + +static const struct itemplate * const itable_0FD3[] = { + instrux + 842, + instrux + 1428, +}; + +static const struct itemplate * const itable_0FD4[] = { + instrux + 1373, + instrux + 1374, +}; + +static const struct itemplate * const itable_0FD5[] = { + instrux + 807, + instrux + 1401, +}; + +static const struct itemplate * const itable_0FD6[] = { + instrux + 1359, + instrux + 1361, + instrux + 1362, + instrux + 1366, +}; + +static const struct itemplate * const itable_0FD7[] = { + instrux + 1330, + instrux + 1398, +}; + +static const struct itemplate * const itable_0FD8[] = { + instrux + 851, + instrux + 1437, +}; + +static const struct itemplate * const itable_0FD9[] = { + instrux + 852, + instrux + 1438, +}; + +static const struct itemplate * const itable_0FDA[] = { + instrux + 1329, + instrux + 1397, +}; + +static const struct itemplate * const itable_0FDB[] = { + instrux + 771, + instrux + 1379, +}; + +static const struct itemplate * const itable_0FDC[] = { + instrux + 768, + instrux + 1377, +}; + +static const struct itemplate * const itable_0FDD[] = { + instrux + 769, + instrux + 1378, +}; + +static const struct itemplate * const itable_0FDE[] = { + instrux + 1327, + instrux + 1395, +}; + +static const struct itemplate * const itable_0FDF[] = { + instrux + 772, + instrux + 1380, +}; + +static const struct itemplate * const itable_0FE0[] = { + instrux + 1320, + instrux + 1381, +}; + +static const struct itemplate * const itable_0FE1[] = { + instrux + 838, + instrux + 1419, +}; + +static const struct itemplate * const itable_0FE2[] = { + instrux + 836, + instrux + 1421, +}; + +static const struct itemplate * const itable_0FE3[] = { + instrux + 1321, + instrux + 1382, +}; + +static const struct itemplate * const itable_0FE4[] = { + instrux + 1331, + instrux + 1399, +}; + +static const struct itemplate * const itable_0FE5[] = { + instrux + 806, + instrux + 1400, +}; + +static const struct itemplate * const itable_0FE6[] = { + instrux + 1471, + instrux + 1473, + instrux + 1488, +}; + +static const struct itemplate * const itable_0FE7[] = { + instrux + 1319, + instrux + 1341, +}; + +static const struct itemplate * const itable_0FE8[] = { + instrux + 848, + instrux + 1435, +}; + +static const struct itemplate * const itable_0FE9[] = { + instrux + 850, + instrux + 1436, +}; + +static const struct itemplate * const itable_0FEA[] = { + instrux + 1328, + instrux + 1396, +}; + +static const struct itemplate * const itable_0FEB[] = { + instrux + 827, + instrux + 1404, +}; + +static const struct itemplate * const itable_0FEC[] = { + instrux + 765, + instrux + 1375, +}; + +static const struct itemplate * const itable_0FED[] = { + instrux + 767, + instrux + 1376, +}; + +static const struct itemplate * const itable_0FEE[] = { + instrux + 1326, + instrux + 1394, +}; + +static const struct itemplate * const itable_0FEF[] = { + instrux + 881, + instrux + 1447, +}; + +static const struct itemplate * const itable_0FF0[] = { + instrux + 1537, +}; + +static const struct itemplate * const itable_0FF1[] = { + instrux + 834, + instrux + 1413, +}; + +static const struct itemplate * const itable_0FF2[] = { + instrux + 830, + instrux + 1415, +}; + +static const struct itemplate * const itable_0FF3[] = { + instrux + 832, + instrux + 1417, +}; + +static const struct itemplate * const itable_0FF4[] = { + instrux + 1402, + instrux + 1403, +}; + +static const struct itemplate * const itable_0FF5[] = { + instrux + 801, + instrux + 1393, +}; + +static const struct itemplate * const itable_0FF6[] = { + instrux + 1332, + instrux + 1405, +}; + +static const struct itemplate * const itable_0FF7[] = { + instrux + 1318, + instrux + 1339, +}; + +static const struct itemplate * const itable_0FF8[] = { + instrux + 846, + instrux + 1430, +}; + +static const struct itemplate * const itable_0FF9[] = { + instrux + 853, + instrux + 1431, +}; + +static const struct itemplate * const itable_0FFA[] = { + instrux + 847, + instrux + 1432, +}; + +static const struct itemplate * const itable_0FFB[] = { + instrux + 1433, + instrux + 1434, +}; + +static const struct itemplate * const itable_0FFC[] = { + instrux + 763, + instrux + 1370, +}; + +static const struct itemplate * const itable_0FFD[] = { + instrux + 770, + instrux + 1371, +}; + +static const struct itemplate * const itable_0FFE[] = { + instrux + 764, + instrux + 1372, +}; + +static const struct itemplate * const itable_0FFF[] = { + instrux + 1134, +}; + +static const struct itemplate * const itable_10[] = { + instrux + 7, + instrux + 8, +}; + +static const struct itemplate * const itable_11[] = { + instrux + 9, + instrux + 10, + instrux + 11, + instrux + 12, + instrux + 13, + instrux + 14, +}; + +static const struct itemplate * const itable_12[] = { + instrux + 15, + instrux + 16, +}; + +static const struct itemplate * const itable_13[] = { + instrux + 17, + instrux + 18, + instrux + 19, + instrux + 20, + instrux + 21, + instrux + 22, +}; + +static const struct itemplate * const itable_14[] = { + instrux + 26, +}; + +static const struct itemplate * const itable_15[] = { + instrux + 28, + instrux + 30, + instrux + 32, +}; + +static const struct itemplate * const itable_16[] = { + instrux + 866, + instrux + 867, +}; + +static const struct itemplate * const itable_17[] = { + instrux + 818, +}; + +static const struct itemplate * const itable_18[] = { + instrux + 959, + instrux + 960, +}; + +static const struct itemplate * const itable_19[] = { + instrux + 961, + instrux + 962, + instrux + 963, + instrux + 964, + instrux + 965, + instrux + 966, +}; + +static const struct itemplate * const itable_1A[] = { + instrux + 967, + instrux + 968, +}; + +static const struct itemplate * const itable_1B[] = { + instrux + 969, + instrux + 970, + instrux + 971, + instrux + 972, + instrux + 973, + instrux + 974, +}; + +static const struct itemplate * const itable_1C[] = { + instrux + 978, +}; + +static const struct itemplate * const itable_1D[] = { + instrux + 980, + instrux + 982, + instrux + 984, +}; + +static const struct itemplate * const itable_1E[] = { + instrux + 866, + instrux + 867, +}; + +static const struct itemplate * const itable_1F[] = { + instrux + 818, +}; + +static const struct itemplate * const itable_20[] = { + instrux + 73, + instrux + 74, +}; + +static const struct itemplate * const itable_21[] = { + instrux + 75, + instrux + 76, + instrux + 77, + instrux + 78, instrux + 79, instrux + 80, +}; + +static const struct itemplate * const itable_22[] = { instrux + 81, instrux + 82, +}; + +static const struct itemplate * const itable_23[] = { instrux + 83, instrux + 84, instrux + 85, instrux + 86, instrux + 87, instrux + 88, - instrux + 89, - instrux + 90, - instrux + 91, +}; + +static const struct itemplate * const itable_24[] = { instrux + 92, - instrux + 93, +}; + +static const struct itemplate * const itable_25[] = { instrux + 94, - instrux + 95, instrux + 96, - instrux + 97, instrux + 98, +}; + +static const struct itemplate * const itable_27[] = { + instrux + 249, +}; + +static const struct itemplate * const itable_28[] = { + instrux + 1071, + instrux + 1072, +}; + +static const struct itemplate * const itable_29[] = { + instrux + 1073, + instrux + 1074, + instrux + 1075, + instrux + 1076, + instrux + 1077, + instrux + 1078, +}; + +static const struct itemplate * const itable_2A[] = { + instrux + 1079, + instrux + 1080, +}; + +static const struct itemplate * const itable_2B[] = { + instrux + 1081, + instrux + 1082, + instrux + 1083, + instrux + 1084, + instrux + 1085, + instrux + 1086, +}; + +static const struct itemplate * const itable_2C[] = { + instrux + 1090, +}; + +static const struct itemplate * const itable_2D[] = { + instrux + 1092, + instrux + 1094, + instrux + 1096, +}; + +static const struct itemplate * const itable_2F[] = { + instrux + 250, +}; + +static const struct itemplate * const itable_30[] = { + instrux + 1180, + instrux + 1181, +}; + +static const struct itemplate * const itable_31[] = { + instrux + 1182, + instrux + 1183, + instrux + 1184, + instrux + 1185, + instrux + 1186, + instrux + 1187, +}; + +static const struct itemplate * const itable_32[] = { + instrux + 1188, + instrux + 1189, +}; + +static const struct itemplate * const itable_33[] = { + instrux + 1190, + instrux + 1191, + instrux + 1192, + instrux + 1193, + instrux + 1194, + instrux + 1195, +}; + +static const struct itemplate * const itable_34[] = { + instrux + 1199, +}; + +static const struct itemplate * const itable_35[] = { + instrux + 1201, + instrux + 1203, + instrux + 1205, +}; + +static const struct itemplate * const itable_37[] = { + instrux + 1, +}; + +static const struct itemplate * const itable_38[] = { + instrux + 196, + instrux + 197, +}; + +static const struct itemplate * const itable_39[] = { + instrux + 198, + instrux + 199, + instrux + 200, + instrux + 201, + instrux + 202, + instrux + 203, +}; + +static const struct itemplate * const itable_3A[] = { + instrux + 204, + instrux + 205, +}; + +static const struct itemplate * const itable_3B[] = { + instrux + 206, + instrux + 207, + instrux + 208, + instrux + 209, + instrux + 210, + instrux + 211, +}; + +static const struct itemplate * const itable_3C[] = { + instrux + 215, +}; + +static const struct itemplate * const itable_3D[] = { + instrux + 217, + instrux + 219, + instrux + 221, +}; + +static const struct itemplate * const itable_3F[] = { + instrux + 6, +}; + +static const struct itemplate * const itable_40[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_41[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_42[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_43[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_44[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_45[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_46[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_47[] = { + instrux + 491, + instrux + 492, +}; + +static const struct itemplate * const itable_48[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_49[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_4A[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_4B[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_4C[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_4D[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_4E[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_4F[] = { + instrux + 251, + instrux + 252, +}; + +static const struct itemplate * const itable_50[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_51[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_52[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_53[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_54[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_55[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_56[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_57[] = { + instrux + 860, + instrux + 861, + instrux + 862, +}; + +static const struct itemplate * const itable_58[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_59[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_5A[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_5B[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_5C[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_5D[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_5E[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_5F[] = { + instrux + 812, + instrux + 813, + instrux + 814, +}; + +static const struct itemplate * const itable_60[] = { + instrux + 874, + instrux + 875, + instrux + 876, +}; + +static const struct itemplate * const itable_61[] = { + instrux + 820, + instrux + 821, + instrux + 822, +}; + +static const struct itemplate * const itable_62[] = { + instrux + 108, + instrux + 109, +}; + +static const struct itemplate * const itable_63[] = { + instrux + 106, + instrux + 107, + instrux + 694, +}; + +static const struct itemplate * const itable_68[] = { + instrux + 870, + instrux + 871, + instrux + 872, + instrux + 873, +}; + +static const struct itemplate * const itable_69[] = { + instrux + 468, + instrux + 470, + instrux + 472, + instrux + 474, + instrux + 476, + instrux + 478, + instrux + 480, + instrux + 482, + instrux + 484, +}; + +static const struct itemplate * const itable_6A[] = { + instrux + 869, + instrux + 870, + instrux + 871, + instrux + 872, + instrux + 873, +}; + +static const struct itemplate * const itable_6B[] = { + instrux + 467, + instrux + 469, + instrux + 471, + instrux + 473, + instrux + 475, + instrux + 477, + instrux + 479, + instrux + 481, + instrux + 483, +}; + +static const struct itemplate * const itable_6C[] = { + instrux + 497, +}; + +static const struct itemplate * const itable_6D[] = { + instrux + 498, + instrux + 499, +}; + +static const struct itemplate * const itable_6E[] = { + instrux + 757, +}; + +static const struct itemplate * const itable_6F[] = { + instrux + 758, + instrux + 759, +}; + +static const struct itemplate * const itable_70[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_71[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_72[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_73[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_74[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_75[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_76[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_77[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_78[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_79[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_7A[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_7B[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_7C[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_7D[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_7E[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_7F[] = { + instrux + 1222, +}; + +static const struct itemplate * const itable_80[] = { + instrux + 33, + instrux + 37, + instrux + 66, + instrux + 70, instrux + 99, + instrux + 103, + instrux + 222, + instrux + 226, + instrux + 744, + instrux + 748, + instrux + 985, + instrux + 989, + instrux + 1097, + instrux + 1101, + instrux + 1206, + instrux + 1210, +}; + +static const struct itemplate * const itable_81[] = { + instrux + 34, + instrux + 35, + instrux + 36, + instrux + 38, + instrux + 39, + instrux + 67, + instrux + 68, + instrux + 69, + instrux + 71, + instrux + 72, instrux + 100, instrux + 101, instrux + 102, - instrux + 103, instrux + 104, instrux + 105, - instrux + 106, - instrux + 107, - instrux + 108, - instrux + 109, - instrux + 110, - instrux + 111, - instrux + 139, + instrux + 223, + instrux + 224, + instrux + 225, + instrux + 227, + instrux + 228, + instrux + 745, + instrux + 746, + instrux + 747, + instrux + 749, + instrux + 750, + instrux + 986, + instrux + 987, + instrux + 988, + instrux + 990, + instrux + 991, + instrux + 1098, + instrux + 1099, + instrux + 1100, + instrux + 1102, + instrux + 1103, + instrux + 1207, + instrux + 1208, + instrux + 1209, + instrux + 1211, + instrux + 1212, +}; + +static const struct itemplate * const itable_83[] = { + instrux + 23, + instrux + 24, + instrux + 25, + instrux + 27, + instrux + 29, + instrux + 31, + instrux + 34, + instrux + 35, + instrux + 36, + instrux + 38, + instrux + 39, + instrux + 56, + instrux + 57, + instrux + 58, + instrux + 60, + instrux + 62, + instrux + 64, + instrux + 67, + instrux + 68, + instrux + 69, + instrux + 71, + instrux + 72, + instrux + 89, + instrux + 90, + instrux + 91, + instrux + 93, + instrux + 95, + instrux + 97, + instrux + 100, + instrux + 101, + instrux + 102, + instrux + 104, + instrux + 105, + instrux + 212, + instrux + 213, + instrux + 214, + instrux + 216, + instrux + 218, + instrux + 220, + instrux + 223, + instrux + 224, + instrux + 225, + instrux + 227, + instrux + 228, + instrux + 734, + instrux + 735, + instrux + 736, + instrux + 738, + instrux + 740, + instrux + 742, + instrux + 745, + instrux + 746, + instrux + 747, + instrux + 749, + instrux + 750, + instrux + 975, + instrux + 976, + instrux + 977, + instrux + 979, + instrux + 981, + instrux + 983, + instrux + 986, + instrux + 987, + instrux + 988, + instrux + 990, + instrux + 991, + instrux + 1087, + instrux + 1088, + instrux + 1089, + instrux + 1091, + instrux + 1093, + instrux + 1095, + instrux + 1098, + instrux + 1099, + instrux + 1100, + instrux + 1102, + instrux + 1103, + instrux + 1196, + instrux + 1197, + instrux + 1198, + instrux + 1200, + instrux + 1202, + instrux + 1204, + instrux + 1207, + instrux + 1208, + instrux + 1209, + instrux + 1211, + instrux + 1212, +}; + +static const struct itemplate * const itable_84[] = { + instrux + 1111, + instrux + 1112, + instrux + 1119, +}; + +static const struct itemplate * const itable_85[] = { + instrux + 1113, + instrux + 1114, + instrux + 1115, + instrux + 1116, + instrux + 1117, + instrux + 1118, + instrux + 1120, + instrux + 1121, + instrux + 1122, +}; + +static const struct itemplate * const itable_86[] = { + instrux + 1162, + instrux + 1163, + instrux + 1170, + instrux + 1171, +}; + +static const struct itemplate * const itable_87[] = { + instrux + 1164, + instrux + 1165, + instrux + 1166, + instrux + 1167, + instrux + 1168, + instrux + 1169, + instrux + 1172, + instrux + 1173, + instrux + 1174, + instrux + 1175, + instrux + 1176, + instrux + 1177, +}; + +static const struct itemplate * const itable_88[] = { + instrux + 644, + instrux + 645, +}; + +static const struct itemplate * const itable_89[] = { + instrux + 646, + instrux + 647, + instrux + 648, + instrux + 649, + instrux + 650, + instrux + 651, +}; + +static const struct itemplate * const itable_8A[] = { + instrux + 652, + instrux + 653, +}; + +static const struct itemplate * const itable_8B[] = { + instrux + 654, + instrux + 655, + instrux + 656, + instrux + 657, + instrux + 658, + instrux + 659, +}; + +static const struct itemplate * const itable_8C[] = { + instrux + 622, + instrux + 623, + instrux + 624, +}; + +static const struct itemplate * const itable_8D[] = { + instrux + 560, + instrux + 561, + instrux + 562, +}; + +static const struct itemplate * const itable_8E[] = { + instrux + 625, + instrux + 626, + instrux + 627, +}; + +static const struct itemplate * const itable_8F[] = { + instrux + 815, + instrux + 816, + instrux + 817, +}; + +static const struct itemplate * const itable_90[] = { + instrux + 710, + instrux + 773, + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, + instrux + 1161, +}; + +static const struct itemplate * const itable_91[] = { + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, +}; + +static const struct itemplate * const itable_92[] = { + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, +}; + +static const struct itemplate * const itable_93[] = { + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, +}; + +static const struct itemplate * const itable_94[] = { + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, +}; + +static const struct itemplate * const itable_95[] = { + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, +}; + +static const struct itemplate * const itable_96[] = { + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, +}; + +static const struct itemplate * const itable_97[] = { + instrux + 1155, + instrux + 1156, + instrux + 1157, + instrux + 1158, + instrux + 1159, + instrux + 1160, +}; + +static const struct itemplate * const itable_98[] = { + instrux + 187, + instrux + 189, + instrux + 248, +}; + +static const struct itemplate * const itable_99[] = { + instrux + 188, + instrux + 246, + instrux + 247, +}; + +static const struct itemplate * const itable_9A[] = { + instrux + 166, instrux + 167, instrux + 168, instrux + 169, instrux + 170, +}; + +static const struct itemplate * const itable_9C[] = { + instrux + 877, + instrux + 878, + instrux + 879, + instrux + 880, +}; + +static const struct itemplate * const itable_9D[] = { + instrux + 823, + instrux + 824, + instrux + 825, + instrux + 826, +}; + +static const struct itemplate * const itable_9E[] = { + instrux + 945, +}; + +static const struct itemplate * const itable_9F[] = { + instrux + 547, +}; + +static const struct itemplate * const itable_A0[] = { + instrux + 628, +}; + +static const struct itemplate * const itable_A1[] = { + instrux + 629, + instrux + 630, + instrux + 631, +}; + +static const struct itemplate * const itable_A2[] = { + instrux + 632, +}; + +static const struct itemplate * const itable_A3[] = { + instrux + 633, + instrux + 634, + instrux + 635, +}; + +static const struct itemplate * const itable_A4[] = { + instrux + 684, +}; + +static const struct itemplate * const itable_A5[] = { + instrux + 685, + instrux + 686, + instrux + 687, +}; + +static const struct itemplate * const itable_A6[] = { + instrux + 229, +}; + +static const struct itemplate * const itable_A7[] = { + instrux + 230, + instrux + 231, + instrux + 232, +}; + +static const struct itemplate * const itable_A8[] = { + instrux + 1123, +}; + +static const struct itemplate * const itable_A9[] = { + instrux + 1124, + instrux + 1125, + instrux + 1126, +}; + +static const struct itemplate * const itable_AA[] = { + instrux + 1062, +}; + +static const struct itemplate * const itable_AB[] = { + instrux + 1063, + instrux + 1064, + instrux + 1065, +}; + +static const struct itemplate * const itable_AC[] = { + instrux + 581, +}; + +static const struct itemplate * const itable_AD[] = { + instrux + 582, + instrux + 583, + instrux + 584, +}; + +static const struct itemplate * const itable_AE[] = { + instrux + 992, +}; + +static const struct itemplate * const itable_AF[] = { + instrux + 993, + instrux + 994, + instrux + 995, +}; + +static const struct itemplate * const itable_B0[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B1[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B2[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B3[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B4[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B5[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B6[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B7[] = { + instrux + 660, +}; + +static const struct itemplate * const itable_B8[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_B9[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_BA[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_BB[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_BC[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_BD[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_BE[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_BF[] = { + instrux + 661, + instrux + 662, + instrux + 663, +}; + +static const struct itemplate * const itable_C0[] = { + instrux + 884, + instrux + 896, + instrux + 919, + instrux + 931, + instrux + 949, + instrux + 1000, + instrux + 1024, +}; + +static const struct itemplate * const itable_C1[] = { + instrux + 887, + instrux + 890, + instrux + 893, + instrux + 899, + instrux + 902, + instrux + 905, + instrux + 922, + instrux + 925, + instrux + 928, + instrux + 934, + instrux + 937, + instrux + 940, + instrux + 952, + instrux + 955, + instrux + 958, + instrux + 1003, + instrux + 1006, + instrux + 1009, + instrux + 1027, + instrux + 1030, + instrux + 1033, +}; + +static const struct itemplate * const itable_C2[] = { + instrux + 912, + instrux + 916, +}; + +static const struct itemplate * const itable_C3[] = { + instrux + 911, + instrux + 915, +}; + +static const struct itemplate * const itable_C4[] = { + instrux + 564, + instrux + 565, +}; + +static const struct itemplate * const itable_C5[] = { + instrux + 558, + instrux + 559, +}; + +static const struct itemplate * const itable_C6[] = { + instrux + 665, + instrux + 669, +}; + +static const struct itemplate * const itable_C7[] = { + instrux + 664, + instrux + 666, + instrux + 667, + instrux + 668, + instrux + 670, + instrux + 671, +}; + +static const struct itemplate * const itable_C8[] = { + instrux + 263, +}; + +static const struct itemplate * const itable_C9[] = { + instrux + 563, +}; + +static const struct itemplate * const itable_CA[] = { + instrux + 914, +}; + +static const struct itemplate * const itable_CB[] = { + instrux + 913, +}; + +static const struct itemplate * const itable_CC[] = { + instrux + 502, +}; + +static const struct itemplate * const itable_CD[] = { + instrux + 500, +}; + +static const struct itemplate * const itable_CE[] = { + instrux + 503, +}; + +static const struct itemplate * const itable_CF[] = { + instrux + 510, + instrux + 511, + instrux + 512, + instrux + 513, +}; + +static const struct itemplate * const itable_D0[] = { + instrux + 882, + instrux + 894, + instrux + 917, + instrux + 929, + instrux + 947, + instrux + 998, + instrux + 1022, +}; + +static const struct itemplate * const itable_D1[] = { + instrux + 885, + instrux + 888, + instrux + 891, + instrux + 897, + instrux + 900, + instrux + 903, + instrux + 920, + instrux + 923, + instrux + 926, + instrux + 932, + instrux + 935, + instrux + 938, + instrux + 950, + instrux + 953, + instrux + 956, + instrux + 1001, + instrux + 1004, + instrux + 1007, + instrux + 1025, + instrux + 1028, + instrux + 1031, +}; + +static const struct itemplate * const itable_D2[] = { + instrux + 883, + instrux + 895, + instrux + 918, + instrux + 930, + instrux + 948, + instrux + 999, + instrux + 1023, +}; + +static const struct itemplate * const itable_D3[] = { + instrux + 886, + instrux + 889, + instrux + 892, + instrux + 898, + instrux + 901, + instrux + 904, + instrux + 921, + instrux + 924, + instrux + 927, + instrux + 933, + instrux + 936, + instrux + 939, + instrux + 951, + instrux + 954, + instrux + 957, + instrux + 1002, + instrux + 1005, + instrux + 1008, + instrux + 1026, + instrux + 1029, + instrux + 1032, +}; + +static const struct itemplate * const itable_D4[] = { + instrux + 4, + instrux + 5, +}; + +static const struct itemplate * const itable_D5[] = { + instrux + 2, + instrux + 3, +}; + +static const struct itemplate * const itable_D6[] = { + instrux + 946, +}; + +static const struct itemplate * const itable_D7[] = { + instrux + 1178, + instrux + 1179, +}; + +static const struct itemplate * const itable_D8[] = { + instrux + 268, + instrux + 271, + instrux + 273, + instrux + 298, + instrux + 300, + instrux + 301, + instrux + 306, + instrux + 308, + instrux + 309, + instrux + 314, + instrux + 317, + instrux + 319, + instrux + 322, + instrux + 326, + instrux + 327, + instrux + 378, + instrux + 382, + instrux + 383, + instrux + 419, + instrux + 423, + instrux + 424, + instrux + 427, + instrux + 431, + instrux + 432, +}; + +static const struct itemplate * const itable_D9[] = { + instrux + 266, + instrux + 267, + instrux + 280, + instrux + 311, + instrux + 312, + instrux + 351, + instrux + 365, + instrux + 368, + instrux + 369, + instrux + 370, + instrux + 371, + instrux + 372, + instrux + 373, + instrux + 374, + instrux + 375, + instrux + 376, + instrux + 377, + instrux + 390, + instrux + 392, + instrux + 393, + instrux + 396, + instrux + 397, + instrux + 398, + instrux + 399, + instrux + 400, + instrux + 403, + instrux + 405, + instrux + 406, + instrux + 407, + instrux + 408, + instrux + 411, + instrux + 412, + instrux + 413, + instrux + 435, + instrux + 445, + instrux + 446, + instrux + 447, + instrux + 448, + instrux + 449, + instrux + 450, + instrux + 451, +}; + +static const struct itemplate * const itable_DA[] = { + instrux + 282, + instrux + 283, + instrux + 284, + instrux + 285, + instrux + 286, + instrux + 287, + instrux + 296, + instrux + 297, + instrux + 336, + instrux + 338, + instrux + 340, + instrux + 342, + instrux + 344, + instrux + 349, + instrux + 361, + instrux + 363, + instrux + 444, +}; + +static const struct itemplate * const itable_DB[] = { + instrux + 281, + instrux + 288, + instrux + 289, + instrux + 290, + instrux + 291, + instrux + 292, + instrux + 293, + instrux + 294, + instrux + 295, + instrux + 302, + instrux + 303, + instrux + 313, + instrux + 331, + instrux + 346, + instrux + 352, + instrux + 353, + instrux + 355, + instrux + 359, + instrux + 367, + instrux + 386, + instrux + 387, + instrux + 388, + instrux + 389, + instrux + 404, + instrux + 415, + instrux + 438, + instrux + 439, +}; + +static const struct itemplate * const itable_DC[] = { + instrux + 269, + instrux + 270, + instrux + 272, + instrux + 299, + instrux + 307, + instrux + 315, + instrux + 316, + instrux + 318, + instrux + 323, + instrux + 324, + instrux + 325, + instrux + 379, + instrux + 380, + instrux + 381, + instrux + 420, + instrux + 421, + instrux + 422, + instrux + 428, + instrux + 429, + instrux + 430, +}; + +static const struct itemplate * const itable_DD[] = { + instrux + 332, + instrux + 333, + instrux + 360, + instrux + 366, + instrux + 391, + instrux + 394, + instrux + 401, + instrux + 402, + instrux + 409, + instrux + 410, + instrux + 414, + instrux + 416, + instrux + 417, + instrux + 436, + instrux + 437, + instrux + 442, + instrux + 443, +}; + +static const struct itemplate * const itable_DE[] = { + instrux + 274, + instrux + 275, + instrux + 310, + instrux + 320, + instrux + 321, + instrux + 328, + instrux + 329, + instrux + 337, + instrux + 339, + instrux + 341, + instrux + 343, + instrux + 345, + instrux + 350, + instrux + 362, + instrux + 364, + instrux + 384, + instrux + 385, + instrux + 425, + instrux + 426, + instrux + 433, + instrux + 434, +}; + +static const struct itemplate * const itable_DF[] = { + instrux + 276, + instrux + 277, + instrux + 278, + instrux + 279, + instrux + 304, + instrux + 305, + instrux + 334, + instrux + 335, + instrux + 347, + instrux + 348, + instrux + 354, + instrux + 356, + instrux + 357, + instrux + 358, + instrux + 395, + instrux + 418, + instrux + 440, + instrux + 441, +}; + +static const struct itemplate * const itable_E0[] = { + instrux + 593, + instrux + 594, + instrux + 595, + instrux + 596, + instrux + 597, + instrux + 598, + instrux + 599, + instrux + 600, +}; + +static const struct itemplate * const itable_E1[] = { + instrux + 589, + instrux + 590, + instrux + 591, + instrux + 592, + instrux + 601, + instrux + 602, + instrux + 603, + instrux + 604, +}; + +static const struct itemplate * const itable_E2[] = { + instrux + 585, + instrux + 586, + instrux + 587, + instrux + 588, +}; + +static const struct itemplate * const itable_E3[] = { + instrux + 514, + instrux + 515, + instrux + 516, +}; + +static const struct itemplate * const itable_E4[] = { + instrux + 485, +}; + +static const struct itemplate * const itable_E5[] = { + instrux + 486, + instrux + 487, +}; + +static const struct itemplate * const itable_E6[] = { + instrux + 751, +}; + +static const struct itemplate * const itable_E7[] = { + instrux + 752, + instrux + 753, +}; + +static const struct itemplate * const itable_E8[] = { + instrux + 160, + instrux + 161, + instrux + 162, + instrux + 163, + instrux + 164, + instrux + 165, +}; + +static const struct itemplate * const itable_E9[] = { + instrux + 518, + instrux + 519, + instrux + 520, +}; + +static const struct itemplate * const itable_EA[] = { + instrux + 521, + instrux + 522, + instrux + 523, + instrux + 524, + instrux + 525, +}; + +static const struct itemplate * const itable_EB[] = { + instrux + 517, +}; + +static const struct itemplate * const itable_EC[] = { + instrux + 488, +}; + +static const struct itemplate * const itable_ED[] = { + instrux + 489, + instrux + 490, +}; + +static const struct itemplate * const itable_EE[] = { + instrux + 754, +}; + +static const struct itemplate * const itable_EF[] = { + instrux + 755, + instrux + 756, +}; + +static const struct itemplate * const itable_F1[] = { + instrux + 501, + instrux + 1053, +}; + +static const struct itemplate * const itable_F4[] = { + instrux + 452, +}; + +static const struct itemplate * const itable_F5[] = { + instrux + 195, +}; + +static const struct itemplate * const itable_F6[] = { + instrux + 257, + instrux + 453, + instrux + 457, + instrux + 701, + instrux + 706, + instrux + 714, + instrux + 1127, + instrux + 1131, +}; + +static const struct itemplate * const itable_F7[] = { + instrux + 258, + instrux + 259, + instrux + 260, + instrux + 454, + instrux + 455, + instrux + 456, + instrux + 458, + instrux + 459, + instrux + 460, + instrux + 702, + instrux + 703, + instrux + 704, + instrux + 707, + instrux + 708, + instrux + 709, + instrux + 715, + instrux + 716, + instrux + 717, + instrux + 1128, + instrux + 1129, + instrux + 1130, + instrux + 1132, + instrux + 1133, +}; + +static const struct itemplate * const itable_F8[] = { + instrux + 190, +}; + +static const struct itemplate * const itable_F9[] = { + instrux + 1058, +}; + +static const struct itemplate * const itable_FA[] = { + instrux + 193, +}; + +static const struct itemplate * const itable_FB[] = { + instrux + 1061, +}; + +static const struct itemplate * const itable_FC[] = { + instrux + 191, +}; + +static const struct itemplate * const itable_FD[] = { + instrux + 1059, +}; + +static const struct itemplate * const itable_FE[] = { + instrux + 253, + instrux + 493, +}; + +static const struct itemplate * const itable_FF[] = { instrux + 171, instrux + 172, instrux + 173, @@ -1701,2816 +7415,10001 @@ static struct itemplate *itable_0F[] = { instrux + 178, instrux + 179, instrux + 180, - instrux + 193, - instrux + 261, - instrux + 389, - instrux + 390, - instrux + 391, - instrux + 392, - instrux + 423, - instrux + 424, - instrux + 450, - instrux + 451, - instrux + 452, - instrux + 453, - instrux + 454, - instrux + 456, - instrux + 457, - instrux + 458, - instrux + 459, - instrux + 467, - instrux + 468, - instrux + 469, - instrux + 470, - instrux + 471, - instrux + 472, - instrux + 473, - instrux + 474, - instrux + 475, - instrux + 476, - instrux + 477, - instrux + 478, - instrux + 479, - instrux + 480, - instrux + 499, - instrux + 500, - instrux + 501, - instrux + 502, - instrux + 503, - instrux + 504, - instrux + 505, - instrux + 506, - instrux + 507, - instrux + 508, - instrux + 521, - instrux + 522, - instrux + 523, - instrux + 524, - instrux + 525, - instrux + 526, - instrux + 548, - instrux + 549, - instrux + 550, - instrux + 551, - instrux + 552, - instrux + 553, - instrux + 554, - instrux + 555, - instrux + 559, - instrux + 560, - instrux + 561, - instrux + 562, - instrux + 563, - instrux + 564, - instrux + 565, - instrux + 566, - instrux + 570, - instrux + 610, - instrux + 611, - instrux + 612, - instrux + 613, - instrux + 614, - instrux + 615, - instrux + 616, - instrux + 617, - instrux + 618, - instrux + 619, - instrux + 620, - instrux + 621, - instrux + 622, - instrux + 623, - instrux + 624, - instrux + 625, - instrux + 626, - instrux + 627, - instrux + 628, - instrux + 629, - instrux + 630, - instrux + 631, - instrux + 632, - instrux + 633, - instrux + 634, - instrux + 635, - instrux + 636, - instrux + 637, - instrux + 638, - instrux + 639, - instrux + 640, - instrux + 641, - instrux + 642, - instrux + 643, - instrux + 644, - instrux + 645, - instrux + 646, - instrux + 647, - instrux + 648, - instrux + 649, - instrux + 650, - instrux + 651, - instrux + 652, - instrux + 653, - instrux + 654, - instrux + 655, - instrux + 656, - instrux + 657, - instrux + 658, - instrux + 659, - instrux + 660, - instrux + 661, - instrux + 662, - instrux + 663, - instrux + 664, - instrux + 665, - instrux + 666, - instrux + 667, - instrux + 668, - instrux + 669, - instrux + 670, - instrux + 671, - instrux + 672, - instrux + 673, - instrux + 674, - instrux + 675, - instrux + 676, - instrux + 677, - instrux + 678, - instrux + 679, - instrux + 680, - instrux + 681, - instrux + 682, - instrux + 683, - instrux + 684, - instrux + 685, - instrux + 686, - instrux + 687, - instrux + 688, - instrux + 689, - instrux + 690, - instrux + 691, - instrux + 692, - instrux + 693, - instrux + 694, - instrux + 695, - instrux + 696, - instrux + 697, - instrux + 698, - instrux + 699, - instrux + 700, - instrux + 701, - instrux + 702, - instrux + 703, - instrux + 704, - instrux + 705, - instrux + 711, - instrux + 718, - instrux + 719, - instrux + 720, - instrux + 721, - instrux + 722, - instrux + 723, - instrux + 724, - instrux + 725, - instrux + 726, - instrux + 727, - instrux + 728, - instrux + 729, - instrux + 730, - instrux + 731, - instrux + 732, - instrux + 733, - instrux + 734, - instrux + 735, - instrux + 736, - instrux + 737, - instrux + 738, - instrux + 739, - instrux + 740, - instrux + 741, - instrux + 742, - instrux + 743, - instrux + 744, - instrux + 745, - instrux + 746, - instrux + 747, - instrux + 748, - instrux + 749, - instrux + 750, - instrux + 751, - instrux + 752, - instrux + 753, - instrux + 754, - instrux + 755, - instrux + 756, - instrux + 757, - instrux + 758, - instrux + 759, - instrux + 760, - instrux + 761, - instrux + 762, - instrux + 763, - instrux + 764, - instrux + 765, - instrux + 766, - instrux + 767, - instrux + 768, - instrux + 769, - instrux + 770, - instrux + 771, - instrux + 772, - instrux + 773, - instrux + 780, - instrux + 791, - instrux + 792, - instrux + 811, - instrux + 812, - instrux + 813, - instrux + 814, - instrux + 840, - instrux + 841, - instrux + 842, - instrux + 843, - instrux + 881, - instrux + 891, - instrux + 892, - instrux + 893, - instrux + 894, - instrux + 895, - instrux + 896, - instrux + 897, - instrux + 898, - instrux + 908, - instrux + 909, - instrux + 910, - instrux + 911, - instrux + 912, - instrux + 913, - instrux + 914, - instrux + 915, - instrux + 916, - instrux + 917, - instrux + 918, - instrux + 919, - instrux + 920, - instrux + 922, - instrux + 923, - instrux + 924, - instrux + 925, - instrux + 926, - instrux + 933, - instrux + 934, - instrux + 935, - instrux + 936, - instrux + 960, - instrux + 961, - instrux + 962, - instrux + 963, - instrux + 964, - instrux + 965, - instrux + 966, - instrux + 985, - instrux + 986, - instrux + 987, - instrux + 988, - instrux + 989, - instrux + 990, - instrux + 991, - instrux + 992, - instrux + 993, - instrux + 994, - instrux + 995, - instrux + 996, - instrux + 997, - instrux + 998, - instrux + 999, - instrux + 1000, - instrux + 1001, - instrux + 1002, - instrux + 1003, - instrux + 1004, - instrux + 1005, - instrux + 1008, - instrux + 1009, - instrux + 1010, - instrux + 1011, - instrux + 1012, - instrux + 1013, - instrux + 1014, - instrux + 1015, - instrux + 1016, - instrux + 1058, - instrux + 1059, - instrux + 1060, - instrux + 1061, - instrux + 1062, - instrux + 1063, - instrux + 1064, - instrux + 1065, - instrux + 1067, - instrux + 1068, - instrux + 1069, - instrux + 1070, - instrux + 1071, - instrux + 1072, - instrux + 1073, - instrux + 1074, - instrux + 1075, - instrux + 1076, - instrux + 1077, - instrux + 1078, - instrux + 1079, - instrux + 1080, - instrux + 1081, - instrux + 1082, - instrux + 1083, - instrux + 1084, - instrux + 1085, - instrux + 1086, - instrux + 1087, - instrux + 1088, - instrux + 1089, - instrux + 1090, - instrux + 1091, - instrux + 1092, - instrux + 1093, - instrux + 1094, - instrux + 1095, - instrux + 1096, - instrux + 1097, - instrux + 1098, - instrux + 1099, - instrux + 1100, - instrux + 1101, - instrux + 1102, - instrux + 1103, - instrux + 1104, - instrux + 1105, - instrux + 1106, - instrux + 1107, - instrux + 1108, - instrux + 1109, - instrux + 1110, - instrux + 1111, - instrux + 1112, - instrux + 1113, - instrux + 1114, - instrux + 1115, - instrux + 1116, - instrux + 1117, - instrux + 1118, - instrux + 1119, - instrux + 1120, - instrux + 1121, - instrux + 1122, - instrux + 1123, - instrux + 1124, - instrux + 1125, - instrux + 1126, - instrux + 1127, - instrux + 1128, - instrux + 1129, - instrux + 1130, - instrux + 1131, - instrux + 1132, - instrux + 1133, - instrux + 1134, - instrux + 1135, - instrux + 1136, - instrux + 1137, - instrux + 1138, - instrux + 1139, - instrux + 1140, - instrux + 1141, - instrux + 1142, - instrux + 1143, - instrux + 1144, - instrux + 1145, - instrux + 1146, - instrux + 1147, - instrux + 1148, - instrux + 1149, - instrux + 1150, - instrux + 1151, - instrux + 1152, - instrux + 1153, - instrux + 1154, - instrux + 1155, - instrux + 1156, - instrux + 1157, - instrux + 1158, - instrux + 1159, - instrux + 1160, - instrux + 1161, - instrux + 1162, - instrux + 1163, - instrux + 1164, - instrux + 1165, - instrux + 1166, - instrux + 1167, - instrux + 1168, - instrux + 1169, - instrux + 1170, - instrux + 1171, - instrux + 1172, - instrux + 1173, - instrux + 1174, - instrux + 1175, - instrux + 1176, - instrux + 1177, - instrux + 1178, - instrux + 1179, - instrux + 1180, - instrux + 1181, - instrux + 1182, - instrux + 1183, - instrux + 1184, - instrux + 1185, - instrux + 1186, - instrux + 1187, - instrux + 1188, - instrux + 1189, - instrux + 1190, - instrux + 1191, - instrux + 1192, - instrux + 1193, - instrux + 1194, - instrux + 1195, - instrux + 1196, - instrux + 1197, - instrux + 1198, - instrux + 1199, - instrux + 1200, - instrux + 1201, - instrux + 1202, - instrux + 1203, - instrux + 1204, - instrux + 1205, - instrux + 1206, - instrux + 1207, - instrux + 1208, - instrux + 1209, - instrux + 1210, - instrux + 1211, - instrux + 1212, - instrux + 1213, - instrux + 1214, - instrux + 1215, - instrux + 1216, - instrux + 1217, - instrux + 1218, - instrux + 1219, - instrux + 1220, - instrux + 1221, - instrux + 1222, - instrux + 1223, - instrux + 1224, - instrux + 1225, - instrux + 1226, - instrux + 1227, - instrux + 1228, - instrux + 1229, - instrux + 1230, - instrux + 1231, - instrux + 1232, - instrux + 1233, - instrux + 1235, - instrux + 1237, - instrux + 1240, - instrux + 1241, - instrux + 1250, - instrux + 1251, - instrux + 1252, - instrux + 1253, - instrux + 1255, - instrux + 1258, - instrux + 1259, - instrux + 1272, - instrux + 1273, - instrux + 1324, - instrux + 1325, - instrux + 1334, - instrux + 1335, - instrux + 1370, - instrux + 1371, - instrux + 1446, - instrux + 1447, - instrux + 1448, - instrux + 1449, - instrux + 1460, - instrux + 1461, - instrux + 1468, - instrux + 1469, - instrux + 1474, - instrux + 1475, - NULL -}; - -static struct itemplate *itable_10[] = { - instrux + 6, - instrux + 7, - NULL -}; - -static struct itemplate *itable_11[] = { - instrux + 8, - instrux + 9, - instrux + 10, - instrux + 11, - NULL -}; - -static struct itemplate *itable_12[] = { - instrux + 12, - instrux + 13, - NULL -}; - -static struct itemplate *itable_13[] = { - instrux + 14, - instrux + 15, - instrux + 16, - instrux + 17, - NULL -}; - -static struct itemplate *itable_14[] = { - instrux + 20, - NULL -}; - -static struct itemplate *itable_15[] = { - instrux + 21, - instrux + 22, - NULL -}; - -static struct itemplate *itable_16[] = { - instrux + 778, - instrux + 779, - NULL -}; - -static struct itemplate *itable_17[] = { - instrux + 710, - NULL -}; - -static struct itemplate *itable_18[] = { - instrux + 855, - instrux + 856, - NULL -}; - -static struct itemplate *itable_19[] = { - instrux + 857, - instrux + 858, - instrux + 859, - instrux + 860, - NULL -}; - -static struct itemplate *itable_1A[] = { - instrux + 861, - instrux + 862, - NULL -}; - -static struct itemplate *itable_1B[] = { - instrux + 863, - instrux + 864, - instrux + 865, - instrux + 866, - NULL -}; - -static struct itemplate *itable_1C[] = { - instrux + 869, - NULL -}; - -static struct itemplate *itable_1D[] = { - instrux + 870, - instrux + 871, - NULL -}; - -static struct itemplate *itable_1E[] = { - instrux + 778, - instrux + 779, - NULL -}; - -static struct itemplate *itable_1F[] = { - instrux + 710, - NULL -}; - -static struct itemplate *itable_20[] = { - instrux + 52, - instrux + 53, - NULL -}; - -static struct itemplate *itable_21[] = { - instrux + 54, - instrux + 55, - instrux + 56, - instrux + 57, - NULL -}; - -static struct itemplate *itable_22[] = { - instrux + 58, - instrux + 59, - NULL -}; - -static struct itemplate *itable_23[] = { - instrux + 60, - instrux + 61, - instrux + 62, - instrux + 63, - NULL -}; - -static struct itemplate *itable_24[] = { - instrux + 66, - NULL -}; - -static struct itemplate *itable_25[] = { - instrux + 67, - instrux + 68, - NULL -}; - -static struct itemplate *itable_26[] = { - NULL -}; - -static struct itemplate *itable_27[] = { + instrux + 181, + instrux + 182, instrux + 183, - NULL -}; - -static struct itemplate *itable_28[] = { - instrux + 937, - instrux + 938, - NULL -}; - -static struct itemplate *itable_29[] = { - instrux + 939, - instrux + 940, - instrux + 941, - instrux + 942, - NULL -}; - -static struct itemplate *itable_2A[] = { - instrux + 943, - instrux + 944, - NULL -}; - -static struct itemplate *itable_2B[] = { - instrux + 945, - instrux + 946, - instrux + 947, - instrux + 948, - NULL -}; - -static struct itemplate *itable_2C[] = { - instrux + 951, - NULL -}; - -static struct itemplate *itable_2D[] = { - instrux + 952, - instrux + 953, - NULL -}; - -static struct itemplate *itable_2E[] = { - NULL -}; - -static struct itemplate *itable_2F[] = { instrux + 184, - NULL -}; - -static struct itemplate *itable_30[] = { - instrux + 1035, - instrux + 1036, - NULL -}; - -static struct itemplate *itable_31[] = { - instrux + 1037, - instrux + 1038, - instrux + 1039, - instrux + 1040, - NULL -}; - -static struct itemplate *itable_32[] = { - instrux + 1041, - instrux + 1042, - NULL -}; - -static struct itemplate *itable_33[] = { - instrux + 1043, - instrux + 1044, - instrux + 1045, - instrux + 1046, - NULL -}; - -static struct itemplate *itable_34[] = { - instrux + 1049, - NULL -}; - -static struct itemplate *itable_35[] = { - instrux + 1050, - instrux + 1051, - NULL -}; - -static struct itemplate *itable_36[] = { - NULL -}; - -static struct itemplate *itable_37[] = { - instrux + 0, - NULL -}; - -static struct itemplate *itable_38[] = { - instrux + 141, - instrux + 142, - NULL -}; - -static struct itemplate *itable_39[] = { - instrux + 143, - instrux + 144, - instrux + 145, - instrux + 146, - NULL -}; - -static struct itemplate *itable_3A[] = { - instrux + 147, - instrux + 148, - NULL -}; - -static struct itemplate *itable_3B[] = { - instrux + 149, - instrux + 150, - instrux + 151, - instrux + 152, - NULL -}; - -static struct itemplate *itable_3C[] = { - instrux + 155, - NULL -}; - -static struct itemplate *itable_3D[] = { - instrux + 156, - instrux + 157, - NULL -}; - -static struct itemplate *itable_3E[] = { - NULL -}; - -static struct itemplate *itable_3F[] = { - instrux + 5, - NULL -}; - -static struct itemplate *itable_40[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_41[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_42[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_43[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_44[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_45[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_46[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_47[] = { - instrux + 411, - instrux + 412, - NULL -}; - -static struct itemplate *itable_48[] = { instrux + 185, instrux + 186, - NULL -}; - -static struct itemplate *itable_49[] = { - instrux + 185, - instrux + 186, - NULL -}; - -static struct itemplate *itable_4A[] = { - instrux + 185, - instrux + 186, - NULL -}; - -static struct itemplate *itable_4B[] = { - instrux + 185, - instrux + 186, - NULL -}; - -static struct itemplate *itable_4C[] = { - instrux + 185, - instrux + 186, - NULL -}; - -static struct itemplate *itable_4D[] = { - instrux + 185, - instrux + 186, - NULL -}; - -static struct itemplate *itable_4E[] = { - instrux + 185, - instrux + 186, - NULL -}; - -static struct itemplate *itable_4F[] = { - instrux + 185, - instrux + 186, - NULL -}; - -static struct itemplate *itable_50[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_51[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_52[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_53[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_54[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_55[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_56[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_57[] = { - instrux + 774, - instrux + 775, - NULL -}; - -static struct itemplate *itable_58[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_59[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_5A[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_5B[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_5C[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_5D[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_5E[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_5F[] = { - instrux + 706, - instrux + 707, - NULL -}; - -static struct itemplate *itable_60[] = { - instrux + 785, - instrux + 786, - instrux + 787, - NULL -}; - -static struct itemplate *itable_61[] = { - instrux + 712, - instrux + 713, - instrux + 714, - NULL -}; - -static struct itemplate *itable_62[] = { - instrux + 77, - instrux + 78, - NULL -}; - -static struct itemplate *itable_63[] = { - instrux + 75, - instrux + 76, - NULL -}; - -static struct itemplate *itable_64[] = { - NULL -}; - -static struct itemplate *itable_65[] = { - NULL -}; - -static struct itemplate *itable_66[] = { - instrux + 1234, - instrux + 1236, - instrux + 1238, - instrux + 1242, - instrux + 1243, - instrux + 1244, - instrux + 1245, - instrux + 1246, - instrux + 1247, - instrux + 1248, - instrux + 1249, - instrux + 1256, - instrux + 1257, - instrux + 1260, - instrux + 1261, - instrux + 1262, - instrux + 1263, - instrux + 1264, - instrux + 1265, - instrux + 1266, - instrux + 1267, - instrux + 1268, - instrux + 1269, - instrux + 1270, - instrux + 1271, - instrux + 1274, - instrux + 1275, - instrux + 1276, - instrux + 1277, - instrux + 1278, - instrux + 1279, - instrux + 1280, - instrux + 1281, - instrux + 1282, - instrux + 1283, - instrux + 1284, - instrux + 1285, - instrux + 1286, - instrux + 1287, - instrux + 1288, - instrux + 1289, - instrux + 1290, - instrux + 1291, - instrux + 1292, - instrux + 1293, - instrux + 1294, - instrux + 1295, - instrux + 1296, - instrux + 1297, - instrux + 1298, - instrux + 1299, - instrux + 1300, - instrux + 1301, - instrux + 1302, - instrux + 1303, - instrux + 1304, - instrux + 1305, - instrux + 1306, - instrux + 1307, - instrux + 1308, - instrux + 1309, - instrux + 1310, - instrux + 1311, - instrux + 1312, - instrux + 1313, - instrux + 1314, - instrux + 1315, - instrux + 1316, - instrux + 1317, - instrux + 1318, - instrux + 1319, - instrux + 1320, - instrux + 1321, - instrux + 1322, - instrux + 1323, - instrux + 1326, - instrux + 1327, - instrux + 1328, - instrux + 1329, - instrux + 1330, - instrux + 1331, - instrux + 1332, - instrux + 1333, - instrux + 1338, - instrux + 1339, - instrux + 1340, - instrux + 1341, - instrux + 1342, - instrux + 1343, - instrux + 1344, - instrux + 1345, - instrux + 1346, - instrux + 1347, - instrux + 1348, - instrux + 1349, - instrux + 1350, - instrux + 1351, - instrux + 1352, - instrux + 1353, - instrux + 1354, - instrux + 1355, - instrux + 1356, - instrux + 1357, - instrux + 1358, - instrux + 1359, - instrux + 1360, - instrux + 1361, - instrux + 1362, - instrux + 1363, - instrux + 1364, - instrux + 1365, - instrux + 1366, - instrux + 1367, - instrux + 1368, - instrux + 1369, - instrux + 1372, - instrux + 1373, - instrux + 1374, - instrux + 1375, - instrux + 1376, - instrux + 1377, - instrux + 1378, - instrux + 1379, - instrux + 1380, - instrux + 1381, - instrux + 1382, - instrux + 1383, - instrux + 1384, - instrux + 1385, - instrux + 1386, - instrux + 1387, - instrux + 1388, - instrux + 1389, - instrux + 1390, - instrux + 1391, - instrux + 1392, - instrux + 1393, - instrux + 1394, - instrux + 1395, - instrux + 1396, - instrux + 1397, - instrux + 1398, - instrux + 1399, - instrux + 1400, - instrux + 1401, - instrux + 1404, - instrux + 1405, - instrux + 1406, - instrux + 1407, - instrux + 1408, - instrux + 1409, - instrux + 1412, - instrux + 1413, - instrux + 1416, - instrux + 1417, - instrux + 1420, - instrux + 1421, - instrux + 1424, - instrux + 1425, - instrux + 1428, - instrux + 1429, - instrux + 1432, - instrux + 1433, - instrux + 1436, - instrux + 1437, - instrux + 1440, - instrux + 1441, - instrux + 1444, - instrux + 1445, - instrux + 1452, - instrux + 1453, - instrux + 1454, - instrux + 1455, - instrux + 1456, - instrux + 1457, - instrux + 1458, - instrux + 1459, - instrux + 1470, - instrux + 1471, - instrux + 1472, - instrux + 1473, - instrux + 1478, - instrux + 1479, - instrux + 1482, - instrux + 1483, - instrux + 1486, - instrux + 1487, - instrux + 1490, - instrux + 1491, - instrux + 1492, - instrux + 1493, - instrux + 1494, - instrux + 1495, - instrux + 1496, - instrux + 1497, - instrux + 1498, - instrux + 1503, - instrux + 1504, - instrux + 1505, - instrux + 1506, - instrux + 1507, - instrux + 1508, - instrux + 1511, - instrux + 1512, - instrux + 1513, - instrux + 1514, - instrux + 1515, - instrux + 1516, - instrux + 1519, - instrux + 1520, - instrux + 1523, - instrux + 1524, - instrux + 1525, - instrux + 1526, - instrux + 1527, - instrux + 1528, - instrux + 1529, - instrux + 1530, - instrux + 1531, - instrux + 1532, - instrux + 1535, - instrux + 1536, - instrux + 1539, - instrux + 1540, - NULL -}; - -static struct itemplate *itable_67[] = { - NULL -}; - -static struct itemplate *itable_68[] = { - instrux + 782, - instrux + 783, - instrux + 784, - NULL -}; - -static struct itemplate *itable_69[] = { - instrux + 394, - instrux + 396, - instrux + 398, - instrux + 400, - instrux + 402, - instrux + 404, - NULL -}; - -static struct itemplate *itable_6A[] = { - instrux + 781, - NULL -}; - -static struct itemplate *itable_6B[] = { - instrux + 393, - instrux + 395, - instrux + 397, - instrux + 399, - instrux + 401, - instrux + 403, - NULL -}; - -static struct itemplate *itable_6C[] = { - instrux + 416, - NULL -}; - -static struct itemplate *itable_6D[] = { - instrux + 417, - instrux + 418, - NULL -}; - -static struct itemplate *itable_6E[] = { - instrux + 607, - NULL -}; - -static struct itemplate *itable_6F[] = { - instrux + 608, - instrux + 609, - NULL -}; - -static struct itemplate *itable_70[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_71[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_72[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_73[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_74[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_75[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_76[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_77[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_78[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_79[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_7A[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_7B[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_7C[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_7D[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_7E[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_7F[] = { - instrux + 1066, - NULL -}; - -static struct itemplate *itable_80[] = { - instrux + 23, - instrux + 26, - instrux + 46, - instrux + 49, - instrux + 69, - instrux + 72, - instrux + 158, - instrux + 161, - instrux + 595, - instrux + 598, - instrux + 872, - instrux + 875, - instrux + 954, - instrux + 957, - instrux + 1052, - instrux + 1055, - NULL -}; - -static struct itemplate *itable_81[] = { - instrux + 24, - instrux + 25, - instrux + 27, - instrux + 28, - instrux + 47, - instrux + 48, - instrux + 50, - instrux + 51, - instrux + 70, - instrux + 71, - instrux + 73, - instrux + 74, - instrux + 159, - instrux + 160, - instrux + 162, - instrux + 163, - instrux + 596, - instrux + 597, - instrux + 599, - instrux + 600, - instrux + 873, - instrux + 874, - instrux + 876, - instrux + 877, - instrux + 955, - instrux + 956, - instrux + 958, - instrux + 959, - instrux + 1053, - instrux + 1054, - instrux + 1056, - instrux + 1057, - NULL -}; - -static struct itemplate *itable_82[] = { - NULL -}; - -static struct itemplate *itable_83[] = { - instrux + 18, - instrux + 19, - instrux + 41, - instrux + 42, - instrux + 64, - instrux + 65, - instrux + 153, - instrux + 154, - instrux + 590, - instrux + 591, - instrux + 867, - instrux + 868, - instrux + 949, - instrux + 950, - instrux + 1047, - instrux + 1048, - NULL -}; - -static struct itemplate *itable_84[] = { - instrux + 967, - instrux + 968, - instrux + 973, - NULL -}; - -static struct itemplate *itable_85[] = { - instrux + 969, - instrux + 970, - instrux + 971, - instrux + 972, - instrux + 974, - instrux + 975, - NULL -}; - -static struct itemplate *itable_86[] = { - instrux + 1021, - instrux + 1022, - instrux + 1027, - instrux + 1028, - NULL -}; - -static struct itemplate *itable_87[] = { - instrux + 1023, - instrux + 1024, - instrux + 1025, - instrux + 1026, - instrux + 1029, - instrux + 1030, - instrux + 1031, - instrux + 1032, - NULL -}; - -static struct itemplate *itable_88[] = { + instrux + 254, + instrux + 255, + instrux + 256, + instrux + 494, + instrux + 495, + instrux + 496, + instrux + 526, instrux + 527, instrux + 528, - NULL -}; - -static struct itemplate *itable_89[] = { instrux + 529, instrux + 530, instrux + 531, instrux + 532, - NULL -}; - -static struct itemplate *itable_8A[] = { instrux + 533, instrux + 534, - NULL -}; - -static struct itemplate *itable_8B[] = { instrux + 535, instrux + 536, instrux + 537, instrux + 538, - NULL -}; - -static struct itemplate *itable_8C[] = { - instrux + 509, - instrux + 510, - instrux + 511, - NULL -}; - -static struct itemplate *itable_8D[] = { - instrux + 462, - instrux + 463, - NULL -}; - -static struct itemplate *itable_8E[] = { - instrux + 512, - instrux + 513, - instrux + 514, - NULL -}; - -static struct itemplate *itable_8F[] = { - instrux + 708, - instrux + 709, - NULL -}; - -static struct itemplate *itable_90[] = { - instrux + 574, - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - instrux + 1239, - NULL -}; - -static struct itemplate *itable_91[] = { - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - NULL -}; - -static struct itemplate *itable_92[] = { - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - NULL -}; - -static struct itemplate *itable_93[] = { - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - NULL -}; - -static struct itemplate *itable_94[] = { - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - NULL -}; - -static struct itemplate *itable_95[] = { - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - NULL -}; - -static struct itemplate *itable_96[] = { - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - NULL -}; - -static struct itemplate *itable_97[] = { - instrux + 1017, - instrux + 1018, - instrux + 1019, - instrux + 1020, - NULL -}; - -static struct itemplate *itable_98[] = { - instrux + 134, - instrux + 182, - NULL -}; - -static struct itemplate *itable_99[] = { - instrux + 135, - instrux + 181, - NULL -}; - -static struct itemplate *itable_9A[] = { - instrux + 118, - instrux + 119, - instrux + 120, - instrux + 121, - instrux + 122, - NULL -}; - -static struct itemplate *itable_9B[] = { - instrux + 212, - instrux + 244, - instrux + 262, - instrux + 281, - instrux + 331, - instrux + 340, - instrux + 341, - instrux + 346, - instrux + 347, - instrux + 1006, - instrux + 1007, - NULL -}; - -static struct itemplate *itable_9C[] = { - instrux + 788, - instrux + 789, - instrux + 790, - NULL -}; - -static struct itemplate *itable_9D[] = { - instrux + 715, - instrux + 716, - instrux + 717, - NULL -}; - -static struct itemplate *itable_9E[] = { - instrux + 844, - NULL -}; - -static struct itemplate *itable_9F[] = { - instrux + 455, - NULL -}; - -static struct itemplate *itable_A0[] = { - instrux + 515, - NULL -}; - -static struct itemplate *itable_A1[] = { - instrux + 516, - instrux + 517, - NULL -}; - -static struct itemplate *itable_A2[] = { - instrux + 518, - NULL -}; - -static struct itemplate *itable_A3[] = { - instrux + 519, - instrux + 520, - NULL -}; - -static struct itemplate *itable_A4[] = { - instrux + 556, - NULL -}; - -static struct itemplate *itable_A5[] = { - instrux + 557, - instrux + 558, - NULL -}; - -static struct itemplate *itable_A6[] = { - instrux + 164, - NULL -}; - -static struct itemplate *itable_A7[] = { - instrux + 165, - instrux + 166, - NULL -}; - -static struct itemplate *itable_A8[] = { - instrux + 976, - NULL -}; - -static struct itemplate *itable_A9[] = { - instrux + 977, - instrux + 978, - NULL -}; - -static struct itemplate *itable_AA[] = { - instrux + 930, - NULL -}; - -static struct itemplate *itable_AB[] = { - instrux + 931, - instrux + 932, - NULL -}; - -static struct itemplate *itable_AC[] = { - instrux + 481, - NULL -}; - -static struct itemplate *itable_AD[] = { - instrux + 482, - instrux + 483, - NULL -}; - -static struct itemplate *itable_AE[] = { - instrux + 878, - NULL -}; - -static struct itemplate *itable_AF[] = { - instrux + 879, - instrux + 880, - NULL -}; - -static struct itemplate *itable_B0[] = { instrux + 539, - NULL -}; - -static struct itemplate *itable_B1[] = { - instrux + 539, - NULL -}; - -static struct itemplate *itable_B2[] = { - instrux + 539, - NULL -}; - -static struct itemplate *itable_B3[] = { - instrux + 539, - NULL -}; - -static struct itemplate *itable_B4[] = { - instrux + 539, - NULL -}; - -static struct itemplate *itable_B5[] = { - instrux + 539, - NULL -}; - -static struct itemplate *itable_B6[] = { - instrux + 539, - NULL -}; - -static struct itemplate *itable_B7[] = { - instrux + 539, - NULL -}; - -static struct itemplate *itable_B8[] = { instrux + 540, instrux + 541, - NULL + instrux + 863, + instrux + 864, + instrux + 865, }; -static struct itemplate *itable_B9[] = { - instrux + 540, - instrux + 541, - NULL +static const struct itemplate * const itable_vex01010[] = { + instrux + 2350, }; -static struct itemplate *itable_BA[] = { - instrux + 540, - instrux + 541, - NULL +static const struct itemplate * const itable_vex01011[] = { + instrux + 2351, }; -static struct itemplate *itable_BB[] = { - instrux + 540, - instrux + 541, - NULL +static const struct itemplate * const itable_vex01012[] = { + instrux + 2298, + instrux + 2299, + instrux + 2311, + instrux + 2312, }; -static struct itemplate *itable_BC[] = { - instrux + 540, - instrux + 541, - NULL +static const struct itemplate * const itable_vex01013[] = { + instrux + 2313, }; -static struct itemplate *itable_BD[] = { - instrux + 540, - instrux + 541, - NULL +static const struct itemplate * const itable_vex01014[] = { + instrux + 2729, + instrux + 2730, }; -static struct itemplate *itable_BE[] = { - instrux + 540, - instrux + 541, - NULL +static const struct itemplate * const itable_vex01015[] = { + instrux + 2721, + instrux + 2722, }; -static struct itemplate *itable_BF[] = { - instrux + 540, - instrux + 541, - NULL +static const struct itemplate * const itable_vex01016[] = { + instrux + 2303, + instrux + 2304, + instrux + 2306, + instrux + 2307, }; -static struct itemplate *itable_C0[] = { - instrux + 795, - instrux + 804, - instrux + 824, - instrux + 833, - instrux + 848, - instrux + 884, - instrux + 901, - NULL +static const struct itemplate * const itable_vex01017[] = { + instrux + 2305, }; -static struct itemplate *itable_C1[] = { - instrux + 798, - instrux + 801, - instrux + 807, - instrux + 810, - instrux + 827, - instrux + 830, - instrux + 836, - instrux + 839, - instrux + 851, - instrux + 854, - instrux + 887, - instrux + 890, - instrux + 904, - instrux + 907, - NULL +static const struct itemplate * const itable_vex01028[] = { + instrux + 2274, }; -static struct itemplate *itable_C2[] = { - instrux + 817, - instrux + 821, - NULL +static const struct itemplate * const itable_vex01029[] = { + instrux + 2275, }; -static struct itemplate *itable_C3[] = { - instrux + 816, - instrux + 820, - NULL +static const struct itemplate * const itable_vex0102B[] = { + instrux + 2328, }; -static struct itemplate *itable_C4[] = { - instrux + 465, - instrux + 466, - NULL +static const struct itemplate * const itable_vex0102E[] = { + instrux + 2716, }; -static struct itemplate *itable_C5[] = { - instrux + 460, - instrux + 461, - NULL +static const struct itemplate * const itable_vex0102F[] = { + instrux + 2151, }; -static struct itemplate *itable_C6[] = { - instrux + 542, - instrux + 545, - NULL +static const struct itemplate * const itable_vex01050[] = { + instrux + 2318, + instrux + 2319, }; -static struct itemplate *itable_C7[] = { - instrux + 543, - instrux + 544, - instrux + 546, - instrux + 547, - NULL +static const struct itemplate * const itable_vex01051[] = { + instrux + 2692, }; -static struct itemplate *itable_C8[] = { - instrux + 194, - NULL +static const struct itemplate * const itable_vex01052[] = { + instrux + 2670, }; -static struct itemplate *itable_C9[] = { - instrux + 464, - NULL +static const struct itemplate * const itable_vex01053[] = { + instrux + 2666, }; -static struct itemplate *itable_CA[] = { - instrux + 819, - NULL +static const struct itemplate * const itable_vex01054[] = { + instrux + 1722, + instrux + 1723, }; -static struct itemplate *itable_CB[] = { - instrux + 818, - NULL +static const struct itemplate * const itable_vex01055[] = { + instrux + 1730, + instrux + 1731, }; -static struct itemplate *itable_CC[] = { - instrux + 421, - NULL +static const struct itemplate * const itable_vex01056[] = { + instrux + 2372, + instrux + 2373, }; -static struct itemplate *itable_CD[] = { - instrux + 419, - NULL +static const struct itemplate * const itable_vex01057[] = { + instrux + 2737, + instrux + 2738, }; -static struct itemplate *itable_CE[] = { - instrux + 422, - NULL -}; - -static struct itemplate *itable_CF[] = { - instrux + 425, - instrux + 426, - instrux + 427, - NULL -}; - -static struct itemplate *itable_D0[] = { - instrux + 793, - instrux + 802, - instrux + 822, - instrux + 831, - instrux + 846, - instrux + 882, - instrux + 899, - NULL -}; - -static struct itemplate *itable_D1[] = { - instrux + 796, - instrux + 799, - instrux + 805, - instrux + 808, - instrux + 825, - instrux + 828, - instrux + 834, - instrux + 837, - instrux + 849, - instrux + 852, - instrux + 885, - instrux + 888, - instrux + 902, - instrux + 905, - NULL -}; - -static struct itemplate *itable_D2[] = { - instrux + 794, - instrux + 803, - instrux + 823, - instrux + 832, - instrux + 847, - instrux + 883, - instrux + 900, - NULL -}; - -static struct itemplate *itable_D3[] = { - instrux + 797, - instrux + 800, - instrux + 806, - instrux + 809, - instrux + 826, - instrux + 829, - instrux + 835, - instrux + 838, - instrux + 850, - instrux + 853, - instrux + 886, - instrux + 889, - instrux + 903, - instrux + 906, - NULL -}; - -static struct itemplate *itable_D4[] = { - instrux + 3, - instrux + 4, - NULL -}; - -static struct itemplate *itable_D5[] = { - instrux + 1, - instrux + 2, - NULL -}; - -static struct itemplate *itable_D6[] = { - instrux + 845, - NULL -}; - -static struct itemplate *itable_D7[] = { - instrux + 1033, - instrux + 1034, - NULL -}; - -static struct itemplate *itable_D8[] = { - instrux + 199, - instrux + 202, - instrux + 204, - instrux + 229, - instrux + 231, - instrux + 232, - instrux + 237, - instrux + 239, - instrux + 240, - instrux + 245, - instrux + 249, - instrux + 250, - instrux + 253, - instrux + 257, - instrux + 258, - instrux + 307, - instrux + 311, - instrux + 312, - instrux + 348, - instrux + 352, - instrux + 353, - instrux + 356, - instrux + 360, - instrux + 361, - NULL -}; - -static struct itemplate *itable_D9[] = { - instrux + 197, - instrux + 198, - instrux + 211, - instrux + 242, - instrux + 243, - instrux + 280, - instrux + 294, - instrux + 297, - instrux + 298, - instrux + 299, - instrux + 300, - instrux + 301, - instrux + 302, - instrux + 303, - instrux + 304, - instrux + 305, - instrux + 306, - instrux + 319, - instrux + 321, - instrux + 322, - instrux + 325, - instrux + 326, - instrux + 327, - instrux + 328, - instrux + 329, - instrux + 332, - instrux + 334, - instrux + 335, - instrux + 336, - instrux + 337, - instrux + 342, - instrux + 364, - instrux + 374, - instrux + 375, - instrux + 376, - instrux + 377, - instrux + 378, - instrux + 379, - instrux + 380, - instrux + 381, - NULL -}; - -static struct itemplate *itable_DA[] = { - instrux + 213, - instrux + 214, - instrux + 215, - instrux + 216, - instrux + 217, - instrux + 218, - instrux + 227, - instrux + 228, - instrux + 265, - instrux + 267, - instrux + 269, - instrux + 271, - instrux + 273, - instrux + 278, - instrux + 290, - instrux + 292, - instrux + 373, - NULL -}; - -static struct itemplate *itable_DB[] = { - instrux + 219, - instrux + 220, - instrux + 221, - instrux + 222, - instrux + 223, - instrux + 224, - instrux + 225, - instrux + 226, - instrux + 233, - instrux + 234, - instrux + 275, - instrux + 282, - instrux + 284, - instrux + 288, - instrux + 296, - instrux + 315, - instrux + 316, - instrux + 317, - instrux + 318, - instrux + 333, - instrux + 344, - instrux + 367, - instrux + 368, - NULL -}; - -static struct itemplate *itable_DC[] = { - instrux + 200, - instrux + 201, - instrux + 203, - instrux + 230, - instrux + 238, - instrux + 246, - instrux + 247, - instrux + 248, - instrux + 254, - instrux + 255, - instrux + 256, - instrux + 308, - instrux + 309, - instrux + 310, - instrux + 349, - instrux + 350, - instrux + 351, - instrux + 357, - instrux + 358, - instrux + 359, - NULL -}; - -static struct itemplate *itable_DD[] = { - instrux + 263, - instrux + 287, - instrux + 295, - instrux + 320, - instrux + 323, - instrux + 330, - instrux + 338, - instrux + 339, - instrux + 343, - instrux + 345, - instrux + 365, - instrux + 366, - instrux + 371, - instrux + 372, - NULL -}; - -static struct itemplate *itable_DE[] = { - instrux + 205, - instrux + 206, - instrux + 241, - instrux + 251, - instrux + 252, - instrux + 259, - instrux + 260, - instrux + 266, - instrux + 268, - instrux + 270, - instrux + 272, - instrux + 274, - instrux + 279, - instrux + 291, - instrux + 293, - instrux + 313, - instrux + 314, - instrux + 354, - instrux + 355, - instrux + 362, - instrux + 363, - NULL -}; - -static struct itemplate *itable_DF[] = { - instrux + 207, - instrux + 208, - instrux + 209, - instrux + 210, - instrux + 235, - instrux + 236, - instrux + 264, - instrux + 276, - instrux + 277, - instrux + 283, - instrux + 285, - instrux + 286, - instrux + 289, - instrux + 324, - instrux + 369, - instrux + 370, - NULL -}; - -static struct itemplate *itable_E0[] = { - instrux + 490, - instrux + 491, - instrux + 492, - instrux + 493, - instrux + 494, - instrux + 495, - NULL -}; - -static struct itemplate *itable_E1[] = { - instrux + 487, - instrux + 488, - instrux + 489, - instrux + 496, - instrux + 497, - instrux + 498, - NULL -}; - -static struct itemplate *itable_E2[] = { - instrux + 484, - instrux + 485, - instrux + 486, - NULL -}; - -static struct itemplate *itable_E3[] = { - instrux + 428, - instrux + 429, - NULL -}; - -static struct itemplate *itable_E4[] = { - instrux + 405, - NULL -}; - -static struct itemplate *itable_E5[] = { - instrux + 406, - instrux + 407, - NULL -}; - -static struct itemplate *itable_E6[] = { - instrux + 601, - NULL -}; - -static struct itemplate *itable_E7[] = { - instrux + 602, - instrux + 603, - NULL -}; - -static struct itemplate *itable_E8[] = { - instrux + 112, - instrux + 113, - instrux + 114, - instrux + 115, - instrux + 116, - instrux + 117, - NULL -}; - -static struct itemplate *itable_E9[] = { - instrux + 431, - instrux + 432, - instrux + 433, - NULL -}; - -static struct itemplate *itable_EA[] = { - instrux + 434, - instrux + 435, - instrux + 436, - instrux + 437, - instrux + 438, - NULL -}; - -static struct itemplate *itable_EB[] = { - instrux + 430, - NULL -}; - -static struct itemplate *itable_EC[] = { - instrux + 408, - NULL -}; - -static struct itemplate *itable_ED[] = { - instrux + 409, - instrux + 410, - NULL -}; - -static struct itemplate *itable_EE[] = { - instrux + 604, - NULL -}; - -static struct itemplate *itable_EF[] = { - instrux + 605, - instrux + 606, - NULL -}; - -static struct itemplate *itable_F0[] = { - NULL -}; - -static struct itemplate *itable_F1[] = { - instrux + 420, - instrux + 921, - NULL -}; - -static struct itemplate *itable_F2[] = { - instrux + 1254, - instrux + 1336, - instrux + 1337, - instrux + 1402, - instrux + 1403, - instrux + 1410, - instrux + 1411, - instrux + 1414, - instrux + 1415, - instrux + 1418, - instrux + 1419, - instrux + 1422, - instrux + 1423, - instrux + 1426, - instrux + 1427, - instrux + 1430, - instrux + 1431, - instrux + 1434, - instrux + 1435, - instrux + 1438, - instrux + 1439, - instrux + 1442, - instrux + 1443, - instrux + 1450, - instrux + 1451, - instrux + 1462, - instrux + 1463, - instrux + 1464, - instrux + 1465, - instrux + 1466, - instrux + 1467, - instrux + 1476, - instrux + 1477, - instrux + 1480, - instrux + 1481, - instrux + 1484, - instrux + 1485, - instrux + 1488, - instrux + 1489, - instrux + 1499, - instrux + 1500, - instrux + 1501, - instrux + 1502, - instrux + 1509, - instrux + 1510, - instrux + 1517, - instrux + 1518, - instrux + 1521, - instrux + 1522, - instrux + 1533, - instrux + 1534, - instrux + 1537, - instrux + 1538, - instrux + 1541, - instrux + 1542, - instrux + 1543, - instrux + 1544, - instrux + 1545, - NULL -}; - -static struct itemplate *itable_F3[] = { - instrux + 1546, - instrux + 1547, - instrux + 1548, - instrux + 1549, - NULL -}; - -static struct itemplate *itable_F4[] = { - instrux + 382, - NULL -}; - -static struct itemplate *itable_F5[] = { - instrux + 140, - NULL -}; - -static struct itemplate *itable_F6[] = { - instrux + 190, - instrux + 383, - instrux + 386, - instrux + 567, - instrux + 571, - instrux + 575, - instrux + 979, - instrux + 982, - NULL -}; - -static struct itemplate *itable_F7[] = { - instrux + 191, - instrux + 192, - instrux + 384, - instrux + 385, - instrux + 387, - instrux + 388, - instrux + 568, - instrux + 569, - instrux + 572, - instrux + 573, - instrux + 576, - instrux + 577, - instrux + 980, - instrux + 981, - instrux + 983, - instrux + 984, - NULL -}; - -static struct itemplate *itable_F8[] = { - instrux + 136, - NULL -}; - -static struct itemplate *itable_F9[] = { - instrux + 927, - NULL -}; - -static struct itemplate *itable_FA[] = { - instrux + 138, - NULL -}; - -static struct itemplate *itable_FB[] = { - instrux + 929, - NULL -}; - -static struct itemplate *itable_FC[] = { - instrux + 137, - NULL -}; - -static struct itemplate *itable_FD[] = { - instrux + 928, - NULL -}; - -static struct itemplate *itable_FE[] = { - instrux + 187, - instrux + 413, - NULL -}; - -static struct itemplate *itable_FF[] = { - instrux + 123, - instrux + 124, - instrux + 125, - instrux + 126, - instrux + 127, - instrux + 128, - instrux + 129, - instrux + 130, - instrux + 131, - instrux + 132, - instrux + 133, - instrux + 188, - instrux + 189, - instrux + 414, - instrux + 415, - instrux + 439, - instrux + 440, - instrux + 441, - instrux + 442, - instrux + 443, - instrux + 444, - instrux + 445, - instrux + 446, - instrux + 447, - instrux + 448, - instrux + 449, - instrux + 776, - instrux + 777, - NULL -}; - -struct itemplate **itable[] = { - itable_00, - itable_01, - itable_02, - itable_03, - itable_04, - itable_05, - itable_06, - itable_07, - itable_08, - itable_09, - itable_0A, - itable_0B, - itable_0C, - itable_0D, - itable_0E, - itable_0F, - itable_10, - itable_11, - itable_12, - itable_13, - itable_14, - itable_15, - itable_16, - itable_17, - itable_18, - itable_19, - itable_1A, - itable_1B, - itable_1C, - itable_1D, - itable_1E, - itable_1F, - itable_20, - itable_21, - itable_22, - itable_23, - itable_24, - itable_25, - itable_26, - itable_27, - itable_28, - itable_29, - itable_2A, - itable_2B, - itable_2C, - itable_2D, - itable_2E, - itable_2F, - itable_30, - itable_31, - itable_32, - itable_33, - itable_34, - itable_35, - itable_36, - itable_37, - itable_38, - itable_39, - itable_3A, - itable_3B, - itable_3C, - itable_3D, - itable_3E, - itable_3F, - itable_40, - itable_41, - itable_42, - itable_43, - itable_44, - itable_45, - itable_46, - itable_47, - itable_48, - itable_49, - itable_4A, - itable_4B, - itable_4C, - itable_4D, - itable_4E, - itable_4F, - itable_50, - itable_51, - itable_52, - itable_53, - itable_54, - itable_55, - itable_56, - itable_57, - itable_58, - itable_59, - itable_5A, - itable_5B, - itable_5C, - itable_5D, - itable_5E, - itable_5F, - itable_60, - itable_61, - itable_62, - itable_63, - itable_64, - itable_65, - itable_66, - itable_67, - itable_68, - itable_69, - itable_6A, - itable_6B, - itable_6C, - itable_6D, - itable_6E, - itable_6F, - itable_70, - itable_71, - itable_72, - itable_73, - itable_74, - itable_75, - itable_76, - itable_77, - itable_78, - itable_79, - itable_7A, - itable_7B, - itable_7C, - itable_7D, - itable_7E, - itable_7F, - itable_80, - itable_81, - itable_82, - itable_83, - itable_84, - itable_85, - itable_86, - itable_87, - itable_88, - itable_89, - itable_8A, - itable_8B, - itable_8C, - itable_8D, - itable_8E, - itable_8F, - itable_90, - itable_91, - itable_92, - itable_93, - itable_94, - itable_95, - itable_96, - itable_97, - itable_98, - itable_99, - itable_9A, - itable_9B, - itable_9C, - itable_9D, - itable_9E, - itable_9F, - itable_A0, - itable_A1, - itable_A2, - itable_A3, - itable_A4, - itable_A5, - itable_A6, - itable_A7, - itable_A8, - itable_A9, - itable_AA, - itable_AB, - itable_AC, - itable_AD, - itable_AE, - itable_AF, - itable_B0, - itable_B1, - itable_B2, - itable_B3, - itable_B4, - itable_B5, - itable_B6, - itable_B7, - itable_B8, - itable_B9, - itable_BA, - itable_BB, - itable_BC, - itable_BD, - itable_BE, - itable_BF, - itable_C0, - itable_C1, - itable_C2, - itable_C3, - itable_C4, - itable_C5, - itable_C6, - itable_C7, - itable_C8, - itable_C9, - itable_CA, - itable_CB, - itable_CC, - itable_CD, - itable_CE, - itable_CF, - itable_D0, - itable_D1, - itable_D2, - itable_D3, - itable_D4, - itable_D5, - itable_D6, - itable_D7, - itable_D8, - itable_D9, - itable_DA, - itable_DB, - itable_DC, - itable_DD, - itable_DE, - itable_DF, - itable_E0, - itable_E1, - itable_E2, - itable_E3, - itable_E4, - itable_E5, - itable_E6, - itable_E7, - itable_E8, - itable_E9, - itable_EA, - itable_EB, - itable_EC, - itable_ED, - itable_EE, - itable_EF, - itable_F0, - itable_F1, - itable_F2, - itable_F3, - itable_F4, - itable_F5, - itable_F6, - itable_F7, - itable_F8, - itable_F9, - itable_FA, - itable_FB, - itable_FC, - itable_FD, - itable_FE, - itable_FF, +static const struct itemplate * const itable_vex01058[] = { + instrux + 1702, + instrux + 1703, +}; + +static const struct itemplate * const itable_vex01059[] = { + instrux + 2360, + instrux + 2361, +}; + +static const struct itemplate * const itable_vex0105A[] = { + instrux + 2166, +}; + +static const struct itemplate * const itable_vex0105B[] = { + instrux + 2154, +}; + +static const struct itemplate * const itable_vex0105C[] = { + instrux + 2703, + instrux + 2704, +}; + +static const struct itemplate * const itable_vex0105D[] = { + instrux + 2262, + instrux + 2263, +}; + +static const struct itemplate * const itable_vex0105E[] = { + instrux + 2198, + instrux + 2199, +}; + +static const struct itemplate * const itable_vex0105F[] = { + instrux + 2250, + instrux + 2251, +}; + +static const struct itemplate * const itable_vex01077[] = { + instrux + 2742, +}; + +static const struct itemplate * const itable_vex010AE[] = { + instrux + 2236, + instrux + 2698, +}; + +static const struct itemplate * const itable_vex010C2[] = { + instrux + 1886, + instrux + 1887, + instrux + 1890, + instrux + 1891, + instrux + 1894, + instrux + 1895, + instrux + 1898, + instrux + 1899, + instrux + 1902, + instrux + 1903, + instrux + 1906, + instrux + 1907, + instrux + 1910, + instrux + 1911, + instrux + 1914, + instrux + 1915, + instrux + 1918, + instrux + 1919, + instrux + 1922, + instrux + 1923, + instrux + 1926, + instrux + 1927, + instrux + 1930, + instrux + 1931, + instrux + 1934, + instrux + 1935, + instrux + 1938, + instrux + 1939, + instrux + 1942, + instrux + 1943, + instrux + 1946, + instrux + 1947, + instrux + 1950, + instrux + 1951, + instrux + 1954, + instrux + 1955, + instrux + 1958, + instrux + 1959, + instrux + 1962, + instrux + 1963, + instrux + 1966, + instrux + 1967, + instrux + 1970, + instrux + 1971, + instrux + 1974, + instrux + 1975, + instrux + 1978, + instrux + 1979, + instrux + 1982, + instrux + 1983, + instrux + 1986, + instrux + 1987, + instrux + 1990, + instrux + 1991, + instrux + 1994, + instrux + 1995, + instrux + 1998, + instrux + 1999, + instrux + 2002, + instrux + 2003, + instrux + 2006, + instrux + 2007, + instrux + 2010, + instrux + 2011, + instrux + 2014, + instrux + 2015, +}; + +static const struct itemplate * const itable_vex010C6[] = { + instrux + 2686, + instrux + 2687, +}; + +static const struct itemplate * const itable_vex01110[] = { + instrux + 2346, +}; + +static const struct itemplate * const itable_vex01111[] = { + instrux + 2347, +}; + +static const struct itemplate * const itable_vex01112[] = { + instrux + 2308, + instrux + 2309, +}; + +static const struct itemplate * const itable_vex01113[] = { + instrux + 2310, +}; + +static const struct itemplate * const itable_vex01114[] = { + instrux + 2725, + instrux + 2726, +}; + +static const struct itemplate * const itable_vex01115[] = { + instrux + 2717, + instrux + 2718, +}; + +static const struct itemplate * const itable_vex01116[] = { + instrux + 2300, + instrux + 2301, +}; + +static const struct itemplate * const itable_vex01117[] = { + instrux + 2302, +}; + +static const struct itemplate * const itable_vex01128[] = { + instrux + 2270, +}; + +static const struct itemplate * const itable_vex01129[] = { + instrux + 2271, + instrux + 2427, + instrux + 2428, +}; + +static const struct itemplate * const itable_vex0112B[] = { + instrux + 2326, +}; + +static const struct itemplate * const itable_vex0112E[] = { + instrux + 2715, +}; + +static const struct itemplate * const itable_vex0112F[] = { + instrux + 2150, +}; + +static const struct itemplate * const itable_vex01137[] = { + instrux + 2435, + instrux + 2436, +}; + +static const struct itemplate * const itable_vex01150[] = { + instrux + 2314, + instrux + 2315, +}; + +static const struct itemplate * const itable_vex01151[] = { + instrux + 2690, +}; + +static const struct itemplate * const itable_vex01154[] = { + instrux + 1718, + instrux + 1719, +}; + +static const struct itemplate * const itable_vex01155[] = { + instrux + 1726, + instrux + 1727, +}; + +static const struct itemplate * const itable_vex01156[] = { + instrux + 2368, + instrux + 2369, +}; + +static const struct itemplate * const itable_vex01157[] = { + instrux + 2733, + instrux + 2734, +}; + +static const struct itemplate * const itable_vex01158[] = { + instrux + 1698, + instrux + 1699, +}; + +static const struct itemplate * const itable_vex01159[] = { + instrux + 2356, + instrux + 2357, +}; + +static const struct itemplate * const itable_vex0115A[] = { + instrux + 2160, + instrux + 2161, +}; + +static const struct itemplate * const itable_vex0115B[] = { + instrux + 2164, +}; + +static const struct itemplate * const itable_vex0115C[] = { + instrux + 2699, + instrux + 2700, +}; + +static const struct itemplate * const itable_vex0115D[] = { + instrux + 2258, + instrux + 2259, +}; + +static const struct itemplate * const itable_vex0115E[] = { + instrux + 2194, + instrux + 2195, +}; + +static const struct itemplate * const itable_vex0115F[] = { + instrux + 2246, + instrux + 2247, +}; + +static const struct itemplate * const itable_vex01160[] = { + instrux + 2656, + instrux + 2657, +}; + +static const struct itemplate * const itable_vex01161[] = { + instrux + 2658, + instrux + 2659, +}; + +static const struct itemplate * const itable_vex01162[] = { + instrux + 2660, + instrux + 2661, +}; + +static const struct itemplate * const itable_vex01163[] = { + instrux + 2379, + instrux + 2380, +}; + +static const struct itemplate * const itable_vex01164[] = { + instrux + 2429, + instrux + 2430, +}; + +static const struct itemplate * const itable_vex01165[] = { + instrux + 2431, + instrux + 2432, +}; + +static const struct itemplate * const itable_vex01166[] = { + instrux + 2433, + instrux + 2434, +}; + +static const struct itemplate * const itable_vex01167[] = { + instrux + 2383, + instrux + 2384, +}; + +static const struct itemplate * const itable_vex01168[] = { + instrux + 2648, + instrux + 2649, +}; + +static const struct itemplate * const itable_vex01169[] = { + instrux + 2650, + instrux + 2651, +}; + +static const struct itemplate * const itable_vex0116A[] = { + instrux + 2652, + instrux + 2653, +}; + +static const struct itemplate * const itable_vex0116B[] = { + instrux + 2381, + instrux + 2382, +}; + +static const struct itemplate * const itable_vex0116C[] = { + instrux + 2662, + instrux + 2663, +}; + +static const struct itemplate * const itable_vex0116D[] = { + instrux + 2654, + instrux + 2655, +}; + +static const struct itemplate * const itable_vex0116E[] = { + instrux + 2280, + instrux + 2282, +}; + +static const struct itemplate * const itable_vex0116F[] = { + instrux + 2286, +}; + +static const struct itemplate * const itable_vex01170[] = { + instrux + 2585, +}; + +static const struct itemplate * const itable_vex01171[] = { + instrux + 2600, + instrux + 2601, + instrux + 2612, + instrux + 2613, + instrux + 2620, + instrux + 2621, +}; + +static const struct itemplate * const itable_vex01172[] = { + instrux + 2604, + instrux + 2605, + instrux + 2616, + instrux + 2617, + instrux + 2624, + instrux + 2625, +}; + +static const struct itemplate * const itable_vex01173[] = { + instrux + 2594, + instrux + 2595, + instrux + 2596, + instrux + 2597, + instrux + 2608, + instrux + 2609, + instrux + 2628, + instrux + 2629, +}; + +static const struct itemplate * const itable_vex01174[] = { + instrux + 2421, + instrux + 2422, +}; + +static const struct itemplate * const itable_vex01175[] = { + instrux + 2423, + instrux + 2424, +}; + +static const struct itemplate * const itable_vex01176[] = { + instrux + 2425, + instrux + 2426, +}; + +static const struct itemplate * const itable_vex0117C[] = { + instrux + 2214, + instrux + 2215, +}; + +static const struct itemplate * const itable_vex0117D[] = { + instrux + 2222, + instrux + 2223, +}; + +static const struct itemplate * const itable_vex0117E[] = { + instrux + 2281, + instrux + 2283, +}; + +static const struct itemplate * const itable_vex0117F[] = { + instrux + 2287, +}; + +static const struct itemplate * const itable_vex011C2[] = { + instrux + 1754, + instrux + 1755, + instrux + 1758, + instrux + 1759, + instrux + 1762, + instrux + 1763, + instrux + 1766, + instrux + 1767, + instrux + 1770, + instrux + 1771, + instrux + 1774, + instrux + 1775, + instrux + 1778, + instrux + 1779, + instrux + 1782, + instrux + 1783, + instrux + 1786, + instrux + 1787, + instrux + 1790, + instrux + 1791, + instrux + 1794, + instrux + 1795, + instrux + 1798, + instrux + 1799, + instrux + 1802, + instrux + 1803, + instrux + 1806, + instrux + 1807, + instrux + 1810, + instrux + 1811, + instrux + 1814, + instrux + 1815, + instrux + 1818, + instrux + 1819, + instrux + 1822, + instrux + 1823, + instrux + 1826, + instrux + 1827, + instrux + 1830, + instrux + 1831, + instrux + 1834, + instrux + 1835, + instrux + 1838, + instrux + 1839, + instrux + 1842, + instrux + 1843, + instrux + 1846, + instrux + 1847, + instrux + 1850, + instrux + 1851, + instrux + 1854, + instrux + 1855, + instrux + 1858, + instrux + 1859, + instrux + 1862, + instrux + 1863, + instrux + 1866, + instrux + 1867, + instrux + 1870, + instrux + 1871, + instrux + 1874, + instrux + 1875, + instrux + 1878, + instrux + 1879, + instrux + 1882, + instrux + 1883, +}; + +static const struct itemplate * const itable_vex011C4[] = { + instrux + 2509, + instrux + 2510, + instrux + 2511, + instrux + 2512, + instrux + 2513, + instrux + 2514, +}; + +static const struct itemplate * const itable_vex011C5[] = { + instrux + 2481, + instrux + 2482, + instrux + 2483, +}; + +static const struct itemplate * const itable_vex011C6[] = { + instrux + 2682, + instrux + 2683, +}; + +static const struct itemplate * const itable_vex011D0[] = { + instrux + 1710, + instrux + 1711, +}; + +static const struct itemplate * const itable_vex011D1[] = { + instrux + 2618, + instrux + 2619, +}; + +static const struct itemplate * const itable_vex011D2[] = { + instrux + 2622, + instrux + 2623, +}; + +static const struct itemplate * const itable_vex011D3[] = { + instrux + 2626, + instrux + 2627, +}; + +static const struct itemplate * const itable_vex011D4[] = { + instrux + 2393, + instrux + 2394, +}; + +static const struct itemplate * const itable_vex011D5[] = { + instrux + 2571, + instrux + 2572, +}; + +static const struct itemplate * const itable_vex011D6[] = { + instrux + 2279, +}; + +static const struct itemplate * const itable_vex011D7[] = { + instrux + 2551, + instrux + 2552, +}; + +static const struct itemplate * const itable_vex011D8[] = { + instrux + 2644, + instrux + 2645, +}; + +static const struct itemplate * const itable_vex011D9[] = { + instrux + 2646, + instrux + 2647, +}; + +static const struct itemplate * const itable_vex011DA[] = { + instrux + 2545, + instrux + 2546, +}; + +static const struct itemplate * const itable_vex011DB[] = { + instrux + 2405, + instrux + 2406, +}; + +static const struct itemplate * const itable_vex011DC[] = { + instrux + 2399, + instrux + 2400, +}; + +static const struct itemplate * const itable_vex011DD[] = { + instrux + 2401, + instrux + 2402, +}; + +static const struct itemplate * const itable_vex011DE[] = { + instrux + 2533, + instrux + 2534, +}; + +static const struct itemplate * const itable_vex011DF[] = { + instrux + 2407, + instrux + 2408, +}; + +static const struct itemplate * const itable_vex011E0[] = { + instrux + 2409, + instrux + 2410, +}; + +static const struct itemplate * const itable_vex011E1[] = { + instrux + 2610, + instrux + 2611, +}; + +static const struct itemplate * const itable_vex011E2[] = { + instrux + 2614, + instrux + 2615, +}; + +static const struct itemplate * const itable_vex011E3[] = { + instrux + 2411, + instrux + 2412, +}; + +static const struct itemplate * const itable_vex011E4[] = { + instrux + 2565, + instrux + 2566, +}; + +static const struct itemplate * const itable_vex011E5[] = { + instrux + 2569, + instrux + 2570, +}; + +static const struct itemplate * const itable_vex011E6[] = { + instrux + 2184, + instrux + 2185, +}; + +static const struct itemplate * const itable_vex011E7[] = { + instrux + 2322, +}; + +static const struct itemplate * const itable_vex011E8[] = { + instrux + 2640, + instrux + 2641, +}; + +static const struct itemplate * const itable_vex011E9[] = { + instrux + 2642, + instrux + 2643, +}; + +static const struct itemplate * const itable_vex011EA[] = { + instrux + 2541, + instrux + 2542, +}; + +static const struct itemplate * const itable_vex011EB[] = { + instrux + 2579, + instrux + 2580, +}; + +static const struct itemplate * const itable_vex011EC[] = { + instrux + 2395, + instrux + 2396, +}; + +static const struct itemplate * const itable_vex011ED[] = { + instrux + 2397, + instrux + 2398, +}; + +static const struct itemplate * const itable_vex011EE[] = { + instrux + 2529, + instrux + 2530, +}; + +static const struct itemplate * const itable_vex011EF[] = { + instrux + 2664, + instrux + 2665, +}; + +static const struct itemplate * const itable_vex011F1[] = { + instrux + 2598, + instrux + 2599, +}; + +static const struct itemplate * const itable_vex011F2[] = { + instrux + 2602, + instrux + 2603, +}; + +static const struct itemplate * const itable_vex011F3[] = { + instrux + 2606, + instrux + 2607, +}; + +static const struct itemplate * const itable_vex011F4[] = { + instrux + 2575, + instrux + 2576, +}; + +static const struct itemplate * const itable_vex011F5[] = { + instrux + 2523, + instrux + 2524, +}; + +static const struct itemplate * const itable_vex011F6[] = { + instrux + 2581, + instrux + 2582, +}; + +static const struct itemplate * const itable_vex011F7[] = { + instrux + 2237, +}; + +static const struct itemplate * const itable_vex011F8[] = { + instrux + 2632, + instrux + 2633, +}; + +static const struct itemplate * const itable_vex011F9[] = { + instrux + 2634, + instrux + 2635, +}; + +static const struct itemplate * const itable_vex011FA[] = { + instrux + 2636, + instrux + 2637, +}; + +static const struct itemplate * const itable_vex011FB[] = { + instrux + 2638, + instrux + 2639, +}; + +static const struct itemplate * const itable_vex011FC[] = { + instrux + 2387, + instrux + 2388, +}; + +static const struct itemplate * const itable_vex011FD[] = { + instrux + 2389, + instrux + 2390, +}; + +static const struct itemplate * const itable_vex011FE[] = { + instrux + 2391, + instrux + 2392, +}; + +static const struct itemplate * const itable_vex01210[] = { + instrux + 2340, + instrux + 2341, + instrux + 2342, +}; + +static const struct itemplate * const itable_vex01211[] = { + instrux + 2343, + instrux + 2344, + instrux + 2345, +}; + +static const struct itemplate * const itable_vex01212[] = { + instrux + 2338, +}; + +static const struct itemplate * const itable_vex01216[] = { + instrux + 2336, +}; + +static const struct itemplate * const itable_vex0122A[] = { + instrux + 2176, + instrux + 2177, + instrux + 2178, + instrux + 2179, +}; + +static const struct itemplate * const itable_vex0122C[] = { + instrux + 2192, + instrux + 2193, +}; + +static const struct itemplate * const itable_vex0122D[] = { + instrux + 2182, + instrux + 2183, +}; + +static const struct itemplate * const itable_vex01251[] = { + instrux + 2696, + instrux + 2697, +}; + +static const struct itemplate * const itable_vex01252[] = { + instrux + 2672, + instrux + 2673, +}; + +static const struct itemplate * const itable_vex01253[] = { + instrux + 2668, + instrux + 2669, +}; + +static const struct itemplate * const itable_vex01258[] = { + instrux + 1708, + instrux + 1709, +}; + +static const struct itemplate * const itable_vex01259[] = { + instrux + 2366, + instrux + 2367, +}; + +static const struct itemplate * const itable_vex0125A[] = { + instrux + 2180, + instrux + 2181, +}; + +static const struct itemplate * const itable_vex0125B[] = { + instrux + 2188, +}; + +static const struct itemplate * const itable_vex0125C[] = { + instrux + 2709, + instrux + 2710, +}; + +static const struct itemplate * const itable_vex0125D[] = { + instrux + 2268, + instrux + 2269, +}; + +static const struct itemplate * const itable_vex0125E[] = { + instrux + 2204, + instrux + 2205, +}; + +static const struct itemplate * const itable_vex0125F[] = { + instrux + 2256, + instrux + 2257, +}; + +static const struct itemplate * const itable_vex0126F[] = { + instrux + 2292, +}; + +static const struct itemplate * const itable_vex01270[] = { + instrux + 2586, +}; + +static const struct itemplate * const itable_vex0127E[] = { + instrux + 2278, +}; + +static const struct itemplate * const itable_vex0127F[] = { + instrux + 2293, +}; + +static const struct itemplate * const itable_vex012C2[] = { + instrux + 2084, + instrux + 2085, + instrux + 2086, + instrux + 2087, + instrux + 2088, + instrux + 2089, + instrux + 2090, + instrux + 2091, + instrux + 2092, + instrux + 2093, + instrux + 2094, + instrux + 2095, + instrux + 2096, + instrux + 2097, + instrux + 2098, + instrux + 2099, + instrux + 2100, + instrux + 2101, + instrux + 2102, + instrux + 2103, + instrux + 2104, + instrux + 2105, + instrux + 2106, + instrux + 2107, + instrux + 2108, + instrux + 2109, + instrux + 2110, + instrux + 2111, + instrux + 2112, + instrux + 2113, + instrux + 2114, + instrux + 2115, + instrux + 2116, + instrux + 2117, + instrux + 2118, + instrux + 2119, + instrux + 2120, + instrux + 2121, + instrux + 2122, + instrux + 2123, + instrux + 2124, + instrux + 2125, + instrux + 2126, + instrux + 2127, + instrux + 2128, + instrux + 2129, + instrux + 2130, + instrux + 2131, + instrux + 2132, + instrux + 2133, + instrux + 2134, + instrux + 2135, + instrux + 2136, + instrux + 2137, + instrux + 2138, + instrux + 2139, + instrux + 2140, + instrux + 2141, + instrux + 2142, + instrux + 2143, + instrux + 2144, + instrux + 2145, + instrux + 2146, + instrux + 2147, + instrux + 2148, + instrux + 2149, +}; + +static const struct itemplate * const itable_vex012E6[] = { + instrux + 2152, +}; + +static const struct itemplate * const itable_vex01310[] = { + instrux + 2330, + instrux + 2331, + instrux + 2332, +}; + +static const struct itemplate * const itable_vex01311[] = { + instrux + 2333, + instrux + 2334, + instrux + 2335, +}; + +static const struct itemplate * const itable_vex01312[] = { + instrux + 2284, +}; + +static const struct itemplate * const itable_vex0132A[] = { + instrux + 2172, + instrux + 2173, + instrux + 2174, + instrux + 2175, +}; + +static const struct itemplate * const itable_vex0132C[] = { + instrux + 2190, + instrux + 2191, +}; + +static const struct itemplate * const itable_vex0132D[] = { + instrux + 2168, + instrux + 2169, +}; + +static const struct itemplate * const itable_vex01351[] = { + instrux + 2694, + instrux + 2695, +}; + +static const struct itemplate * const itable_vex01358[] = { + instrux + 1706, + instrux + 1707, +}; + +static const struct itemplate * const itable_vex01359[] = { + instrux + 2364, + instrux + 2365, +}; + +static const struct itemplate * const itable_vex0135A[] = { + instrux + 2170, + instrux + 2171, +}; + +static const struct itemplate * const itable_vex0135C[] = { + instrux + 2707, + instrux + 2708, +}; + +static const struct itemplate * const itable_vex0135D[] = { + instrux + 2266, + instrux + 2267, +}; + +static const struct itemplate * const itable_vex0135E[] = { + instrux + 2202, + instrux + 2203, +}; + +static const struct itemplate * const itable_vex0135F[] = { + instrux + 2254, + instrux + 2255, +}; + +static const struct itemplate * const itable_vex01370[] = { + instrux + 2587, +}; + +static const struct itemplate * const itable_vex0137C[] = { + instrux + 2218, + instrux + 2219, +}; + +static const struct itemplate * const itable_vex0137D[] = { + instrux + 2226, + instrux + 2227, +}; + +static const struct itemplate * const itable_vex013C2[] = { + instrux + 2018, + instrux + 2019, + instrux + 2020, + instrux + 2021, + instrux + 2022, + instrux + 2023, + instrux + 2024, + instrux + 2025, + instrux + 2026, + instrux + 2027, + instrux + 2028, + instrux + 2029, + instrux + 2030, + instrux + 2031, + instrux + 2032, + instrux + 2033, + instrux + 2034, + instrux + 2035, + instrux + 2036, + instrux + 2037, + instrux + 2038, + instrux + 2039, + instrux + 2040, + instrux + 2041, + instrux + 2042, + instrux + 2043, + instrux + 2044, + instrux + 2045, + instrux + 2046, + instrux + 2047, + instrux + 2048, + instrux + 2049, + instrux + 2050, + instrux + 2051, + instrux + 2052, + instrux + 2053, + instrux + 2054, + instrux + 2055, + instrux + 2056, + instrux + 2057, + instrux + 2058, + instrux + 2059, + instrux + 2060, + instrux + 2061, + instrux + 2062, + instrux + 2063, + instrux + 2064, + instrux + 2065, + instrux + 2066, + instrux + 2067, + instrux + 2068, + instrux + 2069, + instrux + 2070, + instrux + 2071, + instrux + 2072, + instrux + 2073, + instrux + 2074, + instrux + 2075, + instrux + 2076, + instrux + 2077, + instrux + 2078, + instrux + 2079, + instrux + 2080, + instrux + 2081, + instrux + 2082, + instrux + 2083, +}; + +static const struct itemplate * const itable_vex013D0[] = { + instrux + 1714, + instrux + 1715, +}; + +static const struct itemplate * const itable_vex013E6[] = { + instrux + 2156, + instrux + 2157, +}; + +static const struct itemplate * const itable_vex013F0[] = { + instrux + 2233, +}; + +static const struct itemplate * const itable_vex01410[] = { + instrux + 2352, +}; + +static const struct itemplate * const itable_vex01411[] = { + instrux + 2353, +}; + +static const struct itemplate * const itable_vex01414[] = { + instrux + 2731, + instrux + 2732, +}; + +static const struct itemplate * const itable_vex01415[] = { + instrux + 2723, + instrux + 2724, +}; + +static const struct itemplate * const itable_vex01428[] = { + instrux + 2276, +}; + +static const struct itemplate * const itable_vex01429[] = { + instrux + 2277, +}; + +static const struct itemplate * const itable_vex0142B[] = { + instrux + 2329, +}; + +static const struct itemplate * const itable_vex01450[] = { + instrux + 2320, + instrux + 2321, +}; + +static const struct itemplate * const itable_vex01451[] = { + instrux + 2693, +}; + +static const struct itemplate * const itable_vex01452[] = { + instrux + 2671, +}; + +static const struct itemplate * const itable_vex01453[] = { + instrux + 2667, +}; + +static const struct itemplate * const itable_vex01454[] = { + instrux + 1724, + instrux + 1725, +}; + +static const struct itemplate * const itable_vex01455[] = { + instrux + 1732, + instrux + 1733, +}; + +static const struct itemplate * const itable_vex01456[] = { + instrux + 2374, + instrux + 2375, +}; + +static const struct itemplate * const itable_vex01457[] = { + instrux + 2739, + instrux + 2740, +}; + +static const struct itemplate * const itable_vex01458[] = { + instrux + 1704, + instrux + 1705, +}; + +static const struct itemplate * const itable_vex01459[] = { + instrux + 2362, + instrux + 2363, +}; + +static const struct itemplate * const itable_vex0145A[] = { + instrux + 2167, +}; + +static const struct itemplate * const itable_vex0145B[] = { + instrux + 2155, +}; + +static const struct itemplate * const itable_vex0145C[] = { + instrux + 2705, + instrux + 2706, +}; + +static const struct itemplate * const itable_vex0145D[] = { + instrux + 2264, + instrux + 2265, +}; + +static const struct itemplate * const itable_vex0145E[] = { + instrux + 2200, + instrux + 2201, +}; + +static const struct itemplate * const itable_vex0145F[] = { + instrux + 2252, + instrux + 2253, +}; + +static const struct itemplate * const itable_vex01477[] = { + instrux + 2741, +}; + +static const struct itemplate * const itable_vex014C2[] = { + instrux + 1888, + instrux + 1889, + instrux + 1892, + instrux + 1893, + instrux + 1896, + instrux + 1897, + instrux + 1900, + instrux + 1901, + instrux + 1904, + instrux + 1905, + instrux + 1908, + instrux + 1909, + instrux + 1912, + instrux + 1913, + instrux + 1916, + instrux + 1917, + instrux + 1920, + instrux + 1921, + instrux + 1924, + instrux + 1925, + instrux + 1928, + instrux + 1929, + instrux + 1932, + instrux + 1933, + instrux + 1936, + instrux + 1937, + instrux + 1940, + instrux + 1941, + instrux + 1944, + instrux + 1945, + instrux + 1948, + instrux + 1949, + instrux + 1952, + instrux + 1953, + instrux + 1956, + instrux + 1957, + instrux + 1960, + instrux + 1961, + instrux + 1964, + instrux + 1965, + instrux + 1968, + instrux + 1969, + instrux + 1972, + instrux + 1973, + instrux + 1976, + instrux + 1977, + instrux + 1980, + instrux + 1981, + instrux + 1984, + instrux + 1985, + instrux + 1988, + instrux + 1989, + instrux + 1992, + instrux + 1993, + instrux + 1996, + instrux + 1997, + instrux + 2000, + instrux + 2001, + instrux + 2004, + instrux + 2005, + instrux + 2008, + instrux + 2009, + instrux + 2012, + instrux + 2013, + instrux + 2016, + instrux + 2017, +}; + +static const struct itemplate * const itable_vex014C6[] = { + instrux + 2688, + instrux + 2689, +}; + +static const struct itemplate * const itable_vex01510[] = { + instrux + 2348, +}; + +static const struct itemplate * const itable_vex01511[] = { + instrux + 2349, +}; + +static const struct itemplate * const itable_vex01514[] = { + instrux + 2727, + instrux + 2728, +}; + +static const struct itemplate * const itable_vex01515[] = { + instrux + 2719, + instrux + 2720, +}; + +static const struct itemplate * const itable_vex01528[] = { + instrux + 2272, +}; + +static const struct itemplate * const itable_vex01529[] = { + instrux + 2273, +}; + +static const struct itemplate * const itable_vex0152B[] = { + instrux + 2327, +}; + +static const struct itemplate * const itable_vex01550[] = { + instrux + 2316, + instrux + 2317, +}; + +static const struct itemplate * const itable_vex01551[] = { + instrux + 2691, +}; + +static const struct itemplate * const itable_vex01554[] = { + instrux + 1720, + instrux + 1721, +}; + +static const struct itemplate * const itable_vex01555[] = { + instrux + 1728, + instrux + 1729, +}; + +static const struct itemplate * const itable_vex01556[] = { + instrux + 2370, + instrux + 2371, +}; + +static const struct itemplate * const itable_vex01557[] = { + instrux + 2735, + instrux + 2736, +}; + +static const struct itemplate * const itable_vex01558[] = { + instrux + 1700, + instrux + 1701, +}; + +static const struct itemplate * const itable_vex01559[] = { + instrux + 2358, + instrux + 2359, +}; + +static const struct itemplate * const itable_vex0155A[] = { + instrux + 2162, + instrux + 2163, +}; + +static const struct itemplate * const itable_vex0155B[] = { + instrux + 2165, +}; + +static const struct itemplate * const itable_vex0155C[] = { + instrux + 2701, + instrux + 2702, +}; + +static const struct itemplate * const itable_vex0155D[] = { + instrux + 2260, + instrux + 2261, +}; + +static const struct itemplate * const itable_vex0155E[] = { + instrux + 2196, + instrux + 2197, +}; + +static const struct itemplate * const itable_vex0155F[] = { + instrux + 2248, + instrux + 2249, +}; + +static const struct itemplate * const itable_vex0156F[] = { + instrux + 2288, + instrux + 2290, +}; + +static const struct itemplate * const itable_vex0157C[] = { + instrux + 2216, + instrux + 2217, +}; + +static const struct itemplate * const itable_vex0157D[] = { + instrux + 2224, + instrux + 2225, +}; + +static const struct itemplate * const itable_vex0157F[] = { + instrux + 2289, + instrux + 2291, +}; + +static const struct itemplate * const itable_vex015C2[] = { + instrux + 1756, + instrux + 1757, + instrux + 1760, + instrux + 1761, + instrux + 1764, + instrux + 1765, + instrux + 1768, + instrux + 1769, + instrux + 1772, + instrux + 1773, + instrux + 1776, + instrux + 1777, + instrux + 1780, + instrux + 1781, + instrux + 1784, + instrux + 1785, + instrux + 1788, + instrux + 1789, + instrux + 1792, + instrux + 1793, + instrux + 1796, + instrux + 1797, + instrux + 1800, + instrux + 1801, + instrux + 1804, + instrux + 1805, + instrux + 1808, + instrux + 1809, + instrux + 1812, + instrux + 1813, + instrux + 1816, + instrux + 1817, + instrux + 1820, + instrux + 1821, + instrux + 1824, + instrux + 1825, + instrux + 1828, + instrux + 1829, + instrux + 1832, + instrux + 1833, + instrux + 1836, + instrux + 1837, + instrux + 1840, + instrux + 1841, + instrux + 1844, + instrux + 1845, + instrux + 1848, + instrux + 1849, + instrux + 1852, + instrux + 1853, + instrux + 1856, + instrux + 1857, + instrux + 1860, + instrux + 1861, + instrux + 1864, + instrux + 1865, + instrux + 1868, + instrux + 1869, + instrux + 1872, + instrux + 1873, + instrux + 1876, + instrux + 1877, + instrux + 1880, + instrux + 1881, + instrux + 1884, + instrux + 1885, +}; + +static const struct itemplate * const itable_vex015C6[] = { + instrux + 2684, + instrux + 2685, +}; + +static const struct itemplate * const itable_vex015D0[] = { + instrux + 1712, + instrux + 1713, +}; + +static const struct itemplate * const itable_vex015E6[] = { + instrux + 2186, + instrux + 2187, +}; + +static const struct itemplate * const itable_vex015E7[] = { + instrux + 2323, + instrux + 2324, +}; + +static const struct itemplate * const itable_vex01612[] = { + instrux + 2339, +}; + +static const struct itemplate * const itable_vex01616[] = { + instrux + 2337, +}; + +static const struct itemplate * const itable_vex0165B[] = { + instrux + 2189, +}; + +static const struct itemplate * const itable_vex0166F[] = { + instrux + 2294, + instrux + 2296, +}; + +static const struct itemplate * const itable_vex0167F[] = { + instrux + 2295, + instrux + 2297, +}; + +static const struct itemplate * const itable_vex016E6[] = { + instrux + 2153, +}; + +static const struct itemplate * const itable_vex01712[] = { + instrux + 2285, +}; + +static const struct itemplate * const itable_vex0177C[] = { + instrux + 2220, + instrux + 2221, +}; + +static const struct itemplate * const itable_vex0177D[] = { + instrux + 2228, + instrux + 2229, +}; + +static const struct itemplate * const itable_vex017D0[] = { + instrux + 1716, + instrux + 1717, +}; + +static const struct itemplate * const itable_vex017E6[] = { + instrux + 2158, + instrux + 2159, +}; + +static const struct itemplate * const itable_vex017F0[] = { + instrux + 2234, + instrux + 2235, +}; + +static const struct itemplate * const itable_vex02100[] = { + instrux + 2583, + instrux + 2584, +}; + +static const struct itemplate * const itable_vex02101[] = { + instrux + 2490, + instrux + 2491, +}; + +static const struct itemplate * const itable_vex02102[] = { + instrux + 2492, + instrux + 2493, +}; + +static const struct itemplate * const itable_vex02103[] = { + instrux + 2494, + instrux + 2495, +}; + +static const struct itemplate * const itable_vex02104[] = { + instrux + 2525, + instrux + 2526, +}; + +static const struct itemplate * const itable_vex02105[] = { + instrux + 2497, + instrux + 2498, +}; + +static const struct itemplate * const itable_vex02106[] = { + instrux + 2499, + instrux + 2500, +}; + +static const struct itemplate * const itable_vex02107[] = { + instrux + 2501, + instrux + 2502, +}; + +static const struct itemplate * const itable_vex02108[] = { + instrux + 2588, + instrux + 2589, +}; + +static const struct itemplate * const itable_vex02109[] = { + instrux + 2590, + instrux + 2591, +}; + +static const struct itemplate * const itable_vex0210A[] = { + instrux + 2592, + instrux + 2593, +}; + +static const struct itemplate * const itable_vex0210B[] = { + instrux + 2567, + instrux + 2568, +}; + +static const struct itemplate * const itable_vex0210C[] = { + instrux + 2457, +}; + +static const struct itemplate * const itable_vex0210D[] = { + instrux + 2437, +}; + +static const struct itemplate * const itable_vex0210E[] = { + instrux + 2711, +}; + +static const struct itemplate * const itable_vex0210F[] = { + instrux + 2713, +}; + +static const struct itemplate * const itable_vex02114[] = { + instrux + 1747, +}; + +static const struct itemplate * const itable_vex02115[] = { + instrux + 1743, +}; + +static const struct itemplate * const itable_vex02117[] = { + instrux + 2630, +}; + +static const struct itemplate * const itable_vex02118[] = { + instrux + 1750, +}; + +static const struct itemplate * const itable_vex0211C[] = { + instrux + 2376, +}; + +static const struct itemplate * const itable_vex0211D[] = { + instrux + 2377, +}; + +static const struct itemplate * const itable_vex0211E[] = { + instrux + 2378, +}; + +static const struct itemplate * const itable_vex02120[] = { + instrux + 2553, +}; + +static const struct itemplate * const itable_vex02121[] = { + instrux + 2554, +}; + +static const struct itemplate * const itable_vex02122[] = { + instrux + 2555, +}; + +static const struct itemplate * const itable_vex02123[] = { + instrux + 2556, +}; + +static const struct itemplate * const itable_vex02124[] = { + instrux + 2557, +}; + +static const struct itemplate * const itable_vex02125[] = { + instrux + 2558, +}; + +static const struct itemplate * const itable_vex02128[] = { + instrux + 2577, + instrux + 2578, +}; + +static const struct itemplate * const itable_vex0212A[] = { + instrux + 2325, +}; + +static const struct itemplate * const itable_vex0212B[] = { + instrux + 2385, + instrux + 2386, +}; + +static const struct itemplate * const itable_vex0212C[] = { + instrux + 2238, +}; + +static const struct itemplate * const itable_vex0212D[] = { + instrux + 2242, +}; + +static const struct itemplate * const itable_vex0212E[] = { + instrux + 2240, +}; + +static const struct itemplate * const itable_vex0212F[] = { + instrux + 2244, +}; + +static const struct itemplate * const itable_vex02130[] = { + instrux + 2559, +}; + +static const struct itemplate * const itable_vex02131[] = { + instrux + 2560, +}; + +static const struct itemplate * const itable_vex02132[] = { + instrux + 2561, +}; + +static const struct itemplate * const itable_vex02133[] = { + instrux + 2562, +}; + +static const struct itemplate * const itable_vex02134[] = { + instrux + 2563, +}; + +static const struct itemplate * const itable_vex02135[] = { + instrux + 2564, +}; + +static const struct itemplate * const itable_vex02138[] = { + instrux + 2539, + instrux + 2540, +}; + +static const struct itemplate * const itable_vex02139[] = { + instrux + 2543, + instrux + 2544, +}; + +static const struct itemplate * const itable_vex0213A[] = { + instrux + 2547, + instrux + 2548, +}; + +static const struct itemplate * const itable_vex0213B[] = { + instrux + 2549, + instrux + 2550, +}; + +static const struct itemplate * const itable_vex0213C[] = { + instrux + 2527, + instrux + 2528, +}; + +static const struct itemplate * const itable_vex0213D[] = { + instrux + 2531, + instrux + 2532, +}; + +static const struct itemplate * const itable_vex0213E[] = { + instrux + 2535, + instrux + 2536, +}; + +static const struct itemplate * const itable_vex0213F[] = { + instrux + 2537, + instrux + 2538, +}; + +static const struct itemplate * const itable_vex02140[] = { + instrux + 2573, + instrux + 2574, +}; + +static const struct itemplate * const itable_vex02141[] = { + instrux + 2496, +}; + +static const struct itemplate * const itable_vex02196[] = { + instrux + 2782, + instrux + 2784, + instrux + 2786, + instrux + 2788, +}; + +static const struct itemplate * const itable_vex02197[] = { + instrux + 2830, + instrux + 2832, + instrux + 2834, + instrux + 2836, +}; + +static const struct itemplate * const itable_vex02198[] = { + instrux + 2758, + instrux + 2760, + instrux + 2762, + instrux + 2764, +}; + +static const struct itemplate * const itable_vex02199[] = { + instrux + 2902, + instrux + 2903, + instrux + 2904, + instrux + 2905, +}; + +static const struct itemplate * const itable_vex0219A[] = { + instrux + 2806, + instrux + 2808, + instrux + 2810, + instrux + 2812, +}; + +static const struct itemplate * const itable_vex0219B[] = { + instrux + 2914, + instrux + 2915, + instrux + 2916, + instrux + 2917, +}; + +static const struct itemplate * const itable_vex0219C[] = { + instrux + 2854, + instrux + 2856, + instrux + 2858, + instrux + 2860, +}; + +static const struct itemplate * const itable_vex0219D[] = { + instrux + 2926, + instrux + 2927, + instrux + 2928, + instrux + 2929, +}; + +static const struct itemplate * const itable_vex0219E[] = { + instrux + 2878, + instrux + 2880, + instrux + 2882, + instrux + 2884, +}; + +static const struct itemplate * const itable_vex0219F[] = { + instrux + 2938, + instrux + 2939, + instrux + 2940, + instrux + 2941, +}; + +static const struct itemplate * const itable_vex021A6[] = { + instrux + 2790, + instrux + 2792, + instrux + 2794, + instrux + 2796, +}; + +static const struct itemplate * const itable_vex021A7[] = { + instrux + 2838, + instrux + 2840, + instrux + 2842, + instrux + 2844, +}; + +static const struct itemplate * const itable_vex021A8[] = { + instrux + 2766, + instrux + 2768, + instrux + 2770, + instrux + 2772, +}; + +static const struct itemplate * const itable_vex021A9[] = { + instrux + 2906, + instrux + 2907, + instrux + 2908, + instrux + 2909, +}; + +static const struct itemplate * const itable_vex021AA[] = { + instrux + 2814, + instrux + 2816, + instrux + 2818, + instrux + 2820, +}; + +static const struct itemplate * const itable_vex021AB[] = { + instrux + 2918, + instrux + 2919, + instrux + 2920, + instrux + 2921, +}; + +static const struct itemplate * const itable_vex021AC[] = { + instrux + 2862, + instrux + 2864, + instrux + 2866, + instrux + 2868, +}; + +static const struct itemplate * const itable_vex021AD[] = { + instrux + 2930, + instrux + 2931, + instrux + 2932, + instrux + 2933, +}; + +static const struct itemplate * const itable_vex021AE[] = { + instrux + 2886, + instrux + 2888, + instrux + 2890, + instrux + 2892, +}; + +static const struct itemplate * const itable_vex021AF[] = { + instrux + 2942, + instrux + 2943, + instrux + 2944, + instrux + 2945, +}; + +static const struct itemplate * const itable_vex021B6[] = { + instrux + 2798, + instrux + 2800, + instrux + 2802, + instrux + 2804, +}; + +static const struct itemplate * const itable_vex021B7[] = { + instrux + 2846, + instrux + 2848, + instrux + 2850, + instrux + 2852, +}; + +static const struct itemplate * const itable_vex021B8[] = { + instrux + 2774, + instrux + 2776, + instrux + 2778, + instrux + 2780, +}; + +static const struct itemplate * const itable_vex021B9[] = { + instrux + 2910, + instrux + 2911, + instrux + 2912, + instrux + 2913, +}; + +static const struct itemplate * const itable_vex021BA[] = { + instrux + 2822, + instrux + 2824, + instrux + 2826, + instrux + 2828, +}; + +static const struct itemplate * const itable_vex021BB[] = { + instrux + 2922, + instrux + 2923, + instrux + 2924, + instrux + 2925, +}; + +static const struct itemplate * const itable_vex021BC[] = { + instrux + 2870, + instrux + 2872, + instrux + 2874, + instrux + 2876, +}; + +static const struct itemplate * const itable_vex021BD[] = { + instrux + 2934, + instrux + 2935, + instrux + 2936, + instrux + 2937, +}; + +static const struct itemplate * const itable_vex021BE[] = { + instrux + 2894, + instrux + 2896, + instrux + 2898, + instrux + 2900, +}; + +static const struct itemplate * const itable_vex021BF[] = { + instrux + 2946, + instrux + 2947, + instrux + 2948, + instrux + 2949, +}; + +static const struct itemplate * const itable_vex021DB[] = { + instrux + 1696, +}; + +static const struct itemplate * const itable_vex021DC[] = { + instrux + 1688, + instrux + 1689, +}; + +static const struct itemplate * const itable_vex021DD[] = { + instrux + 1690, + instrux + 1691, +}; + +static const struct itemplate * const itable_vex021DE[] = { + instrux + 1692, + instrux + 1693, +}; + +static const struct itemplate * const itable_vex021DF[] = { + instrux + 1694, + instrux + 1695, +}; + +static const struct itemplate * const itable_vex0250C[] = { + instrux + 2458, +}; + +static const struct itemplate * const itable_vex0250D[] = { + instrux + 2438, +}; + +static const struct itemplate * const itable_vex0250E[] = { + instrux + 2712, +}; + +static const struct itemplate * const itable_vex0250F[] = { + instrux + 2714, +}; + +static const struct itemplate * const itable_vex02514[] = { + instrux + 1749, +}; + +static const struct itemplate * const itable_vex02515[] = { + instrux + 1745, +}; + +static const struct itemplate * const itable_vex02517[] = { + instrux + 2631, +}; + +static const struct itemplate * const itable_vex02518[] = { + instrux + 1751, +}; + +static const struct itemplate * const itable_vex02519[] = { + instrux + 1752, +}; + +static const struct itemplate * const itable_vex0251A[] = { + instrux + 1753, +}; + +static const struct itemplate * const itable_vex0252C[] = { + instrux + 2239, +}; + +static const struct itemplate * const itable_vex0252D[] = { + instrux + 2243, +}; + +static const struct itemplate * const itable_vex0252E[] = { + instrux + 2241, +}; + +static const struct itemplate * const itable_vex0252F[] = { + instrux + 2245, +}; + +static const struct itemplate * const itable_vex02596[] = { + instrux + 2783, + instrux + 2785, + instrux + 2787, + instrux + 2789, +}; + +static const struct itemplate * const itable_vex02597[] = { + instrux + 2831, + instrux + 2833, + instrux + 2835, + instrux + 2837, +}; + +static const struct itemplate * const itable_vex02598[] = { + instrux + 2759, + instrux + 2761, + instrux + 2763, + instrux + 2765, +}; + +static const struct itemplate * const itable_vex0259A[] = { + instrux + 2807, + instrux + 2809, + instrux + 2811, + instrux + 2813, +}; + +static const struct itemplate * const itable_vex0259C[] = { + instrux + 2855, + instrux + 2857, + instrux + 2859, + instrux + 2861, +}; + +static const struct itemplate * const itable_vex0259E[] = { + instrux + 2879, + instrux + 2881, + instrux + 2883, + instrux + 2885, +}; + +static const struct itemplate * const itable_vex025A6[] = { + instrux + 2791, + instrux + 2793, + instrux + 2795, + instrux + 2797, +}; + +static const struct itemplate * const itable_vex025A7[] = { + instrux + 2839, + instrux + 2841, + instrux + 2843, + instrux + 2845, +}; + +static const struct itemplate * const itable_vex025A8[] = { + instrux + 2767, + instrux + 2769, + instrux + 2771, + instrux + 2773, +}; + +static const struct itemplate * const itable_vex025AA[] = { + instrux + 2815, + instrux + 2817, + instrux + 2819, + instrux + 2821, +}; + +static const struct itemplate * const itable_vex025AC[] = { + instrux + 2863, + instrux + 2865, + instrux + 2867, + instrux + 2869, +}; + +static const struct itemplate * const itable_vex025AE[] = { + instrux + 2887, + instrux + 2889, + instrux + 2891, + instrux + 2893, +}; + +static const struct itemplate * const itable_vex025B6[] = { + instrux + 2799, + instrux + 2801, + instrux + 2803, + instrux + 2805, +}; + +static const struct itemplate * const itable_vex025B7[] = { + instrux + 2847, + instrux + 2849, + instrux + 2851, + instrux + 2853, +}; + +static const struct itemplate * const itable_vex025B8[] = { + instrux + 2775, + instrux + 2777, + instrux + 2779, + instrux + 2781, +}; + +static const struct itemplate * const itable_vex025BA[] = { + instrux + 2823, + instrux + 2825, + instrux + 2827, + instrux + 2829, +}; + +static const struct itemplate * const itable_vex025BC[] = { + instrux + 2871, + instrux + 2873, + instrux + 2875, + instrux + 2877, +}; + +static const struct itemplate * const itable_vex025BE[] = { + instrux + 2895, + instrux + 2897, + instrux + 2899, + instrux + 2901, +}; + +static const struct itemplate * const itable_vex03104[] = { + instrux + 2459, +}; + +static const struct itemplate * const itable_vex03105[] = { + instrux + 2439, +}; + +static const struct itemplate * const itable_vex03108[] = { + instrux + 2676, +}; + +static const struct itemplate * const itable_vex03109[] = { + instrux + 2674, +}; + +static const struct itemplate * const itable_vex0310A[] = { + instrux + 2680, + instrux + 2681, +}; + +static const struct itemplate * const itable_vex0310B[] = { + instrux + 2678, + instrux + 2679, +}; + +static const struct itemplate * const itable_vex0310C[] = { + instrux + 1738, + instrux + 1739, +}; + +static const struct itemplate * const itable_vex0310D[] = { + instrux + 1734, + instrux + 1735, +}; + +static const struct itemplate * const itable_vex0310E[] = { + instrux + 2415, + instrux + 2416, +}; + +static const struct itemplate * const itable_vex0310F[] = { + instrux + 2403, + instrux + 2404, +}; + +static const struct itemplate * const itable_vex03114[] = { + instrux + 2478, + instrux + 2479, + instrux + 2480, +}; + +static const struct itemplate * const itable_vex03115[] = { + instrux + 2484, + instrux + 2485, + instrux + 2486, +}; + +static const struct itemplate * const itable_vex03116[] = { + instrux + 2487, + instrux + 2488, + instrux + 2489, +}; + +static const struct itemplate * const itable_vex03117[] = { + instrux + 2213, +}; + +static const struct itemplate * const itable_vex03120[] = { + instrux + 2503, + instrux + 2504, + instrux + 2505, + instrux + 2506, + instrux + 2507, + instrux + 2508, +}; + +static const struct itemplate * const itable_vex03121[] = { + instrux + 2231, + instrux + 2232, +}; + +static const struct itemplate * const itable_vex03122[] = { + instrux + 2515, + instrux + 2516, + instrux + 2517, + instrux + 2518, + instrux + 2519, + instrux + 2520, + instrux + 2521, + instrux + 2522, +}; + +static const struct itemplate * const itable_vex03140[] = { + instrux + 2208, + instrux + 2209, +}; + +static const struct itemplate * const itable_vex03141[] = { + instrux + 2206, + instrux + 2207, +}; + +static const struct itemplate * const itable_vex03142[] = { + instrux + 2354, + instrux + 2355, +}; + +static const struct itemplate * const itable_vex03144[] = { + instrux + 2748, + instrux + 2749, + instrux + 2750, + instrux + 2751, + instrux + 2752, + instrux + 2753, + instrux + 2754, + instrux + 2755, + instrux + 2756, + instrux + 2757, +}; + +static const struct itemplate * const itable_vex03148[] = { + instrux + 2461, + instrux + 2462, + instrux + 2465, + instrux + 2466, + instrux + 2469, + instrux + 2470, + instrux + 2473, + instrux + 2474, +}; + +static const struct itemplate * const itable_vex03149[] = { + instrux + 2441, + instrux + 2442, + instrux + 2445, + instrux + 2446, + instrux + 2449, + instrux + 2450, + instrux + 2453, + instrux + 2454, +}; + +static const struct itemplate * const itable_vex0314A[] = { + instrux + 1746, +}; + +static const struct itemplate * const itable_vex0314B[] = { + instrux + 1742, +}; + +static const struct itemplate * const itable_vex0314C[] = { + instrux + 2413, + instrux + 2414, +}; + +static const struct itemplate * const itable_vex0315C[] = { + instrux + 3013, + instrux + 3014, + instrux + 3017, + instrux + 3018, +}; + +static const struct itemplate * const itable_vex0315D[] = { + instrux + 3005, + instrux + 3006, + instrux + 3009, + instrux + 3010, +}; + +static const struct itemplate * const itable_vex0315E[] = { + instrux + 3029, + instrux + 3030, + instrux + 3033, + instrux + 3034, +}; + +static const struct itemplate * const itable_vex0315F[] = { + instrux + 3021, + instrux + 3022, + instrux + 3025, + instrux + 3026, +}; + +static const struct itemplate * const itable_vex03160[] = { + instrux + 2418, +}; + +static const struct itemplate * const itable_vex03161[] = { + instrux + 2417, +}; + +static const struct itemplate * const itable_vex03162[] = { + instrux + 2420, +}; + +static const struct itemplate * const itable_vex03163[] = { + instrux + 2419, +}; + +static const struct itemplate * const itable_vex03168[] = { + instrux + 2989, + instrux + 2990, + instrux + 2993, + instrux + 2994, +}; + +static const struct itemplate * const itable_vex03169[] = { + instrux + 2981, + instrux + 2982, + instrux + 2985, + instrux + 2986, +}; + +static const struct itemplate * const itable_vex0316A[] = { + instrux + 3001, + instrux + 3002, + instrux + 3003, + instrux + 3004, +}; + +static const struct itemplate * const itable_vex0316B[] = { + instrux + 2997, + instrux + 2998, + instrux + 2999, + instrux + 3000, +}; + +static const struct itemplate * const itable_vex0316C[] = { + instrux + 3045, + instrux + 3046, + instrux + 3049, + instrux + 3050, +}; + +static const struct itemplate * const itable_vex0316D[] = { + instrux + 3037, + instrux + 3038, + instrux + 3041, + instrux + 3042, +}; + +static const struct itemplate * const itable_vex0316E[] = { + instrux + 3057, + instrux + 3058, + instrux + 3059, + instrux + 3060, +}; + +static const struct itemplate * const itable_vex0316F[] = { + instrux + 3053, + instrux + 3054, + instrux + 3055, + instrux + 3056, +}; + +static const struct itemplate * const itable_vex03178[] = { + instrux + 3069, + instrux + 3070, + instrux + 3073, + instrux + 3074, +}; + +static const struct itemplate * const itable_vex03179[] = { + instrux + 3061, + instrux + 3062, + instrux + 3065, + instrux + 3066, +}; + +static const struct itemplate * const itable_vex0317A[] = { + instrux + 3081, + instrux + 3082, + instrux + 3083, + instrux + 3084, +}; + +static const struct itemplate * const itable_vex0317B[] = { + instrux + 3077, + instrux + 3078, + instrux + 3079, + instrux + 3080, +}; + +static const struct itemplate * const itable_vex0317C[] = { + instrux + 3093, + instrux + 3094, + instrux + 3097, + instrux + 3098, +}; + +static const struct itemplate * const itable_vex0317D[] = { + instrux + 3085, + instrux + 3086, + instrux + 3089, + instrux + 3090, +}; + +static const struct itemplate * const itable_vex0317E[] = { + instrux + 3105, + instrux + 3106, + instrux + 3107, + instrux + 3108, +}; + +static const struct itemplate * const itable_vex0317F[] = { + instrux + 3101, + instrux + 3102, + instrux + 3103, + instrux + 3104, +}; + +static const struct itemplate * const itable_vex031DF[] = { + instrux + 1697, +}; + +static const struct itemplate * const itable_vex03504[] = { + instrux + 2460, +}; + +static const struct itemplate * const itable_vex03505[] = { + instrux + 2440, +}; + +static const struct itemplate * const itable_vex03506[] = { + instrux + 2477, +}; + +static const struct itemplate * const itable_vex03508[] = { + instrux + 2677, +}; + +static const struct itemplate * const itable_vex03509[] = { + instrux + 2675, +}; + +static const struct itemplate * const itable_vex0350C[] = { + instrux + 1740, + instrux + 1741, +}; + +static const struct itemplate * const itable_vex0350D[] = { + instrux + 1736, + instrux + 1737, +}; + +static const struct itemplate * const itable_vex03518[] = { + instrux + 2230, +}; + +static const struct itemplate * const itable_vex03519[] = { + instrux + 2212, +}; + +static const struct itemplate * const itable_vex03540[] = { + instrux + 2210, + instrux + 2211, +}; + +static const struct itemplate * const itable_vex03548[] = { + instrux + 2463, + instrux + 2464, + instrux + 2467, + instrux + 2468, + instrux + 2471, + instrux + 2472, + instrux + 2475, + instrux + 2476, +}; + +static const struct itemplate * const itable_vex03549[] = { + instrux + 2443, + instrux + 2444, + instrux + 2447, + instrux + 2448, + instrux + 2451, + instrux + 2452, + instrux + 2455, + instrux + 2456, +}; + +static const struct itemplate * const itable_vex0354A[] = { + instrux + 1748, +}; + +static const struct itemplate * const itable_vex0354B[] = { + instrux + 1744, +}; + +static const struct itemplate * const itable_vex0355C[] = { + instrux + 3015, + instrux + 3016, + instrux + 3019, + instrux + 3020, +}; + +static const struct itemplate * const itable_vex0355D[] = { + instrux + 3007, + instrux + 3008, + instrux + 3011, + instrux + 3012, +}; + +static const struct itemplate * const itable_vex0355E[] = { + instrux + 3031, + instrux + 3032, + instrux + 3035, + instrux + 3036, +}; + +static const struct itemplate * const itable_vex0355F[] = { + instrux + 3023, + instrux + 3024, + instrux + 3027, + instrux + 3028, +}; + +static const struct itemplate * const itable_vex03568[] = { + instrux + 2991, + instrux + 2992, + instrux + 2995, + instrux + 2996, +}; + +static const struct itemplate * const itable_vex03569[] = { + instrux + 2983, + instrux + 2984, + instrux + 2987, + instrux + 2988, +}; + +static const struct itemplate * const itable_vex0356C[] = { + instrux + 3047, + instrux + 3048, + instrux + 3051, + instrux + 3052, +}; + +static const struct itemplate * const itable_vex0356D[] = { + instrux + 3039, + instrux + 3040, + instrux + 3043, + instrux + 3044, +}; + +static const struct itemplate * const itable_vex03578[] = { + instrux + 3071, + instrux + 3072, + instrux + 3075, + instrux + 3076, +}; + +static const struct itemplate * const itable_vex03579[] = { + instrux + 3063, + instrux + 3064, + instrux + 3067, + instrux + 3068, +}; + +static const struct itemplate * const itable_vex0357C[] = { + instrux + 3095, + instrux + 3096, + instrux + 3099, + instrux + 3100, +}; + +static const struct itemplate * const itable_vex0357D[] = { + instrux + 3087, + instrux + 3088, + instrux + 3091, + instrux + 3092, +}; + +static const struct itemplate * const itable_xop08085[] = { + instrux + 3189, + instrux + 3190, +}; + +static const struct itemplate * const itable_xop08086[] = { + instrux + 3187, + instrux + 3188, +}; + +static const struct itemplate * const itable_xop08087[] = { + instrux + 3185, + instrux + 3186, +}; + +static const struct itemplate * const itable_xop0808E[] = { + instrux + 3181, + instrux + 3182, +}; + +static const struct itemplate * const itable_xop0808F[] = { + instrux + 3183, + instrux + 3184, +}; + +static const struct itemplate * const itable_xop08095[] = { + instrux + 3193, + instrux + 3194, +}; + +static const struct itemplate * const itable_xop08096[] = { + instrux + 3191, + instrux + 3192, +}; + +static const struct itemplate * const itable_xop08097[] = { + instrux + 3179, + instrux + 3180, +}; + +static const struct itemplate * const itable_xop0809E[] = { + instrux + 3175, + instrux + 3176, +}; + +static const struct itemplate * const itable_xop0809F[] = { + instrux + 3177, + instrux + 3178, +}; + +static const struct itemplate * const itable_xop080A0[] = { + instrux + 2971, + instrux + 2972, +}; + +static const struct itemplate * const itable_xop080A1[] = { + instrux + 2976, + instrux + 2977, +}; + +static const struct itemplate * const itable_xop080A2[] = { + instrux + 3121, + instrux + 3122, + instrux + 3125, + instrux + 3126, +}; + +static const struct itemplate * const itable_xop080A3[] = { + instrux + 3199, + instrux + 3200, + instrux + 3201, + instrux + 3202, +}; + +static const struct itemplate * const itable_xop080A6[] = { + instrux + 3195, + instrux + 3196, +}; + +static const struct itemplate * const itable_xop080B6[] = { + instrux + 3197, + instrux + 3198, +}; + +static const struct itemplate * const itable_xop080C0[] = { + instrux + 3207, + instrux + 3208, +}; + +static const struct itemplate * const itable_xop080C1[] = { + instrux + 3225, + instrux + 3226, +}; + +static const struct itemplate * const itable_xop080C2[] = { + instrux + 3213, + instrux + 3214, +}; + +static const struct itemplate * const itable_xop080C3[] = { + instrux + 3219, + instrux + 3220, +}; + +static const struct itemplate * const itable_xop080CC[] = { + instrux + 3129, + instrux + 3130, +}; + +static const struct itemplate * const itable_xop080CD[] = { + instrux + 3143, + instrux + 3144, +}; + +static const struct itemplate * const itable_xop080CE[] = { + instrux + 3131, + instrux + 3132, +}; + +static const struct itemplate * const itable_xop080CF[] = { + instrux + 3133, + instrux + 3134, +}; + +static const struct itemplate * const itable_xop080EC[] = { + instrux + 3135, + instrux + 3136, +}; + +static const struct itemplate * const itable_xop080ED[] = { + instrux + 3141, + instrux + 3142, +}; + +static const struct itemplate * const itable_xop080EE[] = { + instrux + 3137, + instrux + 3138, +}; + +static const struct itemplate * const itable_xop080EF[] = { + instrux + 3139, + instrux + 3140, +}; + +static const struct itemplate * const itable_xop084A0[] = { + instrux + 2973, + instrux + 2974, + instrux + 2975, +}; + +static const struct itemplate * const itable_xop084A1[] = { + instrux + 2978, + instrux + 2979, + instrux + 2980, +}; + +static const struct itemplate * const itable_xop084A2[] = { + instrux + 3123, + instrux + 3124, + instrux + 3127, + instrux + 3128, +}; + +static const struct itemplate * const itable_xop09012[] = { + instrux + 2959, + instrux + 2961, + instrux + 2962, + instrux + 2964, +}; + +static const struct itemplate * const itable_xop09080[] = { + instrux + 3113, + instrux + 3114, +}; + +static const struct itemplate * const itable_xop09081[] = { + instrux + 3109, + instrux + 3110, +}; + +static const struct itemplate * const itable_xop09082[] = { + instrux + 3119, + instrux + 3120, +}; + +static const struct itemplate * const itable_xop09083[] = { + instrux + 3117, + instrux + 3118, +}; + +static const struct itemplate * const itable_xop09090[] = { + instrux + 3203, + instrux + 3204, + instrux + 3205, + instrux + 3206, +}; + +static const struct itemplate * const itable_xop09091[] = { + instrux + 3221, + instrux + 3222, + instrux + 3223, + instrux + 3224, +}; + +static const struct itemplate * const itable_xop09092[] = { + instrux + 3209, + instrux + 3210, + instrux + 3211, + instrux + 3212, +}; + +static const struct itemplate * const itable_xop09093[] = { + instrux + 3215, + instrux + 3216, + instrux + 3217, + instrux + 3218, +}; + +static const struct itemplate * const itable_xop09094[] = { + instrux + 3243, + instrux + 3244, + instrux + 3245, + instrux + 3246, +}; + +static const struct itemplate * const itable_xop09095[] = { + instrux + 3255, + instrux + 3256, + instrux + 3257, + instrux + 3258, +}; + +static const struct itemplate * const itable_xop09096[] = { + instrux + 3247, + instrux + 3248, + instrux + 3249, + instrux + 3250, +}; + +static const struct itemplate * const itable_xop09097[] = { + instrux + 3251, + instrux + 3252, + instrux + 3253, + instrux + 3254, +}; + +static const struct itemplate * const itable_xop09098[] = { + instrux + 3227, + instrux + 3228, + instrux + 3229, + instrux + 3230, +}; + +static const struct itemplate * const itable_xop09099[] = { + instrux + 3239, + instrux + 3240, + instrux + 3241, + instrux + 3242, +}; + +static const struct itemplate * const itable_xop0909A[] = { + instrux + 3231, + instrux + 3232, + instrux + 3233, + instrux + 3234, +}; + +static const struct itemplate * const itable_xop0909B[] = { + instrux + 3235, + instrux + 3236, + instrux + 3237, + instrux + 3238, +}; + +static const struct itemplate * const itable_xop090C1[] = { + instrux + 3149, + instrux + 3150, +}; + +static const struct itemplate * const itable_xop090C2[] = { + instrux + 3145, + instrux + 3146, +}; + +static const struct itemplate * const itable_xop090C3[] = { + instrux + 3147, + instrux + 3148, +}; + +static const struct itemplate * const itable_xop090C6[] = { + instrux + 3165, + instrux + 3166, +}; + +static const struct itemplate * const itable_xop090C7[] = { + instrux + 3167, + instrux + 3168, +}; + +static const struct itemplate * const itable_xop090CB[] = { + instrux + 3151, + instrux + 3152, +}; + +static const struct itemplate * const itable_xop090D1[] = { + instrux + 3157, + instrux + 3158, +}; + +static const struct itemplate * const itable_xop090D2[] = { + instrux + 3153, + instrux + 3154, +}; + +static const struct itemplate * const itable_xop090D3[] = { + instrux + 3155, + instrux + 3156, +}; + +static const struct itemplate * const itable_xop090D6[] = { + instrux + 3161, + instrux + 3162, +}; + +static const struct itemplate * const itable_xop090D7[] = { + instrux + 3163, + instrux + 3164, +}; + +static const struct itemplate * const itable_xop090DB[] = { + instrux + 3159, + instrux + 3160, +}; + +static const struct itemplate * const itable_xop090E1[] = { + instrux + 3169, + instrux + 3170, +}; + +static const struct itemplate * const itable_xop090E2[] = { + instrux + 3173, + instrux + 3174, +}; + +static const struct itemplate * const itable_xop090E3[] = { + instrux + 3171, + instrux + 3172, +}; + +static const struct itemplate * const itable_xop09412[] = { + instrux + 2960, + instrux + 2963, +}; + +static const struct itemplate * const itable_xop09480[] = { + instrux + 3115, + instrux + 3116, +}; + +static const struct itemplate * const itable_xop09481[] = { + instrux + 3111, + instrux + 3112, +}; + +static const struct itemplate * const itable_xop0A012[] = { + instrux + 2965, + instrux + 2967, + instrux + 2968, + instrux + 2970, +}; + +static const struct itemplate * const itable_xop0A412[] = { + instrux + 2966, + instrux + 2969, +}; + +static const struct disasm_index itable_vex010[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01010, 1 }, + { itable_vex01011, 1 }, + { itable_vex01012, 4 }, + { itable_vex01013, 1 }, + { itable_vex01014, 2 }, + { itable_vex01015, 2 }, + { itable_vex01016, 4 }, + { itable_vex01017, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01028, 1 }, + { itable_vex01029, 1 }, + { NULL, 0 }, + { itable_vex0102B, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0102E, 1 }, + { itable_vex0102F, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01050, 2 }, + { itable_vex01051, 1 }, + { itable_vex01052, 1 }, + { itable_vex01053, 1 }, + { itable_vex01054, 2 }, + { itable_vex01055, 2 }, + { itable_vex01056, 2 }, + { itable_vex01057, 2 }, + { itable_vex01058, 2 }, + { itable_vex01059, 2 }, + { itable_vex0105A, 1 }, + { itable_vex0105B, 1 }, + { itable_vex0105C, 2 }, + { itable_vex0105D, 2 }, + { itable_vex0105E, 2 }, + { itable_vex0105F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01077, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex010AE, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex010C2, 66 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex010C6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex011[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01110, 1 }, + { itable_vex01111, 1 }, + { itable_vex01112, 2 }, + { itable_vex01113, 1 }, + { itable_vex01114, 2 }, + { itable_vex01115, 2 }, + { itable_vex01116, 2 }, + { itable_vex01117, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01128, 1 }, + { itable_vex01129, 3 }, + { NULL, 0 }, + { itable_vex0112B, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0112E, 1 }, + { itable_vex0112F, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01137, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01150, 2 }, + { itable_vex01151, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01154, 2 }, + { itable_vex01155, 2 }, + { itable_vex01156, 2 }, + { itable_vex01157, 2 }, + { itable_vex01158, 2 }, + { itable_vex01159, 2 }, + { itable_vex0115A, 2 }, + { itable_vex0115B, 1 }, + { itable_vex0115C, 2 }, + { itable_vex0115D, 2 }, + { itable_vex0115E, 2 }, + { itable_vex0115F, 2 }, + { itable_vex01160, 2 }, + { itable_vex01161, 2 }, + { itable_vex01162, 2 }, + { itable_vex01163, 2 }, + { itable_vex01164, 2 }, + { itable_vex01165, 2 }, + { itable_vex01166, 2 }, + { itable_vex01167, 2 }, + { itable_vex01168, 2 }, + { itable_vex01169, 2 }, + { itable_vex0116A, 2 }, + { itable_vex0116B, 2 }, + { itable_vex0116C, 2 }, + { itable_vex0116D, 2 }, + { itable_vex0116E, 2 }, + { itable_vex0116F, 1 }, + { itable_vex01170, 1 }, + { itable_vex01171, 6 }, + { itable_vex01172, 6 }, + { itable_vex01173, 8 }, + { itable_vex01174, 2 }, + { itable_vex01175, 2 }, + { itable_vex01176, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0117C, 2 }, + { itable_vex0117D, 2 }, + { itable_vex0117E, 2 }, + { itable_vex0117F, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex011C2, 66 }, + { NULL, 0 }, + { itable_vex011C4, 6 }, + { itable_vex011C5, 3 }, + { itable_vex011C6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex011D0, 2 }, + { itable_vex011D1, 2 }, + { itable_vex011D2, 2 }, + { itable_vex011D3, 2 }, + { itable_vex011D4, 2 }, + { itable_vex011D5, 2 }, + { itable_vex011D6, 1 }, + { itable_vex011D7, 2 }, + { itable_vex011D8, 2 }, + { itable_vex011D9, 2 }, + { itable_vex011DA, 2 }, + { itable_vex011DB, 2 }, + { itable_vex011DC, 2 }, + { itable_vex011DD, 2 }, + { itable_vex011DE, 2 }, + { itable_vex011DF, 2 }, + { itable_vex011E0, 2 }, + { itable_vex011E1, 2 }, + { itable_vex011E2, 2 }, + { itable_vex011E3, 2 }, + { itable_vex011E4, 2 }, + { itable_vex011E5, 2 }, + { itable_vex011E6, 2 }, + { itable_vex011E7, 1 }, + { itable_vex011E8, 2 }, + { itable_vex011E9, 2 }, + { itable_vex011EA, 2 }, + { itable_vex011EB, 2 }, + { itable_vex011EC, 2 }, + { itable_vex011ED, 2 }, + { itable_vex011EE, 2 }, + { itable_vex011EF, 2 }, + { NULL, 0 }, + { itable_vex011F1, 2 }, + { itable_vex011F2, 2 }, + { itable_vex011F3, 2 }, + { itable_vex011F4, 2 }, + { itable_vex011F5, 2 }, + { itable_vex011F6, 2 }, + { itable_vex011F7, 1 }, + { itable_vex011F8, 2 }, + { itable_vex011F9, 2 }, + { itable_vex011FA, 2 }, + { itable_vex011FB, 2 }, + { itable_vex011FC, 2 }, + { itable_vex011FD, 2 }, + { itable_vex011FE, 2 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex012[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01210, 3 }, + { itable_vex01211, 3 }, + { itable_vex01212, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01216, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0122A, 4 }, + { NULL, 0 }, + { itable_vex0122C, 2 }, + { itable_vex0122D, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01251, 2 }, + { itable_vex01252, 2 }, + { itable_vex01253, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01258, 2 }, + { itable_vex01259, 2 }, + { itable_vex0125A, 2 }, + { itable_vex0125B, 1 }, + { itable_vex0125C, 2 }, + { itable_vex0125D, 2 }, + { itable_vex0125E, 2 }, + { itable_vex0125F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0126F, 1 }, + { itable_vex01270, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0127E, 1 }, + { itable_vex0127F, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex012C2, 66 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex012E6, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex013[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01310, 3 }, + { itable_vex01311, 3 }, + { itable_vex01312, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0132A, 4 }, + { NULL, 0 }, + { itable_vex0132C, 2 }, + { itable_vex0132D, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01351, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01358, 2 }, + { itable_vex01359, 2 }, + { itable_vex0135A, 2 }, + { NULL, 0 }, + { itable_vex0135C, 2 }, + { itable_vex0135D, 2 }, + { itable_vex0135E, 2 }, + { itable_vex0135F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01370, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0137C, 2 }, + { itable_vex0137D, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex013C2, 66 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex013D0, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex013E6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex013F0, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex014[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01410, 1 }, + { itable_vex01411, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01414, 2 }, + { itable_vex01415, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01428, 1 }, + { itable_vex01429, 1 }, + { NULL, 0 }, + { itable_vex0142B, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01450, 2 }, + { itable_vex01451, 1 }, + { itable_vex01452, 1 }, + { itable_vex01453, 1 }, + { itable_vex01454, 2 }, + { itable_vex01455, 2 }, + { itable_vex01456, 2 }, + { itable_vex01457, 2 }, + { itable_vex01458, 2 }, + { itable_vex01459, 2 }, + { itable_vex0145A, 1 }, + { itable_vex0145B, 1 }, + { itable_vex0145C, 2 }, + { itable_vex0145D, 2 }, + { itable_vex0145E, 2 }, + { itable_vex0145F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01477, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex014C2, 66 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex014C6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex015[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01510, 1 }, + { itable_vex01511, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01514, 2 }, + { itable_vex01515, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01528, 1 }, + { itable_vex01529, 1 }, + { NULL, 0 }, + { itable_vex0152B, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01550, 2 }, + { itable_vex01551, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01554, 2 }, + { itable_vex01555, 2 }, + { itable_vex01556, 2 }, + { itable_vex01557, 2 }, + { itable_vex01558, 2 }, + { itable_vex01559, 2 }, + { itable_vex0155A, 2 }, + { itable_vex0155B, 1 }, + { itable_vex0155C, 2 }, + { itable_vex0155D, 2 }, + { itable_vex0155E, 2 }, + { itable_vex0155F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0156F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0157C, 2 }, + { itable_vex0157D, 2 }, + { NULL, 0 }, + { itable_vex0157F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex015C2, 66 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex015C6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex015D0, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex015E6, 2 }, + { itable_vex015E7, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex016[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01612, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01616, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0165B, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0166F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0167F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex016E6, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex017[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex01712, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0177C, 2 }, + { itable_vex0177D, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex017D0, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex017E6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex017F0, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex021[256] = { + { itable_vex02100, 2 }, + { itable_vex02101, 2 }, + { itable_vex02102, 2 }, + { itable_vex02103, 2 }, + { itable_vex02104, 2 }, + { itable_vex02105, 2 }, + { itable_vex02106, 2 }, + { itable_vex02107, 2 }, + { itable_vex02108, 2 }, + { itable_vex02109, 2 }, + { itable_vex0210A, 2 }, + { itable_vex0210B, 2 }, + { itable_vex0210C, 1 }, + { itable_vex0210D, 1 }, + { itable_vex0210E, 1 }, + { itable_vex0210F, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex02114, 1 }, + { itable_vex02115, 1 }, + { NULL, 0 }, + { itable_vex02117, 1 }, + { itable_vex02118, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0211C, 1 }, + { itable_vex0211D, 1 }, + { itable_vex0211E, 1 }, + { NULL, 0 }, + { itable_vex02120, 1 }, + { itable_vex02121, 1 }, + { itable_vex02122, 1 }, + { itable_vex02123, 1 }, + { itable_vex02124, 1 }, + { itable_vex02125, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex02128, 2 }, + { NULL, 0 }, + { itable_vex0212A, 1 }, + { itable_vex0212B, 2 }, + { itable_vex0212C, 1 }, + { itable_vex0212D, 1 }, + { itable_vex0212E, 1 }, + { itable_vex0212F, 1 }, + { itable_vex02130, 1 }, + { itable_vex02131, 1 }, + { itable_vex02132, 1 }, + { itable_vex02133, 1 }, + { itable_vex02134, 1 }, + { itable_vex02135, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex02138, 2 }, + { itable_vex02139, 2 }, + { itable_vex0213A, 2 }, + { itable_vex0213B, 2 }, + { itable_vex0213C, 2 }, + { itable_vex0213D, 2 }, + { itable_vex0213E, 2 }, + { itable_vex0213F, 2 }, + { itable_vex02140, 2 }, + { itable_vex02141, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex02196, 4 }, + { itable_vex02197, 4 }, + { itable_vex02198, 4 }, + { itable_vex02199, 4 }, + { itable_vex0219A, 4 }, + { itable_vex0219B, 4 }, + { itable_vex0219C, 4 }, + { itable_vex0219D, 4 }, + { itable_vex0219E, 4 }, + { itable_vex0219F, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex021A6, 4 }, + { itable_vex021A7, 4 }, + { itable_vex021A8, 4 }, + { itable_vex021A9, 4 }, + { itable_vex021AA, 4 }, + { itable_vex021AB, 4 }, + { itable_vex021AC, 4 }, + { itable_vex021AD, 4 }, + { itable_vex021AE, 4 }, + { itable_vex021AF, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex021B6, 4 }, + { itable_vex021B7, 4 }, + { itable_vex021B8, 4 }, + { itable_vex021B9, 4 }, + { itable_vex021BA, 4 }, + { itable_vex021BB, 4 }, + { itable_vex021BC, 4 }, + { itable_vex021BD, 4 }, + { itable_vex021BE, 4 }, + { itable_vex021BF, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex021DB, 1 }, + { itable_vex021DC, 2 }, + { itable_vex021DD, 2 }, + { itable_vex021DE, 2 }, + { itable_vex021DF, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex025[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0250C, 1 }, + { itable_vex0250D, 1 }, + { itable_vex0250E, 1 }, + { itable_vex0250F, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex02514, 1 }, + { itable_vex02515, 1 }, + { NULL, 0 }, + { itable_vex02517, 1 }, + { itable_vex02518, 1 }, + { itable_vex02519, 1 }, + { itable_vex0251A, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0252C, 1 }, + { itable_vex0252D, 1 }, + { itable_vex0252E, 1 }, + { itable_vex0252F, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex02596, 4 }, + { itable_vex02597, 4 }, + { itable_vex02598, 4 }, + { NULL, 0 }, + { itable_vex0259A, 4 }, + { NULL, 0 }, + { itable_vex0259C, 4 }, + { NULL, 0 }, + { itable_vex0259E, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex025A6, 4 }, + { itable_vex025A7, 4 }, + { itable_vex025A8, 4 }, + { NULL, 0 }, + { itable_vex025AA, 4 }, + { NULL, 0 }, + { itable_vex025AC, 4 }, + { NULL, 0 }, + { itable_vex025AE, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex025B6, 4 }, + { itable_vex025B7, 4 }, + { itable_vex025B8, 4 }, + { NULL, 0 }, + { itable_vex025BA, 4 }, + { NULL, 0 }, + { itable_vex025BC, 4 }, + { NULL, 0 }, + { itable_vex025BE, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex031[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03104, 1 }, + { itable_vex03105, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03108, 1 }, + { itable_vex03109, 1 }, + { itable_vex0310A, 2 }, + { itable_vex0310B, 2 }, + { itable_vex0310C, 2 }, + { itable_vex0310D, 2 }, + { itable_vex0310E, 2 }, + { itable_vex0310F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03114, 3 }, + { itable_vex03115, 3 }, + { itable_vex03116, 3 }, + { itable_vex03117, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03120, 6 }, + { itable_vex03121, 2 }, + { itable_vex03122, 8 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03140, 2 }, + { itable_vex03141, 2 }, + { itable_vex03142, 2 }, + { NULL, 0 }, + { itable_vex03144, 10 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03148, 8 }, + { itable_vex03149, 8 }, + { itable_vex0314A, 1 }, + { itable_vex0314B, 1 }, + { itable_vex0314C, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0315C, 4 }, + { itable_vex0315D, 4 }, + { itable_vex0315E, 4 }, + { itable_vex0315F, 4 }, + { itable_vex03160, 1 }, + { itable_vex03161, 1 }, + { itable_vex03162, 1 }, + { itable_vex03163, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03168, 4 }, + { itable_vex03169, 4 }, + { itable_vex0316A, 4 }, + { itable_vex0316B, 4 }, + { itable_vex0316C, 4 }, + { itable_vex0316D, 4 }, + { itable_vex0316E, 4 }, + { itable_vex0316F, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03178, 4 }, + { itable_vex03179, 4 }, + { itable_vex0317A, 4 }, + { itable_vex0317B, 4 }, + { itable_vex0317C, 4 }, + { itable_vex0317D, 4 }, + { itable_vex0317E, 4 }, + { itable_vex0317F, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex031DF, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_vex035[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03504, 1 }, + { itable_vex03505, 1 }, + { itable_vex03506, 1 }, + { NULL, 0 }, + { itable_vex03508, 1 }, + { itable_vex03509, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0350C, 2 }, + { itable_vex0350D, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03518, 1 }, + { itable_vex03519, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03540, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03548, 8 }, + { itable_vex03549, 8 }, + { itable_vex0354A, 1 }, + { itable_vex0354B, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0355C, 4 }, + { itable_vex0355D, 4 }, + { itable_vex0355E, 4 }, + { itable_vex0355F, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03568, 4 }, + { itable_vex03569, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0356C, 4 }, + { itable_vex0356D, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex03578, 4 }, + { itable_vex03579, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_vex0357C, 4 }, + { itable_vex0357D, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_xop080[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop08085, 2 }, + { itable_xop08086, 2 }, + { itable_xop08087, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop0808E, 2 }, + { itable_xop0808F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop08095, 2 }, + { itable_xop08096, 2 }, + { itable_xop08097, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop0809E, 2 }, + { itable_xop0809F, 2 }, + { itable_xop080A0, 2 }, + { itable_xop080A1, 2 }, + { itable_xop080A2, 4 }, + { itable_xop080A3, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop080A6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop080B6, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop080C0, 2 }, + { itable_xop080C1, 2 }, + { itable_xop080C2, 2 }, + { itable_xop080C3, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop080CC, 2 }, + { itable_xop080CD, 2 }, + { itable_xop080CE, 2 }, + { itable_xop080CF, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop080EC, 2 }, + { itable_xop080ED, 2 }, + { itable_xop080EE, 2 }, + { itable_xop080EF, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_xop084[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop084A0, 3 }, + { itable_xop084A1, 3 }, + { itable_xop084A2, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_xop090[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop09012, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop09080, 2 }, + { itable_xop09081, 2 }, + { itable_xop09082, 2 }, + { itable_xop09083, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop09090, 4 }, + { itable_xop09091, 4 }, + { itable_xop09092, 4 }, + { itable_xop09093, 4 }, + { itable_xop09094, 4 }, + { itable_xop09095, 4 }, + { itable_xop09096, 4 }, + { itable_xop09097, 4 }, + { itable_xop09098, 4 }, + { itable_xop09099, 4 }, + { itable_xop0909A, 4 }, + { itable_xop0909B, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop090C1, 2 }, + { itable_xop090C2, 2 }, + { itable_xop090C3, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop090C6, 2 }, + { itable_xop090C7, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop090CB, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop090D1, 2 }, + { itable_xop090D2, 2 }, + { itable_xop090D3, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop090D6, 2 }, + { itable_xop090D7, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop090DB, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop090E1, 2 }, + { itable_xop090E2, 2 }, + { itable_xop090E3, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_xop094[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop09412, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop09480, 2 }, + { itable_xop09481, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_xop0A0[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop0A012, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_xop0A4[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_xop0A412, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_0F38[256] = { + { itable_0F3800, 2 }, + { itable_0F3801, 2 }, + { itable_0F3802, 2 }, + { itable_0F3803, 2 }, + { itable_0F3804, 2 }, + { itable_0F3805, 2 }, + { itable_0F3806, 2 }, + { itable_0F3807, 2 }, + { itable_0F3808, 2 }, + { itable_0F3809, 2 }, + { itable_0F380A, 2 }, + { itable_0F380B, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3810, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3814, 1 }, + { itable_0F3815, 1 }, + { NULL, 0 }, + { itable_0F3817, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F381C, 2 }, + { itable_0F381D, 2 }, + { itable_0F381E, 2 }, + { NULL, 0 }, + { itable_0F3820, 1 }, + { itable_0F3821, 1 }, + { itable_0F3822, 1 }, + { itable_0F3823, 1 }, + { itable_0F3824, 1 }, + { itable_0F3825, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3828, 1 }, + { itable_0F3829, 1 }, + { itable_0F382A, 1 }, + { itable_0F382B, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3830, 1 }, + { itable_0F3831, 1 }, + { itable_0F3832, 1 }, + { itable_0F3833, 1 }, + { itable_0F3834, 1 }, + { itable_0F3835, 1 }, + { NULL, 0 }, + { itable_0F3837, 1 }, + { itable_0F3838, 1 }, + { itable_0F3839, 1 }, + { itable_0F383A, 1 }, + { itable_0F383B, 1 }, + { itable_0F383C, 1 }, + { itable_0F383D, 1 }, + { itable_0F383E, 1 }, + { itable_0F383F, 1 }, + { itable_0F3840, 1 }, + { itable_0F3841, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3880, 2 }, + { itable_0F3881, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F38DB, 1 }, + { itable_0F38DC, 1 }, + { itable_0F38DD, 1 }, + { itable_0F38DE, 1 }, + { itable_0F38DF, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F38F0, 5 }, + { itable_0F38F1, 6 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_0F3A[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3A08, 1 }, + { itable_0F3A09, 1 }, + { itable_0F3A0A, 1 }, + { itable_0F3A0B, 1 }, + { itable_0F3A0C, 1 }, + { itable_0F3A0D, 1 }, + { itable_0F3A0E, 1 }, + { itable_0F3A0F, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3A14, 3 }, + { itable_0F3A15, 3 }, + { itable_0F3A16, 2 }, + { itable_0F3A17, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3A20, 3 }, + { itable_0F3A21, 1 }, + { itable_0F3A22, 4 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3A40, 1 }, + { itable_0F3A41, 1 }, + { itable_0F3A42, 1 }, + { NULL, 0 }, + { itable_0F3A44, 5 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3A60, 1 }, + { itable_0F3A61, 1 }, + { itable_0F3A62, 1 }, + { itable_0F3A63, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F3ADF, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_0FA6[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA6C0, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA6C8, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA6D0, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_0FA7[256] = { + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA7C0, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA7C8, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA7D0, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA7D8, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA7E0, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0FA7E8, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, +}; + +static const struct disasm_index itable_0F[256] = { + { itable_0F00, 24 }, + { itable_0F01, 33 }, + { itable_0F02, 10 }, + { itable_0F03, 10 }, + { NULL, 0 }, + { itable_0F05, 2 }, + { itable_0F06, 1 }, + { itable_0F07, 2 }, + { itable_0F08, 1 }, + { itable_0F09, 1 }, + { NULL, 0 }, + { itable_0F0B, 1 }, + { NULL, 0 }, + { itable_0F0D, 2 }, + { itable_0F0E, 1 }, + { itable_0F0F, 26 }, + { itable_0F10, 8 }, + { itable_0F11, 8 }, + { itable_0F12, 5 }, + { itable_0F13, 2 }, + { itable_0F14, 2 }, + { itable_0F15, 2 }, + { itable_0F16, 4 }, + { itable_0F17, 2 }, + { itable_0F18, 28 }, + { itable_0F19, 24 }, + { itable_0F1A, 24 }, + { itable_0F1B, 24 }, + { itable_0F1C, 24 }, + { itable_0F1D, 24 }, + { itable_0F1E, 24 }, + { itable_0F1F, 27 }, + { itable_0F20, 2 }, + { itable_0F21, 2 }, + { itable_0F22, 2 }, + { itable_0F23, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F28, 4 }, + { itable_0F29, 4 }, + { itable_0F2A, 6 }, + { itable_0F2B, 4 }, + { itable_0F2C, 8 }, + { itable_0F2D, 10 }, + { itable_0F2E, 2 }, + { itable_0F2F, 2 }, + { itable_0F30, 1 }, + { itable_0F31, 1 }, + { itable_0F32, 1 }, + { itable_0F33, 1 }, + { itable_0F34, 1 }, + { itable_0F35, 1 }, + { itable_0F36, 1 }, + { itable_0F37, 2 }, + { itable_0F38, -1 }, + { itable_0F39, 1 }, + { itable_0F3A, -1 }, + { NULL, 0 }, + { itable_0F3C, 1 }, + { itable_0F3D, 1 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_0F40, 6 }, + { itable_0F41, 6 }, + { itable_0F42, 6 }, + { itable_0F43, 6 }, + { itable_0F44, 6 }, + { itable_0F45, 6 }, + { itable_0F46, 6 }, + { itable_0F47, 6 }, + { itable_0F48, 6 }, + { itable_0F49, 6 }, + { itable_0F4A, 6 }, + { itable_0F4B, 6 }, + { itable_0F4C, 6 }, + { itable_0F4D, 6 }, + { itable_0F4E, 6 }, + { itable_0F4F, 6 }, + { itable_0F50, 5 }, + { itable_0F51, 5 }, + { itable_0F52, 3 }, + { itable_0F53, 2 }, + { itable_0F54, 3 }, + { itable_0F55, 3 }, + { itable_0F56, 2 }, + { itable_0F57, 2 }, + { itable_0F58, 5 }, + { itable_0F59, 5 }, + { itable_0F5A, 5 }, + { itable_0F5B, 4 }, + { itable_0F5C, 5 }, + { itable_0F5D, 5 }, + { itable_0F5E, 5 }, + { itable_0F5F, 4 }, + { itable_0F60, 2 }, + { itable_0F61, 2 }, + { itable_0F62, 2 }, + { itable_0F63, 2 }, + { itable_0F64, 2 }, + { itable_0F65, 2 }, + { itable_0F66, 2 }, + { itable_0F67, 2 }, + { itable_0F68, 2 }, + { itable_0F69, 2 }, + { itable_0F6A, 2 }, + { itable_0F6B, 2 }, + { itable_0F6C, 1 }, + { itable_0F6D, 1 }, + { itable_0F6E, 8 }, + { itable_0F6F, 5 }, + { itable_0F70, 7 }, + { itable_0F71, 6 }, + { itable_0F72, 6 }, + { itable_0F73, 6 }, + { itable_0F74, 2 }, + { itable_0F75, 2 }, + { itable_0F76, 2 }, + { itable_0F77, 1 }, + { itable_0F78, 5 }, + { itable_0F79, 5 }, + { NULL, 0 }, + { itable_0F7B, 1 }, + { itable_0F7C, 3 }, + { itable_0F7D, 3 }, + { itable_0F7E, 10 }, + { itable_0F7F, 5 }, + { itable_0F80, 3 }, + { itable_0F81, 3 }, + { itable_0F82, 3 }, + { itable_0F83, 3 }, + { itable_0F84, 3 }, + { itable_0F85, 3 }, + { itable_0F86, 3 }, + { itable_0F87, 3 }, + { itable_0F88, 3 }, + { itable_0F89, 3 }, + { itable_0F8A, 3 }, + { itable_0F8B, 3 }, + { itable_0F8C, 3 }, + { itable_0F8D, 3 }, + { itable_0F8E, 3 }, + { itable_0F8F, 3 }, + { itable_0F90, 2 }, + { itable_0F91, 2 }, + { itable_0F92, 2 }, + { itable_0F93, 2 }, + { itable_0F94, 2 }, + { itable_0F95, 2 }, + { itable_0F96, 2 }, + { itable_0F97, 2 }, + { itable_0F98, 2 }, + { itable_0F99, 2 }, + { itable_0F9A, 2 }, + { itable_0F9B, 2 }, + { itable_0F9C, 2 }, + { itable_0F9D, 2 }, + { itable_0F9E, 2 }, + { itable_0F9F, 2 }, + { itable_0FA0, 1 }, + { itable_0FA1, 1 }, + { itable_0FA2, 1 }, + { itable_0FA3, 6 }, + { itable_0FA4, 6 }, + { itable_0FA5, 6 }, + { itable_0FA6, -1 }, + { itable_0FA7, -1 }, + { itable_0FA8, 1 }, + { itable_0FA9, 1 }, + { itable_0FAA, 1 }, + { itable_0FAB, 6 }, + { itable_0FAC, 6 }, + { itable_0FAD, 6 }, + { itable_0FAE, 13 }, + { itable_0FAF, 6 }, + { itable_0FB0, 2 }, + { itable_0FB1, 6 }, + { itable_0FB2, 2 }, + { itable_0FB3, 6 }, + { itable_0FB4, 2 }, + { itable_0FB5, 2 }, + { itable_0FB6, 4 }, + { itable_0FB7, 2 }, + { itable_0FB8, 6 }, + { itable_0FB9, 1 }, + { itable_0FBA, 12 }, + { itable_0FBB, 6 }, + { itable_0FBC, 6 }, + { itable_0FBD, 9 }, + { itable_0FBE, 4 }, + { itable_0FBF, 2 }, + { itable_0FC0, 2 }, + { itable_0FC1, 6 }, + { itable_0FC2, 38 }, + { itable_0FC3, 2 }, + { itable_0FC4, 6 }, + { itable_0FC5, 2 }, + { itable_0FC6, 4 }, + { itable_0FC7, 6 }, + { itable_0FC8, 2 }, + { itable_0FC9, 2 }, + { itable_0FCA, 2 }, + { itable_0FCB, 2 }, + { itable_0FCC, 2 }, + { itable_0FCD, 2 }, + { itable_0FCE, 2 }, + { itable_0FCF, 2 }, + { itable_0FD0, 2 }, + { itable_0FD1, 2 }, + { itable_0FD2, 2 }, + { itable_0FD3, 2 }, + { itable_0FD4, 2 }, + { itable_0FD5, 2 }, + { itable_0FD6, 4 }, + { itable_0FD7, 2 }, + { itable_0FD8, 2 }, + { itable_0FD9, 2 }, + { itable_0FDA, 2 }, + { itable_0FDB, 2 }, + { itable_0FDC, 2 }, + { itable_0FDD, 2 }, + { itable_0FDE, 2 }, + { itable_0FDF, 2 }, + { itable_0FE0, 2 }, + { itable_0FE1, 2 }, + { itable_0FE2, 2 }, + { itable_0FE3, 2 }, + { itable_0FE4, 2 }, + { itable_0FE5, 2 }, + { itable_0FE6, 3 }, + { itable_0FE7, 2 }, + { itable_0FE8, 2 }, + { itable_0FE9, 2 }, + { itable_0FEA, 2 }, + { itable_0FEB, 2 }, + { itable_0FEC, 2 }, + { itable_0FED, 2 }, + { itable_0FEE, 2 }, + { itable_0FEF, 2 }, + { itable_0FF0, 1 }, + { itable_0FF1, 2 }, + { itable_0FF2, 2 }, + { itable_0FF3, 2 }, + { itable_0FF4, 2 }, + { itable_0FF5, 2 }, + { itable_0FF6, 2 }, + { itable_0FF7, 2 }, + { itable_0FF8, 2 }, + { itable_0FF9, 2 }, + { itable_0FFA, 2 }, + { itable_0FFB, 2 }, + { itable_0FFC, 2 }, + { itable_0FFD, 2 }, + { itable_0FFE, 2 }, + { itable_0FFF, 1 }, +}; + +const struct disasm_index itable[256] = { + { itable_00, 2 }, + { itable_01, 6 }, + { itable_02, 2 }, + { itable_03, 6 }, + { itable_04, 1 }, + { itable_05, 3 }, + { itable_06, 2 }, + { itable_07, 1 }, + { itable_08, 2 }, + { itable_09, 6 }, + { itable_0A, 2 }, + { itable_0B, 6 }, + { itable_0C, 1 }, + { itable_0D, 3 }, + { itable_0E, 2 }, + { itable_0F, -1 }, + { itable_10, 2 }, + { itable_11, 6 }, + { itable_12, 2 }, + { itable_13, 6 }, + { itable_14, 1 }, + { itable_15, 3 }, + { itable_16, 2 }, + { itable_17, 1 }, + { itable_18, 2 }, + { itable_19, 6 }, + { itable_1A, 2 }, + { itable_1B, 6 }, + { itable_1C, 1 }, + { itable_1D, 3 }, + { itable_1E, 2 }, + { itable_1F, 1 }, + { itable_20, 2 }, + { itable_21, 6 }, + { itable_22, 2 }, + { itable_23, 6 }, + { itable_24, 1 }, + { itable_25, 3 }, + { NULL, 0 }, + { itable_27, 1 }, + { itable_28, 2 }, + { itable_29, 6 }, + { itable_2A, 2 }, + { itable_2B, 6 }, + { itable_2C, 1 }, + { itable_2D, 3 }, + { NULL, 0 }, + { itable_2F, 1 }, + { itable_30, 2 }, + { itable_31, 6 }, + { itable_32, 2 }, + { itable_33, 6 }, + { itable_34, 1 }, + { itable_35, 3 }, + { NULL, 0 }, + { itable_37, 1 }, + { itable_38, 2 }, + { itable_39, 6 }, + { itable_3A, 2 }, + { itable_3B, 6 }, + { itable_3C, 1 }, + { itable_3D, 3 }, + { NULL, 0 }, + { itable_3F, 1 }, + { itable_40, 2 }, + { itable_41, 2 }, + { itable_42, 2 }, + { itable_43, 2 }, + { itable_44, 2 }, + { itable_45, 2 }, + { itable_46, 2 }, + { itable_47, 2 }, + { itable_48, 2 }, + { itable_49, 2 }, + { itable_4A, 2 }, + { itable_4B, 2 }, + { itable_4C, 2 }, + { itable_4D, 2 }, + { itable_4E, 2 }, + { itable_4F, 2 }, + { itable_50, 3 }, + { itable_51, 3 }, + { itable_52, 3 }, + { itable_53, 3 }, + { itable_54, 3 }, + { itable_55, 3 }, + { itable_56, 3 }, + { itable_57, 3 }, + { itable_58, 3 }, + { itable_59, 3 }, + { itable_5A, 3 }, + { itable_5B, 3 }, + { itable_5C, 3 }, + { itable_5D, 3 }, + { itable_5E, 3 }, + { itable_5F, 3 }, + { itable_60, 3 }, + { itable_61, 3 }, + { itable_62, 2 }, + { itable_63, 3 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_68, 4 }, + { itable_69, 9 }, + { itable_6A, 5 }, + { itable_6B, 9 }, + { itable_6C, 1 }, + { itable_6D, 2 }, + { itable_6E, 1 }, + { itable_6F, 2 }, + { itable_70, 1 }, + { itable_71, 1 }, + { itable_72, 1 }, + { itable_73, 1 }, + { itable_74, 1 }, + { itable_75, 1 }, + { itable_76, 1 }, + { itable_77, 1 }, + { itable_78, 1 }, + { itable_79, 1 }, + { itable_7A, 1 }, + { itable_7B, 1 }, + { itable_7C, 1 }, + { itable_7D, 1 }, + { itable_7E, 1 }, + { itable_7F, 1 }, + { itable_80, 16 }, + { itable_81, 40 }, + { NULL, 0 }, + { itable_83, 88 }, + { itable_84, 3 }, + { itable_85, 9 }, + { itable_86, 4 }, + { itable_87, 12 }, + { itable_88, 2 }, + { itable_89, 6 }, + { itable_8A, 2 }, + { itable_8B, 6 }, + { itable_8C, 3 }, + { itable_8D, 3 }, + { itable_8E, 3 }, + { itable_8F, 3 }, + { itable_90, 9 }, + { itable_91, 6 }, + { itable_92, 6 }, + { itable_93, 6 }, + { itable_94, 6 }, + { itable_95, 6 }, + { itable_96, 6 }, + { itable_97, 6 }, + { itable_98, 3 }, + { itable_99, 3 }, + { itable_9A, 5 }, + { NULL, 0 }, + { itable_9C, 4 }, + { itable_9D, 4 }, + { itable_9E, 1 }, + { itable_9F, 1 }, + { itable_A0, 1 }, + { itable_A1, 3 }, + { itable_A2, 1 }, + { itable_A3, 3 }, + { itable_A4, 1 }, + { itable_A5, 3 }, + { itable_A6, 1 }, + { itable_A7, 3 }, + { itable_A8, 1 }, + { itable_A9, 3 }, + { itable_AA, 1 }, + { itable_AB, 3 }, + { itable_AC, 1 }, + { itable_AD, 3 }, + { itable_AE, 1 }, + { itable_AF, 3 }, + { itable_B0, 1 }, + { itable_B1, 1 }, + { itable_B2, 1 }, + { itable_B3, 1 }, + { itable_B4, 1 }, + { itable_B5, 1 }, + { itable_B6, 1 }, + { itable_B7, 1 }, + { itable_B8, 3 }, + { itable_B9, 3 }, + { itable_BA, 3 }, + { itable_BB, 3 }, + { itable_BC, 3 }, + { itable_BD, 3 }, + { itable_BE, 3 }, + { itable_BF, 3 }, + { itable_C0, 7 }, + { itable_C1, 21 }, + { itable_C2, 2 }, + { itable_C3, 2 }, + { itable_C4, 2 }, + { itable_C5, 2 }, + { itable_C6, 2 }, + { itable_C7, 6 }, + { itable_C8, 1 }, + { itable_C9, 1 }, + { itable_CA, 1 }, + { itable_CB, 1 }, + { itable_CC, 1 }, + { itable_CD, 1 }, + { itable_CE, 1 }, + { itable_CF, 4 }, + { itable_D0, 7 }, + { itable_D1, 21 }, + { itable_D2, 7 }, + { itable_D3, 21 }, + { itable_D4, 2 }, + { itable_D5, 2 }, + { itable_D6, 1 }, + { itable_D7, 2 }, + { itable_D8, 24 }, + { itable_D9, 41 }, + { itable_DA, 17 }, + { itable_DB, 27 }, + { itable_DC, 20 }, + { itable_DD, 17 }, + { itable_DE, 21 }, + { itable_DF, 18 }, + { itable_E0, 8 }, + { itable_E1, 8 }, + { itable_E2, 4 }, + { itable_E3, 3 }, + { itable_E4, 1 }, + { itable_E5, 2 }, + { itable_E6, 1 }, + { itable_E7, 2 }, + { itable_E8, 6 }, + { itable_E9, 3 }, + { itable_EA, 5 }, + { itable_EB, 1 }, + { itable_EC, 1 }, + { itable_ED, 2 }, + { itable_EE, 1 }, + { itable_EF, 2 }, + { NULL, 0 }, + { itable_F1, 2 }, + { NULL, 0 }, + { NULL, 0 }, + { itable_F4, 1 }, + { itable_F5, 1 }, + { itable_F6, 8 }, + { itable_F7, 23 }, + { itable_F8, 1 }, + { itable_F9, 1 }, + { itable_FA, 1 }, + { itable_FB, 1 }, + { itable_FC, 1 }, + { itable_FD, 1 }, + { itable_FE, 2 }, + { itable_FF, 41 }, +}; + +const struct disasm_index * const itable_vex[2][32][8] = +{ + { + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + itable_vex010, + itable_vex011, + itable_vex012, + itable_vex013, + itable_vex014, + itable_vex015, + itable_vex016, + itable_vex017, + }, + { + NULL, + itable_vex021, + NULL, + NULL, + NULL, + itable_vex025, + NULL, + NULL, + }, + { + NULL, + itable_vex031, + NULL, + NULL, + NULL, + itable_vex035, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + }, + { + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + itable_xop080, + NULL, + NULL, + NULL, + itable_xop084, + NULL, + NULL, + NULL, + }, + { + itable_xop090, + NULL, + NULL, + NULL, + itable_xop094, + NULL, + NULL, + NULL, + }, + { + itable_xop0A0, + NULL, + NULL, + NULL, + itable_xop0A4, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + { + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + }, + }, }; diff --git a/uppsrc/plugin/ndisasm/lib/insnsi.h b/uppsrc/plugin/ndisasm/lib/insnsi.h index 0fa1f24de..e5b48e28d 100644 --- a/uppsrc/plugin/ndisasm/lib/insnsi.h +++ b/uppsrc/plugin/ndisasm/lib/insnsi.h @@ -3,7 +3,11 @@ /* This file in included by nasm.h */ /* Instruction names */ -enum { + +#ifndef NASM_INSNSI_H +#define NASM_INSNSI_H 1 + +enum opcode { I_AAA, I_AAD, I_AAM, @@ -16,12 +20,24 @@ enum { I_ADDSS, I_ADDSUBPD, I_ADDSUBPS, + I_AESDEC, + I_AESDECLAST, + I_AESENC, + I_AESENCLAST, + I_AESIMC, + I_AESKEYGENASSIST, I_AND, I_ANDNPD, I_ANDNPS, I_ANDPD, I_ANDPS, I_ARPL, + I_BB0_RESET, + I_BB1_RESET, + I_BLENDPD, + I_BLENDPS, + I_BLENDVPD, + I_BLENDVPS, I_BOUND, I_BSF, I_BSR, @@ -33,9 +49,11 @@ enum { I_CALL, I_CBW, I_CDQ, + I_CDQE, I_CLC, I_CLD, I_CLFLUSH, + I_CLGI, I_CLI, I_CLTS, I_CMC, @@ -72,6 +90,7 @@ enum { I_CMPPS, I_CMPSB, I_CMPSD, + I_CMPSQ, I_CMPSS, I_CMPSW, I_CMPUNORDPD, @@ -79,11 +98,16 @@ enum { I_CMPUNORDSD, I_CMPUNORDSS, I_CMPXCHG, + I_CMPXCHG16B, I_CMPXCHG486, I_CMPXCHG8B, I_COMISD, I_COMISS, I_CPUID, + I_CPU_READ, + I_CPU_WRITE, + I_CQO, + I_CRC32, I_CVTDQ2PD, I_CVTDQ2PS, I_CVTPD2DQ, @@ -118,12 +142,19 @@ enum { I_DIVPS, I_DIVSD, I_DIVSS, + I_DMINT, + I_DO, + I_DPPD, + I_DPPS, I_DQ, I_DT, I_DW, + I_DY, I_EMMS, I_ENTER, I_EQU, + I_EXTRACTPS, + I_EXTRQ, I_F2XM1, I_FABS, I_FADD, @@ -226,8 +257,73 @@ enum { I_FXTRACT, I_FYL2X, I_FYL2XP1, + I_GETSEC, I_HADDPD, I_HADDPS, + I_HINT_NOP0, + I_HINT_NOP1, + I_HINT_NOP10, + I_HINT_NOP11, + I_HINT_NOP12, + I_HINT_NOP13, + I_HINT_NOP14, + I_HINT_NOP15, + I_HINT_NOP16, + I_HINT_NOP17, + I_HINT_NOP18, + I_HINT_NOP19, + I_HINT_NOP2, + I_HINT_NOP20, + I_HINT_NOP21, + I_HINT_NOP22, + I_HINT_NOP23, + I_HINT_NOP24, + I_HINT_NOP25, + I_HINT_NOP26, + I_HINT_NOP27, + I_HINT_NOP28, + I_HINT_NOP29, + I_HINT_NOP3, + I_HINT_NOP30, + I_HINT_NOP31, + I_HINT_NOP32, + I_HINT_NOP33, + I_HINT_NOP34, + I_HINT_NOP35, + I_HINT_NOP36, + I_HINT_NOP37, + I_HINT_NOP38, + I_HINT_NOP39, + I_HINT_NOP4, + I_HINT_NOP40, + I_HINT_NOP41, + I_HINT_NOP42, + I_HINT_NOP43, + I_HINT_NOP44, + I_HINT_NOP45, + I_HINT_NOP46, + I_HINT_NOP47, + I_HINT_NOP48, + I_HINT_NOP49, + I_HINT_NOP5, + I_HINT_NOP50, + I_HINT_NOP51, + I_HINT_NOP52, + I_HINT_NOP53, + I_HINT_NOP54, + I_HINT_NOP55, + I_HINT_NOP56, + I_HINT_NOP57, + I_HINT_NOP58, + I_HINT_NOP59, + I_HINT_NOP6, + I_HINT_NOP60, + I_HINT_NOP61, + I_HINT_NOP62, + I_HINT_NOP63, + I_HINT_NOP7, + I_HINT_NOP8, + I_HINT_NOP9, I_HLT, I_HSUBPD, I_HSUBPS, @@ -240,6 +336,8 @@ enum { I_INCBIN, I_INSB, I_INSD, + I_INSERTPS, + I_INSERTQ, I_INSW, I_INT, I_INT01, @@ -248,14 +346,19 @@ enum { I_INT3, I_INTO, I_INVD, + I_INVEPT, I_INVLPG, + I_INVLPGA, + I_INVVPID, I_IRET, I_IRETD, + I_IRETQ, I_IRETW, I_JCXZ, I_JECXZ, I_JMP, I_JMPE, + I_JRCXZ, I_LAHF, I_LAR, I_LDDQU, @@ -270,11 +373,13 @@ enum { I_LGS, I_LIDT, I_LLDT, + I_LLWPCB, I_LMSW, I_LOADALL, I_LOADALL286, I_LODSB, I_LODSD, + I_LODSQ, I_LODSW, I_LOOP, I_LOOPE, @@ -284,6 +389,9 @@ enum { I_LSL, I_LSS, I_LTR, + I_LWPINS, + I_LWPVAL, + I_LZCNT, I_MASKMOVDQU, I_MASKMOVQ, I_MAXPD, @@ -296,9 +404,11 @@ enum { I_MINSD, I_MINSS, I_MONITOR, + I_MONTMUL, I_MOV, I_MOVAPD, I_MOVAPS, + I_MOVBE, I_MOVD, I_MOVDDUP, I_MOVDQ2Q, @@ -313,22 +423,28 @@ enum { I_MOVMSKPD, I_MOVMSKPS, I_MOVNTDQ, + I_MOVNTDQA, I_MOVNTI, I_MOVNTPD, I_MOVNTPS, I_MOVNTQ, + I_MOVNTSD, + I_MOVNTSS, I_MOVQ, I_MOVQ2DQ, I_MOVSB, I_MOVSD, I_MOVSHDUP, I_MOVSLDUP, + I_MOVSQ, I_MOVSS, I_MOVSW, I_MOVSX, + I_MOVSXD, I_MOVUPD, I_MOVUPS, I_MOVZX, + I_MPSADBW, I_MUL, I_MULPD, I_MULPS, @@ -345,8 +461,12 @@ enum { I_OUTSB, I_OUTSD, I_OUTSW, + I_PABSB, + I_PABSD, + I_PABSW, I_PACKSSDW, I_PACKSSWB, + I_PACKUSDW, I_PACKUSWB, I_PADDB, I_PADDD, @@ -357,6 +477,7 @@ enum { I_PADDUSB, I_PADDUSW, I_PADDW, + I_PALIGNR, I_PAND, I_PANDN, I_PAUSE, @@ -364,13 +485,29 @@ enum { I_PAVGB, I_PAVGUSB, I_PAVGW, + I_PBLENDVB, + I_PBLENDW, + I_PCLMULHQHQDQ, + I_PCLMULHQLQDQ, + I_PCLMULLQHQDQ, + I_PCLMULLQLQDQ, + I_PCLMULQDQ, I_PCMPEQB, I_PCMPEQD, + I_PCMPEQQ, I_PCMPEQW, + I_PCMPESTRI, + I_PCMPESTRM, I_PCMPGTB, I_PCMPGTD, + I_PCMPGTQ, I_PCMPGTW, + I_PCMPISTRI, + I_PCMPISTRM, I_PDISTIB, + I_PEXTRB, + I_PEXTRD, + I_PEXTRQ, I_PEXTRW, I_PF2ID, I_PF2IW, @@ -387,26 +524,62 @@ enum { I_PFRCP, I_PFRCPIT1, I_PFRCPIT2, + I_PFRCPV, I_PFRSQIT1, I_PFRSQRT, + I_PFRSQRTV, I_PFSUB, I_PFSUBR, + I_PHADDD, + I_PHADDSW, + I_PHADDW, + I_PHMINPOSUW, + I_PHSUBD, + I_PHSUBSW, + I_PHSUBW, I_PI2FD, I_PI2FW, + I_PINSRB, + I_PINSRD, + I_PINSRQ, I_PINSRW, I_PMACHRIW, + I_PMADDUBSW, I_PMADDWD, I_PMAGW, + I_PMAXSB, + I_PMAXSD, I_PMAXSW, I_PMAXUB, + I_PMAXUD, + I_PMAXUW, + I_PMINSB, + I_PMINSD, I_PMINSW, I_PMINUB, + I_PMINUD, + I_PMINUW, I_PMOVMSKB, + I_PMOVSXBD, + I_PMOVSXBQ, + I_PMOVSXBW, + I_PMOVSXDQ, + I_PMOVSXWD, + I_PMOVSXWQ, + I_PMOVZXBD, + I_PMOVZXBQ, + I_PMOVZXBW, + I_PMOVZXDQ, + I_PMOVZXWD, + I_PMOVZXWQ, + I_PMULDQ, I_PMULHRIW, + I_PMULHRSW, I_PMULHRWA, I_PMULHRWC, I_PMULHUW, I_PMULHW, + I_PMULLD, I_PMULLW, I_PMULUDQ, I_PMVGEZB, @@ -417,8 +590,10 @@ enum { I_POPA, I_POPAD, I_POPAW, + I_POPCNT, I_POPF, I_POPFD, + I_POPFQ, I_POPFW, I_POR, I_PREFETCH, @@ -428,10 +603,14 @@ enum { I_PREFETCHT2, I_PREFETCHW, I_PSADBW, + I_PSHUFB, I_PSHUFD, I_PSHUFHW, I_PSHUFLW, I_PSHUFW, + I_PSIGNB, + I_PSIGND, + I_PSIGNW, I_PSLLD, I_PSLLDQ, I_PSLLQ, @@ -452,6 +631,7 @@ enum { I_PSUBUSW, I_PSUBW, I_PSWAPD, + I_PTEST, I_PUNPCKHBW, I_PUNPCKHDQ, I_PUNPCKHQDQ, @@ -466,26 +646,35 @@ enum { I_PUSHAW, I_PUSHF, I_PUSHFD, + I_PUSHFQ, I_PUSHFW, I_PXOR, I_RCL, I_RCPPS, I_RCPSS, I_RCR, + I_RDM, I_RDMSR, I_RDPMC, I_RDSHR, I_RDTSC, + I_RDTSCP, I_RESB, I_RESD, + I_RESO, I_RESQ, I_REST, I_RESW, + I_RESY, I_RET, I_RETF, I_RETN, I_ROL, I_ROR, + I_ROUNDPD, + I_ROUNDPS, + I_ROUNDSD, + I_ROUNDSS, I_RSDC, I_RSLDT, I_RSM, @@ -499,6 +688,7 @@ enum { I_SBB, I_SCASB, I_SCASD, + I_SCASQ, I_SCASW, I_SFENCE, I_SGDT, @@ -509,7 +699,9 @@ enum { I_SHUFPD, I_SHUFPS, I_SIDT, + I_SKINIT, I_SLDT, + I_SLWPCB, I_SMI, I_SMINT, I_SMINTOLD, @@ -520,10 +712,12 @@ enum { I_SQRTSS, I_STC, I_STD, + I_STGI, I_STI, I_STMXCSR, I_STOSB, I_STOSD, + I_STOSQ, I_STOSW, I_STR, I_SUB, @@ -534,6 +728,7 @@ enum { I_SVDC, I_SVLDT, I_SVTS, + I_SWAPGS, I_SYSCALL, I_SYSENTER, I_SYSEXIT, @@ -544,29 +739,657 @@ enum { I_UD0, I_UD1, I_UD2, + I_UD2A, + I_UD2B, I_UMOV, I_UNPCKHPD, I_UNPCKHPS, I_UNPCKLPD, I_UNPCKLPS, + I_VADDPD, + I_VADDPS, + I_VADDSD, + I_VADDSS, + I_VADDSUBPD, + I_VADDSUBPS, + I_VAESDEC, + I_VAESDECLAST, + I_VAESENC, + I_VAESENCLAST, + I_VAESIMC, + I_VAESKEYGENASSIST, + I_VANDNPD, + I_VANDNPS, + I_VANDPD, + I_VANDPS, + I_VBLENDPD, + I_VBLENDPS, + I_VBLENDVPD, + I_VBLENDVPS, + I_VBROADCASTF128, + I_VBROADCASTSD, + I_VBROADCASTSS, + I_VCMPEQPD, + I_VCMPEQPS, + I_VCMPEQSD, + I_VCMPEQSS, + I_VCMPEQ_OSPD, + I_VCMPEQ_OSPS, + I_VCMPEQ_OSSD, + I_VCMPEQ_OSSS, + I_VCMPEQ_UQPD, + I_VCMPEQ_UQPS, + I_VCMPEQ_UQSD, + I_VCMPEQ_UQSS, + I_VCMPEQ_USPD, + I_VCMPEQ_USPS, + I_VCMPEQ_USSD, + I_VCMPEQ_USSS, + I_VCMPFALSEPD, + I_VCMPFALSEPS, + I_VCMPFALSESD, + I_VCMPFALSESS, + I_VCMPFALSE_OSPD, + I_VCMPFALSE_OSPS, + I_VCMPFALSE_OSSD, + I_VCMPFALSE_OSSS, + I_VCMPGEPD, + I_VCMPGEPS, + I_VCMPGESD, + I_VCMPGESS, + I_VCMPGE_OQPD, + I_VCMPGE_OQPS, + I_VCMPGE_OQSD, + I_VCMPGE_OQSS, + I_VCMPGTPD, + I_VCMPGTPS, + I_VCMPGTSD, + I_VCMPGTSS, + I_VCMPGT_OQPD, + I_VCMPGT_OQPS, + I_VCMPGT_OQSD, + I_VCMPGT_OQSS, + I_VCMPLEPD, + I_VCMPLEPS, + I_VCMPLESD, + I_VCMPLESS, + I_VCMPLE_OQPD, + I_VCMPLE_OQPS, + I_VCMPLE_OQSD, + I_VCMPLE_OQSS, + I_VCMPLTPD, + I_VCMPLTPS, + I_VCMPLTSD, + I_VCMPLTSS, + I_VCMPLT_OQPD, + I_VCMPLT_OQPS, + I_VCMPLT_OQSD, + I_VCMPLT_OQSS, + I_VCMPNEQPD, + I_VCMPNEQPS, + I_VCMPNEQSD, + I_VCMPNEQSS, + I_VCMPNEQ_OQPD, + I_VCMPNEQ_OQPS, + I_VCMPNEQ_OQSD, + I_VCMPNEQ_OQSS, + I_VCMPNEQ_OSPD, + I_VCMPNEQ_OSPS, + I_VCMPNEQ_OSSD, + I_VCMPNEQ_OSSS, + I_VCMPNEQ_USPD, + I_VCMPNEQ_USPS, + I_VCMPNEQ_USSD, + I_VCMPNEQ_USSS, + I_VCMPNGEPD, + I_VCMPNGEPS, + I_VCMPNGESD, + I_VCMPNGESS, + I_VCMPNGE_UQPD, + I_VCMPNGE_UQPS, + I_VCMPNGE_UQSD, + I_VCMPNGE_UQSS, + I_VCMPNGTPD, + I_VCMPNGTPS, + I_VCMPNGTSD, + I_VCMPNGTSS, + I_VCMPNGT_UQPD, + I_VCMPNGT_UQPS, + I_VCMPNGT_UQSD, + I_VCMPNGT_UQSS, + I_VCMPNLEPD, + I_VCMPNLEPS, + I_VCMPNLESD, + I_VCMPNLESS, + I_VCMPNLE_UQPD, + I_VCMPNLE_UQPS, + I_VCMPNLE_UQSD, + I_VCMPNLE_UQSS, + I_VCMPNLTPD, + I_VCMPNLTPS, + I_VCMPNLTSD, + I_VCMPNLTSS, + I_VCMPNLT_UQPD, + I_VCMPNLT_UQPS, + I_VCMPNLT_UQSD, + I_VCMPNLT_UQSS, + I_VCMPORDPD, + I_VCMPORDPS, + I_VCMPORDSD, + I_VCMPORDSS, + I_VCMPORD_SPD, + I_VCMPORD_SPS, + I_VCMPORD_SSD, + I_VCMPORD_SSS, + I_VCMPPD, + I_VCMPPS, + I_VCMPSD, + I_VCMPSS, + I_VCMPTRUEPD, + I_VCMPTRUEPS, + I_VCMPTRUESD, + I_VCMPTRUESS, + I_VCMPTRUE_USPD, + I_VCMPTRUE_USPS, + I_VCMPTRUE_USSD, + I_VCMPTRUE_USSS, + I_VCMPUNORDPD, + I_VCMPUNORDPS, + I_VCMPUNORDSD, + I_VCMPUNORDSS, + I_VCMPUNORD_SPD, + I_VCMPUNORD_SPS, + I_VCMPUNORD_SSD, + I_VCMPUNORD_SSS, + I_VCOMISD, + I_VCOMISS, + I_VCVTDQ2PD, + I_VCVTDQ2PS, + I_VCVTPD2DQ, + I_VCVTPD2PS, + I_VCVTPH2PS, + I_VCVTPS2DQ, + I_VCVTPS2PD, + I_VCVTPS2PH, + I_VCVTSD2SI, + I_VCVTSD2SS, + I_VCVTSI2SD, + I_VCVTSI2SS, + I_VCVTSS2SD, + I_VCVTSS2SI, + I_VCVTTPD2DQ, + I_VCVTTPS2DQ, + I_VCVTTSD2SI, + I_VCVTTSS2SI, + I_VDIVPD, + I_VDIVPS, + I_VDIVSD, + I_VDIVSS, + I_VDPPD, + I_VDPPS, I_VERR, I_VERW, - I_WAIT, + I_VEXTRACTF128, + I_VEXTRACTPS, + I_VFMADD123PD, + I_VFMADD123PS, + I_VFMADD123SD, + I_VFMADD123SS, + I_VFMADD132PD, + I_VFMADD132PS, + I_VFMADD132SD, + I_VFMADD132SS, + I_VFMADD213PD, + I_VFMADD213PS, + I_VFMADD213SD, + I_VFMADD213SS, + I_VFMADD231PD, + I_VFMADD231PS, + I_VFMADD231SD, + I_VFMADD231SS, + I_VFMADD312PD, + I_VFMADD312PS, + I_VFMADD312SD, + I_VFMADD312SS, + I_VFMADD321PD, + I_VFMADD321PS, + I_VFMADD321SD, + I_VFMADD321SS, + I_VFMADDPD, + I_VFMADDPS, + I_VFMADDSD, + I_VFMADDSS, + I_VFMADDSUB123PD, + I_VFMADDSUB123PS, + I_VFMADDSUB132PD, + I_VFMADDSUB132PS, + I_VFMADDSUB213PD, + I_VFMADDSUB213PS, + I_VFMADDSUB231PD, + I_VFMADDSUB231PS, + I_VFMADDSUB312PD, + I_VFMADDSUB312PS, + I_VFMADDSUB321PD, + I_VFMADDSUB321PS, + I_VFMADDSUBPD, + I_VFMADDSUBPS, + I_VFMSUB123PD, + I_VFMSUB123PS, + I_VFMSUB123SD, + I_VFMSUB123SS, + I_VFMSUB132PD, + I_VFMSUB132PS, + I_VFMSUB132SD, + I_VFMSUB132SS, + I_VFMSUB213PD, + I_VFMSUB213PS, + I_VFMSUB213SD, + I_VFMSUB213SS, + I_VFMSUB231PD, + I_VFMSUB231PS, + I_VFMSUB231SD, + I_VFMSUB231SS, + I_VFMSUB312PD, + I_VFMSUB312PS, + I_VFMSUB312SD, + I_VFMSUB312SS, + I_VFMSUB321PD, + I_VFMSUB321PS, + I_VFMSUB321SD, + I_VFMSUB321SS, + I_VFMSUBADD123PD, + I_VFMSUBADD123PS, + I_VFMSUBADD132PD, + I_VFMSUBADD132PS, + I_VFMSUBADD213PD, + I_VFMSUBADD213PS, + I_VFMSUBADD231PD, + I_VFMSUBADD231PS, + I_VFMSUBADD312PD, + I_VFMSUBADD312PS, + I_VFMSUBADD321PD, + I_VFMSUBADD321PS, + I_VFMSUBADDPD, + I_VFMSUBADDPS, + I_VFMSUBPD, + I_VFMSUBPS, + I_VFMSUBSD, + I_VFMSUBSS, + I_VFNMADD123PD, + I_VFNMADD123PS, + I_VFNMADD123SD, + I_VFNMADD123SS, + I_VFNMADD132PD, + I_VFNMADD132PS, + I_VFNMADD132SD, + I_VFNMADD132SS, + I_VFNMADD213PD, + I_VFNMADD213PS, + I_VFNMADD213SD, + I_VFNMADD213SS, + I_VFNMADD231PD, + I_VFNMADD231PS, + I_VFNMADD231SD, + I_VFNMADD231SS, + I_VFNMADD312PD, + I_VFNMADD312PS, + I_VFNMADD312SD, + I_VFNMADD312SS, + I_VFNMADD321PD, + I_VFNMADD321PS, + I_VFNMADD321SD, + I_VFNMADD321SS, + I_VFNMADDPD, + I_VFNMADDPS, + I_VFNMADDSD, + I_VFNMADDSS, + I_VFNMSUB123PD, + I_VFNMSUB123PS, + I_VFNMSUB123SD, + I_VFNMSUB123SS, + I_VFNMSUB132PD, + I_VFNMSUB132PS, + I_VFNMSUB132SD, + I_VFNMSUB132SS, + I_VFNMSUB213PD, + I_VFNMSUB213PS, + I_VFNMSUB213SD, + I_VFNMSUB213SS, + I_VFNMSUB231PD, + I_VFNMSUB231PS, + I_VFNMSUB231SD, + I_VFNMSUB231SS, + I_VFNMSUB312PD, + I_VFNMSUB312PS, + I_VFNMSUB312SD, + I_VFNMSUB312SS, + I_VFNMSUB321PD, + I_VFNMSUB321PS, + I_VFNMSUB321SD, + I_VFNMSUB321SS, + I_VFNMSUBPD, + I_VFNMSUBPS, + I_VFNMSUBSD, + I_VFNMSUBSS, + I_VFRCZPD, + I_VFRCZPS, + I_VFRCZSD, + I_VFRCZSS, + I_VHADDPD, + I_VHADDPS, + I_VHSUBPD, + I_VHSUBPS, + I_VINSERTF128, + I_VINSERTPS, + I_VLDDQU, + I_VLDMXCSR, + I_VLDQQU, + I_VMASKMOVDQU, + I_VMASKMOVPD, + I_VMASKMOVPS, + I_VMAXPD, + I_VMAXPS, + I_VMAXSD, + I_VMAXSS, + I_VMCALL, + I_VMCLEAR, + I_VMINPD, + I_VMINPS, + I_VMINSD, + I_VMINSS, + I_VMLAUNCH, + I_VMLOAD, + I_VMMCALL, + I_VMOVAPD, + I_VMOVAPS, + I_VMOVD, + I_VMOVDDUP, + I_VMOVDQA, + I_VMOVDQU, + I_VMOVHLPS, + I_VMOVHPD, + I_VMOVHPS, + I_VMOVLHPS, + I_VMOVLPD, + I_VMOVLPS, + I_VMOVMSKPD, + I_VMOVMSKPS, + I_VMOVNTDQ, + I_VMOVNTDQA, + I_VMOVNTPD, + I_VMOVNTPS, + I_VMOVNTQQ, + I_VMOVQ, + I_VMOVQQA, + I_VMOVQQU, + I_VMOVSD, + I_VMOVSHDUP, + I_VMOVSLDUP, + I_VMOVSS, + I_VMOVUPD, + I_VMOVUPS, + I_VMPSADBW, + I_VMPTRLD, + I_VMPTRST, + I_VMREAD, + I_VMRESUME, + I_VMRUN, + I_VMSAVE, + I_VMULPD, + I_VMULPS, + I_VMULSD, + I_VMULSS, + I_VMWRITE, + I_VMXOFF, + I_VMXON, + I_VORPD, + I_VORPS, + I_VPABSB, + I_VPABSD, + I_VPABSW, + I_VPACKSSDW, + I_VPACKSSWB, + I_VPACKUSDW, + I_VPACKUSWB, + I_VPADDB, + I_VPADDD, + I_VPADDQ, + I_VPADDSB, + I_VPADDSW, + I_VPADDUSB, + I_VPADDUSW, + I_VPADDW, + I_VPALIGNR, + I_VPAND, + I_VPANDN, + I_VPAVGB, + I_VPAVGW, + I_VPBLENDVB, + I_VPBLENDW, + I_VPCLMULHQHQDQ, + I_VPCLMULHQLQDQ, + I_VPCLMULLQHQDQ, + I_VPCLMULLQLQDQ, + I_VPCLMULQDQ, + I_VPCMOV, + I_VPCMPEQB, + I_VPCMPEQD, + I_VPCMPEQQ, + I_VPCMPEQW, + I_VPCMPESTRI, + I_VPCMPESTRM, + I_VPCMPGTB, + I_VPCMPGTD, + I_VPCMPGTQ, + I_VPCMPGTW, + I_VPCMPISTRI, + I_VPCMPISTRM, + I_VPCOMB, + I_VPCOMD, + I_VPCOMQ, + I_VPCOMUB, + I_VPCOMUD, + I_VPCOMUQ, + I_VPCOMUW, + I_VPCOMW, + I_VPERM2F128, + I_VPERMIL2PD, + I_VPERMIL2PS, + I_VPERMILMO2PD, + I_VPERMILMO2PS, + I_VPERMILMZ2PD, + I_VPERMILMZ2PS, + I_VPERMILPD, + I_VPERMILPS, + I_VPERMILTD2PD, + I_VPERMILTD2PS, + I_VPEXTRB, + I_VPEXTRD, + I_VPEXTRQ, + I_VPEXTRW, + I_VPHADDBD, + I_VPHADDBQ, + I_VPHADDBW, + I_VPHADDD, + I_VPHADDDQ, + I_VPHADDSW, + I_VPHADDUBD, + I_VPHADDUBQ, + I_VPHADDUBW, + I_VPHADDUDQ, + I_VPHADDUWD, + I_VPHADDUWQ, + I_VPHADDW, + I_VPHADDWD, + I_VPHADDWQ, + I_VPHMINPOSUW, + I_VPHSUBBW, + I_VPHSUBD, + I_VPHSUBDQ, + I_VPHSUBSW, + I_VPHSUBW, + I_VPHSUBWD, + I_VPINSRB, + I_VPINSRD, + I_VPINSRQ, + I_VPINSRW, + I_VPMACSDD, + I_VPMACSDQH, + I_VPMACSDQL, + I_VPMACSSDD, + I_VPMACSSDQH, + I_VPMACSSDQL, + I_VPMACSSWD, + I_VPMACSSWW, + I_VPMACSWD, + I_VPMACSWW, + I_VPMADCSSWD, + I_VPMADCSWD, + I_VPMADDUBSW, + I_VPMADDWD, + I_VPMAXSB, + I_VPMAXSD, + I_VPMAXSW, + I_VPMAXUB, + I_VPMAXUD, + I_VPMAXUW, + I_VPMINSB, + I_VPMINSD, + I_VPMINSW, + I_VPMINUB, + I_VPMINUD, + I_VPMINUW, + I_VPMOVMSKB, + I_VPMOVSXBD, + I_VPMOVSXBQ, + I_VPMOVSXBW, + I_VPMOVSXDQ, + I_VPMOVSXWD, + I_VPMOVSXWQ, + I_VPMOVZXBD, + I_VPMOVZXBQ, + I_VPMOVZXBW, + I_VPMOVZXDQ, + I_VPMOVZXWD, + I_VPMOVZXWQ, + I_VPMULDQ, + I_VPMULHRSW, + I_VPMULHUW, + I_VPMULHW, + I_VPMULLD, + I_VPMULLW, + I_VPMULUDQ, + I_VPOR, + I_VPPERM, + I_VPROTB, + I_VPROTD, + I_VPROTQ, + I_VPROTW, + I_VPSADBW, + I_VPSHAB, + I_VPSHAD, + I_VPSHAQ, + I_VPSHAW, + I_VPSHLB, + I_VPSHLD, + I_VPSHLQ, + I_VPSHLW, + I_VPSHUFB, + I_VPSHUFD, + I_VPSHUFHW, + I_VPSHUFLW, + I_VPSIGNB, + I_VPSIGND, + I_VPSIGNW, + I_VPSLLD, + I_VPSLLDQ, + I_VPSLLQ, + I_VPSLLW, + I_VPSRAD, + I_VPSRAW, + I_VPSRLD, + I_VPSRLDQ, + I_VPSRLQ, + I_VPSRLW, + I_VPSUBB, + I_VPSUBD, + I_VPSUBQ, + I_VPSUBSB, + I_VPSUBSW, + I_VPSUBUSB, + I_VPSUBUSW, + I_VPSUBW, + I_VPTEST, + I_VPUNPCKHBW, + I_VPUNPCKHDQ, + I_VPUNPCKHQDQ, + I_VPUNPCKHWD, + I_VPUNPCKLBW, + I_VPUNPCKLDQ, + I_VPUNPCKLQDQ, + I_VPUNPCKLWD, + I_VPXOR, + I_VRCPPS, + I_VRCPSS, + I_VROUNDPD, + I_VROUNDPS, + I_VROUNDSD, + I_VROUNDSS, + I_VRSQRTPS, + I_VRSQRTSS, + I_VSHUFPD, + I_VSHUFPS, + I_VSQRTPD, + I_VSQRTPS, + I_VSQRTSD, + I_VSQRTSS, + I_VSTMXCSR, + I_VSUBPD, + I_VSUBPS, + I_VSUBSD, + I_VSUBSS, + I_VTESTPD, + I_VTESTPS, + I_VUCOMISD, + I_VUCOMISS, + I_VUNPCKHPD, + I_VUNPCKHPS, + I_VUNPCKLPD, + I_VUNPCKLPS, + I_VXORPD, + I_VXORPS, + I_VZEROALL, + I_VZEROUPPER, I_WBINVD, I_WRMSR, I_WRSHR, I_XADD, I_XBTS, I_XCHG, + I_XCRYPTCBC, + I_XCRYPTCFB, + I_XCRYPTCTR, + I_XCRYPTECB, + I_XCRYPTOFB, + I_XGETBV, I_XLAT, I_XLATB, I_XOR, I_XORPD, I_XORPS, + I_XRSTOR, + I_XSAVE, + I_XSETBV, + I_XSHA1, + I_XSHA256, I_XSTORE, I_CMOVcc, I_Jcc, - I_SETcc + I_SETcc, + I_none = -1 }; -#define MAX_INSLEN 11 +#define MAX_INSLEN 16 +#define FIRST_COND_OPCODE I_CMOVcc + +#endif /* NASM_INSNSI_H */ diff --git a/uppsrc/plugin/ndisasm/lib/insnsn.c b/uppsrc/plugin/ndisasm/lib/insnsn.c index b7aa328fc..cc27126aa 100644 --- a/uppsrc/plugin/ndisasm/lib/insnsn.c +++ b/uppsrc/plugin/ndisasm/lib/insnsn.c @@ -1,8 +1,8 @@ /* This file is auto-generated from insns.dat by insns.pl - don't edit it */ -/* This file in included by names.c */ +#include "tables.h" -static const char *insn_names[] = { +const char * const nasm_insn_names[] = { "aaa", "aad", "aam", @@ -15,12 +15,24 @@ static const char *insn_names[] = { "addss", "addsubpd", "addsubps", + "aesdec", + "aesdeclast", + "aesenc", + "aesenclast", + "aesimc", + "aeskeygenassist", "and", "andnpd", "andnps", "andpd", "andps", "arpl", + "bb0_reset", + "bb1_reset", + "blendpd", + "blendps", + "blendvpd", + "blendvps", "bound", "bsf", "bsr", @@ -32,9 +44,11 @@ static const char *insn_names[] = { "call", "cbw", "cdq", + "cdqe", "clc", "cld", "clflush", + "clgi", "cli", "clts", "cmc", @@ -71,6 +85,7 @@ static const char *insn_names[] = { "cmpps", "cmpsb", "cmpsd", + "cmpsq", "cmpss", "cmpsw", "cmpunordpd", @@ -78,11 +93,16 @@ static const char *insn_names[] = { "cmpunordsd", "cmpunordss", "cmpxchg", + "cmpxchg16b", "cmpxchg486", "cmpxchg8b", "comisd", "comiss", "cpuid", + "cpu_read", + "cpu_write", + "cqo", + "crc32", "cvtdq2pd", "cvtdq2ps", "cvtpd2dq", @@ -117,12 +137,19 @@ static const char *insn_names[] = { "divps", "divsd", "divss", + "dmint", + "do", + "dppd", + "dpps", "dq", "dt", "dw", + "dy", "emms", "enter", "equ", + "extractps", + "extrq", "f2xm1", "fabs", "fadd", @@ -225,8 +252,73 @@ static const char *insn_names[] = { "fxtract", "fyl2x", "fyl2xp1", + "getsec", "haddpd", "haddps", + "hint_nop0", + "hint_nop1", + "hint_nop10", + "hint_nop11", + "hint_nop12", + "hint_nop13", + "hint_nop14", + "hint_nop15", + "hint_nop16", + "hint_nop17", + "hint_nop18", + "hint_nop19", + "hint_nop2", + "hint_nop20", + "hint_nop21", + "hint_nop22", + "hint_nop23", + "hint_nop24", + "hint_nop25", + "hint_nop26", + "hint_nop27", + "hint_nop28", + "hint_nop29", + "hint_nop3", + "hint_nop30", + "hint_nop31", + "hint_nop32", + "hint_nop33", + "hint_nop34", + "hint_nop35", + "hint_nop36", + "hint_nop37", + "hint_nop38", + "hint_nop39", + "hint_nop4", + "hint_nop40", + "hint_nop41", + "hint_nop42", + "hint_nop43", + "hint_nop44", + "hint_nop45", + "hint_nop46", + "hint_nop47", + "hint_nop48", + "hint_nop49", + "hint_nop5", + "hint_nop50", + "hint_nop51", + "hint_nop52", + "hint_nop53", + "hint_nop54", + "hint_nop55", + "hint_nop56", + "hint_nop57", + "hint_nop58", + "hint_nop59", + "hint_nop6", + "hint_nop60", + "hint_nop61", + "hint_nop62", + "hint_nop63", + "hint_nop7", + "hint_nop8", + "hint_nop9", "hlt", "hsubpd", "hsubps", @@ -239,6 +331,8 @@ static const char *insn_names[] = { "incbin", "insb", "insd", + "insertps", + "insertq", "insw", "int", "int01", @@ -247,14 +341,19 @@ static const char *insn_names[] = { "int3", "into", "invd", + "invept", "invlpg", + "invlpga", + "invvpid", "iret", "iretd", + "iretq", "iretw", "jcxz", "jecxz", "jmp", "jmpe", + "jrcxz", "lahf", "lar", "lddqu", @@ -269,11 +368,13 @@ static const char *insn_names[] = { "lgs", "lidt", "lldt", + "llwpcb", "lmsw", "loadall", "loadall286", "lodsb", "lodsd", + "lodsq", "lodsw", "loop", "loope", @@ -283,6 +384,9 @@ static const char *insn_names[] = { "lsl", "lss", "ltr", + "lwpins", + "lwpval", + "lzcnt", "maskmovdqu", "maskmovq", "maxpd", @@ -295,9 +399,11 @@ static const char *insn_names[] = { "minsd", "minss", "monitor", + "montmul", "mov", "movapd", "movaps", + "movbe", "movd", "movddup", "movdq2q", @@ -312,22 +418,28 @@ static const char *insn_names[] = { "movmskpd", "movmskps", "movntdq", + "movntdqa", "movnti", "movntpd", "movntps", "movntq", + "movntsd", + "movntss", "movq", "movq2dq", "movsb", "movsd", "movshdup", "movsldup", + "movsq", "movss", "movsw", "movsx", + "movsxd", "movupd", "movups", "movzx", + "mpsadbw", "mul", "mulpd", "mulps", @@ -344,8 +456,12 @@ static const char *insn_names[] = { "outsb", "outsd", "outsw", + "pabsb", + "pabsd", + "pabsw", "packssdw", "packsswb", + "packusdw", "packuswb", "paddb", "paddd", @@ -356,6 +472,7 @@ static const char *insn_names[] = { "paddusb", "paddusw", "paddw", + "palignr", "pand", "pandn", "pause", @@ -363,13 +480,29 @@ static const char *insn_names[] = { "pavgb", "pavgusb", "pavgw", + "pblendvb", + "pblendw", + "pclmulhqhqdq", + "pclmulhqlqdq", + "pclmullqhqdq", + "pclmullqlqdq", + "pclmulqdq", "pcmpeqb", "pcmpeqd", + "pcmpeqq", "pcmpeqw", + "pcmpestri", + "pcmpestrm", "pcmpgtb", "pcmpgtd", + "pcmpgtq", "pcmpgtw", + "pcmpistri", + "pcmpistrm", "pdistib", + "pextrb", + "pextrd", + "pextrq", "pextrw", "pf2id", "pf2iw", @@ -386,26 +519,62 @@ static const char *insn_names[] = { "pfrcp", "pfrcpit1", "pfrcpit2", + "pfrcpv", "pfrsqit1", "pfrsqrt", + "pfrsqrtv", "pfsub", "pfsubr", + "phaddd", + "phaddsw", + "phaddw", + "phminposuw", + "phsubd", + "phsubsw", + "phsubw", "pi2fd", "pi2fw", + "pinsrb", + "pinsrd", + "pinsrq", "pinsrw", "pmachriw", + "pmaddubsw", "pmaddwd", "pmagw", + "pmaxsb", + "pmaxsd", "pmaxsw", "pmaxub", + "pmaxud", + "pmaxuw", + "pminsb", + "pminsd", "pminsw", "pminub", + "pminud", + "pminuw", "pmovmskb", + "pmovsxbd", + "pmovsxbq", + "pmovsxbw", + "pmovsxdq", + "pmovsxwd", + "pmovsxwq", + "pmovzxbd", + "pmovzxbq", + "pmovzxbw", + "pmovzxdq", + "pmovzxwd", + "pmovzxwq", + "pmuldq", "pmulhriw", + "pmulhrsw", "pmulhrwa", "pmulhrwc", "pmulhuw", "pmulhw", + "pmulld", "pmullw", "pmuludq", "pmvgezb", @@ -416,8 +585,10 @@ static const char *insn_names[] = { "popa", "popad", "popaw", + "popcnt", "popf", "popfd", + "popfq", "popfw", "por", "prefetch", @@ -427,10 +598,14 @@ static const char *insn_names[] = { "prefetcht2", "prefetchw", "psadbw", + "pshufb", "pshufd", "pshufhw", "pshuflw", "pshufw", + "psignb", + "psignd", + "psignw", "pslld", "pslldq", "psllq", @@ -451,6 +626,7 @@ static const char *insn_names[] = { "psubusw", "psubw", "pswapd", + "ptest", "punpckhbw", "punpckhdq", "punpckhqdq", @@ -465,26 +641,35 @@ static const char *insn_names[] = { "pushaw", "pushf", "pushfd", + "pushfq", "pushfw", "pxor", "rcl", "rcpps", "rcpss", "rcr", + "rdm", "rdmsr", "rdpmc", "rdshr", "rdtsc", + "rdtscp", "resb", "resd", + "reso", "resq", "rest", "resw", + "resy", "ret", "retf", "retn", "rol", "ror", + "roundpd", + "roundps", + "roundsd", + "roundss", "rsdc", "rsldt", "rsm", @@ -498,6 +683,7 @@ static const char *insn_names[] = { "sbb", "scasb", "scasd", + "scasq", "scasw", "sfence", "sgdt", @@ -508,7 +694,9 @@ static const char *insn_names[] = { "shufpd", "shufps", "sidt", + "skinit", "sldt", + "slwpcb", "smi", "smint", "smintold", @@ -519,10 +707,12 @@ static const char *insn_names[] = { "sqrtss", "stc", "std", + "stgi", "sti", "stmxcsr", "stosb", "stosd", + "stosq", "stosw", "str", "sub", @@ -533,6 +723,7 @@ static const char *insn_names[] = { "svdc", "svldt", "svts", + "swapgs", "syscall", "sysenter", "sysexit", @@ -543,38 +734,651 @@ static const char *insn_names[] = { "ud0", "ud1", "ud2", + "ud2a", + "ud2b", "umov", "unpckhpd", "unpckhps", "unpcklpd", "unpcklps", + "vaddpd", + "vaddps", + "vaddsd", + "vaddss", + "vaddsubpd", + "vaddsubps", + "vaesdec", + "vaesdeclast", + "vaesenc", + "vaesenclast", + "vaesimc", + "vaeskeygenassist", + "vandnpd", + "vandnps", + "vandpd", + "vandps", + "vblendpd", + "vblendps", + "vblendvpd", + "vblendvps", + "vbroadcastf128", + "vbroadcastsd", + "vbroadcastss", + "vcmpeqpd", + "vcmpeqps", + "vcmpeqsd", + "vcmpeqss", + "vcmpeq_ospd", + "vcmpeq_osps", + "vcmpeq_ossd", + "vcmpeq_osss", + "vcmpeq_uqpd", + "vcmpeq_uqps", + "vcmpeq_uqsd", + "vcmpeq_uqss", + "vcmpeq_uspd", + "vcmpeq_usps", + "vcmpeq_ussd", + "vcmpeq_usss", + "vcmpfalsepd", + "vcmpfalseps", + "vcmpfalsesd", + "vcmpfalsess", + "vcmpfalse_ospd", + "vcmpfalse_osps", + "vcmpfalse_ossd", + "vcmpfalse_osss", + "vcmpgepd", + "vcmpgeps", + "vcmpgesd", + "vcmpgess", + "vcmpge_oqpd", + "vcmpge_oqps", + "vcmpge_oqsd", + "vcmpge_oqss", + "vcmpgtpd", + "vcmpgtps", + "vcmpgtsd", + "vcmpgtss", + "vcmpgt_oqpd", + "vcmpgt_oqps", + "vcmpgt_oqsd", + "vcmpgt_oqss", + "vcmplepd", + "vcmpleps", + "vcmplesd", + "vcmpless", + "vcmple_oqpd", + "vcmple_oqps", + "vcmple_oqsd", + "vcmple_oqss", + "vcmpltpd", + "vcmpltps", + "vcmpltsd", + "vcmpltss", + "vcmplt_oqpd", + "vcmplt_oqps", + "vcmplt_oqsd", + "vcmplt_oqss", + "vcmpneqpd", + "vcmpneqps", + "vcmpneqsd", + "vcmpneqss", + "vcmpneq_oqpd", + "vcmpneq_oqps", + "vcmpneq_oqsd", + "vcmpneq_oqss", + "vcmpneq_ospd", + "vcmpneq_osps", + "vcmpneq_ossd", + "vcmpneq_osss", + "vcmpneq_uspd", + "vcmpneq_usps", + "vcmpneq_ussd", + "vcmpneq_usss", + "vcmpngepd", + "vcmpngeps", + "vcmpngesd", + "vcmpngess", + "vcmpnge_uqpd", + "vcmpnge_uqps", + "vcmpnge_uqsd", + "vcmpnge_uqss", + "vcmpngtpd", + "vcmpngtps", + "vcmpngtsd", + "vcmpngtss", + "vcmpngt_uqpd", + "vcmpngt_uqps", + "vcmpngt_uqsd", + "vcmpngt_uqss", + "vcmpnlepd", + "vcmpnleps", + "vcmpnlesd", + "vcmpnless", + "vcmpnle_uqpd", + "vcmpnle_uqps", + "vcmpnle_uqsd", + "vcmpnle_uqss", + "vcmpnltpd", + "vcmpnltps", + "vcmpnltsd", + "vcmpnltss", + "vcmpnlt_uqpd", + "vcmpnlt_uqps", + "vcmpnlt_uqsd", + "vcmpnlt_uqss", + "vcmpordpd", + "vcmpordps", + "vcmpordsd", + "vcmpordss", + "vcmpord_spd", + "vcmpord_sps", + "vcmpord_ssd", + "vcmpord_sss", + "vcmppd", + "vcmpps", + "vcmpsd", + "vcmpss", + "vcmptruepd", + "vcmptrueps", + "vcmptruesd", + "vcmptruess", + "vcmptrue_uspd", + "vcmptrue_usps", + "vcmptrue_ussd", + "vcmptrue_usss", + "vcmpunordpd", + "vcmpunordps", + "vcmpunordsd", + "vcmpunordss", + "vcmpunord_spd", + "vcmpunord_sps", + "vcmpunord_ssd", + "vcmpunord_sss", + "vcomisd", + "vcomiss", + "vcvtdq2pd", + "vcvtdq2ps", + "vcvtpd2dq", + "vcvtpd2ps", + "vcvtph2ps", + "vcvtps2dq", + "vcvtps2pd", + "vcvtps2ph", + "vcvtsd2si", + "vcvtsd2ss", + "vcvtsi2sd", + "vcvtsi2ss", + "vcvtss2sd", + "vcvtss2si", + "vcvttpd2dq", + "vcvttps2dq", + "vcvttsd2si", + "vcvttss2si", + "vdivpd", + "vdivps", + "vdivsd", + "vdivss", + "vdppd", + "vdpps", "verr", "verw", - "wait", + "vextractf128", + "vextractps", + "vfmadd123pd", + "vfmadd123ps", + "vfmadd123sd", + "vfmadd123ss", + "vfmadd132pd", + "vfmadd132ps", + "vfmadd132sd", + "vfmadd132ss", + "vfmadd213pd", + "vfmadd213ps", + "vfmadd213sd", + "vfmadd213ss", + "vfmadd231pd", + "vfmadd231ps", + "vfmadd231sd", + "vfmadd231ss", + "vfmadd312pd", + "vfmadd312ps", + "vfmadd312sd", + "vfmadd312ss", + "vfmadd321pd", + "vfmadd321ps", + "vfmadd321sd", + "vfmadd321ss", + "vfmaddpd", + "vfmaddps", + "vfmaddsd", + "vfmaddss", + "vfmaddsub123pd", + "vfmaddsub123ps", + "vfmaddsub132pd", + "vfmaddsub132ps", + "vfmaddsub213pd", + "vfmaddsub213ps", + "vfmaddsub231pd", + "vfmaddsub231ps", + "vfmaddsub312pd", + "vfmaddsub312ps", + "vfmaddsub321pd", + "vfmaddsub321ps", + "vfmaddsubpd", + "vfmaddsubps", + "vfmsub123pd", + "vfmsub123ps", + "vfmsub123sd", + "vfmsub123ss", + "vfmsub132pd", + "vfmsub132ps", + "vfmsub132sd", + "vfmsub132ss", + "vfmsub213pd", + "vfmsub213ps", + "vfmsub213sd", + "vfmsub213ss", + "vfmsub231pd", + "vfmsub231ps", + "vfmsub231sd", + "vfmsub231ss", + "vfmsub312pd", + "vfmsub312ps", + "vfmsub312sd", + "vfmsub312ss", + "vfmsub321pd", + "vfmsub321ps", + "vfmsub321sd", + "vfmsub321ss", + "vfmsubadd123pd", + "vfmsubadd123ps", + "vfmsubadd132pd", + "vfmsubadd132ps", + "vfmsubadd213pd", + "vfmsubadd213ps", + "vfmsubadd231pd", + "vfmsubadd231ps", + "vfmsubadd312pd", + "vfmsubadd312ps", + "vfmsubadd321pd", + "vfmsubadd321ps", + "vfmsubaddpd", + "vfmsubaddps", + "vfmsubpd", + "vfmsubps", + "vfmsubsd", + "vfmsubss", + "vfnmadd123pd", + "vfnmadd123ps", + "vfnmadd123sd", + "vfnmadd123ss", + "vfnmadd132pd", + "vfnmadd132ps", + "vfnmadd132sd", + "vfnmadd132ss", + "vfnmadd213pd", + "vfnmadd213ps", + "vfnmadd213sd", + "vfnmadd213ss", + "vfnmadd231pd", + "vfnmadd231ps", + "vfnmadd231sd", + "vfnmadd231ss", + "vfnmadd312pd", + "vfnmadd312ps", + "vfnmadd312sd", + "vfnmadd312ss", + "vfnmadd321pd", + "vfnmadd321ps", + "vfnmadd321sd", + "vfnmadd321ss", + "vfnmaddpd", + "vfnmaddps", + "vfnmaddsd", + "vfnmaddss", + "vfnmsub123pd", + "vfnmsub123ps", + "vfnmsub123sd", + "vfnmsub123ss", + "vfnmsub132pd", + "vfnmsub132ps", + "vfnmsub132sd", + "vfnmsub132ss", + "vfnmsub213pd", + "vfnmsub213ps", + "vfnmsub213sd", + "vfnmsub213ss", + "vfnmsub231pd", + "vfnmsub231ps", + "vfnmsub231sd", + "vfnmsub231ss", + "vfnmsub312pd", + "vfnmsub312ps", + "vfnmsub312sd", + "vfnmsub312ss", + "vfnmsub321pd", + "vfnmsub321ps", + "vfnmsub321sd", + "vfnmsub321ss", + "vfnmsubpd", + "vfnmsubps", + "vfnmsubsd", + "vfnmsubss", + "vfrczpd", + "vfrczps", + "vfrczsd", + "vfrczss", + "vhaddpd", + "vhaddps", + "vhsubpd", + "vhsubps", + "vinsertf128", + "vinsertps", + "vlddqu", + "vldmxcsr", + "vldqqu", + "vmaskmovdqu", + "vmaskmovpd", + "vmaskmovps", + "vmaxpd", + "vmaxps", + "vmaxsd", + "vmaxss", + "vmcall", + "vmclear", + "vminpd", + "vminps", + "vminsd", + "vminss", + "vmlaunch", + "vmload", + "vmmcall", + "vmovapd", + "vmovaps", + "vmovd", + "vmovddup", + "vmovdqa", + "vmovdqu", + "vmovhlps", + "vmovhpd", + "vmovhps", + "vmovlhps", + "vmovlpd", + "vmovlps", + "vmovmskpd", + "vmovmskps", + "vmovntdq", + "vmovntdqa", + "vmovntpd", + "vmovntps", + "vmovntqq", + "vmovq", + "vmovqqa", + "vmovqqu", + "vmovsd", + "vmovshdup", + "vmovsldup", + "vmovss", + "vmovupd", + "vmovups", + "vmpsadbw", + "vmptrld", + "vmptrst", + "vmread", + "vmresume", + "vmrun", + "vmsave", + "vmulpd", + "vmulps", + "vmulsd", + "vmulss", + "vmwrite", + "vmxoff", + "vmxon", + "vorpd", + "vorps", + "vpabsb", + "vpabsd", + "vpabsw", + "vpackssdw", + "vpacksswb", + "vpackusdw", + "vpackuswb", + "vpaddb", + "vpaddd", + "vpaddq", + "vpaddsb", + "vpaddsw", + "vpaddusb", + "vpaddusw", + "vpaddw", + "vpalignr", + "vpand", + "vpandn", + "vpavgb", + "vpavgw", + "vpblendvb", + "vpblendw", + "vpclmulhqhqdq", + "vpclmulhqlqdq", + "vpclmullqhqdq", + "vpclmullqlqdq", + "vpclmulqdq", + "vpcmov", + "vpcmpeqb", + "vpcmpeqd", + "vpcmpeqq", + "vpcmpeqw", + "vpcmpestri", + "vpcmpestrm", + "vpcmpgtb", + "vpcmpgtd", + "vpcmpgtq", + "vpcmpgtw", + "vpcmpistri", + "vpcmpistrm", + "vpcomb", + "vpcomd", + "vpcomq", + "vpcomub", + "vpcomud", + "vpcomuq", + "vpcomuw", + "vpcomw", + "vperm2f128", + "vpermil2pd", + "vpermil2ps", + "vpermilmo2pd", + "vpermilmo2ps", + "vpermilmz2pd", + "vpermilmz2ps", + "vpermilpd", + "vpermilps", + "vpermiltd2pd", + "vpermiltd2ps", + "vpextrb", + "vpextrd", + "vpextrq", + "vpextrw", + "vphaddbd", + "vphaddbq", + "vphaddbw", + "vphaddd", + "vphadddq", + "vphaddsw", + "vphaddubd", + "vphaddubq", + "vphaddubw", + "vphaddudq", + "vphadduwd", + "vphadduwq", + "vphaddw", + "vphaddwd", + "vphaddwq", + "vphminposuw", + "vphsubbw", + "vphsubd", + "vphsubdq", + "vphsubsw", + "vphsubw", + "vphsubwd", + "vpinsrb", + "vpinsrd", + "vpinsrq", + "vpinsrw", + "vpmacsdd", + "vpmacsdqh", + "vpmacsdql", + "vpmacssdd", + "vpmacssdqh", + "vpmacssdql", + "vpmacsswd", + "vpmacssww", + "vpmacswd", + "vpmacsww", + "vpmadcsswd", + "vpmadcswd", + "vpmaddubsw", + "vpmaddwd", + "vpmaxsb", + "vpmaxsd", + "vpmaxsw", + "vpmaxub", + "vpmaxud", + "vpmaxuw", + "vpminsb", + "vpminsd", + "vpminsw", + "vpminub", + "vpminud", + "vpminuw", + "vpmovmskb", + "vpmovsxbd", + "vpmovsxbq", + "vpmovsxbw", + "vpmovsxdq", + "vpmovsxwd", + "vpmovsxwq", + "vpmovzxbd", + "vpmovzxbq", + "vpmovzxbw", + "vpmovzxdq", + "vpmovzxwd", + "vpmovzxwq", + "vpmuldq", + "vpmulhrsw", + "vpmulhuw", + "vpmulhw", + "vpmulld", + "vpmullw", + "vpmuludq", + "vpor", + "vpperm", + "vprotb", + "vprotd", + "vprotq", + "vprotw", + "vpsadbw", + "vpshab", + "vpshad", + "vpshaq", + "vpshaw", + "vpshlb", + "vpshld", + "vpshlq", + "vpshlw", + "vpshufb", + "vpshufd", + "vpshufhw", + "vpshuflw", + "vpsignb", + "vpsignd", + "vpsignw", + "vpslld", + "vpslldq", + "vpsllq", + "vpsllw", + "vpsrad", + "vpsraw", + "vpsrld", + "vpsrldq", + "vpsrlq", + "vpsrlw", + "vpsubb", + "vpsubd", + "vpsubq", + "vpsubsb", + "vpsubsw", + "vpsubusb", + "vpsubusw", + "vpsubw", + "vptest", + "vpunpckhbw", + "vpunpckhdq", + "vpunpckhqdq", + "vpunpckhwd", + "vpunpcklbw", + "vpunpckldq", + "vpunpcklqdq", + "vpunpcklwd", + "vpxor", + "vrcpps", + "vrcpss", + "vroundpd", + "vroundps", + "vroundsd", + "vroundss", + "vrsqrtps", + "vrsqrtss", + "vshufpd", + "vshufps", + "vsqrtpd", + "vsqrtps", + "vsqrtsd", + "vsqrtss", + "vstmxcsr", + "vsubpd", + "vsubps", + "vsubsd", + "vsubss", + "vtestpd", + "vtestps", + "vucomisd", + "vucomiss", + "vunpckhpd", + "vunpckhps", + "vunpcklpd", + "vunpcklps", + "vxorpd", + "vxorps", + "vzeroall", + "vzeroupper", "wbinvd", "wrmsr", "wrshr", "xadd", "xbts", "xchg", + "xcryptcbc", + "xcryptcfb", + "xcryptctr", + "xcryptecb", + "xcryptofb", + "xgetbv", "xlat", "xlatb", "xor", "xorpd", "xorps", - "xstore" -}; - -/* Conditional instructions */ -static const char *icn[] = { + "xrstor", + "xsave", + "xsetbv", + "xsha1", + "xsha256", + "xstore", "cmov", "j", "set" }; - -/* and the corresponding opcodes */ -static int ico[] = { - I_CMOVcc, - I_Jcc, - I_SETcc -}; diff --git a/uppsrc/plugin/ndisasm/lib/inttypes.h b/uppsrc/plugin/ndisasm/lib/inttypes.h new file mode 100644 index 000000000..22f036898 --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/inttypes.h @@ -0,0 +1,201 @@ +/* + * inttypes.h + * + * Small ersatz subset of , deriving the types from + * . + * + * Important: the preprocessor may truncate numbers too large for it. + * Therefore, test the signed types only ... truncation won't generate + * a 01111111... bit pattern. + */ + +#ifndef INTTYPES_H +#define INTTYPES_H + +#include + +/*** 64-bit type: long or long long ***/ + +/* Some old versions of gcc omit LLONG_MAX */ +#ifndef LLONG_MAX +# ifdef __LONG_LONG_MAX__ +# define LLONG_MAX __LONG_LONG_MAX__ +# else +# define LLONG_MAX 0 /* Assume long long is unusable */ +# endif +#endif + +#if LONG_MAX == 9223372036854775807L + +/* long is 64 bits */ +typedef signed long int64_t; +typedef unsigned long uint64_t; +#define _scn64 "l" +#define _pri64 "l" +#define INT64_C(x) x ## L +#define UINT64_C(x) x ## UL + +#elif LLONG_MAX == 9223372036854775807LL + +/* long long is 64 bits */ +typedef signed long long int64_t; +typedef unsigned long long uint64_t; +#define _scn64 "ll" +#define _pri64 "ll" +#define INT64_C(x) x ## LL +#define UINT64_C(x) x ## ULL + +#else + +#error "Neither long nor long long is 64 bits in size" + +#endif + +/*** 32-bit type: int or long ***/ + +#if INT_MAX == 2147483647 + +/* int is 32 bits */ +typedef signed int int32_t; +typedef unsigned int uint32_t; +#define _scn32 "" +#define _pri32 "" +#define INT32_C(x) x +#define UINT32_C(x) x ## U + +#elif LONG_MAX == 2147483647L + +/* long is 32 bits */ +typedef signed long int32_t; +typedef unsigned long uint32_t; +#define _scn32 "l" +#define _pri32 "l" +#define INT32_C(x) x ## L +#define UINT32_C(x) x ## UL + +#else + +#error "Neither int nor long is 32 bits in size" + +#endif + +/*** 16-bit size: int or short ***/ + +#if INT_MAX == 32767 + +/* int is 16 bits */ +typedef signed int int16_t; +typedef unsigned int uint16_t; +#define _scn16 "" +#define _pri16 "" +#define INT16_C(x) x +#define UINT16_C(x) x ## U + +#elif SHRT_MAX == 32767 + +/* short is 16 bits */ +typedef signed short int16_t; +typedef unsigned short uint16_t; +#define _scn16 "h" +#define _pri16 "" +#define INT16_C(x) x +#define UINT16_C(x) x ## U + +#else + +#error "Neither short nor int is 16 bits in size" + +#endif + +/*** 8-bit size: char ***/ + +#if SCHAR_MAX == 127 + +/* char is 8 bits */ +typedef signed char int8_t; +typedef unsigned char uint8_t; +#define _scn8 "hh" +#define _pri8 "" +#define INT8_C(x) x +#define UINT8_C(x) x ## U + +#else + +#error "char is not 8 bits in size" + +#endif + +/* The rest of this is common to all models */ + +#define PRId8 _pri8 "d" +#define PRId16 _pri16 "d" +#define PRId32 _pri32 "d" +#define PRId64 _pri64 "d" + +#define PRIi8 _pri8 "i" +#define PRIi16 _pri16 "i" +#define PRIi32 _pri32 "i" +#define PRIi64 _pri64 "i" + +#define PRIo8 _pri8 "o" +#define PRIo16 _pri16 "o" +#define PRIo32 _pri32 "o" +#define PRIo64 _pri64 "o" + +#define PRIu8 _pri8 "u" +#define PRIu16 _pri16 "u" +#define PRIu32 _pri32 "u" +#define PRIu64 _pri64 "u" + +#define PRIx8 _pri8 "x" +#define PRIx16 _pri16 "x" +#define PRIx32 _pri32 "x" +#define PRIx64 _pri64 "x" + +#define PRIX8 _pri8 "X" +#define PRIX16 _pri16 "X" +#define PRIX32 _pri32 "X" +#define PRIX64 _pri64 "X" + +#define SCNd8 _scn8 "d" +#define SCNd16 _scn16 "d" +#define SCNd32 _scn32 "d" +#define SCNd64 _scn64 "d" + +#define SCNi8 _scn8 "i" +#define SCNi16 _scn16 "i" +#define SCNi32 _scn32 "i" +#define SCNi64 _scn64 "i" + +#define SCNo8 _scn8 "o" +#define SCNo16 _scn16 "o" +#define SCNo32 _scn32 "o" +#define SCNo64 _scn64 "o" + +#define SCNu8 _scn8 "u" +#define SCNu16 _scn16 "u" +#define SCNu32 _scn32 "u" +#define SCNu64 _scn64 "u" + +#define SCNx8 _scn8 "x" +#define SCNx16 _scn16 "x" +#define SCNx32 _scn32 "x" +#define SCNx64 _scn64 "x" + +#define INT8_MIN INT8_C(-128) +#define INT8_MAX INT8_C(127) +#define UINT8_MAX UINT8_C(255) + +#define INT16_MIN INT16_C(-32768) +#define INT16_MAX INT16_C(32767) +#define UINT16_MAX UINT16_C(65535) + +#define INT32_MIN INT32_C(-2147483648) +#define INT32_MAX INT32_C(2147483647) +#define UINT32_MAX UINT32_C(4294967295) + +#define INT64_MIN INT64_C(-9223372036854775808) +#define INT64_MAX INT64_C(9223372036854775807) +#define UINT64_MAX UINT64_C(18446744073709551615) + +#endif /* INTTYPES_H */ diff --git a/uppsrc/plugin/ndisasm/lib/names.c b/uppsrc/plugin/ndisasm/lib/names.c deleted file mode 100644 index 97767b084..000000000 --- a/uppsrc/plugin/ndisasm/lib/names.c +++ /dev/null @@ -1,20 +0,0 @@ -/* names.c included source file defining instruction and register - * names for the Netwide [Dis]Assembler - * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. - */ - -static const char *conditions[] = { /* condition code names */ - "a", "ae", "b", "be", "c", "e", "g", "ge", "l", "le", "na", "nae", - "nb", "nbe", "nc", "ne", "ng", "nge", "nl", "nle", "no", "np", - "ns", "nz", "o", "p", "pe", "po", "s", "z" -}; - -/* Register names automatically generated from regs.dat */ -#include "regs.c" - -/* Instruction names automatically generated from insns.dat */ -#include "insnsn.c" diff --git a/uppsrc/plugin/ndisasm/lib/nasm.h b/uppsrc/plugin/ndisasm/lib/nasm.h index 8c42b6031..f7673e2a6 100644 --- a/uppsrc/plugin/ndisasm/lib/nasm.h +++ b/uppsrc/plugin/ndisasm/lib/nasm.h @@ -1,32 +1,55 @@ -/* nasm.h main header file for the Netwide Assembler: inter-module interface +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: * - * initial version: 27/iii/95 by Simon Tatham + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * nasm.h main header file for the Netwide Assembler: inter-module interface */ #ifndef NASM_NASM_H #define NASM_NASM_H +#include "compiler.h" + #include -#include "version.h" /* generated NASM version macros */ +#include "inttypes.h" +#include "nasmlib.h" +//#include "preproc.h" +#include "insnsi.h" /* For enum opcode */ +//#include "directives.h" /* For enum directive */ +#include "opflags.h" -#ifndef NULL -#define NULL 0 -#endif - -#ifndef FALSE -#define FALSE 0 /* comes in handy */ -#endif -#ifndef TRUE -#define TRUE 1 -#endif - -#define NO_SEG -1L /* null segment value */ -#define SEG_ABS 0x40000000L /* mask for far-absolute segments */ +#define NO_SEG -1L /* null segment value */ +#define SEG_ABS 0x40000000L /* mask for far-absolute segments */ #ifndef FILENAME_MAX #define FILENAME_MAX 256 @@ -58,46 +81,30 @@ struct ofmt; /* - * ------------------------- - * Error reporting functions - * ------------------------- + * values for the `type' parameter to an output function. + * + * Exceptions are OUT_RELxADR, which denote an x-byte relocation + * which will be a relative jump. For this we need to know the + * distance in bytes from the start of the relocated record until + * the end of the containing instruction. _This_ is what is stored + * in the size part of the parameter, in this case. + * + * Also OUT_RESERVE denotes reservation of N bytes of BSS space, + * and the contents of the "data" parameter is irrelevant. + * + * The "data" parameter for the output function points to a "int32_t", + * containing the address in question, unless the type is + * OUT_RAWDATA, in which case it points to an "uint8_t" + * array. */ - -/* - * An error reporting function should look like this. - */ -typedef void (*efunc) (int severity, const char *fmt, ...); - -/* - * These are the error severity codes which get passed as the first - * argument to an efunc. - */ - -#define ERR_DEBUG 0x00000008 /* put out debugging message */ -#define ERR_WARNING 0x00000000 /* warn only: no further action */ -#define ERR_NONFATAL 0x00000001 /* terminate assembly after phase */ -#define ERR_FATAL 0x00000002 /* instantly fatal: exit with error */ -#define ERR_PANIC 0x00000003 /* internal error: panic instantly - * and dump core for reference */ -#define ERR_MASK 0x0000000F /* mask off the above codes */ -#define ERR_NOFILE 0x00000010 /* don't give source file name/line */ -#define ERR_USAGE 0x00000020 /* print a usage message */ -#define ERR_PASS1 0x00000040 /* only print this error on pass one */ - -/* - * These codes define specific types of suppressible warning. - */ - -#define ERR_WARN_MASK 0x0000FF00 /* the mask for this feature */ -#define ERR_WARN_SHR 8 /* how far to shift right */ - -#define ERR_WARN_MNP 0x00000100 /* macro-num-parameters warning */ -#define ERR_WARN_MSR 0x00000200 /* macro self-reference */ -#define ERR_WARN_OL 0x00000300 /* orphan label (no colon, and - * alone on line) */ -#define ERR_WARN_NOV 0x00000400 /* numeric overflow */ -#define ERR_WARN_GNUELF 0x00000500 /* using GNU ELF extensions */ -#define ERR_WARN_MAX 5 /* the highest numbered one */ +enum out_type { + OUT_RAWDATA, /* Plain bytes */ + OUT_ADDRESS, /* An address (symbol value) */ + OUT_RESERVE, /* Reserved bytes (RESB et al) */ + OUT_REL2ADR, /* 2-byte relative address */ + OUT_REL4ADR, /* 4-byte relative address */ + OUT_REL8ADR, /* 8-byte relative address */ +}; /* * ----------------------- @@ -108,7 +115,7 @@ typedef void (*efunc) (int severity, const char *fmt, ...); /* * A label-lookup function should look like this. */ -typedef int (*lfunc) (char *label, long *segment, long *offset); +typedef bool (*lfunc) (char *label, int32_t *segment, int64_t *offset); /* * And a label-definition function like this. The boolean parameter @@ -116,16 +123,17 @@ typedef int (*lfunc) (char *label, long *segment, long *offset); * should affect the local-label system), or something odder like * an EQU or a segment-base symbol, which shouldn't. */ -typedef void (*ldfunc) (char *label, long segment, long offset, char *special, - int is_norm, int isextrn, struct ofmt *ofmt, - efunc error); +typedef void (*ldfunc)(char *label, int32_t segment, int64_t offset, + char *special, bool is_norm, bool isextrn); +void define_label(char *label, int32_t segment, int64_t offset, + char *special, bool is_norm, bool isextrn); /* * List-file generators should look like this: */ typedef struct { /* - * Called to initialise the listing file generator. Before this + * Called to initialize the listing file generator. Before this * is called, the other routines will silently do nothing when * called. The `char *' parameter is the file name to write the * listing to. @@ -143,12 +151,12 @@ typedef struct { * output-format interface, only OUT_ADDRESS will _always_ be * displayed as if it's relocatable, so ensure that any non- * relocatable address has been converted to OUT_RAWDATA by - * then. Note that OUT_RAWDATA+0 is a valid data type, and is a + * then. Note that OUT_RAWDATA,0 is a valid data type, and is a * dummy call used to give the listing generator an offset to * work with when doing things like uplevel(LIST_TIMES) or * uplevel(LIST_INCBIN). */ - void (*output) (long, const void *, unsigned long); + void (*output) (int32_t, const void *, enum out_type, uint64_t); /* * Called to send a text line to the listing generator. The @@ -177,8 +185,60 @@ typedef struct { * Reverse the effects of uplevel. */ void (*downlevel) (int); + + /* + * Called on a warning or error, with the error message. + */ + void (*error)(int severity, const char *pfx, const char *msg); } ListGen; +/* + * Token types returned by the scanner, in addition to ordinary + * ASCII character values, and zero for end-of-string. + */ +enum token_type { /* token types, other than chars */ + TOKEN_INVALID = -1, /* a placeholder value */ + TOKEN_EOS = 0, /* end of string */ + TOKEN_EQ = '=', TOKEN_GT = '>', TOKEN_LT = '<', /* aliases */ + TOKEN_ID = 256, /* identifier */ + TOKEN_NUM, /* numeric constant */ + TOKEN_ERRNUM, /* malformed numeric constant */ + TOKEN_STR, /* string constant */ + TOKEN_ERRSTR, /* unterminated string constant */ + TOKEN_FLOAT, /* floating-point constant */ + TOKEN_REG, /* register name */ + TOKEN_INSN, /* instruction name */ + TOKEN_HERE, TOKEN_BASE, /* $ and $$ */ + TOKEN_SPECIAL, /* BYTE, WORD, DWORD, QWORD, FAR, NEAR, etc */ + TOKEN_PREFIX, /* A32, O16, LOCK, REPNZ, TIMES, etc */ + TOKEN_SHL, TOKEN_SHR, /* << and >> */ + TOKEN_SDIV, TOKEN_SMOD, /* // and %% */ + TOKEN_GE, TOKEN_LE, TOKEN_NE, /* >=, <= and <> (!= is same as <>) */ + TOKEN_DBL_AND, TOKEN_DBL_OR, TOKEN_DBL_XOR, /* &&, || and ^^ */ + TOKEN_SEG, TOKEN_WRT, /* SEG and WRT */ + TOKEN_FLOATIZE, /* __floatX__ */ + TOKEN_STRFUNC, /* __utf16__, __utf32__ */ +}; + +enum floatize { + FLOAT_8, + FLOAT_16, + FLOAT_32, + FLOAT_64, + FLOAT_80M, + FLOAT_80E, + FLOAT_128L, + FLOAT_128H, +}; + +/* Must match the list in string_transform(), in strfunc.c */ +enum strfunc { + STRFUNC_UTF16, + STRFUNC_UTF32, +}; + +size_t string_transform(char *, size_t, char **, enum strfunc); + /* * The expression evaluator must be passed a scanner function; a * standard scanner is provided as part of nasmlib.c. The @@ -189,39 +249,18 @@ typedef struct { * `t_type' field in the structure. */ struct tokenval { - int t_type; - long t_integer, t_inttwo; + enum token_type t_type; char *t_charptr; + int64_t t_integer, t_inttwo; }; -typedef int (*scanner) (void *private_data, struct tokenval *tv); +typedef int (*scanner) (void *private_data, struct tokenval * tv); -/* - * Token types returned by the scanner, in addition to ordinary - * ASCII character values, and zero for end-of-string. - */ -enum { /* token types, other than chars */ - TOKEN_INVALID = -1, /* a placeholder value */ - TOKEN_EOS = 0, /* end of string */ - TOKEN_EQ = '=', TOKEN_GT = '>', TOKEN_LT = '<', /* aliases */ - TOKEN_ID = 256, TOKEN_NUM, TOKEN_REG, TOKEN_INSN, /* major token types */ - TOKEN_ERRNUM, /* numeric constant with error in */ - TOKEN_HERE, TOKEN_BASE, /* $ and $$ */ - TOKEN_SPECIAL, /* BYTE, WORD, DWORD, FAR, NEAR, etc */ - TOKEN_PREFIX, /* A32, O16, LOCK, REPNZ, TIMES, etc */ - TOKEN_SHL, TOKEN_SHR, /* << and >> */ - TOKEN_SDIV, TOKEN_SMOD, /* // and %% */ - TOKEN_GE, TOKEN_LE, TOKEN_NE, /* >=, <= and <> (!= is same as <>) */ - TOKEN_DBL_AND, TOKEN_DBL_OR, TOKEN_DBL_XOR, /* &&, || and ^^ */ - TOKEN_SEG, TOKEN_WRT, /* SEG and WRT */ - TOKEN_FLOAT /* floating-point constant */ +struct location { + int64_t offset; + int32_t segment; + int known; }; -typedef struct { - long segment; - long offset; - int known; -} loc_t; - /* * Expression-evaluator datatype. Expressions, within the * evaluator, are stored as an array of these beasts, terminated by @@ -235,17 +274,29 @@ typedef struct { * `value' field of zero is insignificant. */ typedef struct { - long type; /* a register, or EXPR_xxx */ - long value; /* must be >= 32 bits */ + int32_t type; /* a register, or EXPR_xxx */ + int64_t value; /* must be >= 32 bits */ } expr; +/* + * Library routines to manipulate expression data types. + */ +int is_reloc(expr *); +int is_simple(expr *); +int is_really_simple(expr *); +int is_unknown(expr *); +int is_just_unknown(expr *); +int64_t reloc_value(expr *); +int32_t reloc_seg(expr *); +int32_t reloc_wrt(expr *); + /* * The evaluator can also return hints about which of two registers * used in an expression should be the base register. See also the * `operand' structure. */ struct eval_hints { - int base; + int64_t base; int type; }; @@ -256,7 +307,7 @@ struct eval_hints { * it will start by calling the scanner. * * If a forward reference happens during evaluation, the evaluator - * must set `*fwref' to TRUE if `fwref' is non-NULL. + * must set `*fwref' to true if `fwref' is non-NULL. * * `critical' is non-zero if the expression may not contain forward * references. The evaluator will report its own error if this @@ -274,33 +325,38 @@ struct eval_hints { * the base register in complex effective addresses. */ #define CRITICAL 0x100 -typedef expr *(*evalfunc) (scanner sc, void *scprivate, struct tokenval *tv, - int *fwref, int critical, efunc error, - struct eval_hints *hints); +typedef expr *(*evalfunc) (scanner sc, void *scprivate, + struct tokenval * tv, int *fwref, int critical, + efunc error, struct eval_hints * hints); /* - * Special values for expr->type. ASSUMPTION MADE HERE: the number - * of distinct register names (i.e. possible "type" fields for an - * expr structure) does not exceed 124 (EXPR_REG_START through - * EXPR_REG_END). + * Special values for expr->type. These come after EXPR_REG_END + * as defined in regs.h. */ -#define EXPR_REG_START 1 -#define EXPR_REG_END 124 -#define EXPR_UNKNOWN 125L /* for forward references */ -#define EXPR_SIMPLE 126L -#define EXPR_WRT 127L -#define EXPR_SEGBASE 128L + +#define EXPR_UNKNOWN (EXPR_REG_END+1) /* forward references */ +#define EXPR_SIMPLE (EXPR_REG_END+2) +#define EXPR_WRT (EXPR_REG_END+3) +#define EXPR_SEGBASE (EXPR_REG_END+4) /* - * Preprocessors ought to look like this: + * Linked list of strings... */ -typedef struct { +typedef struct string_list { + struct string_list *next; + char str[1]; +} StrList; + +/* + * preprocessors ought to look like this: + */ +typedef struct preproc_ops { /* * Called at the start of a pass; given a file name, the number * of the pass, an error reporting function, an evaluator * function, and a listing generator to talk to. */ - void (*reset) (char *, int, efunc, evalfunc, ListGen *); + void (*reset) (char *, int, ListGen *, StrList **); /* * Called to fetch a line of preprocessed source. The line @@ -315,6 +371,8 @@ typedef struct { void (*cleanup) (int); } Preproc; +extern Preproc nasmpp; + /* * ---------------------------------------------------------------- * Some lexical properties of the NASM source language, included @@ -330,15 +388,15 @@ typedef struct { * start. */ -#define isidstart(c) ( isalpha(c) || (c)=='_' || (c)=='.' || (c)=='?' \ +#define isidstart(c) ( nasm_isalpha(c) || (c)=='_' || (c)=='.' || (c)=='?' \ || (c)=='@' ) -#define isidchar(c) ( isidstart(c) || isdigit(c) || (c)=='$' || (c)=='#' \ - || (c)=='~' ) +#define isidchar(c) ( isidstart(c) || nasm_isdigit(c) || \ + (c)=='$' || (c)=='#' || (c)=='~' ) /* Ditto for numeric constants. */ -#define isnumstart(c) ( isdigit(c) || (c)=='$' ) -#define isnumchar(c) ( isalnum(c) ) +#define isnumstart(c) ( nasm_isdigit(c) || (c)=='$' ) +#define isnumchar(c) ( nasm_isalnum(c) || (c)=='_' ) /* This returns the numeric value of a given 'digit'. */ @@ -359,86 +417,38 @@ enum { * ----------------------------------------------------------- */ -/* - * Here we define the operand types. These are implemented as bit - * masks, since some are subsets of others; e.g. AX in a MOV - * instruction is a special operand type, whereas AX in other - * contexts is just another 16-bit register. (Also, consider CL in - * shift instructions, DX in OUT, etc.) - */ - -/* size, and other attributes, of the operand */ -#define BITS8 0x00000001L -#define BITS16 0x00000002L -#define BITS32 0x00000004L -#define BITS64 0x00000008L /* FPU only */ -#define BITS80 0x00000010L /* FPU only */ -#define FAR 0x00000020L /* grotty: this means 16:16 or */ - /* 16:32, like in CALL/JMP */ -#define NEAR 0x00000040L -#define SHORT 0x00000080L /* and this means what it says :) */ - -#define SIZE_MASK 0x000000FFL /* all the size attributes */ -#define NON_SIZE (~SIZE_MASK) - -#define TO 0x00000100L /* reverse effect in FADD, FSUB &c */ -#define COLON 0x00000200L /* operand is followed by a colon */ -#define STRICT 0x00000400L /* do not optimize this operand */ - -/* type of operand: memory reference, register, etc. */ -#define MEMORY 0x00204000L -#define REGISTER 0x00001000L /* register number in 'basereg' */ -#define IMMEDIATE 0x00002000L - -#define REGMEM 0x00200000L /* for r/m, ie EA, operands */ -#define REGNORM 0x00201000L /* 'normal' reg, qualifies as EA */ -#define REG8 0x00201001L -#define REG16 0x00201002L -#define REG32 0x00201004L -#define MMXREG 0x00201008L /* MMX registers */ -#define XMMREG 0x00201010L /* XMM Katmai reg */ -#define FPUREG 0x01000000L /* floating point stack registers */ -#define FPU0 0x01000800L /* FPU stack register zero */ - -/* special register operands: these may be treated differently */ -#define REG_SMASK 0x00070000L /* a mask for the following */ -#define REG_ACCUM 0x00211000L /* accumulator: AL, AX or EAX */ -#define REG_AL 0x00211001L /* REG_ACCUM | BITSxx */ -#define REG_AX 0x00211002L /* ditto */ -#define REG_EAX 0x00211004L /* and again */ -#define REG_COUNT 0x00221000L /* counter: CL, CX or ECX */ -#define REG_CL 0x00221001L /* REG_COUNT | BITSxx */ -#define REG_CX 0x00221002L /* ditto */ -#define REG_ECX 0x00221004L /* another one */ -#define REG_DL 0x00241001L -#define REG_DX 0x00241002L -#define REG_EDX 0x00241004L -#define REG_SREG 0x00081002L /* any segment register */ -#define REG_CS 0x01081002L /* CS */ -#define REG_DESS 0x02081002L /* DS, ES, SS (non-CS 86 registers) */ -#define REG_FSGS 0x04081002L /* FS, GS (386 extended registers) */ -#define REG_SEG67 0x08081002L /* Non-implemented segment registers */ -#define REG_CDT 0x00101004L /* CRn, DRn and TRn */ -#define REG_CREG 0x08101004L /* CRn */ -#define REG_DREG 0x10101004L /* DRn */ -#define REG_TREG 0x20101004L /* TRn */ - -/* special type of EA */ -#define MEM_OFFS 0x00604000L /* simple [address] offset */ - -/* special type of immediate operand */ -#define ONENESS 0x00800000L /* so UNITY == IMMEDIATE | ONENESS */ -#define UNITY 0x00802000L /* for shift/rotate instructions */ -#define BYTENESS 0x40000000L /* so SBYTE == IMMEDIATE | BYTENESS */ -#define SBYTE 0x40002000L /* for op r16/32,immediate instrs. */ - /* Register names automatically generated from regs.dat */ #include "regs.h" -enum { /* condition code names */ +enum ccode { /* condition code names */ C_A, C_AE, C_B, C_BE, C_C, C_E, C_G, C_GE, C_L, C_LE, C_NA, C_NAE, C_NB, C_NBE, C_NC, C_NE, C_NG, C_NGE, C_NL, C_NLE, C_NO, C_NP, - C_NS, C_NZ, C_O, C_P, C_PE, C_PO, C_S, C_Z + C_NS, C_NZ, C_O, C_P, C_PE, C_PO, C_S, C_Z, + C_none = -1 +}; + +/* + * REX flags + */ +#define REX_REAL 0x4f /* Actual REX prefix bits */ +#define REX_B 0x01 /* ModRM r/m extension */ +#define REX_X 0x02 /* SIB index extension */ +#define REX_R 0x04 /* ModRM reg extension */ +#define REX_W 0x08 /* 64-bit operand size */ +#define REX_L 0x20 /* Use LOCK prefix instead of REX.R */ +#define REX_P 0x40 /* REX prefix present/required */ +#define REX_H 0x80 /* High register present, REX forbidden */ +#define REX_D 0x0100 /* Instruction uses DREX instead of REX */ +#define REX_OC 0x0200 /* DREX suffix has the OC0 bit set */ +#define REX_V 0x0400 /* Instruction uses VEX/XOP instead of REX */ +#define REX_NH 0x0800 /* Instruction which doesn't use high regs */ + +/* + * REX_V "classes" (prefixes which behave like VEX) + */ +enum vex_class { + RV_VEX = 0, /* C4/C5 */ + RV_XOP = 1 /* 8F */ }; /* @@ -446,68 +456,104 @@ enum { /* condition code names */ * prefixes, we must ensure the enumerations for prefixes and * register names do not overlap. */ -enum { /* instruction prefixes */ +enum prefixes { /* instruction prefixes */ + P_none = 0, PREFIX_ENUM_START = REG_ENUM_LIMIT, - P_A16 = PREFIX_ENUM_START, P_A32, P_LOCK, P_O16, P_O32, P_REP, P_REPE, - P_REPNE, P_REPNZ, P_REPZ, P_TIMES + P_A16 = PREFIX_ENUM_START, P_A32, P_A64, P_ASP, + P_LOCK, P_O16, P_O32, P_O64, P_OSP, + P_REP, P_REPE, P_REPNE, P_REPNZ, P_REPZ, P_TIMES, + P_WAIT, + PREFIX_ENUM_LIMIT }; -enum { /* extended operand types */ - EOT_NOTHING, EOT_DB_STRING, EOT_DB_NUMBER +enum extop_type { /* extended operand types */ + EOT_NOTHING, + EOT_DB_STRING, /* Byte string */ + EOT_DB_STRING_FREE, /* Byte string which should be nasm_free'd*/ + EOT_DB_NUMBER, /* Integer */ }; -enum { /* special EA flags */ - EAF_BYTEOFFS = 1, /* force offset part to byte size */ - EAF_WORDOFFS = 2, /* force offset part to [d]word size */ - EAF_TIMESTWO = 4 /* really do EAX*2 not EAX+EAX */ +enum ea_flags { /* special EA flags */ + EAF_BYTEOFFS = 1, /* force offset part to byte size */ + EAF_WORDOFFS = 2, /* force offset part to [d]word size */ + EAF_TIMESTWO = 4, /* really do EAX*2 not EAX+EAX */ + EAF_REL = 8, /* IP-relative addressing */ + EAF_ABS = 16, /* non-IP-relative addressing */ + EAF_FSGS = 32 /* fs/gs segment override present */ }; -enum { /* values for `hinttype' */ - EAH_NOHINT = 0, /* no hint at all - our discretion */ - EAH_MAKEBASE = 1, /* try to make given reg the base */ - EAH_NOTBASE = 2 /* try _not_ to make reg the base */ +enum eval_hint { /* values for `hinttype' */ + EAH_NOHINT = 0, /* no hint at all - our discretion */ + EAH_MAKEBASE = 1, /* try to make given reg the base */ + EAH_NOTBASE = 2 /* try _not_ to make reg the base */ }; -typedef struct { /* operand to an instruction */ - long type; /* type of operand */ - int addr_size; /* 0 means default; 16; 32 */ - int basereg, indexreg, scale; /* registers and scale involved */ - int hintbase, hinttype; /* hint as to real base register */ - long segment; /* immediate segment, if needed */ - long offset; /* any immediate number */ - long wrt; /* segment base it's relative to */ - int eaflags; /* special EA flags */ - int opflags; /* see OPFLAG_* defines below */ +typedef struct operand { /* operand to an instruction */ + opflags_t type; /* type of operand */ + int disp_size; /* 0 means default; 16; 32; 64 */ + enum reg_enum basereg, indexreg; /* address registers */ + int scale; /* index scale */ + int hintbase; + enum eval_hint hinttype; /* hint as to real base register */ + int32_t segment; /* immediate segment, if needed */ + int64_t offset; /* any immediate number */ + int32_t wrt; /* segment base it's relative to */ + int eaflags; /* special EA flags */ + int opflags; /* see OPFLAG_* defines below */ } operand; -#define OPFLAG_FORWARD 1 /* operand is a forward reference */ -#define OPFLAG_EXTERN 2 /* operand is an external reference */ +#define OPFLAG_FORWARD 1 /* operand is a forward reference */ +#define OPFLAG_EXTERN 2 /* operand is an external reference */ +#define OPFLAG_UNKNOWN 4 /* operand is an unknown reference */ + /* (always a forward reference also) */ -typedef struct extop { /* extended operand */ - struct extop *next; /* linked list */ - long type; /* defined above */ - char *stringval; /* if it's a string, then here it is */ - int stringlen; /* ... and here's how long it is */ - long segment; /* if it's a number/address, then... */ - long offset; /* ... it's given here ... */ - long wrt; /* ... and here */ +typedef struct extop { /* extended operand */ + struct extop *next; /* linked list */ + char *stringval; /* if it's a string, then here it is */ + size_t stringlen; /* ... and here's how long it is */ + int64_t offset; /* ... it's given here ... */ + int32_t segment; /* if it's a number/address, then... */ + int32_t wrt; /* ... and here */ + enum extop_type type; /* defined above */ } extop; -#define MAXPREFIX 4 +/* Prefix positions: each type of prefix goes in a specific slot. + This affects the final ordering of the assembled output, which + shouldn't matter to the processor, but if you have stylistic + preferences, you can change this. REX prefixes are handled + differently for the time being. -typedef struct { /* an instruction itself */ - char *label; /* the label defined, or NULL */ - int prefixes[MAXPREFIX]; /* instruction prefixes, if any */ - int nprefix; /* number of entries in above */ - int opcode; /* the opcode - not just the string */ - int condition; /* the condition code, if Jcc/SETcc */ - int operands; /* how many operands? 0-3 - * (more if db et al) */ - operand oprs[3]; /* the operands, defined as above */ - extop *eops; /* extended operands */ - int eops_float; /* true if DD and floating */ - long times; /* repeat count (TIMES prefix) */ - int forw_ref; /* is there a forward reference? */ + Note that LOCK and REP are in the same slot. This is + an x86 architectural constraint. */ +enum prefix_pos { + PPS_WAIT, /* WAIT (technically not a prefix!) */ + PPS_LREP, /* Lock or REP prefix */ + PPS_SEG, /* Segment override prefix */ + PPS_OSIZE, /* Operand size prefix */ + PPS_ASIZE, /* Address size prefix */ + MAXPREFIX /* Total number of prefix slots */ +}; + +/* If you need to change this, also change it in insns.pl */ +#define MAX_OPERANDS 5 + +typedef struct insn { /* an instruction itself */ + char *label; /* the label defined, or NULL */ + enum prefixes prefixes[MAXPREFIX]; /* instruction prefixes, if any */ + enum opcode opcode; /* the opcode - not just the string */ + enum ccode condition; /* the condition code, if Jcc/SETcc */ + int operands; /* how many operands? 0-3 + * (more if db et al) */ + int addr_size; /* address size */ + operand oprs[MAX_OPERANDS]; /* the operands, defined as above */ + extop *eops; /* extended operands */ + int eops_float; /* true if DD and floating */ + int32_t times; /* repeat count (TIMES prefix) */ + bool forw_ref; /* is there a forward reference? */ + int rex; /* Special REX Prefix */ + int drexdst; /* Destination register for DREX/VEX suffix */ + int vex_cm; /* Class and M field for VEX prefix */ + int vex_wlp; /* W, P and L information for VEX prefix */ } insn; enum geninfo { GI_SWITCH }; @@ -518,6 +564,8 @@ enum geninfo { GI_SWITCH }; * ------------------------------------------------------------ */ +typedef const unsigned char macros_t; + struct ofmt { /* * This is a short (one-liner) description of the type of @@ -531,11 +579,10 @@ struct ofmt { const char *shortname; /* - * this is reserved for out module specific help. - * It is set to NULL in all the out modules but is not implemented - * in the main program + * Output format flags. */ - const char *helpstring; +#define OFMT_TEXT 1 /* Text file format */ + unsigned int flags; /* * this is a pointer to the first element of the debug information @@ -549,7 +596,7 @@ struct ofmt { * an output format, be sure to set this to whatever default you want * */ - struct dfmt *current_dfmt; + const struct dfmt *current_dfmt; /* * This, if non-NULL, is a NULL-terminated list of `char *'s @@ -558,16 +605,13 @@ struct ofmt { * and user-level equivalents for any format-specific * directives). */ - const char **stdmac; + macros_t *stdmac; /* - * This procedure is called at the start of an output session. - * It tells the output format what file it will be writing to, - * what routine to report errors through, and how to interface - * to the label manager and expression evaluator if necessary. - * It also gives it a chance to do other initialisation. + * This procedure is called at the start of an output session to set + * up internal parameters. */ - void (*init) (FILE *fp, efunc error, ldfunc ldef, evalfunc eval); + void (*init)(void); /* * This procedure is called to pass generic information to the @@ -576,7 +620,7 @@ struct ofmt { * and the second parameter gives the value. This function returns * 1 if recognized, 0 if unrecognized */ - int (*setinfo)(enum geninfo type, char **string); + int (*setinfo) (enum geninfo type, char **string); /* * This procedure is called by assemble() to write actual @@ -587,8 +631,9 @@ struct ofmt { * The `type' argument specifies the type of output data, and * usually the size as well: its contents are described below. */ - void (*output) (long segto, const void *data, unsigned long type, - long segment, long wrt); + void (*output) (int32_t segto, const void *data, + enum out_type type, uint64_t size, + int32_t segment, int32_t wrt); /* * This procedure is called once for every symbol defined in @@ -618,8 +663,8 @@ struct ofmt { * been an EXTERN, a COMMON or a GLOBAL. The distinction should * be obvious to the output format from the other parameters. */ - void (*symdef) (char *name, long segment, long offset, int is_global, - char *special); + void (*symdef) (char *name, int32_t segment, int64_t offset, + int is_global, char *special); /* * This procedure is called when the source code requests a @@ -636,7 +681,7 @@ struct ofmt { * the segment, by setting `*bits' to 16 or 32. Or, if it * doesn't wish to define a default, it can leave `bits' alone. */ - long (*section) (char *name, int pass, int *bits); + int32_t (*section) (char *name, int pass, int *bits); /* * This procedure is called to modify the segment base values @@ -651,7 +696,7 @@ struct ofmt { * responsible for throwing an error condition if that occurs * in pass two or in a critical expression. */ - long (*segbase) (long segment); + int32_t (*segbase) (int32_t segment); /* * This procedure is called to allow the output driver to @@ -667,7 +712,7 @@ struct ofmt { * should also return non-zero if it correctly processes the * directive. */ - int (*directive) (char *directive, char *value, int pass); + int (*directive)(enum directives directive, char *value, int pass); /* * This procedure is called before anything else - even before @@ -676,7 +721,7 @@ struct ofmt { * should return its preferred name for the output file in * `outname', if outname[0] is not '\0', and do nothing to * `outname' otherwise. Since it is called before the driver is - * properly initialised, it has to be passed its error handler + * properly initialized, it has to be passed its error handler * separately. * * This procedure may also take its own copy of the input file @@ -686,7 +731,7 @@ struct ofmt { * The parameter `outname' points to an area of storage * guaranteed to be at least FILENAME_MAX in size. */ - void (*filename) (char *inname, char *outname, efunc error); + void (*filename) (char *inname, char *outname); /* * This procedure is called after assembly finishes, to allow @@ -700,31 +745,8 @@ struct ofmt { void (*cleanup) (int debuginfo); }; -/* - * values for the `type' parameter to an output function. Each one - * must have the actual number of _bytes_ added to it. - * - * Exceptions are OUT_RELxADR, which denote an x-byte relocation - * which will be a relative jump. For this we need to know the - * distance in bytes from the start of the relocated record until - * the end of the containing instruction. _This_ is what is stored - * in the size part of the parameter, in this case. - * - * Also OUT_RESERVE denotes reservation of N bytes of BSS space, - * and the contents of the "data" parameter is irrelevant. - * - * The "data" parameter for the output function points to a "long", - * containing the address in question, unless the type is - * OUT_RAWDATA, in which case it points to an "unsigned char" - * array. - */ -#define OUT_RAWDATA 0x00000000UL -#define OUT_ADDRESS 0x10000000UL -#define OUT_REL2ADR 0x20000000UL -#define OUT_REL4ADR 0x30000000UL -#define OUT_RESERVE 0x40000000UL -#define OUT_TYPMASK 0xF0000000UL -#define OUT_SIZMASK 0x0FFFFFFFUL +extern struct ofmt *ofmt; +extern FILE *ofile; /* * ------------------------------------------------------------ @@ -734,7 +756,6 @@ struct ofmt { */ struct dfmt { - /* * This is a short (one-liner) description of the type of * output generated by the driver. @@ -746,19 +767,16 @@ struct dfmt { */ const char *shortname; - /* - * init - called initially to set up local pointer to object format, - * void pointer to implementation defined data, file pointer (which - * probably won't be used, but who knows?), and error function. + * init - called initially to set up local pointer to object format. */ - void (*init) (struct ofmt * of, void * id, FILE * fp, efunc error); + void (*init)(void); /* * linenum - called any time there is output with a change of * line number or file. */ - void (*linenum) (const char * filename, long linenumber, long segto); + void (*linenum)(const char *filename, int32_t linenumber, int32_t segto); /* * debug_deflabel - called whenever a label is defined. Parameters @@ -766,8 +784,8 @@ struct dfmt { * would be called before the output format version. */ - void (*debug_deflabel) (char * name, long segment, long offset, - int is_global, char * special); + void (*debug_deflabel)(char *name, int32_t segment, int64_t offset, + int is_global, char *special); /* * debug_directive - called whenever a DEBUG directive other than 'LINE' * is encountered. 'directive' contains the first parameter to the @@ -776,27 +794,29 @@ struct dfmt { * function with 'directive' equal to "VAR" and 'params' equal to * "_somevar:int". */ - void (*debug_directive) (const char * directive, const char * params); + void (*debug_directive)(const char *directive, const char *params); /* * typevalue - called whenever the assembler wishes to register a type * for the last defined label. This routine MUST detect if a type was * already registered and not re-register it. */ - void (*debug_typevalue) (long type); + void (*debug_typevalue)(int32_t type); /* * debug_output - called whenever output is required * 'type' is the type of info required, and this is format-specific */ - void (*debug_output) (int type, void *param); + void (*debug_output)(int type, void *param); /* * cleanup - called after processing of file is complete */ - void (*cleanup) (void); - + void (*cleanup)(void); }; + +extern const struct dfmt *dfmt; + /* * The type definition macros * for debugging @@ -814,6 +834,8 @@ struct dfmt { #define TY_FLOAT 0x28 #define TY_QWORD 0x30 #define TY_TBYTE 0x38 +#define TY_OWORD 0x40 +#define TY_YWORD 0x48 #define TY_COMMON 0xE0 #define TY_SEG 0xE8 #define TY_EXTERN 0xF0 @@ -823,21 +845,27 @@ struct dfmt { #define TYM_ELEMENTS(x) (((x) & 0xFFFFFF00) >> 8) #define TYS_ELEMENTS(x) ((x) << 8) + /* * ----- - * Other + * Special tokens * ----- */ +enum special_tokens { + SPECIAL_ENUM_START = PREFIX_ENUM_LIMIT, + S_ABS = SPECIAL_ENUM_START, + S_BYTE, S_DWORD, S_FAR, S_LONG, S_NEAR, S_NOSPLIT, + S_OWORD, S_QWORD, S_REL, S_SHORT, S_STRICT, S_TO, S_TWORD, S_WORD, S_YWORD, + SPECIAL_ENUM_LIMIT +}; + /* - * This is a useful #define which I keep meaning to use more often: - * the number of elements of a statically defined array. + * ----- + * Global modes + * ----- */ -#define elements(x) ( sizeof(x) / sizeof(*(x)) ) - -extern int tasm_compatible_mode; - /* * This declaration passes the "pass" number to all other modules * "pass0" assumes the values: 0, 0, ..., 0, 1, 2 @@ -846,7 +874,22 @@ extern int tasm_compatible_mode; * 2 = pass 2 */ -extern int pass0; /* this is globally known */ +extern int pass0; +extern int passn; /* Actual pass number */ + +#define tasm_compatible_mode false extern int optimizing; +extern int globalbits; /* 16, 32 or 64-bit mode */ +extern int globalrel; /* default to relative addressing? */ +extern int maxbits; /* max bits supported by output */ + +/* + * NASM version strings, defined in ver.c + */ +extern const char nasm_version[]; +extern const char nasm_date[]; +extern const char nasm_compile_options[]; +extern const char nasm_comment[]; +extern const char nasm_signature[]; #endif diff --git a/uppsrc/plugin/ndisasm/lib/nasmlib.c b/uppsrc/plugin/ndisasm/lib/nasmlib.c index d28b76dad..b040ef125 100644 --- a/uppsrc/plugin/ndisasm/lib/nasmlib.c +++ b/uppsrc/plugin/ndisasm/lib/nasmlib.c @@ -1,1038 +1,613 @@ -/* nasmlib.c library routines for the Netwide Assembler +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * nasmlib.c library routines for the Netwide Assembler */ -#define _CRT_SECURE_NO_DEPRECATE +#include "compiler.h" #include #include #include #include +#include "inttypes.h" #include "nasm.h" #include "nasmlib.h" -#include "insns.h" /* For MAX_KEYWORD */ +#include "insns.h" -static efunc nasm_malloc_error; +int globalbits = 0; /* defined in nasm.h, works better here for ASM+DISASM */ +static vefunc nasm_verror; /* Global error handling function */ #ifdef LOGALLOC static FILE *logfp; #endif -void nasm_set_malloc_error (efunc error) +/* Uninitialized -> all zero by C spec */ +const uint8_t zero_buffer[ZERO_BUF_SIZE]; + +/* + * Prepare a table of tolower() results. This avoids function calls + * on some platforms. + */ + +unsigned char nasm_tolower_tab[256]; + +void tolower_init(void) +{ + int i; + + for (i = 0; i < 256; i++) + nasm_tolower_tab[i] = tolower(i); +} + +void nasm_set_verror(vefunc ve) +{ + nasm_verror = ve; +} + +void nasm_error(int severity, const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + nasm_verror(severity, fmt, ap); + va_end(ap); +} + +void nasm_init_malloc_error(void) { - nasm_malloc_error = error; #ifdef LOGALLOC - logfp = fopen ("malloc.log", "w"); - setvbuf (logfp, NULL, _IOLBF, BUFSIZ); - fprintf (logfp, "null pointer is %p\n", NULL); + logfp = fopen("malloc.log", "w"); + setvbuf(logfp, NULL, _IOLBF, BUFSIZ); + fprintf(logfp, "null pointer is %p\n", NULL); #endif } #ifdef LOGALLOC -void *nasm_malloc_log (char *file, int line, size_t size) +void *nasm_malloc_log(const char *file, int line, size_t size) #else -void *nasm_malloc (size_t size) +void *nasm_malloc(size_t size) #endif { void *p = malloc(size); if (!p) - nasm_malloc_error (ERR_FATAL | ERR_NOFILE, "out of memory"); + nasm_error(ERR_FATAL | ERR_NOFILE, "out of memory"); #ifdef LOGALLOC else - fprintf(logfp, "%s %d malloc(%ld) returns %p\n", - file, line, (long)size, p); + fprintf(logfp, "%s %d malloc(%ld) returns %p\n", + file, line, (long)size, p); #endif return p; } #ifdef LOGALLOC -void *nasm_realloc_log (char *file, int line, void *q, size_t size) +void *nasm_zalloc_log(const char *file, int line, size_t size) #else -void *nasm_realloc (void *q, size_t size) +void *nasm_zalloc(size_t size) +#endif +{ + void *p = calloc(size, 1); + if (!p) + nasm_error(ERR_FATAL | ERR_NOFILE, "out of memory"); +#ifdef LOGALLOC + else + fprintf(logfp, "%s %d calloc(%ld, 1) returns %p\n", + file, line, (long)size, p); +#endif + return p; +} + +#ifdef LOGALLOC +void *nasm_realloc_log(const char *file, int line, void *q, size_t size) +#else +void *nasm_realloc(void *q, size_t size) #endif { void *p = q ? realloc(q, size) : malloc(size); if (!p) - nasm_malloc_error (ERR_FATAL | ERR_NOFILE, "out of memory"); + nasm_error(ERR_FATAL | ERR_NOFILE, "out of memory"); #ifdef LOGALLOC else if (q) - fprintf(logfp, "%s %d realloc(%p,%ld) returns %p\n", - file, line, q, (long)size, p); + fprintf(logfp, "%s %d realloc(%p,%ld) returns %p\n", + file, line, q, (long)size, p); else - fprintf(logfp, "%s %d malloc(%ld) returns %p\n", - file, line, (long)size, p); + fprintf(logfp, "%s %d malloc(%ld) returns %p\n", + file, line, (long)size, p); #endif return p; } #ifdef LOGALLOC -void nasm_free_log (char *file, int line, void *q) +void nasm_free_log(const char *file, int line, void *q) #else -void nasm_free (void *q) +void nasm_free(void *q) #endif { if (q) { - free (q); #ifdef LOGALLOC - fprintf(logfp, "%s %d free(%p)\n", - file, line, q); + fprintf(logfp, "%s %d free(%p)\n", file, line, q); #endif + free(q); } } #ifdef LOGALLOC -char *nasm_strdup_log (char *file, int line, const char *s) +char *nasm_strdup_log(const char *file, int line, const char *s) #else -char *nasm_strdup (const char *s) +char *nasm_strdup(const char *s) #endif { char *p; - int size = strlen(s)+1; + int size = strlen(s) + 1; p = malloc(size); if (!p) - nasm_malloc_error (ERR_FATAL | ERR_NOFILE, "out of memory"); + nasm_error(ERR_FATAL | ERR_NOFILE, "out of memory"); #ifdef LOGALLOC else - fprintf(logfp, "%s %d strdup(%ld) returns %p\n", - file, line, (long)size, p); + fprintf(logfp, "%s %d strdup(%ld) returns %p\n", + file, line, (long)size, p); #endif - strcpy (p, s); + strcpy(p, s); return p; } #ifdef LOGALLOC -char *nasm_strndup_log (char *file, int line, char *s, size_t len) +char *nasm_strndup_log(const char *file, int line, const char *s, size_t len) #else -char *nasm_strndup (char *s, size_t len) +char *nasm_strndup(const char *s, size_t len) #endif { char *p; - int size = len+1; + int size = len + 1; p = malloc(size); if (!p) - nasm_malloc_error (ERR_FATAL | ERR_NOFILE, "out of memory"); + nasm_error(ERR_FATAL | ERR_NOFILE, "out of memory"); #ifdef LOGALLOC else - fprintf(logfp, "%s %d strndup(%ld) returns %p\n", - file, line, (long)size, p); + fprintf(logfp, "%s %d strndup(%ld) returns %p\n", + file, line, (long)size, p); #endif - strncpy (p, s, len); + strncpy(p, s, len); p[len] = '\0'; return p; } -#if !defined(stricmp) && !defined(strcasecmp) -int nasm_stricmp (const char *s1, const char *s2) +no_return nasm_assert_failed(const char *file, int line, const char *msg) { - while (*s1 && tolower(*s1) == tolower(*s2)) - s1++, s2++; - if (!*s1 && !*s2) - return 0; - else if (tolower(*s1) < tolower(*s2)) - return -1; - else - return 1; + nasm_error(ERR_FATAL, "assertion %s failed at %s:%d", msg, file, line); + exit(1); +} + +#ifndef nasm_stricmp +int nasm_stricmp(const char *s1, const char *s2) +{ + unsigned char c1, c2; + int d; + + while (1) { + c1 = nasm_tolower(*s1++); + c2 = nasm_tolower(*s2++); + d = c1-c2; + + if (d) + return d; + if (!c1) + break; + } + return 0; } #endif -#if !defined(strnicmp) && !defined(strncasecmp) -int nasm_strnicmp (const char *s1, const char *s2, int n) +#ifndef nasm_strnicmp +int nasm_strnicmp(const char *s1, const char *s2, size_t n) { - while (n > 0 && *s1 && tolower(*s1) == tolower(*s2)) - s1++, s2++, n--; - if ((!*s1 && !*s2) || n==0) - return 0; - else if (tolower(*s1) < tolower(*s2)) - return -1; - else - return 1; + unsigned char c1, c2; + int d; + + while (n--) { + c1 = nasm_tolower(*s1++); + c2 = nasm_tolower(*s2++); + d = c1-c2; + + if (d) + return d; + if (!c1) + break; + } + return 0; } #endif -#define lib_isnumchar(c) ( isalnum(c) || (c) == '$') +int nasm_memicmp(const char *s1, const char *s2, size_t n) +{ + unsigned char c1, c2; + int d; + + while (n--) { + c1 = nasm_tolower(*s1++); + c2 = nasm_tolower(*s2++); + d = c1-c2; + if (d) + return d; + } + return 0; +} + +#ifndef nasm_strsep +char *nasm_strsep(char **stringp, const char *delim) +{ + char *s = *stringp; + char *e; + + if (!s) + return NULL; + + e = strpbrk(s, delim); + if (e) + *e++ = '\0'; + + *stringp = e; + return s; +} +#endif + + +#define lib_isnumchar(c) (nasm_isalnum(c) || (c) == '$' || (c) == '_') #define numvalue(c) ((c)>='a' ? (c)-'a'+10 : (c)>='A' ? (c)-'A'+10 : (c)-'0') -long readnum (char *str, int *error) +static int radix_letter(char c) +{ + switch (c) { + case 'b': case 'B': + case 'y': case 'Y': + return 2; /* Binary */ + case 'o': case 'O': + case 'q': case 'Q': + return 8; /* Octal */ + case 'h': case 'H': + case 'x': case 'X': + return 16; /* Hexadecimal */ + case 'd': case 'D': + case 't': case 'T': + return 10; /* Decimal */ + default: + return 0; /* Not a known radix letter */ + } +} + +int64_t readnum(char *str, bool *error) { char *r = str, *q; - long radix; - unsigned long result, checklimit; + int32_t pradix, sradix, radix; + int plen, slen, len; + uint64_t result, checklimit; int digit, last; - int warn = FALSE; + bool warn = false; int sign = 1; - *error = FALSE; + *error = false; - while (isspace(*r)) r++; /* find start of number */ + while (nasm_isspace(*r)) + r++; /* find start of number */ /* * If the number came from make_tok_num (as a result of an %assign), it * might have a '-' built into it (rather than in a preceeding token). */ - if (*r == '-') - { - r++; - sign = -1; + if (*r == '-') { + r++; + sign = -1; } q = r; - while (lib_isnumchar(*q)) q++; /* find end of number */ + while (lib_isnumchar(*q)) + q++; /* find end of number */ - /* - * If it begins 0x, 0X or $, or ends in H, it's in hex. if it - * ends in Q, it's octal. if it ends in B, it's binary. - * Otherwise, it's ordinary decimal. - */ - if (*r=='0' && (r[1]=='x' || r[1]=='X')) - radix = 16, r += 2; - else if (*r=='$') - radix = 16, r++; - else if (q[-1]=='H' || q[-1]=='h') - radix = 16 , q--; - else if (q[-1]=='Q' || q[-1]=='q' || q[-1]=='O' || q[-1]=='o') - radix = 8 , q--; - else if (q[-1]=='B' || q[-1]=='b') - radix = 2 , q--; - else - radix = 10; - - /* - * If this number has been found for us by something other than - * the ordinary scanners, then it might be malformed by having - * nothing between the prefix and the suffix. Check this case - * now. - */ - if (r >= q) { - *error = TRUE; + len = q-r; + if (!len) { + /* Not numeric */ + *error = true; return 0; } /* - * `checklimit' must be 2**32 / radix. We can't do that in - * 32-bit arithmetic, which we're (probably) using, so we - * cheat: since we know that all radices we use are even, we - * can divide 2**31 by radix/2 instead. + * Handle radix formats: + * + * 0 + * $ (hexadecimal) + * */ - checklimit = 0x80000000UL / (radix>>1); + pradix = sradix = 0; + plen = slen = 0; + + if (len > 2 && *r == '0' && (pradix = radix_letter(r[1])) != 0) + plen = 2; + else if (len > 1 && *r == '$') + pradix = 16, plen = 1; + + if (len > 1 && (sradix = radix_letter(q[-1])) != 0) + slen = 1; + + if (pradix > sradix) { + radix = pradix; + r += plen; + } else if (sradix > pradix) { + radix = sradix; + q -= slen; + } else { + /* Either decimal, or invalid -- if invalid, we'll trip up + further down. */ + radix = 10; + } /* - * Calculate the highest allowable value for the last digit - * of a 32 bit constant... in radix 10, it is 6, otherwise it is 0 + * `checklimit' must be 2**64 / radix. We can't do that in + * 64-bit arithmetic, which we're (probably) using, so we + * cheat: since we know that all radices we use are even, we + * can divide 2**63 by radix/2 instead. + */ + checklimit = UINT64_C(0x8000000000000000) / (radix >> 1); + + /* + * Calculate the highest allowable value for the last digit of a + * 64-bit constant... in radix 10, it is 6, otherwise it is 0 */ last = (radix == 10 ? 6 : 0); result = 0; while (*r && r < q) { - if (*r<'0' || (*r>'9' && *r<'A') || (digit = numvalue(*r)) >= radix) - { - *error = TRUE; - return 0; - } - if (result > checklimit || - (result == checklimit && digit >= last)) - { - warn = TRUE; - } + if (*r != '_') { + if (*r < '0' || (*r > '9' && *r < 'A') + || (digit = numvalue(*r)) >= radix) { + *error = true; + return 0; + } + if (result > checklimit || + (result == checklimit && digit >= last)) { + warn = true; + } - result = radix * result + digit; - r++; + result = radix * result + digit; + } + r++; } if (warn) - nasm_malloc_error (ERR_WARNING | ERR_PASS1 | ERR_WARN_NOV, - "numeric constant %s does not fit in 32 bits", - str); + nasm_error(ERR_WARNING | ERR_PASS1 | ERR_WARN_NOV, + "numeric constant %s does not fit in 64 bits", + str); - return result*sign; + return result * sign; } -long readstrnum (char *str, int length, int *warn) +int64_t readstrnum(char *str, int length, bool *warn) { - long charconst = 0; + int64_t charconst = 0; int i; - *warn = FALSE; + *warn = false; str += length; - for (i=0; i> 8) & 255), fp); + fwrite(&data, 1, 2, fp); } -void fwritelong (long data, FILE *fp) +void fwriteint32_t(uint32_t data, FILE * fp) { - fputc ((int) (data & 255), fp); - fputc ((int) ((data >> 8) & 255), fp); - fputc ((int) ((data >> 16) & 255), fp); - fputc ((int) ((data >> 24) & 255), fp); + fwrite(&data, 1, 4, fp); } -void standard_extension (char *inname, char *outname, char *extension, - efunc error) +void fwriteint64_t(uint64_t data, FILE * fp) +{ + fwrite(&data, 1, 8, fp); +} + +void fwriteaddr(uint64_t data, int size, FILE * fp) +{ + fwrite(&data, 1, size, fp); +} + +#else /* not WORDS_LITTLEENDIAN */ + +void fwriteint16_t(uint16_t data, FILE * fp) +{ + char buffer[2], *p = buffer; + WRITESHORT(p, data); + fwrite(buffer, 1, 2, fp); +} + +void fwriteint32_t(uint32_t data, FILE * fp) +{ + char buffer[4], *p = buffer; + WRITELONG(p, data); + fwrite(buffer, 1, 4, fp); +} + +void fwriteint64_t(uint64_t data, FILE * fp) +{ + char buffer[8], *p = buffer; + WRITEDLONG(p, data); + fwrite(buffer, 1, 8, fp); +} + +void fwriteaddr(uint64_t data, int size, FILE * fp) +{ + char buffer[8], *p = buffer; + WRITEADDR(p, data, size); + fwrite(buffer, 1, size, fp); +} + +#endif + +size_t fwritezero(size_t bytes, FILE *fp) +{ + size_t count = 0; + size_t blksize; + size_t rv; + + while (bytes) { + blksize = (bytes < ZERO_BUF_SIZE) ? bytes : ZERO_BUF_SIZE; + + rv = fwrite(zero_buffer, 1, blksize, fp); + if (!rv) + break; + + count += rv; + bytes -= rv; + } + + return count; +} + +void standard_extension(char *inname, char *outname, char *extension) { char *p, *q; - if (*outname) /* file name already exists, */ - return; /* so do nothing */ + if (*outname) /* file name already exists, */ + return; /* so do nothing */ q = inname; p = outname; - while (*q) *p++ = *q++; /* copy, and find end of string */ - *p = '\0'; /* terminate it */ - while (p > outname && *--p != '.');/* find final period (or whatever) */ - if (*p != '.') while (*p) p++; /* go back to end if none found */ - if (!strcmp(p, extension)) { /* is the extension already there? */ - if (*extension) - error(ERR_WARNING | ERR_NOFILE, - "file name already ends in `%s': " - "output will be in `nasm.out'", - extension); - else - error(ERR_WARNING | ERR_NOFILE, - "file name already has no extension: " - "output will be in `nasm.out'"); - strcpy(outname, "nasm.out"); + while (*q) + *p++ = *q++; /* copy, and find end of string */ + *p = '\0'; /* terminate it */ + while (p > outname && *--p != '.') ; /* find final period (or whatever) */ + if (*p != '.') + while (*p) + p++; /* go back to end if none found */ + if (!strcmp(p, extension)) { /* is the extension already there? */ + if (*extension) + nasm_error(ERR_WARNING | ERR_NOFILE, + "file name already ends in `%s': " + "output will be in `nasm.out'", extension); + else + nasm_error(ERR_WARNING | ERR_NOFILE, + "file name already has no extension: " + "output will be in `nasm.out'"); + strcpy(outname, "nasm.out"); } else - strcpy(p, extension); -} - -#define LEAFSIZ (sizeof(RAA)-sizeof(RAA_UNION)+sizeof(RAA_LEAF)) -#define BRANCHSIZ (sizeof(RAA)-sizeof(RAA_UNION)+sizeof(RAA_BRANCH)) - -#define LAYERSIZ(r) ( (r)->layers==0 ? RAA_BLKSIZE : RAA_LAYERSIZE ) - -static struct RAA *real_raa_init (int layers) -{ - struct RAA *r; - int i; - - if (layers == 0) { - r = nasm_malloc (LEAFSIZ); - r->layers = 0; - memset (r->u.l.data, 0, sizeof(r->u.l.data)); - r->stepsize = 1L; - } else { - r = nasm_malloc (BRANCHSIZ); - r->layers = layers; - for ( i = 0 ; i < RAA_LAYERSIZE ; i++ ) - r->u.b.data[i] = NULL; - r->stepsize = RAA_BLKSIZE; - while (--layers) - r->stepsize *= RAA_LAYERSIZE; - } - return r; -} - -struct RAA *raa_init (void) -{ - return real_raa_init (0); -} - -void raa_free (struct RAA *r) -{ - if (r->layers == 0) - nasm_free (r); - else { - struct RAA **p; - for (p = r->u.b.data; p - r->u.b.data < RAA_LAYERSIZE; p++) - if (*p) - raa_free (*p); - } -} - -long raa_read (struct RAA *r, long posn) -{ - if (posn >= r->stepsize * LAYERSIZ(r)) - return 0; /* Return 0 for undefined entries */ - while (r->layers > 0) { - ldiv_t l; - l = ldiv (posn, r->stepsize); - r = r->u.b.data[l.quot]; - posn = l.rem; - if (!r) - return 0; /* Return 0 for undefined entries */ - } - return r->u.l.data[posn]; -} - -struct RAA *raa_write (struct RAA *r, long posn, long value) -{ - struct RAA *result; - - if (posn < 0) - nasm_malloc_error (ERR_PANIC, "negative position in raa_write"); - - while (r->stepsize * LAYERSIZ(r) <= posn) { - /* - * Must add a layer. - */ - struct RAA *s; - int i; - - s = nasm_malloc (BRANCHSIZ); - for ( i = 0 ; i < RAA_LAYERSIZE ; i++ ) - s->u.b.data[i] = NULL; - s->layers = r->layers + 1; - s->stepsize = LAYERSIZ(r) * r->stepsize; - s->u.b.data[0] = r; - r = s; - } - - result = r; - - while (r->layers > 0) { - ldiv_t l; - struct RAA **s; - l = ldiv (posn, r->stepsize); - s = &r->u.b.data[l.quot]; - if (!*s) - *s = real_raa_init (r->layers - 1); - r = *s; - posn = l.rem; - } - - r->u.l.data[posn] = value; - - return result; -} - -#define SAA_MAXLEN 8192 - -struct SAA *saa_init (long elem_len) -{ - struct SAA *s; - - if (elem_len > SAA_MAXLEN) - nasm_malloc_error (ERR_PANIC | ERR_NOFILE, "SAA with huge elements"); - - s = nasm_malloc (sizeof(struct SAA)); - s->posn = s->start = 0L; - s->elem_len = elem_len; - s->length = SAA_MAXLEN - (SAA_MAXLEN % elem_len); - s->data = nasm_malloc (s->length); - s->next = NULL; - s->end = s; - - return s; -} - -void saa_free (struct SAA *s) -{ - struct SAA *t; - - while (s) { - t = s->next; - nasm_free (s->data); - nasm_free (s); - s = t; - } -} - -void *saa_wstruct (struct SAA *s) -{ - void *p; - - if (s->end->length - s->end->posn < s->elem_len) { - s->end->next = nasm_malloc (sizeof(struct SAA)); - s->end->next->start = s->end->start + s->end->posn; - s->end = s->end->next; - s->end->length = s->length; - s->end->next = NULL; - s->end->posn = 0L; - s->end->data = nasm_malloc (s->length); - } - - p = s->end->data + s->end->posn; - s->end->posn += s->elem_len; - return p; -} - -void saa_wbytes (struct SAA *s, const void *data, long len) -{ - const char *d = data; - - while (len > 0) { - long l = s->end->length - s->end->posn; - if (l > len) - l = len; - if (l > 0) { - if (d) { - memcpy (s->end->data + s->end->posn, d, l); - d += l; - } else - memset (s->end->data + s->end->posn, 0, l); - s->end->posn += l; - len -= l; - } - if (len > 0) { - s->end->next = nasm_malloc (sizeof(struct SAA)); - s->end->next->start = s->end->start + s->end->posn; - s->end = s->end->next; - s->end->length = s->length; - s->end->next = NULL; - s->end->posn = 0L; - s->end->data = nasm_malloc (s->length); - } - } -} - -void saa_rewind (struct SAA *s) -{ - s->rptr = s; - s->rpos = 0L; -} - -void *saa_rstruct (struct SAA *s) -{ - void *p; - - if (!s->rptr) - return NULL; - - if (s->rptr->posn - s->rpos < s->elem_len) { - s->rptr = s->rptr->next; - if (!s->rptr) - return NULL; /* end of array */ - s->rpos = 0L; - } - - p = s->rptr->data + s->rpos; - s->rpos += s->elem_len; - return p; -} - -void *saa_rbytes (struct SAA *s, long *len) -{ - void *p; - - if (!s->rptr) - return NULL; - - p = s->rptr->data + s->rpos; - *len = s->rptr->posn - s->rpos; - s->rptr = s->rptr->next; - s->rpos = 0L; - return p; -} - -void saa_rnbytes (struct SAA *s, void *data, long len) -{ - char *d = data; - - while (len > 0) { - long l; - - if (!s->rptr) - return; - - l = s->rptr->posn - s->rpos; - if (l > len) - l = len; - if (l > 0) { - memcpy (d, s->rptr->data + s->rpos, l); - d += l; - s->rpos += l; - len -= l; - } - if (len > 0) { - s->rptr = s->rptr->next; - s->rpos = 0L; - } - } -} - -void saa_fread (struct SAA *s, long posn, void *data, long len) -{ - struct SAA *p; - long pos; - char *cdata = data; - - if (!s->rptr || posn < s->rptr->start) - saa_rewind (s); - p = s->rptr; - while (posn >= p->start + p->posn) { - p = p->next; - if (!p) - return; /* what else can we do?! */ - } - - pos = posn - p->start; - while (len) { - long l = p->posn - pos; - if (l > len) - l = len; - memcpy (cdata, p->data+pos, l); - len -= l; - cdata += l; - p = p->next; - if (!p) - return; - pos = 0L; - } - s->rptr = p; -} - -void saa_fwrite (struct SAA *s, long posn, void *data, long len) -{ - struct SAA *p; - long pos; - char *cdata = data; - - if (!s->rptr || posn < s->rptr->start) - saa_rewind (s); - p = s->rptr; - while (posn >= p->start + p->posn) { - p = p->next; - if (!p) - return; /* what else can we do?! */ - } - - pos = posn - p->start; - while (len) { - long l = p->posn - pos; - if (l > len) - l = len; - memcpy (p->data+pos, cdata, l); - len -= l; - cdata += l; - p = p->next; - if (!p) - return; - pos = 0L; - } - s->rptr = p; -} - -void saa_fpwrite (struct SAA *s, FILE *fp) -{ - char *data; - long len; - - saa_rewind (s); - while ( (data = saa_rbytes (s, &len)) ) - fwrite (data, 1, len, fp); + strcpy(p, extension); } /* - * Register, instruction, condition-code and prefix keywords used - * by the scanner. + * Common list of prefix names */ -#include "names.c" -static const char *special_names[] = { - "byte", "dword", "far", "long", "near", "nosplit", "qword", - "short", "strict", "to", "tword", "word" -}; static const char *prefix_names[] = { - "a16", "a32", "lock", "o16", "o32", "rep", "repe", "repne", - "repnz", "repz", "times" + "a16", "a32", "a64", "asp", "lock", "o16", "o32", "o64", "osp", + "rep", "repe", "repne", "repnz", "repz", "times", "wait" }; - -/* - * Standard scanner routine used by parser.c and some output - * formats. It keeps a succession of temporary-storage strings in - * stdscan_tempstorage, which can be cleared using stdscan_reset. - */ -static char **stdscan_tempstorage = NULL; -static int stdscan_tempsize = 0, stdscan_templen = 0; -#define STDSCAN_TEMP_DELTA 256 - -static void stdscan_pop(void) +const char *prefix_name(int token) { - nasm_free (stdscan_tempstorage[--stdscan_templen]); -} + unsigned int prefix = token-PREFIX_ENUM_START; + if (prefix > elements(prefix_names)) + return NULL; -void stdscan_reset(void) -{ - while (stdscan_templen > 0) - stdscan_pop(); -} - -/* - * Unimportant cleanup is done to avoid confusing people who are trying - * to debug real memory leaks - */ -void nasmlib_cleanup (void) -{ - stdscan_reset(); - nasm_free (stdscan_tempstorage); -} - -static char *stdscan_copy(char *p, int len) -{ - char *text; - - text = nasm_malloc(len+1); - strncpy (text, p, len); - text[len] = '\0'; - - if (stdscan_templen >= stdscan_tempsize) { - stdscan_tempsize += STDSCAN_TEMP_DELTA; - stdscan_tempstorage = nasm_realloc(stdscan_tempstorage, - stdscan_tempsize*sizeof(char *)); - } - stdscan_tempstorage[stdscan_templen++] = text; - - return text; -} - -char *stdscan_bufptr = NULL; -int stdscan (void *private_data, struct tokenval *tv) -{ - char ourcopy[MAX_KEYWORD+1], *r, *s; - - (void) private_data; /* Don't warn that this parameter is unused */ - - while (isspace(*stdscan_bufptr)) stdscan_bufptr++; - if (!*stdscan_bufptr) - return tv->t_type = 0; - - /* we have a token; either an id, a number or a char */ - if (isidstart(*stdscan_bufptr) || - (*stdscan_bufptr == '$' && isidstart(stdscan_bufptr[1]))) { - /* now we've got an identifier */ - int i; - int is_sym = FALSE; - - if (*stdscan_bufptr == '$') { - is_sym = TRUE; - stdscan_bufptr++; - } - - r = stdscan_bufptr++; - /* read the entire buffer to advance the buffer pointer but... */ - while (isidchar(*stdscan_bufptr)) stdscan_bufptr++; - - /* ... copy only up to IDLEN_MAX-1 characters */ - tv->t_charptr = stdscan_copy(r, stdscan_bufptr - r < IDLEN_MAX ? - stdscan_bufptr - r : IDLEN_MAX - 1); - - if (is_sym || stdscan_bufptr-r > MAX_KEYWORD) - return tv->t_type = TOKEN_ID;/* bypass all other checks */ - - for (s=tv->t_charptr, r=ourcopy; *s; s++) - *r++ = tolower (*s); - *r = '\0'; - /* right, so we have an identifier sitting in temp storage. now, - * is it actually a register or instruction name, or what? */ - if ((tv->t_integer=bsi(ourcopy, reg_names, - elements(reg_names)))>=0) { - tv->t_integer += EXPR_REG_START; - return tv->t_type = TOKEN_REG; - } else if ((tv->t_integer=bsi(ourcopy, insn_names, - elements(insn_names)))>=0) { - return tv->t_type = TOKEN_INSN; - } - for (i=0; it_integer = ico[i]; - if ((tv->t_inttwo=bsi(p, conditions, - elements(conditions)))>=0) - return tv->t_type = TOKEN_INSN; - } - if ((tv->t_integer=bsi(ourcopy, prefix_names, - elements(prefix_names)))>=0) { - tv->t_integer += PREFIX_ENUM_START; - return tv->t_type = TOKEN_PREFIX; - } - if ((tv->t_integer=bsi(ourcopy, special_names, - elements(special_names)))>=0) - return tv->t_type = TOKEN_SPECIAL; - if (!nasm_stricmp(ourcopy, "seg")) - return tv->t_type = TOKEN_SEG; - if (!nasm_stricmp(ourcopy, "wrt")) - return tv->t_type = TOKEN_WRT; - return tv->t_type = TOKEN_ID; - } else if (*stdscan_bufptr == '$' && !isnumchar(stdscan_bufptr[1])) { - /* - * It's a $ sign with no following hex number; this must - * mean it's a Here token ($), evaluating to the current - * assembly location, or a Base token ($$), evaluating to - * the base of the current segment. - */ - stdscan_bufptr++; - if (*stdscan_bufptr == '$') { - stdscan_bufptr++; - return tv->t_type = TOKEN_BASE; - } - return tv->t_type = TOKEN_HERE; - } else if (isnumstart(*stdscan_bufptr)) { /* now we've got a number */ - int rn_error; - - r = stdscan_bufptr++; - while (isnumchar(*stdscan_bufptr)) - stdscan_bufptr++; - - if (*stdscan_bufptr == '.') { - /* - * a floating point constant - */ - stdscan_bufptr++; - while (isnumchar(*stdscan_bufptr) || - ((stdscan_bufptr[-1] == 'e' || stdscan_bufptr[-1] == 'E') - && (*stdscan_bufptr == '-' || *stdscan_bufptr == '+')) ) - { - stdscan_bufptr++; - } - tv->t_charptr = stdscan_copy(r, stdscan_bufptr - r); - return tv->t_type = TOKEN_FLOAT; - } - r = stdscan_copy(r, stdscan_bufptr - r); - tv->t_integer = readnum(r, &rn_error); - stdscan_pop(); - if (rn_error) - return tv->t_type = TOKEN_ERRNUM;/* some malformation occurred */ - tv->t_charptr = NULL; - return tv->t_type = TOKEN_NUM; - } else if (*stdscan_bufptr == '\'' || - *stdscan_bufptr == '"') {/* a char constant */ - char quote = *stdscan_bufptr++, *r; - int rn_warn; - r = tv->t_charptr = stdscan_bufptr; - while (*stdscan_bufptr && *stdscan_bufptr != quote) stdscan_bufptr++; - tv->t_inttwo = stdscan_bufptr - r; /* store full version */ - if (!*stdscan_bufptr) - return tv->t_type = TOKEN_ERRNUM; /* unmatched quotes */ - stdscan_bufptr++; /* skip over final quote */ - tv->t_integer = readstrnum(r, tv->t_inttwo, &rn_warn); - /* FIXME: rn_warn is not checked! */ - return tv->t_type = TOKEN_NUM; - } else if (*stdscan_bufptr == ';') { /* a comment has happened - stay */ - return tv->t_type = 0; - } else if (stdscan_bufptr[0] == '>' && stdscan_bufptr[1] == '>') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_SHR; - } else if (stdscan_bufptr[0] == '<' && stdscan_bufptr[1] == '<') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_SHL; - } else if (stdscan_bufptr[0] == '/' && stdscan_bufptr[1] == '/') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_SDIV; - } else if (stdscan_bufptr[0] == '%' && stdscan_bufptr[1] == '%') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_SMOD; - } else if (stdscan_bufptr[0] == '=' && stdscan_bufptr[1] == '=') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_EQ; - } else if (stdscan_bufptr[0] == '<' && stdscan_bufptr[1] == '>') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_NE; - } else if (stdscan_bufptr[0] == '!' && stdscan_bufptr[1] == '=') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_NE; - } else if (stdscan_bufptr[0] == '<' && stdscan_bufptr[1] == '=') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_LE; - } else if (stdscan_bufptr[0] == '>' && stdscan_bufptr[1] == '=') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_GE; - } else if (stdscan_bufptr[0] == '&' && stdscan_bufptr[1] == '&') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_DBL_AND; - } else if (stdscan_bufptr[0] == '^' && stdscan_bufptr[1] == '^') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_DBL_XOR; - } else if (stdscan_bufptr[0] == '|' && stdscan_bufptr[1] == '|') { - stdscan_bufptr += 2; - return tv->t_type = TOKEN_DBL_OR; - } else /* just an ordinary char */ - return tv->t_type = (unsigned char) (*stdscan_bufptr++); -} - -/* - * Return TRUE if the argument is a simple scalar. (Or a far- - * absolute, which counts.) - */ -int is_simple (expr *vect) -{ - while (vect->type && !vect->value) - vect++; - if (!vect->type) - return 1; - if (vect->type != EXPR_SIMPLE) - return 0; - do { - vect++; - } while (vect->type && !vect->value); - if (vect->type && vect->type < EXPR_SEGBASE+SEG_ABS) return 0; - return 1; -} - -/* - * Return TRUE if the argument is a simple scalar, _NOT_ a far- - * absolute. - */ -int is_really_simple (expr *vect) -{ - while (vect->type && !vect->value) - vect++; - if (!vect->type) - return 1; - if (vect->type != EXPR_SIMPLE) - return 0; - do { - vect++; - } while (vect->type && !vect->value); - if (vect->type) return 0; - return 1; -} - -/* - * Return TRUE if the argument is relocatable (i.e. a simple - * scalar, plus at most one segment-base, plus possibly a WRT). - */ -int is_reloc (expr *vect) -{ - while (vect->type && !vect->value) /* skip initial value-0 terms */ - vect++; - if (!vect->type) /* trivially return TRUE if nothing */ - return 1; /* is present apart from value-0s */ - if (vect->type < EXPR_SIMPLE) /* FALSE if a register is present */ - return 0; - if (vect->type == EXPR_SIMPLE) { /* skip over a pure number term... */ - do { - vect++; - } while (vect->type && !vect->value); - if (!vect->type) /* ...returning TRUE if that's all */ - return 1; - } - if (vect->type == EXPR_WRT) { /* skip over a WRT term... */ - do { - vect++; - } while (vect->type && !vect->value); - if (!vect->type) /* ...returning TRUE if that's all */ - return 1; - } - if (vect->value != 0 && vect->value != 1) - return 0; /* segment base multiplier non-unity */ - do { /* skip over _one_ seg-base term... */ - vect++; - } while (vect->type && !vect->value); - if (!vect->type) /* ...returning TRUE if that's all */ - return 1; - return 0; /* And return FALSE if there's more */ -} - -/* - * Return TRUE if the argument contains an `unknown' part. - */ -int is_unknown(expr *vect) -{ - while (vect->type && vect->type < EXPR_UNKNOWN) - vect++; - return (vect->type == EXPR_UNKNOWN); -} - -/* - * Return TRUE if the argument contains nothing but an `unknown' - * part. - */ -int is_just_unknown(expr *vect) -{ - while (vect->type && !vect->value) - vect++; - return (vect->type == EXPR_UNKNOWN); -} - -/* - * Return the scalar part of a relocatable vector. (Including - * simple scalar vectors - those qualify as relocatable.) - */ -long reloc_value (expr *vect) -{ - while (vect->type && !vect->value) - vect++; - if (!vect->type) return 0; - if (vect->type == EXPR_SIMPLE) - return vect->value; - else - return 0; -} - -/* - * Return the segment number of a relocatable vector, or NO_SEG for - * simple scalars. - */ -long reloc_seg (expr *vect) -{ - while (vect->type && (vect->type == EXPR_WRT || !vect->value)) - vect++; - if (vect->type == EXPR_SIMPLE) { - do { - vect++; - } while (vect->type && (vect->type == EXPR_WRT || !vect->value)); - } - if (!vect->type) - return NO_SEG; - else - return vect->type - EXPR_SEGBASE; -} - -/* - * Return the WRT segment number of a relocatable vector, or NO_SEG - * if no WRT part is present. - */ -long reloc_wrt (expr *vect) -{ - while (vect->type && vect->type < EXPR_WRT) - vect++; - if (vect->type == EXPR_WRT) { - return vect->value; - } else - return NO_SEG; + return prefix_names[prefix]; } /* * Binary search. */ -int bsi (char *string, const char **array, int size) +int bsi(const char *string, const char **array, int size) { - int i = -1, j = size; /* always, i < index < j */ - while (j-i >= 2) { - int k = (i+j)/2; - int l = strcmp(string, array[k]); - if (l<0) /* it's in the first half */ - j = k; - else if (l>0) /* it's in the second half */ - i = k; - else /* we've got it :) */ - return k; + int i = -1, j = size; /* always, i < index < j */ + while (j - i >= 2) { + int k = (i + j) / 2; + int l = strcmp(string, array[k]); + if (l < 0) /* it's in the first half */ + j = k; + else if (l > 0) /* it's in the second half */ + i = k; + else /* we've got it :) */ + return k; } - return -1; /* we haven't got it :( */ + return -1; /* we haven't got it :( */ +} + +int bsii(const char *string, const char **array, int size) +{ + int i = -1, j = size; /* always, i < index < j */ + while (j - i >= 2) { + int k = (i + j) / 2; + int l = nasm_stricmp(string, array[k]); + if (l < 0) /* it's in the first half */ + j = k; + else if (l > 0) /* it's in the second half */ + i = k; + else /* we've got it :) */ + return k; + } + return -1; /* we haven't got it :( */ } static char *file_name = NULL; -static long line_number = 0; +static int32_t line_number = 0; char *src_set_fname(char *newname) { @@ -1041,82 +616,114 @@ char *src_set_fname(char *newname) return oldname; } -long src_set_linnum(long newline) +int32_t src_set_linnum(int32_t newline) { - long oldline = line_number; + int32_t oldline = line_number; line_number = newline; return oldline; } -long src_get_linnum(void) +int32_t src_get_linnum(void) { return line_number; } -int src_get(long *xline, char **xname) +int src_get(int32_t *xline, char **xname) { - if (!file_name || !*xname || strcmp(*xname, file_name)) - { - nasm_free(*xname); - *xname = file_name ? nasm_strdup(file_name) : NULL; - *xline = line_number; - return -2; + if (!file_name || !*xname || strcmp(*xname, file_name)) { + nasm_free(*xname); + *xname = file_name ? nasm_strdup(file_name) : NULL; + *xline = line_number; + return -2; } - if (*xline != line_number) - { - long tmp = line_number - *xline; - *xline = line_number; - return tmp; + if (*xline != line_number) { + int32_t tmp = line_number - *xline; + *xline = line_number; + return tmp; } return 0; } -void nasm_quote(char **str) -{ - int ln=strlen(*str); - char q=(*str)[0]; - char *p; - if (ln>1 && (*str)[ln-1]==q && (q=='"' || q=='\'')) - return; - q = '"'; - if (strchr(*str,q)) - q = '\''; - p = nasm_malloc(ln+3); - strcpy(p+1, *str); - nasm_free(*str); - p[ln+1] = p[0] = q; - p[ln+2] = 0; - *str = p; -} - -char *nasm_strcat(char *one, char *two) +char *nasm_strcat(const char *one, const char *two) { char *rslt; - int l1=strlen(one); - rslt = nasm_malloc(l1+strlen(two)+1); + int l1 = strlen(one); + rslt = nasm_malloc(l1 + strlen(two) + 1); strcpy(rslt, one); - strcpy(rslt+l1, two); + strcpy(rslt + l1, two); return rslt; } -void null_debug_init(struct ofmt *of, void *id, FILE *fp, efunc error ) {} -void null_debug_linenum(const char *filename, long linenumber, long segto) {} -void null_debug_deflabel(char *name, long segment, long offset, int is_global, char *special) {} -void null_debug_routine(const char *directive, const char *params) {} -void null_debug_typevalue(long type) {} -void null_debug_output(int type, void *param) {} -void null_debug_cleanup(void){} +/* skip leading spaces */ +char *nasm_skip_spaces(const char *p) +{ + if (p) + while (*p && nasm_isspace(*p)) + p++; + return (char *)p; +} -struct dfmt null_debug_form = { - "Null debug format", - "null", - null_debug_init, - null_debug_linenum, - null_debug_deflabel, - null_debug_routine, - null_debug_typevalue, - null_debug_output, - null_debug_cleanup -}; +/* skip leading non-spaces */ +char *nasm_skip_word(const char *p) +{ + if (p) + while (*p && !nasm_isspace(*p)) + p++; + return (char *)p; +} -struct dfmt *null_debug_arr[2] = { &null_debug_form, NULL }; +/* zap leading spaces with zero */ +char *nasm_zap_spaces_fwd(char *p) +{ + if (p) + while (*p && nasm_isspace(*p)) + *p++ = 0x0; + return p; +} + +/* zap spaces with zero in reverse order */ +char *nasm_zap_spaces_rev(char *p) +{ + if (p) + while (*p && nasm_isspace(*p)) + *p-- = 0x0; + return p; +} + +/* + * initialized data bytes length from opcode + */ +int idata_bytes(int opcode) +{ + int ret; + switch (opcode) { + case I_DB: + ret = 1; + break; + case I_DW: + ret = 2; + break; + case I_DD: + ret = 4; + break; + case I_DQ: + ret = 8; + break; + case I_DT: + ret = 10; + break; + case I_DO: + ret = 16; + break; + case I_DY: + ret = 32; + break; + case I_none: + ret = -1; + break; + default: + ret = 0; + break; + } + return ret; +} diff --git a/uppsrc/plugin/ndisasm/lib/nasmlib.h b/uppsrc/plugin/ndisasm/lib/nasmlib.h index 4e4eda3f7..841f033e4 100644 --- a/uppsrc/plugin/ndisasm/lib/nasmlib.h +++ b/uppsrc/plugin/ndisasm/lib/nasmlib.h @@ -1,14 +1,68 @@ -/* nasmlib.h header file for nasmlib.c +/* ----------------------------------------------------------------------- * * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * nasmlib.h header file for nasmlib.c */ #ifndef NASM_NASMLIB_H #define NASM_NASMLIB_H +#include "compiler.h" +#include "inttypes.h" +#include +#include +#ifdef HAVE_STRINGS_H +#include +#endif + +/* + * tolower table -- avoids a function call on some platforms. + * NOTE: unlike the tolower() function in ctype, EOF is *NOT* + * a permitted value, for obvious reasons. + */ +void tolower_init(void); +extern unsigned char nasm_tolower_tab[256]; +#define nasm_tolower(x) nasm_tolower_tab[(unsigned char)(x)] + +/* Wrappers around functions */ +/* These are only valid for values that cannot include EOF */ +#define nasm_isspace(x) isspace((unsigned char)(x)) +#define nasm_isalpha(x) isalpha((unsigned char)(x)) +#define nasm_isdigit(x) isdigit((unsigned char)(x)) +#define nasm_isalnum(x) isalnum((unsigned char)(x)) +#define nasm_isxdigit(x) isxdigit((unsigned char)(x)) + /* * If this is defined, the wrappers around malloc et al will * transform into logging variants, which will cause NASM to create @@ -18,6 +72,65 @@ */ /* #define LOGALLOC */ +/* + * ------------------------- + * Error reporting functions + * ------------------------- + */ + +/* + * An error reporting function should look like this. + */ +typedef void (*efunc) (int severity, const char *fmt, ...); +typedef void (*vefunc) (int severity, const char *fmt, va_list ap); +#ifdef __GNUC__ +void nasm_error(int severity, const char *fmt, ...) __attribute__((format(printf, 2, 3))); +#else +void nasm_error(int severity, const char *fmt, ...); +#endif +void nasm_set_verror(vefunc); + +/* + * These are the error severity codes which get passed as the first + * argument to an efunc. + */ + +#define ERR_DEBUG 0x00000008 /* put out debugging message */ +#define ERR_WARNING 0x00000000 /* warn only: no further action */ +#define ERR_NONFATAL 0x00000001 /* terminate assembly after phase */ +#define ERR_FATAL 0x00000002 /* instantly fatal: exit with error */ +#define ERR_PANIC 0x00000003 /* internal error: panic instantly + * and dump core for reference */ +#define ERR_MASK 0x0000000F /* mask off the above codes */ +#define ERR_NOFILE 0x00000010 /* don't give source file name/line */ +#define ERR_USAGE 0x00000020 /* print a usage message */ +#define ERR_PASS1 0x00000040 /* only print this error on pass one */ +#define ERR_PASS2 0x00000080 +#define ERR_NO_SEVERITY 0x00000100 /* suppress printing severity */ + +/* + * These codes define specific types of suppressible warning. + */ + +#define ERR_WARN_MASK 0xFFFFF000 /* the mask for this feature */ +#define ERR_WARN_SHR 12 /* how far to shift right */ + +#define WARN(x) ((x) << ERR_WARN_SHR) + +#define ERR_WARN_MNP WARN( 1) /* macro-num-parameters warning */ +#define ERR_WARN_MSR WARN( 2) /* macro self-reference */ +#define ERR_WARN_MDP WARN( 3) /* macro default parameters check */ +#define ERR_WARN_OL WARN( 4) /* orphan label (no colon, and + * alone on line) */ +#define ERR_WARN_NOV WARN( 5) /* numeric overflow */ +#define ERR_WARN_GNUELF WARN( 6) /* using GNU ELF extensions */ +#define ERR_WARN_FL_OVERFLOW WARN( 7) /* FP overflow */ +#define ERR_WARN_FL_DENORM WARN( 8) /* FP denormal */ +#define ERR_WARN_FL_UNDERFLOW WARN( 9) /* FP underflow */ +#define ERR_WARN_FL_TOOLONG WARN(10) /* FP too many digits */ +#define ERR_WARN_USER WARN(11) /* %warning directives */ +#define ERR_WARN_MAX 11 /* the highest numbered one */ + /* * Wrappers around malloc, realloc and free. nasm_malloc will * fatal-error and die rather than return NULL; nasm_realloc will @@ -25,81 +138,127 @@ * passed a NULL pointer; nasm_free will do nothing if it is passed * a NULL pointer. */ -#ifdef NASM_NASM_H /* need efunc defined for this */ -void nasm_set_malloc_error (efunc); +void nasm_init_malloc_error(void); #ifndef LOGALLOC -void *nasm_malloc (size_t); -void *nasm_realloc (void *, size_t); -void nasm_free (void *); -char *nasm_strdup (const char *); -char *nasm_strndup (char *, size_t); +void *nasm_malloc(size_t); +void *nasm_zalloc(size_t); +void *nasm_realloc(void *, size_t); +void nasm_free(void *); +char *nasm_strdup(const char *); +char *nasm_strndup(const char *, size_t); #else -void *nasm_malloc_log (char *, int, size_t); -void *nasm_realloc_log (char *, int, void *, size_t); -void nasm_free_log (char *, int, void *); -char *nasm_strdup_log (char *, int, const char *); -char *nasm_strndup_log (char *, int, char *, size_t); +void *nasm_malloc_log(const char *, int, size_t); +void *nasm_zalloc_log(const char *, int, size_t); +void *nasm_realloc_log(const char *, int, void *, size_t); +void nasm_free_log(const char *, int, void *); +char *nasm_strdup_log(const char *, int, const char *); +char *nasm_strndup_log(const char *, int, const char *, size_t); #define nasm_malloc(x) nasm_malloc_log(__FILE__,__LINE__,x) +#define nasm_zalloc(x) nasm_zalloc_log(__FILE__,__LINE__,x) #define nasm_realloc(x,y) nasm_realloc_log(__FILE__,__LINE__,x,y) #define nasm_free(x) nasm_free_log(__FILE__,__LINE__,x) #define nasm_strdup(x) nasm_strdup_log(__FILE__,__LINE__,x) #define nasm_strndup(x,y) nasm_strndup_log(__FILE__,__LINE__,x,y) #endif -#endif + +/* + * NASM assert failure + */ +no_return nasm_assert_failed(const char *, int, const char *); +#define nasm_assert(x) \ + do { \ + if (unlikely(!(x))) \ + nasm_assert_failed(__FILE__,__LINE__,#x); \ + } while (0) + +/* + * NASM failure at build time if x != 0 + */ +#define nasm_build_assert(x) (void)(sizeof(char[1-2*!!(x)])) /* * ANSI doesn't guarantee the presence of `stricmp' or * `strcasecmp'. */ -#if defined(stricmp) || defined(strcasecmp) -#if defined(stricmp) +#if defined(HAVE_STRCASECMP) +#define nasm_stricmp strcasecmp +#elif defined(HAVE_STRICMP) #define nasm_stricmp stricmp #else -#define nasm_stricmp strcasecmp -#endif -#else -int nasm_stricmp (const char *, const char *); +int nasm_stricmp(const char *, const char *); #endif -#if defined(strnicmp) || defined(strncasecmp) -#if defined(strnicmp) +#if defined(HAVE_STRNCASECMP) +#define nasm_strnicmp strncasecmp +#elif defined(HAVE_STRNICMP) #define nasm_strnicmp strnicmp #else -#define nasm_strnicmp strncasecmp +int nasm_strnicmp(const char *, const char *, size_t); #endif + +int nasm_memicmp(const char *, const char *, size_t); + +#if defined(HAVE_STRSEP) +#define nasm_strsep strsep #else -int nasm_strnicmp (const char *, const char *, int); +char *nasm_strsep(char **stringp, const char *delim); #endif + /* * Convert a string into a number, using NASM number rules. Sets - * `*error' to TRUE if an error occurs, and FALSE otherwise. + * `*error' to true if an error occurs, and false otherwise. */ -long readnum(char *str, int *error); +int64_t readnum(char *str, bool *error); /* * Convert a character constant into a number. Sets - * `*warn' to TRUE if an overflow occurs, and FALSE otherwise. + * `*warn' to true if an overflow occurs, and false otherwise. * str points to and length covers the middle of the string, * without the quotes. */ -long readstrnum(char *str, int length, int *warn); +int64_t readstrnum(char *str, int length, bool *warn); /* * seg_init: Initialise the segment-number allocator. * seg_alloc: allocate a hitherto unused segment number. */ void seg_init(void); -long seg_alloc(void); +int32_t seg_alloc(void); /* * many output formats will be able to make use of this: a standard * function to add an extension to the name of the input file */ -#ifdef NASM_NASM_H -void standard_extension (char *inname, char *outname, char *extension, - efunc error); -#endif +void standard_extension(char *inname, char *outname, char *extension); + +/* + * Utility macros... + * + * This is a useful #define which I keep meaning to use more often: + * the number of elements of a statically defined array. + */ + +#define elements(x) ( sizeof(x) / sizeof(*(x)) ) + +/* + * List handling + * + * list_for_each - regular iterator over list + * list_for_each_safe - the same but safe against list items removal + */ +#define list_for_each(pos, head) \ + for (pos = head; pos; pos = pos->next) +#define list_for_each_safe(pos, n, head) \ + for (pos = head, n = (pos ? pos->next : NULL); pos; \ + pos = n, n = (n ? n->next : NULL)) + +/* + * Power of 2 align helpers + */ +#define ALIGN_MASK(v, mask) (((v) + (mask)) & ~(mask)) +#define ALIGN(v, a) ALIGN_MASK(v, (a) - 1) +#define IS_ALIGNED(v, a) (((v) & ((a) - 1)) == 0) /* * some handy macros that will probably be of use in more than one @@ -107,157 +266,187 @@ void standard_extension (char *inname, char *outname, char *extension, * format in memory */ -#define WRITECHAR(p,v) \ - do { \ - *(p)++ = (v) & 0xFF; \ - } while (0) +#if X86_MEMORY -#define WRITESHORT(p,v) \ - do { \ - WRITECHAR(p,v); \ - WRITECHAR(p,(v) >> 8); \ - } while (0) +#define WRITECHAR(p,v) \ + do { \ + *(uint8_t *)(p) = (v); \ + (p) += 1; \ + } while (0) -#define WRITELONG(p,v) \ - do { \ - WRITECHAR(p,v); \ - WRITECHAR(p,(v) >> 8); \ - WRITECHAR(p,(v) >> 16); \ - WRITECHAR(p,(v) >> 24); \ - } while (0) +#define WRITESHORT(p,v) \ + do { \ + *(uint16_t *)(p) = (v); \ + (p) += 2; \ + } while (0) + +#define WRITELONG(p,v) \ + do { \ + *(uint32_t *)(p) = (v); \ + (p) += 4; \ + } while (0) + +#define WRITEDLONG(p,v) \ + do { \ + *(uint64_t *)(p) = (v); \ + (p) += 8; \ + } while (0) + +#define WRITEADDR(p,v,s) \ + do { \ + uint64_t _wa_v = (v); \ + memcpy((p), &_wa_v, (s)); \ + (p) += (s); \ + } while (0) + +#else /* !X86_MEMORY */ + +#define WRITECHAR(p,v) \ + do { \ + uint8_t *_wc_p = (uint8_t *)(p); \ + uint8_t _wc_v = (v); \ + _wc_p[0] = _wc_v; \ + (p) = (void *)(_wc_p + 1); \ + } while (0) + +#define WRITESHORT(p,v) \ + do { \ + uint8_t *_ws_p = (uint8_t *)(p); \ + uint16_t _ws_v = (v); \ + _ws_p[0] = _ws_v; \ + _ws_p[1] = _ws_v >> 8; \ + (p) = (void *)(_ws_p + 2); \ + } while (0) + +#define WRITELONG(p,v) \ + do { \ + uint8_t *_wl_p = (uint8_t *)(p); \ + uint32_t _wl_v = (v); \ + _wl_p[0] = _wl_v; \ + _wl_p[1] = _wl_v >> 8; \ + _wl_p[2] = _wl_v >> 16; \ + _wl_p[3] = _wl_v >> 24; \ + (p) = (void *)(_wl_p + 4); \ + } while (0) + +#define WRITEDLONG(p,v) \ + do { \ + uint8_t *_wq_p = (uint8_t *)(p); \ + uint64_t _wq_v = (v); \ + _wq_p[0] = _wq_v; \ + _wq_p[1] = _wq_v >> 8; \ + _wq_p[2] = _wq_v >> 16; \ + _wq_p[3] = _wq_v >> 24; \ + _wq_p[4] = _wq_v >> 32; \ + _wq_p[5] = _wq_v >> 40; \ + _wq_p[6] = _wq_v >> 48; \ + _wq_p[7] = _wq_v >> 56; \ + (p) = (void *)(_wq_p + 8); \ + } while (0) + +#define WRITEADDR(p,v,s) \ + do { \ + int _wa_s = (s); \ + uint64_t _wa_v = (v); \ + while (_wa_s--) { \ + WRITECHAR(p,_wa_v); \ + _wa_v >>= 8; \ + } \ + } while(0) + +#endif /* * and routines to do the same thing to a file */ -void fwriteshort (int data, FILE *fp); -void fwritelong (long data, FILE *fp); - -/* - * Routines to manage a dynamic random access array of longs which - * may grow in size to be more than the largest single malloc'able - * chunk. - */ - -#define RAA_BLKSIZE 4096 /* this many longs allocated at once */ -#define RAA_LAYERSIZE 1024 /* this many _pointers_ allocated */ - -typedef struct RAA RAA; -typedef union RAA_UNION RAA_UNION; -typedef struct RAA_LEAF RAA_LEAF; -typedef struct RAA_BRANCH RAA_BRANCH; - -struct RAA { - /* - * Number of layers below this one to get to the real data. 0 - * means this structure is a leaf, holding RAA_BLKSIZE real - * data items; 1 and above mean it's a branch, holding - * RAA_LAYERSIZE pointers to the next level branch or leaf - * structures. - */ - int layers; - /* - * Number of real data items spanned by one position in the - * `data' array at this level. This number is 1, trivially, for - * a leaf (level 0): for a level 1 branch it should be - * RAA_BLKSIZE, and for a level 2 branch it's - * RAA_LAYERSIZE*RAA_BLKSIZE. - */ - long stepsize; - union RAA_UNION { - struct RAA_LEAF { - long data[RAA_BLKSIZE]; - } l; - struct RAA_BRANCH { - struct RAA *data[RAA_LAYERSIZE]; - } b; - } u; -}; - - -struct RAA *raa_init (void); -void raa_free (struct RAA *); -long raa_read (struct RAA *, long); -struct RAA *raa_write (struct RAA *r, long posn, long value); - -/* - * Routines to manage a dynamic sequential-access array, under the - * same restriction on maximum mallocable block. This array may be - * written to in two ways: a contiguous chunk can be reserved of a - * given size, and a pointer returned, or single-byte data may be - * written. The array can also be read back in the same two ways: - * as a series of big byte-data blocks or as a list of structures - * of a given size. - */ - -struct SAA { - /* - * members `end' and `elem_len' are only valid in first link in - * list; `rptr' and `rpos' are used for reading - */ - struct SAA *next, *end, *rptr; - long elem_len, length, posn, start, rpos; - char *data; -}; - -struct SAA *saa_init (long elem_len); /* 1 == byte */ -void saa_free (struct SAA *); -void *saa_wstruct (struct SAA *); /* return a structure of elem_len */ -void saa_wbytes (struct SAA *, const void *, long); /* write arbitrary bytes */ -void saa_rewind (struct SAA *); /* for reading from beginning */ -void *saa_rstruct (struct SAA *); /* return NULL on EOA */ -void *saa_rbytes (struct SAA *, long *); /* return 0 on EOA */ -void saa_rnbytes (struct SAA *, void *, long); /* read a given no. of bytes */ -void saa_fread (struct SAA *s, long posn, void *p, long len); /* fixup */ -void saa_fwrite (struct SAA *s, long posn, void *p, long len); /* fixup */ -void saa_fpwrite (struct SAA *, FILE *); - -#ifdef NASM_NASM_H -/* - * Standard scanner. - */ -extern char *stdscan_bufptr; -void stdscan_reset(void); -int stdscan (void *private_data, struct tokenval *tv); -#endif - -#ifdef NASM_NASM_H -/* - * Library routines to manipulate expression data types. - */ -int is_reloc(expr *); -int is_simple(expr *); -int is_really_simple (expr *); -int is_unknown(expr *); -int is_just_unknown(expr *); -long reloc_value(expr *); -long reloc_seg(expr *); -long reloc_wrt(expr *); -#endif +#define fwriteint8_t(d,f) putc(d,f) +void fwriteint16_t(uint16_t data, FILE * fp); +void fwriteint32_t(uint32_t data, FILE * fp); +void fwriteint64_t(uint64_t data, FILE * fp); +void fwriteaddr(uint64_t data, int size, FILE * fp); /* * Binary search routine. Returns index into `array' of an entry * matching `string', or <0 if no match. `array' is taken to * contain `size' elements. + * + * bsi() is case sensitive, bsii() is case insensitive. */ -int bsi (char *string, const char **array, int size); - +int bsi(const char *string, const char **array, int size); +int bsii(const char *string, const char **array, int size); char *src_set_fname(char *newname); -long src_set_linnum(long newline); -long src_get_linnum(void); +int32_t src_set_linnum(int32_t newline); +int32_t src_get_linnum(void); /* * src_get may be used if you simply want to know the source file and line. * It is also used if you maintain private status about the source location * It return 0 if the information was the same as the last time you * checked, -1 if the name changed and (new-old) if just the line changed. */ -int src_get(long *xline, char **xname); +int src_get(int32_t *xline, char **xname); -void nasm_quote(char **str); -char *nasm_strcat(char *one, char *two); -void nasmlib_cleanup(void); +char *nasm_strcat(const char *one, const char *two); + +char *nasm_skip_spaces(const char *p); +char *nasm_skip_word(const char *p); +char *nasm_zap_spaces_fwd(char *p); +char *nasm_zap_spaces_rev(char *p); + +const char *prefix_name(int); + +#define ZERO_BUF_SIZE 4096 +extern const uint8_t zero_buffer[ZERO_BUF_SIZE]; +size_t fwritezero(size_t bytes, FILE *fp); + +static inline bool overflow_general(int64_t value, int bytes) +{ + int sbit; + int64_t vmax, vmin; + + if (bytes >= 8) + return false; + + sbit = (bytes << 3) - 1; + vmax = ((int64_t)2 << sbit) - 1; + vmin = -((int64_t)1 << sbit); + + return value < vmin || value > vmax; +} + +static inline bool overflow_signed(int64_t value, int bytes) +{ + int sbit; + int64_t vmax, vmin; + + if (bytes >= 8) + return false; + + sbit = (bytes << 3) - 1; + vmax = ((int64_t)1 << sbit) - 1; + vmin = -((int64_t)1 << sbit); + + return value < vmin || value > vmax; +} + +static inline bool overflow_unsigned(int64_t value, int bytes) +{ + int sbit; + int64_t vmax, vmin; + + if (bytes >= 8) + return false; + + sbit = (bytes << 3) - 1; + vmax = ((int64_t)2 << sbit) - 1; + vmin = 0; + + return value < vmin || value > vmax; +} + +int idata_bytes(int opcode); + +/* check if value is power of 2 */ +#define is_power2(v) ((v) && ((v) & ((v) - 1)) == 0) -void null_debug_routine(const char *directive, const char *params); -extern struct dfmt null_debug_form; -extern struct dfmt *null_debug_arr[2]; #endif diff --git a/uppsrc/plugin/ndisasm/lib/ndisasm.c b/uppsrc/plugin/ndisasm/lib/ndisasm.c deleted file mode 100644 index 1e5093000..000000000 --- a/uppsrc/plugin/ndisasm/lib/ndisasm.c +++ /dev/null @@ -1,321 +0,0 @@ -/* ndisasm.c the Netwide Disassembler main module - * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. - */ - -#include -#include -#include -#include -#include - -#include "insns.h" -#include "nasm.h" -#include "nasmlib.h" -#include "sync.h" -#include "disasm.h" - -#define BPL 8 /* bytes per line of hex dump */ - -static const char *help = -"usage: ndisasm [-a] [-i] [-h] [-r] [-u] [-b bits] [-o origin] [-s sync...]\n" -" [-e bytes] [-k start,bytes] [-p vendor] file\n" -" -a or -i activates auto (intelligent) sync\n" -" -u sets USE32 (32-bit mode)\n" -" -b 16 or -b 32 sets number of bits too\n" -" -h displays this text\n" -" -r or -v displays the version number\n" -" -e skips bytes of header\n" -" -k avoids disassembling bytes from position \n" -" -p selects the preferred vendor instruction set (intel, amd, cyrix, idt)\n"; - -static void output_ins (unsigned long, unsigned char *, int, char *); -static void skip (unsigned long dist, FILE *fp); - -int main(int argc, char **argv) -{ - unsigned char buffer[INSN_MAX * 2], *p, *q; - char outbuf[256]; - char *pname = *argv; - char *filename = NULL; - unsigned long nextsync, synclen, initskip = 0L; - int lenread; - long lendis; - int autosync = FALSE; - int bits = 16; - int eof = FALSE; - unsigned long prefer = 0; - int rn_error; - long offset; - FILE *fp; - - offset = 0; - init_sync(); - - while (--argc) { - char *v, *vv, *p = *++argv; - if (*p == '-' && p[1]) { - p++; - while (*p) switch (tolower(*p)) { - case 'a': /* auto or intelligent sync */ - case 'i': - autosync = TRUE; - p++; - break; - case 'h': - fprintf(stderr, help); - return 0; - case 'r': - case 'v': - fprintf(stderr, "NDISASM version %s compiled " __DATE__ "\n", NASM_VER); - return 0; - case 'u': /* USE32 */ - bits = 32; - p++; - break; - case 'b': /* bits */ - v = p[1] ? p+1 : --argc ? *++argv : NULL; - if (!v) { - fprintf(stderr, "%s: `-b' requires an argument\n", pname); - return 1; - } - if (!strcmp(v, "16")) - bits = 16; - else if (!strcmp(v, "32")) - bits = 32; - else { - fprintf(stderr, "%s: argument to `-b' should" - " be `16' or `32'\n", pname); - } - p = ""; /* force to next argument */ - break; - case 'o': /* origin */ - v = p[1] ? p+1 : --argc ? *++argv : NULL; - if (!v) { - fprintf(stderr, "%s: `-o' requires an argument\n", pname); - return 1; - } - offset = readnum (v, &rn_error); - if (rn_error) { - fprintf(stderr, "%s: `-o' requires a numeric argument\n", - pname); - return 1; - } - p = ""; /* force to next argument */ - break; - case 's': /* sync point */ - v = p[1] ? p+1 : --argc ? *++argv : NULL; - if (!v) { - fprintf(stderr, "%s: `-s' requires an argument\n", pname); - return 1; - } - add_sync (readnum (v, &rn_error), 0L); - if (rn_error) { - fprintf(stderr, "%s: `-s' requires a numeric argument\n", - pname); - return 1; - } - p = ""; /* force to next argument */ - break; - case 'e': /* skip a header */ - v = p[1] ? p+1 : --argc ? *++argv : NULL; - if (!v) { - fprintf(stderr, "%s: `-e' requires an argument\n", pname); - return 1; - } - initskip = readnum (v, &rn_error); - if (rn_error) { - fprintf(stderr, "%s: `-e' requires a numeric argument\n", - pname); - return 1; - } - p = ""; /* force to next argument */ - break; - case 'k': /* skip a region */ - v = p[1] ? p+1 : --argc ? *++argv : NULL; - if (!v) { - fprintf(stderr, "%s: `-k' requires an argument\n", pname); - return 1; - } - vv = strchr(v, ','); - if (!vv) { - fprintf(stderr, "%s: `-k' requires two numbers separated" - " by a comma\n", pname); - return 1; - } - *vv++ = '\0'; - nextsync = readnum (v, &rn_error); - if (rn_error) { - fprintf(stderr, "%s: `-k' requires numeric arguments\n", - pname); - return 1; - } - synclen = readnum (vv, &rn_error); - if (rn_error) { - fprintf(stderr, "%s: `-k' requires numeric arguments\n", - pname); - return 1; - } - add_sync (nextsync, synclen); - p = ""; /* force to next argument */ - break; - case 'p': /* preferred vendor */ - v = p[1] ? p+1 : --argc ? *++argv : NULL; - if (!v) { - fprintf(stderr, "%s: `-p' requires an argument\n", pname); - return 1; - } - if ( !strcmp(v, "intel") ) { - prefer = 0; /* Default */ - } else if ( !strcmp(v, "amd") ) { - prefer = IF_AMD|IF_3DNOW; - } else if ( !strcmp(v, "cyrix") ) { - prefer = IF_CYRIX|IF_3DNOW; - } else if ( !strcmp(v, "idt") || !strcmp(v, "centaur") || - !strcmp(v, "winchip") ) { - prefer = IF_3DNOW; - } else { - fprintf(stderr, "%s: unknown vendor `%s' specified with `-p'\n", pname, v); - return 1; - } - p = ""; /* force to next argument */ - break; - default: /*bf*/ - fprintf(stderr, "%s: unrecognised option `-%c'\n", - pname, *p); - return 1; - } - } else if (!filename) { - filename = p; - } else { - fprintf(stderr, "%s: more than one filename specified\n", pname); - return 1; - } - } - - if (!filename) { - fprintf(stderr, help, pname); - return 0; - } - - if (strcmp(filename, "-")) { - fp = fopen(filename, "rb"); - if (!fp) { - fprintf(stderr, "%s: unable to open `%s': %s\n", - pname, filename, strerror(errno)); - return 1; - } - } else - fp = stdin; - - if (initskip > 0) - skip (initskip, fp); - - /* - * This main loop is really horrible, and wants rewriting with - * an axe. It'll stay the way it is for a while though, until I - * find the energy... - */ - - p = q = buffer; - nextsync = next_sync (offset, &synclen); - do { - unsigned long to_read = buffer+sizeof(buffer)-p; - if (to_read > nextsync-offset-(p-q)) - to_read = nextsync-offset-(p-q); - if (to_read) { - lenread = fread (p, 1, to_read, fp); - if (lenread == 0) - eof = TRUE; /* help along systems with bad feof */ - } else - lenread = 0; - p += lenread; - if ((unsigned long)offset == nextsync) { - if (synclen) { - fprintf(stdout, "%08lX skipping 0x%lX bytes\n", offset, synclen); - offset += synclen; - skip (synclen, fp); - } - p = q = buffer; - nextsync = next_sync (offset, &synclen); - } - while (p > q && (p - q >= INSN_MAX || lenread == 0)) { - lendis = disasm (q, outbuf, bits, offset, autosync, prefer); - if (!lendis || lendis > (p - q) || - (unsigned long)lendis > nextsync-offset) - lendis = eatbyte (q, outbuf); - output_ins (offset, q, lendis, outbuf); - q += lendis; - offset += lendis; - } - if (q >= buffer+INSN_MAX) { - unsigned char *r = buffer, *s = q; - int count = p - q; - while (count--) - *r++ = *s++; - p -= (q - buffer); - q = buffer; - } - } while (lenread > 0 || !(eof || feof(fp))); - - if (fp != stdin) - fclose (fp); - - return 0; -} - -static void output_ins (unsigned long offset, unsigned char *data, - int datalen, char *insn) -{ - int bytes; - fprintf(stdout, "%08lX ", offset); - - bytes = 0; - while (datalen > 0 && bytes < BPL) { - fprintf(stdout, "%02X", *data++); - bytes++; - datalen--; - } - - fprintf(stdout, "%*s%s\n", (BPL+1-bytes)*2, "", insn); - - while (datalen > 0) { - fprintf(stdout, " -"); - bytes = 0; - while (datalen > 0 && bytes < BPL) { - fprintf(stdout, "%02X", *data++); - bytes++; - datalen--; - } - fprintf(stdout, "\n"); - } -} - -/* - * Skip a certain amount of data in a file, either by seeking if - * possible, or if that fails then by reading and discarding. - */ -static void skip (unsigned long dist, FILE *fp) -{ - char buffer[256]; /* should fit on most stacks :-) */ - - /* - * Got to be careful with fseek: at least one fseek I've tried - * doesn't approve of SEEK_CUR. So I'll use SEEK_SET and - * ftell... horrible but apparently necessary. - */ - if (fseek (fp, dist+ftell(fp), SEEK_SET)) { - while (dist > 0) { - unsigned long len = (dist < sizeof(buffer) ? - dist : sizeof(buffer)); - if (fread (buffer, 1, len, fp) < len) { - perror("fread"); - exit(1); - } - dist -= len; - } - } -} diff --git a/uppsrc/plugin/ndisasm/lib/opflags.h b/uppsrc/plugin/ndisasm/lib/opflags.h new file mode 100644 index 000000000..a268e0fac --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/opflags.h @@ -0,0 +1,239 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * opflags.h - operand flags + */ + +#ifndef NASM_OPFLAGS_H +#define NASM_OPFLAGS_H + +#include "compiler.h" + +/* + * Here we define the operand types. These are implemented as bit + * masks, since some are subsets of others; e.g. AX in a MOV + * instruction is a special operand type, whereas AX in other + * contexts is just another 16-bit register. (Also, consider CL in + * shift instructions, DX in OUT, etc.) + * + * The basic concept here is that + * (class & ~operand) == 0 + * + * if and only if "operand" belongs to class type "class". + * + * The bits are assigned as follows: + * + * Bits 0-7, 23, 29: sizes + * 0: 8 bits (BYTE) + * 1: 16 bits (WORD) + * 2: 32 bits (DWORD) + * 3: 64 bits (QWORD) + * 4: 80 bits (TWORD) + * 5: FAR + * 6: NEAR + * 7: SHORT + * 23: 256 bits (YWORD) + * 29: 128 bits (OWORD) + * + * Bits 8-11 modifiers + * 8: TO + * 9: COLON + * 10: STRICT + * 11: (reserved) + * + * Bits 12-15: type of operand + * 12: REGISTER + * 13: IMMEDIATE + * 14: MEMORY (always has REGMEM attribute as well) + * 15: REGMEM (valid EA operand) + * + * Bits 16-19, 28: subclasses + * With REG_CDT: + * 16: REG_CREG (CRx) + * 17: REG_DREG (DRx) + * 18: REG_TREG (TRx) + + * With REG_GPR: + * 16: REG_ACCUM (AL, AX, EAX, RAX) + * 17: REG_COUNT (CL, CX, ECX, RCX) + * 18: REG_DATA (DL, DX, EDX, RDX) + * 19: REG_HIGH (AH, CH, DH, BH) + * 28: REG_NOTACC (not REG_ACCUM) + * + * With REG_SREG: + * 16: REG_CS + * 17: REG_DESS (DS, ES, SS) + * 18: REG_FSGS + * 19: REG_SEG67 + * + * With FPUREG: + * 16: FPU0 + * + * With XMMREG: + * 16: XMM0 + * + * With YMMREG: + * 16: YMM0 + * + * With MEMORY: + * 16: MEM_OFFS (this is a simple offset) + * 17: IP_REL (IP-relative offset) + * + * With IMMEDIATE: + * 16: UNITY (1) + * 17: BYTENESS16 (-128..127) + * 18: BYTENESS32 (-128..127) + * 19: BYTENESS64 (-128..127) + * + * Bits 20-22, 24-27: register classes + * 20: REG_CDT (CRx, DRx, TRx) + * 21: RM_GPR (REG_GPR) (integer register) + * 22: REG_SREG + * 24: FPUREG + * 25: RM_MMX (MMXREG) + * 26: RM_XMM (XMMREG) + * 27: RM_YMM (YMMREG) + * + * Bit 31 is currently unallocated. + * + * 30: SAME_AS + * Special flag only used in instruction patterns; means this operand + * has to be identical to another operand. Currently only supported + * for registers. + */ + +typedef uint32_t opflags_t; + +/* Size, and other attributes, of the operand */ +#define BITS8 0x00000001U +#define BITS16 0x00000002U +#define BITS32 0x00000004U +#define BITS64 0x00000008U /* x64 and FPU only */ +#define BITS80 0x00000010U /* FPU only */ +#define BITS128 0x20000000U +#define BITS256 0x00800000U +#define FAR 0x00000020U /* grotty: this means 16:16 or */ + /* 16:32, like in CALL/JMP */ +#define NEAR 0x00000040U +#define SHORT 0x00000080U /* and this means what it says :) */ + +#define SIZE_MASK 0x208000FFU /* all the size attributes */ + +/* Modifiers */ +#define MODIFIER_MASK 0x00000f00U +#define TO 0x00000100U /* reverse effect in FADD, FSUB &c */ +#define COLON 0x00000200U /* operand is followed by a colon */ +#define STRICT 0x00000400U /* do not optimize this operand */ + +/* Type of operand: memory reference, register, etc. */ +#define OPTYPE_MASK 0x0000f000U +#define REGISTER 0x00001000U /* register number in 'basereg' */ +#define IMMEDIATE 0x00002000U +#define MEMORY 0x0000c000U +#define REGMEM 0x00008000U /* for r/m, ie EA, operands */ + +#define is_class(class, op) (!((opflags_t)(class) & ~(opflags_t)(op))) + +/* Register classes */ +#define REG_EA 0x00009000U /* 'normal' reg, qualifies as EA */ +#define RM_GPR 0x00208000U /* integer operand */ +#define REG_GPR 0x00209000U /* integer register */ +#define REG8 0x00209001U /* 8-bit GPR */ +#define REG16 0x00209002U /* 16-bit GPR */ +#define REG32 0x00209004U /* 32-bit GPR */ +#define REG64 0x00209008U /* 64-bit GPR */ +#define FPUREG 0x01001000U /* floating point stack registers */ +#define FPU0 0x01011000U /* FPU stack register zero */ +#define RM_MMX 0x02008000U /* MMX operand */ +#define MMXREG 0x02009000U /* MMX register */ +#define RM_XMM 0x04008000U /* XMM (SSE) operand */ +#define XMMREG 0x04009000U /* XMM (SSE) register */ +#define XMM0 0x04019000U /* XMM register zero */ +#define RM_YMM 0x08008000U /* YMM (AVX) operand */ +#define YMMREG 0x08009000U /* YMM (AVX) register */ +#define YMM0 0x08019000U /* YMM register zero */ +#define REG_CDT 0x00101004U /* CRn, DRn and TRn */ +#define REG_CREG 0x00111004U /* CRn */ +#define REG_DREG 0x00121004U /* DRn */ +#define REG_TREG 0x00141004U /* TRn */ +#define REG_SREG 0x00401002U /* any segment register */ +#define REG_CS 0x00411002U /* CS */ +#define REG_DESS 0x00421002U /* DS, ES, SS */ +#define REG_FSGS 0x00441002U /* FS, GS */ +#define REG_SEG67 0x00481002U /* Unimplemented segment registers */ + +#define REG_RIP 0x00801008U /* RIP relative addressing */ +#define REG_EIP 0x00801004U /* EIP relative addressing */ + +/* Special GPRs */ +#define REG_SMASK 0x100f0000U /* a mask for the following */ +#define REG_ACCUM 0x00219000U /* accumulator: AL, AX, EAX, RAX */ +#define REG_AL 0x00219001U +#define REG_AX 0x00219002U +#define REG_EAX 0x00219004U +#define REG_RAX 0x00219008U +#define REG_COUNT 0x10229000U /* counter: CL, CX, ECX, RCX */ +#define REG_CL 0x10229001U +#define REG_CX 0x10229002U +#define REG_ECX 0x10229004U +#define REG_RCX 0x10229008U +#define REG_DL 0x10249001U /* data: DL, DX, EDX, RDX */ +#define REG_DX 0x10249002U +#define REG_EDX 0x10249004U +#define REG_RDX 0x10249008U +#define REG_HIGH 0x10289001U /* high regs: AH, CH, DH, BH */ +#define REG_NOTACC 0x10000000U /* non-accumulator register */ +#define REG8NA 0x10209001U /* 8-bit non-acc GPR */ +#define REG16NA 0x10209002U /* 16-bit non-acc GPR */ +#define REG32NA 0x10209004U /* 32-bit non-acc GPR */ +#define REG64NA 0x10209008U /* 64-bit non-acc GPR */ + +/* special types of EAs */ +#define MEM_OFFS 0x0001c000U /* simple [address] offset - absolute! */ +#define IP_REL 0x0002c000U /* IP-relative offset */ + +/* memory which matches any type of r/m operand */ +#define MEMORY_ANY (MEMORY|RM_GPR|RM_MMX|RM_XMM|RM_YMM) + +/* special type of immediate operand */ +#define UNITY 0x00012000U /* for shift/rotate instructions */ +#define SBYTE16 0x00022000U /* for op r16,immediate instrs. */ +#define SBYTE32 0x00042000U /* for op r32,immediate instrs. */ +#define SBYTE64 0x00082000U /* for op r64,immediate instrs. */ +#define BYTENESS 0x000e0000U /* for testing for byteness */ + +/* special flags */ +#define SAME_AS 0x40000000U + +#endif /* NASM_OPFLAGS_H */ diff --git a/uppsrc/plugin/ndisasm/lib/regdis.c b/uppsrc/plugin/ndisasm/lib/regdis.c index 4e4e6ff1e..f1434f0f8 100644 --- a/uppsrc/plugin/ndisasm/lib/regdis.c +++ b/uppsrc/plugin/ndisasm/lib/regdis.c @@ -1,11 +1,17 @@ /* automatically generated from ./regs.dat - do not edit */ -static const int creg [] = {R_CR0,R_CR1,R_CR2,R_CR3,R_CR4,R_CR5,R_CR6,R_CR7}; -static const int dreg [] = {R_DR0,R_DR1,R_DR2,R_DR3,R_DR4,R_DR5,R_DR6,R_DR7}; -static const int fpureg [] = {R_ST0,R_ST1,R_ST2,R_ST3,R_ST4,R_ST5,R_ST6,R_ST7}; -static const int mmxreg [] = {R_MM0,R_MM1,R_MM2,R_MM3,R_MM4,R_MM5,R_MM6,R_MM7}; -static const int reg16 [] = {R_AX,R_CX,R_DX,R_BX,R_SP,R_BP,R_SI,R_DI}; -static const int reg32 [] = {R_EAX,R_ECX,R_EDX,R_EBX,R_ESP,R_EBP,R_ESI,R_EDI}; -static const int reg8 [] = {R_AL,R_CL,R_DL,R_BL,R_AH,R_CH,R_DH,R_BH}; -static const int sreg [] = {R_ES,R_CS,R_SS,R_DS,R_FS,R_GS,R_SEGR6,R_SEGR7}; -static const int treg [] = {R_TR0,R_TR1,R_TR2,R_TR3,R_TR4,R_TR5,R_TR6,R_TR7}; -static const int xmmreg [] = {R_XMM0,R_XMM1,R_XMM2,R_XMM3,R_XMM4,R_XMM5,R_XMM6,R_XMM7}; + +#include "regdis.h" + +const enum reg_enum nasm_rd_creg [16] = {R_CR0,R_CR1,R_CR2,R_CR3,R_CR4,R_CR5,R_CR6,R_CR7,R_CR8,R_CR9,R_CR10,R_CR11,R_CR12,R_CR13,R_CR14,R_CR15}; +const enum reg_enum nasm_rd_dreg [16] = {R_DR0,R_DR1,R_DR2,R_DR3,R_DR4,R_DR5,R_DR6,R_DR7,R_DR8,R_DR9,R_DR10,R_DR11,R_DR12,R_DR13,R_DR14,R_DR15}; +const enum reg_enum nasm_rd_fpureg [ 8] = {R_ST0,R_ST1,R_ST2,R_ST3,R_ST4,R_ST5,R_ST6,R_ST7}; +const enum reg_enum nasm_rd_mmxreg [ 8] = {R_MM0,R_MM1,R_MM2,R_MM3,R_MM4,R_MM5,R_MM6,R_MM7}; +const enum reg_enum nasm_rd_reg16 [16] = {R_AX,R_CX,R_DX,R_BX,R_SP,R_BP,R_SI,R_DI,R_R8W,R_R9W,R_R10W,R_R11W,R_R12W,R_R13W,R_R14W,R_R15W}; +const enum reg_enum nasm_rd_reg32 [16] = {R_EAX,R_ECX,R_EDX,R_EBX,R_ESP,R_EBP,R_ESI,R_EDI,R_R8D,R_R9D,R_R10D,R_R11D,R_R12D,R_R13D,R_R14D,R_R15D}; +const enum reg_enum nasm_rd_reg64 [16] = {R_RAX,R_RCX,R_RDX,R_RBX,R_RSP,R_RBP,R_RSI,R_RDI,R_R8,R_R9,R_R10,R_R11,R_R12,R_R13,R_R14,R_R15}; +const enum reg_enum nasm_rd_reg8 [ 8] = {R_AL,R_CL,R_DL,R_BL,R_AH,R_CH,R_DH,R_BH}; +const enum reg_enum nasm_rd_reg8_rex[16] = {R_AL,R_CL,R_DL,R_BL,R_SPL,R_BPL,R_SIL,R_DIL,R_R8B,R_R9B,R_R10B,R_R11B,R_R12B,R_R13B,R_R14B,R_R15B}; +const enum reg_enum nasm_rd_sreg [ 8] = {R_ES,R_CS,R_SS,R_DS,R_FS,R_GS,R_SEGR6,R_SEGR7}; +const enum reg_enum nasm_rd_treg [ 8] = {R_TR0,R_TR1,R_TR2,R_TR3,R_TR4,R_TR5,R_TR6,R_TR7}; +const enum reg_enum nasm_rd_xmmreg [16] = {R_XMM0,R_XMM1,R_XMM2,R_XMM3,R_XMM4,R_XMM5,R_XMM6,R_XMM7,R_XMM8,R_XMM9,R_XMM10,R_XMM11,R_XMM12,R_XMM13,R_XMM14,R_XMM15}; +const enum reg_enum nasm_rd_ymmreg [16] = {R_YMM0,R_YMM1,R_YMM2,R_YMM3,R_YMM4,R_YMM5,R_YMM6,R_YMM7,R_YMM8,R_YMM9,R_YMM10,R_YMM11,R_YMM12,R_YMM13,R_YMM14,R_YMM15}; diff --git a/uppsrc/plugin/ndisasm/lib/regdis.h b/uppsrc/plugin/ndisasm/lib/regdis.h new file mode 100644 index 000000000..4856635da --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/regdis.h @@ -0,0 +1,22 @@ +/* automatically generated from ./regs.dat - do not edit */ + +#ifndef NASM_REGDIS_H +#define NASM_REGDIS_H + +#include "regs.h" + +extern const enum reg_enum nasm_rd_creg [16]; +extern const enum reg_enum nasm_rd_dreg [16]; +extern const enum reg_enum nasm_rd_fpureg [ 8]; +extern const enum reg_enum nasm_rd_mmxreg [ 8]; +extern const enum reg_enum nasm_rd_reg16 [16]; +extern const enum reg_enum nasm_rd_reg32 [16]; +extern const enum reg_enum nasm_rd_reg64 [16]; +extern const enum reg_enum nasm_rd_reg8 [ 8]; +extern const enum reg_enum nasm_rd_reg8_rex[16]; +extern const enum reg_enum nasm_rd_sreg [ 8]; +extern const enum reg_enum nasm_rd_treg [ 8]; +extern const enum reg_enum nasm_rd_xmmreg [16]; +extern const enum reg_enum nasm_rd_ymmreg [16]; + +#endif /* NASM_REGDIS_H */ diff --git a/uppsrc/plugin/ndisasm/lib/regs.c b/uppsrc/plugin/ndisasm/lib/regs.c index 9ef48ec22..9c410cb1b 100644 --- a/uppsrc/plugin/ndisasm/lib/regs.c +++ b/uppsrc/plugin/ndisasm/lib/regs.c @@ -1,35 +1,56 @@ /* automatically generated from ./regs.dat - do not edit */ -static const char *reg_names[] = { + +#include "tables.h" + +const char * const nasm_reg_names[] = { "ah", "al", "ax", "bh", "bl", "bp", + "bpl", "bx", "ch", "cl", "cr0", "cr1", + "cr10", + "cr11", + "cr12", + "cr13", + "cr14", + "cr15", "cr2", "cr3", "cr4", "cr5", "cr6", "cr7", + "cr8", + "cr9", "cs", "cx", "dh", "di", + "dil", "dl", "dr0", "dr1", + "dr10", + "dr11", + "dr12", + "dr13", + "dr14", + "dr15", "dr2", "dr3", "dr4", "dr5", "dr6", "dr7", + "dr8", + "dr9", "ds", "dx", "eax", @@ -51,10 +72,52 @@ static const char *reg_names[] = { "mm5", "mm6", "mm7", + "r10", + "r10b", + "r10d", + "r10w", + "r11", + "r11b", + "r11d", + "r11w", + "r12", + "r12b", + "r12d", + "r12w", + "r13", + "r13b", + "r13d", + "r13w", + "r14", + "r14b", + "r14d", + "r14w", + "r15", + "r15b", + "r15d", + "r15w", + "r8", + "r8b", + "r8d", + "r8w", + "r9", + "r9b", + "r9d", + "r9w", + "rax", + "rbp", + "rbx", + "rcx", + "rdi", + "rdx", + "rsi", + "rsp", "segr6", "segr7", "si", + "sil", "sp", + "spl", "ss", "st0", "st1", @@ -74,10 +137,34 @@ static const char *reg_names[] = { "tr7", "xmm0", "xmm1", + "xmm10", + "xmm11", + "xmm12", + "xmm13", + "xmm14", + "xmm15", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", - "xmm7" + "xmm7", + "xmm8", + "xmm9", + "ymm0", + "ymm1", + "ymm10", + "ymm11", + "ymm12", + "ymm13", + "ymm14", + "ymm15", + "ymm2", + "ymm3", + "ymm4", + "ymm5", + "ymm6", + "ymm7", + "ymm8", + "ymm9" }; diff --git a/uppsrc/plugin/ndisasm/lib/regs.h b/uppsrc/plugin/ndisasm/lib/regs.h index a4c9e5b8f..ecb01a634 100644 --- a/uppsrc/plugin/ndisasm/lib/regs.h +++ b/uppsrc/plugin/ndisasm/lib/regs.h @@ -1,35 +1,61 @@ /* automatically generated from ./regs.dat - do not edit */ + +#ifndef NASM_REGS_H +#define NASM_REGS_H + +#define EXPR_REG_START 1 + enum reg_enum { + R_zero = 0, + R_none = -1, R_AH = EXPR_REG_START, R_AL, R_AX, R_BH, R_BL, R_BP, + R_BPL, R_BX, R_CH, R_CL, R_CR0, R_CR1, + R_CR10, + R_CR11, + R_CR12, + R_CR13, + R_CR14, + R_CR15, R_CR2, R_CR3, R_CR4, R_CR5, R_CR6, R_CR7, + R_CR8, + R_CR9, R_CS, R_CX, R_DH, R_DI, + R_DIL, R_DL, R_DR0, R_DR1, + R_DR10, + R_DR11, + R_DR12, + R_DR13, + R_DR14, + R_DR15, R_DR2, R_DR3, R_DR4, R_DR5, R_DR6, R_DR7, + R_DR8, + R_DR9, R_DS, R_DX, R_EAX, @@ -51,10 +77,52 @@ enum reg_enum { R_MM5, R_MM6, R_MM7, + R_R10, + R_R10B, + R_R10D, + R_R10W, + R_R11, + R_R11B, + R_R11D, + R_R11W, + R_R12, + R_R12B, + R_R12D, + R_R12W, + R_R13, + R_R13B, + R_R13D, + R_R13W, + R_R14, + R_R14B, + R_R14D, + R_R14W, + R_R15, + R_R15B, + R_R15D, + R_R15W, + R_R8, + R_R8B, + R_R8D, + R_R8W, + R_R9, + R_R9B, + R_R9D, + R_R9W, + R_RAX, + R_RBP, + R_RBX, + R_RCX, + R_RDI, + R_RDX, + R_RSI, + R_RSP, R_SEGR6, R_SEGR7, R_SI, + R_SIL, R_SP, + R_SPL, R_SS, R_ST0, R_ST1, @@ -74,11 +142,205 @@ enum reg_enum { R_TR7, R_XMM0, R_XMM1, + R_XMM10, + R_XMM11, + R_XMM12, + R_XMM13, + R_XMM14, + R_XMM15, R_XMM2, R_XMM3, R_XMM4, R_XMM5, R_XMM6, R_XMM7, + R_XMM8, + R_XMM9, + R_YMM0, + R_YMM1, + R_YMM10, + R_YMM11, + R_YMM12, + R_YMM13, + R_YMM14, + R_YMM15, + R_YMM2, + R_YMM3, + R_YMM4, + R_YMM5, + R_YMM6, + R_YMM7, + R_YMM8, + R_YMM9, REG_ENUM_LIMIT }; + +#define EXPR_REG_END 164 + +#define REG_NUM_AH 4 +#define REG_NUM_AL 0 +#define REG_NUM_AX 0 +#define REG_NUM_BH 7 +#define REG_NUM_BL 3 +#define REG_NUM_BP 5 +#define REG_NUM_BPL 5 +#define REG_NUM_BX 3 +#define REG_NUM_CH 5 +#define REG_NUM_CL 1 +#define REG_NUM_CR0 0 +#define REG_NUM_CR1 1 +#define REG_NUM_CR10 10 +#define REG_NUM_CR11 11 +#define REG_NUM_CR12 12 +#define REG_NUM_CR13 13 +#define REG_NUM_CR14 14 +#define REG_NUM_CR15 15 +#define REG_NUM_CR2 2 +#define REG_NUM_CR3 3 +#define REG_NUM_CR4 4 +#define REG_NUM_CR5 5 +#define REG_NUM_CR6 6 +#define REG_NUM_CR7 7 +#define REG_NUM_CR8 8 +#define REG_NUM_CR9 9 +#define REG_NUM_CS 1 +#define REG_NUM_CX 1 +#define REG_NUM_DH 6 +#define REG_NUM_DI 7 +#define REG_NUM_DIL 7 +#define REG_NUM_DL 2 +#define REG_NUM_DR0 0 +#define REG_NUM_DR1 1 +#define REG_NUM_DR10 10 +#define REG_NUM_DR11 11 +#define REG_NUM_DR12 12 +#define REG_NUM_DR13 13 +#define REG_NUM_DR14 14 +#define REG_NUM_DR15 15 +#define REG_NUM_DR2 2 +#define REG_NUM_DR3 3 +#define REG_NUM_DR4 4 +#define REG_NUM_DR5 5 +#define REG_NUM_DR6 6 +#define REG_NUM_DR7 7 +#define REG_NUM_DR8 8 +#define REG_NUM_DR9 9 +#define REG_NUM_DS 3 +#define REG_NUM_DX 2 +#define REG_NUM_EAX 0 +#define REG_NUM_EBP 5 +#define REG_NUM_EBX 3 +#define REG_NUM_ECX 1 +#define REG_NUM_EDI 7 +#define REG_NUM_EDX 2 +#define REG_NUM_ES 0 +#define REG_NUM_ESI 6 +#define REG_NUM_ESP 4 +#define REG_NUM_FS 4 +#define REG_NUM_GS 5 +#define REG_NUM_MM0 0 +#define REG_NUM_MM1 1 +#define REG_NUM_MM2 2 +#define REG_NUM_MM3 3 +#define REG_NUM_MM4 4 +#define REG_NUM_MM5 5 +#define REG_NUM_MM6 6 +#define REG_NUM_MM7 7 +#define REG_NUM_R10 10 +#define REG_NUM_R10B 10 +#define REG_NUM_R10D 10 +#define REG_NUM_R10W 10 +#define REG_NUM_R11 11 +#define REG_NUM_R11B 11 +#define REG_NUM_R11D 11 +#define REG_NUM_R11W 11 +#define REG_NUM_R12 12 +#define REG_NUM_R12B 12 +#define REG_NUM_R12D 12 +#define REG_NUM_R12W 12 +#define REG_NUM_R13 13 +#define REG_NUM_R13B 13 +#define REG_NUM_R13D 13 +#define REG_NUM_R13W 13 +#define REG_NUM_R14 14 +#define REG_NUM_R14B 14 +#define REG_NUM_R14D 14 +#define REG_NUM_R14W 14 +#define REG_NUM_R15 15 +#define REG_NUM_R15B 15 +#define REG_NUM_R15D 15 +#define REG_NUM_R15W 15 +#define REG_NUM_R8 8 +#define REG_NUM_R8B 8 +#define REG_NUM_R8D 8 +#define REG_NUM_R8W 8 +#define REG_NUM_R9 9 +#define REG_NUM_R9B 9 +#define REG_NUM_R9D 9 +#define REG_NUM_R9W 9 +#define REG_NUM_RAX 0 +#define REG_NUM_RBP 5 +#define REG_NUM_RBX 3 +#define REG_NUM_RCX 1 +#define REG_NUM_RDI 7 +#define REG_NUM_RDX 2 +#define REG_NUM_RSI 6 +#define REG_NUM_RSP 4 +#define REG_NUM_SEGR6 6 +#define REG_NUM_SEGR7 7 +#define REG_NUM_SI 6 +#define REG_NUM_SIL 6 +#define REG_NUM_SP 4 +#define REG_NUM_SPL 4 +#define REG_NUM_SS 2 +#define REG_NUM_ST0 0 +#define REG_NUM_ST1 1 +#define REG_NUM_ST2 2 +#define REG_NUM_ST3 3 +#define REG_NUM_ST4 4 +#define REG_NUM_ST5 5 +#define REG_NUM_ST6 6 +#define REG_NUM_ST7 7 +#define REG_NUM_TR0 0 +#define REG_NUM_TR1 1 +#define REG_NUM_TR2 2 +#define REG_NUM_TR3 3 +#define REG_NUM_TR4 4 +#define REG_NUM_TR5 5 +#define REG_NUM_TR6 6 +#define REG_NUM_TR7 7 +#define REG_NUM_XMM0 0 +#define REG_NUM_XMM1 1 +#define REG_NUM_XMM10 10 +#define REG_NUM_XMM11 11 +#define REG_NUM_XMM12 12 +#define REG_NUM_XMM13 13 +#define REG_NUM_XMM14 14 +#define REG_NUM_XMM15 15 +#define REG_NUM_XMM2 2 +#define REG_NUM_XMM3 3 +#define REG_NUM_XMM4 4 +#define REG_NUM_XMM5 5 +#define REG_NUM_XMM6 6 +#define REG_NUM_XMM7 7 +#define REG_NUM_XMM8 8 +#define REG_NUM_XMM9 9 +#define REG_NUM_YMM0 0 +#define REG_NUM_YMM1 1 +#define REG_NUM_YMM10 10 +#define REG_NUM_YMM11 11 +#define REG_NUM_YMM12 12 +#define REG_NUM_YMM13 13 +#define REG_NUM_YMM14 14 +#define REG_NUM_YMM15 15 +#define REG_NUM_YMM2 2 +#define REG_NUM_YMM3 3 +#define REG_NUM_YMM4 4 +#define REG_NUM_YMM5 5 +#define REG_NUM_YMM6 6 +#define REG_NUM_YMM7 7 +#define REG_NUM_YMM8 8 +#define REG_NUM_YMM9 9 + + +#endif /* NASM_REGS_H */ diff --git a/uppsrc/plugin/ndisasm/lib/snprintf.c b/uppsrc/plugin/ndisasm/lib/snprintf.c new file mode 100644 index 000000000..86297d5cd --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/snprintf.c @@ -0,0 +1,25 @@ +/* + * snprintf() + * + * Implement snprintf() in terms of vsnprintf() + */ + +#include "compiler.h" + +#include +#include +#include + +#include "nasmlib.h" + +int snprintf(char *str, size_t size, const char *format, ...) +{ + va_list ap; + int rv; + + va_start(ap, format); + rv = vsnprintf(str, size, format, ap); + va_end(ap); + + return rv; +} diff --git a/uppsrc/plugin/ndisasm/lib/strfunc.c b/uppsrc/plugin/ndisasm/lib/strfunc.c new file mode 100644 index 000000000..12c43e5c5 --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/strfunc.c @@ -0,0 +1,203 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * strfunc.c + * + * String transformation functions + */ + +#include "nasmlib.h" +#include "nasm.h" + +/* + * Convert a string in UTF-8 format to UTF-16LE + */ +static size_t utf8_to_16le(uint8_t *str, size_t len, char *op) +{ +#define EMIT(x) do { if (op) { WRITESHORT(op,x); } outlen++; } while(0) + + size_t outlen = 0; + int expect = 0; + uint8_t c; + uint32_t v = 0, vmin = 0; + + while (len--) { + c = *str++; + + if (expect) { + if ((c & 0xc0) != 0x80) { + expect = 0; + return -1; + } else { + v = (v << 6) | (c & 0x3f); + if (!--expect) { + if (v < vmin || v > 0x10ffff || + (v >= 0xd800 && v <= 0xdfff)) { + return -1; + } else if (v > 0xffff) { + v -= 0x10000; + EMIT(0xd800 | (v >> 10)); + EMIT(0xdc00 | (v & 0x3ff)); + } else { + EMIT(v); + } + } + continue; + } + } + + if (c < 0x80) { + EMIT(c); + } else if (c < 0xc0 || c >= 0xfe) { + /* Invalid UTF-8 */ + return -1; + } else if (c < 0xe0) { + v = c & 0x1f; + expect = 1; + vmin = 0x80; + } else if (c < 0xf0) { + v = c & 0x0f; + expect = 2; + vmin = 0x800; + } else if (c < 0xf8) { + v = c & 0x07; + expect = 3; + vmin = 0x10000; + } else if (c < 0xfc) { + v = c & 0x03; + expect = 4; + vmin = 0x200000; + } else { + v = c & 0x01; + expect = 5; + vmin = 0x4000000; + } + } + + return expect ? (size_t)-1 : outlen << 1; + +#undef EMIT +} + +/* + * Convert a string in UTF-8 format to UTF-32LE + */ +static size_t utf8_to_32le(uint8_t *str, size_t len, char *op) +{ +#define EMIT(x) do { if (op) { WRITELONG(op,x); } outlen++; } while(0) + + size_t outlen = 0; + int expect = 0; + uint8_t c; + uint32_t v = 0, vmin = 0; + + while (len--) { + c = *str++; + + if (expect) { + if ((c & 0xc0) != 0x80) { + return -1; + } else { + v = (v << 6) | (c & 0x3f); + if (!--expect) { + if (v < vmin || (v >= 0xd800 && v <= 0xdfff)) { + return -1; + } else { + EMIT(v); + } + } + continue; + } + } + + if (c < 0x80) { + EMIT(c); + } else if (c < 0xc0 || c >= 0xfe) { + /* Invalid UTF-8 */ + return -1; + } else if (c < 0xe0) { + v = c & 0x1f; + expect = 1; + vmin = 0x80; + } else if (c < 0xf0) { + v = c & 0x0f; + expect = 2; + vmin = 0x800; + } else if (c < 0xf8) { + v = c & 0x07; + expect = 3; + vmin = 0x10000; + } else if (c < 0xfc) { + v = c & 0x03; + expect = 4; + vmin = 0x200000; + } else { + v = c & 0x01; + expect = 5; + vmin = 0x4000000; + } + } + + return expect ? (size_t)-1 : outlen << 2; + +#undef EMIT +} + +typedef size_t (*transform_func)(uint8_t *, size_t, char *); + +/* + * Apply a specific string transform and return it in a nasm_malloc'd + * buffer, returning the length. On error, returns (size_t)-1 and no + * buffer is allocated. + */ +size_t string_transform(char *str, size_t len, char **out, enum strfunc func) +{ + /* This should match enum strfunc in nasm.h */ + static const transform_func str_transforms[] = { + utf8_to_16le, + utf8_to_32le, + }; + transform_func transform = str_transforms[func]; + size_t outlen; + uint8_t *s = (uint8_t *)str; + char *buf; + + outlen = transform(s, len, NULL); + if (outlen == (size_t)-1) + return -1; + + *out = buf = nasm_malloc(outlen+1); + buf[outlen] = '\0'; /* Forcibly null-terminate the buffer */ + return transform(s, len, buf); +} diff --git a/uppsrc/plugin/ndisasm/lib/sync.c b/uppsrc/plugin/ndisasm/lib/sync.c index e7556f26d..bfd1bbfb8 100644 --- a/uppsrc/plugin/ndisasm/lib/sync.c +++ b/uppsrc/plugin/ndisasm/lib/sync.c @@ -1,18 +1,55 @@ -/* sync.c the Netwide Disassembler synchronisation processing module +/* ----------------------------------------------------------------------- * * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * sync.c the Netwide Disassembler synchronisation processing module */ +#include "compiler.h" + #include #include #include +#include "inttypes.h" +#include "nasmlib.h" #include "sync.h" -#define SYNC_MAX 4096 /* max # of sync points */ +#define SYNC_MAX_SHIFT 31 +#define SYNC_MAX_SIZE (1U << SYNC_MAX_SHIFT) + +/* initial # of sync points (*must* be power of two)*/ +#define SYNC_INITIAL_CHUNK (1U << 12) /* * This lot manages the current set of sync points by means of a @@ -20,93 +57,77 @@ */ static struct Sync { - unsigned long pos; - unsigned long length; + uint32_t pos; + uint32_t length; } *synx; -static int nsynx; + +static uint32_t max_synx, nsynx; + +static inline void swap_sync(uint32_t dst, uint32_t src) +{ + struct Sync t = synx[dst]; + synx[dst] = synx[src]; + synx[src] = t; +} void init_sync(void) { - /* - * I'd like to allocate an array of size SYNC_MAX, then write - * `synx--' which would allow numbering the array from one - * instead of zero without wasting memory. Sadly I don't trust - * this to work in 16-bit Large model, so it's staying the way - * it is. Btw, we don't care about freeing this array, since it - * has to last for the duration of the program and will then be - * auto-freed on exit. And I'm lazy ;-) - * - * Speaking of 16-bit Large model, that's also the reason I'm - * not declaring this array statically - by doing it - * dynamically I avoid problems with the total size of DGROUP - * in Borland C. - */ - synx = malloc((SYNC_MAX+1) * sizeof(*synx)); - if (!synx) { - fprintf(stderr, "ndisasm: not enough memory for sync array\n"); - exit(1); - } + max_synx = SYNC_INITIAL_CHUNK; + synx = nasm_malloc((max_synx + 1) * sizeof(*synx)); nsynx = 0; } -void add_sync(unsigned long pos, unsigned long length) +void add_sync(uint32_t pos, uint32_t length) { - int i; + uint32_t i; - if (nsynx == SYNC_MAX) - return; /* can't do anything - overflow */ + if (nsynx >= max_synx) { + if (max_synx >= SYNC_MAX_SIZE) /* too many sync points! */ + return; + max_synx = (max_synx << 1); + synx = nasm_realloc(synx, (max_synx + 1) * sizeof(*synx)); + } nsynx++; synx[nsynx].pos = pos; synx[nsynx].length = length; for (i = nsynx; i > 1; i /= 2) { - if (synx[i/2].pos > synx[i].pos) { - struct Sync t; - t = synx[i/2]; /* structure copy */ - synx[i/2] = synx[i]; /* structure copy again */ - synx[i] = t; /* another structure copy */ - } + if (synx[i / 2].pos > synx[i].pos) + swap_sync(i / 2, i); } } -unsigned long next_sync(unsigned long position, unsigned long *length) +uint32_t next_sync(uint32_t position, uint32_t *length) { while (nsynx > 0 && synx[1].pos + synx[1].length <= position) { - int i, j; - struct Sync t; - t = synx[nsynx]; /* structure copy */ - synx[nsynx] = synx[1]; /* structure copy */ - synx[1] = t; /* ditto */ + uint32_t i, j; - nsynx--; + swap_sync(nsynx, 1); + nsynx--; i = 1; - while (i*2 <= nsynx) { - j = i*2; - if (synx[j].pos < synx[i].pos && - (j+1 > nsynx || synx[j+1].pos > synx[j].pos)) { - t = synx[j]; /* structure copy */ - synx[j] = synx[i]; /* lots of these... */ - synx[i] = t; /* ...aren't there? */ - i = j; - } else if (j+1 <= nsynx && synx[j+1].pos < synx[i].pos) { - t = synx[j+1]; /* structure copy */ - synx[j+1] = synx[i]; /* structure copy */ - synx[i] = t; /* structure copy */ - i = j+1; - } else - break; - } + while (i * 2 <= nsynx) { + j = i * 2; + if (synx[j].pos < synx[i].pos && + (j + 1 > nsynx || synx[j + 1].pos > synx[j].pos)) { + swap_sync(j, i); + i = j; + } else if (j + 1 <= nsynx && synx[j + 1].pos < synx[i].pos) { + swap_sync(j + 1, i); + i = j + 1; + } else + break; + } } if (nsynx > 0) { - if (length) - *length = synx[1].length; - return synx[1].pos; + if (length) + *length = synx[1].length; + return synx[1].pos; } else { - if (length) - *length = 0L; - return ULONG_MAX; + if (length) + *length = 0L; + return 0; } } diff --git a/uppsrc/plugin/ndisasm/lib/sync.h b/uppsrc/plugin/ndisasm/lib/sync.h index ecb920113..27d8e8b89 100644 --- a/uppsrc/plugin/ndisasm/lib/sync.h +++ b/uppsrc/plugin/ndisasm/lib/sync.h @@ -1,16 +1,45 @@ -/* sync.h header file for sync.c +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. * - * The Netwide Assembler is copyright (C) 1996 Simon Tatham and - * Julian Hall. All rights reserved. The software is - * redistributable under the licence given in the file "Licence" - * distributed in the NASM archive. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * sync.h header file for sync.c */ #ifndef NASM_SYNC_H #define NASM_SYNC_H void init_sync(void); -void add_sync(unsigned long position, unsigned long length); -unsigned long next_sync(unsigned long position, unsigned long *length); +void add_sync(uint32_t position, uint32_t length); +uint32_t next_sync(uint32_t position, uint32_t *length); #endif diff --git a/uppsrc/plugin/ndisasm/lib/tables.h b/uppsrc/plugin/ndisasm/lib/tables.h new file mode 100644 index 000000000..6c34dbc07 --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/tables.h @@ -0,0 +1,69 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 1996-2009 The NASM Authors - All Rights Reserved + * See the file AUTHORS included with the NASM distribution for + * the specific copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND + * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ----------------------------------------------------------------------- */ + +/* + * tables.h + * + * Declarations for auto-generated tables + */ + +#ifndef NASM_TABLES_H +#define NASM_TABLES_H + +#include "compiler.h" +#include "inttypes.h" +#include "insnsi.h" /* For enum opcode */ +#include "opflags.h" /* For opflags_t */ + +/* --- From standard.mac via macros.pl: --- */ + +/* macros.c */ +extern const unsigned char nasm_stdmac[]; +extern const unsigned char * const nasm_stdmac_after_tasm; +const unsigned char *nasm_stdmac_find_package(const char *); + +/* --- From insns.dat via insns.pl: --- */ + +/* insnsn.c */ +extern const char * const nasm_insn_names[]; + +/* --- From regs.dat via regs.pl: --- */ + +/* regs.c */ +extern const char * const nasm_reg_names[]; +/* regflags.c */ +extern const opflags_t nasm_reg_flags[]; +/* regvals.c */ +extern const int nasm_regvals[]; + +#endif /* NASM_TABLES_H */ diff --git a/uppsrc/plugin/ndisasm/lib/tokens.h b/uppsrc/plugin/ndisasm/lib/tokens.h new file mode 100644 index 000000000..a002e56da --- /dev/null +++ b/uppsrc/plugin/ndisasm/lib/tokens.h @@ -0,0 +1,11 @@ +/* + * This file is generated from insns.dat, regs.dat and token.dat + * by tokhash.pl; do not edit. + */ + +#ifndef NASM_TOKENS_H +#define NASM_TOKENS_H + +#define MAX_KEYWORD 16 /* length of longest keyword */ + +#endif /* NASM_TOKENS_H */ diff --git a/uppsrc/plugin/ndisasm/lib/version.h b/uppsrc/plugin/ndisasm/lib/version.h index 6464839d9..519553564 100644 --- a/uppsrc/plugin/ndisasm/lib/version.h +++ b/uppsrc/plugin/ndisasm/lib/version.h @@ -1,9 +1,9 @@ #ifndef NASM_VERSION_H #define NASM_VERSION_H -#define NASM_MAJOR_VER 0 -#define NASM_MINOR_VER 98 -#define NASM_SUBMINOR_VER 38 +#define NASM_MAJOR_VER 2 +#define NASM_MINOR_VER 8 +#define NASM_SUBMINOR_VER 1 #define NASM_PATCHLEVEL_VER 0 -#define NASM_VERSION_ID 0x00622600 -#define NASM_VER "0.98.38" +#define NASM_VERSION_ID 0x02080100 +#define NASM_VER "2.08.01" #endif /* NASM_VERSION_H */ diff --git a/uppsrc/plugin/ndisasm/ndisasm.h b/uppsrc/plugin/ndisasm/ndisasm.h index 464cbc336..94bf9f3c7 100644 --- a/uppsrc/plugin/ndisasm/ndisasm.h +++ b/uppsrc/plugin/ndisasm/ndisasm.h @@ -6,11 +6,8 @@ NAMESPACE_UPP static const int NDISASM_INSN_MAX = 32; // one instruction can't be longer than this static const int NDISASM_OUTBUF_SIZE = 256; // maximum length of disassembly output -#ifdef CPU_32 -int NDisassemble(char *output, const byte *data, long offset); // returns instruction length -#else -int NDisassemble(char *output, const byte *data, int64 offset); // returns instruction length -#endif +int NDisassemble(char *output, const byte *data, long offset, bool x64 = false); // returns instruction length + END_UPP_NAMESPACE #endif diff --git a/uppsrc/plugin/ndisasm/ndisasm.upp b/uppsrc/plugin/ndisasm/ndisasm.upp index db8f97529..1cd4cfeb1 100644 --- a/uppsrc/plugin/ndisasm/ndisasm.upp +++ b/uppsrc/plugin/ndisasm/ndisasm.upp @@ -7,19 +7,31 @@ file ndisasm.h, ndisupp.cpp, lib/ndisasm readonly separator, - lib\disasm.c tabsize 8, - lib\disasm.h, - lib\insns.h, - lib\insnsd.c tabsize 8, - lib\insnsi.h, - lib\nasm.h, - lib\nasmlib.c tabsize 8, - lib\nasmlib.h, - lib\regs.c tabsize 8, - lib\regs.h, - lib\sync.c tabsize 8, - lib\sync.h, - lib\version.h, lib\Authors, - lib\Copying; + lib\compiler.h, + lib\disasm.c, + lib\disasm.h, + lib\exprlib.c, + lib\insns.h, + lib\insnsb.c, + lib\insnsd.c, + lib\insnsi.h, + lib\insnsn.c, + lib\inttypes.h, + lib\LICENSE, + lib\opflags.h, + lib\nasm.h, + lib\nasmlib.c, + lib\nasmlib.h, + lib\README, + lib\regdis.c, + lib\regdis.h, + lib\regs.c, + lib\regs.h, + lib\snprintf.c, + lib\strfunc.c, + lib\sync.c, + lib\sync.h, + lib\version, + lib\version.h; diff --git a/uppsrc/plugin/ndisasm/ndisupp.cpp b/uppsrc/plugin/ndisasm/ndisupp.cpp index 41b963eb3..655e3b423 100644 --- a/uppsrc/plugin/ndisasm/ndisupp.cpp +++ b/uppsrc/plugin/ndisasm/ndisupp.cpp @@ -3,23 +3,21 @@ #include "ndisasm.h" extern "C" { +#include "lib/compiler.h" +#include "lib/inttypes.h" #include "lib/disasm.h" } NAMESPACE_UPP -#ifdef CPU_32 -int NDisassemble(char *output, const byte *data, long offset)// returns instruction length -#else -int NDisassemble(char *output, const byte *data, int64 offset)// returns instruction length -#endif + +int NDisassemble(char *output, const byte *data, long offset, bool x64)// returns instruction length { - unsigned preferences = 0; // see lib/insns.h(84) - long len = (long)disasm(const_cast(data), output, 32, offset, false, preferences); + int len = disasm(const_cast(data), output, 256, x64 ? 64 : 32, offset, false, 0); if(len <= 0) { - eatbyte(const_cast(data), output); + eatbyte(const_cast(data), output, 256, x64 ? 64 : 32); len = 1; } - return (int)len; + return len; } #ifdef flagMAIN