diff --git a/bin/README b/bin/README deleted file mode 100644 index 97ae4ef7a..000000000 --- a/bin/README +++ /dev/null @@ -1,302 +0,0 @@ -/* - * Copyright 2009 The Closure Compiler Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// -// Contents -// - -The Closure Compiler performs checking, instrumentation, and -optimizations on JavaScript code. The purpose of this README is to -explain how to build and run the Closure Compiler. - -The Closure Compiler requires Java 7 or higher. -http://www.java.com/ - - -// -// Building The Closure Compiler -// - -There are three ways to get a Closure Compiler executable. - -1) Use one we built for you. - -Pre-built Closure binaries can be found at -http://code.google.com/p/closure-compiler/downloads/list - - -2) Check out the source and build it with Apache Ant. - -First, check out the full source tree of the Closure Compiler. There -are instructions on how to do this at the project site. -http://code.google.com/p/closure-compiler/source/checkout - -Apache Ant is a cross-platform build tool. -http://ant.apache.org/ - -At the root of the source tree, there is an Ant file named -build.xml. To use it, navigate to the same directory and type the -command - -ant jar - -This will produce a jar file called "build/compiler.jar". - - -3) Check out the source and build it with Eclipse. - -Eclipse is a cross-platform IDE. -http://www.eclipse.org/ - -Under Eclipse's File menu, click "New > Project ..." and create a -"Java Project." You will see an options screen. Give the project a -name, select "Create project from existing source," and choose the -root of the checked-out source tree as the existing directory. Verify -that you are using JRE version 7 or higher. - -Eclipse can use the build.xml file to discover rules. When you -navigate to the build.xml file, you will see all the build rules in -the "Outline" pane. Run the "jar" rule to build the compiler in -build/compiler.jar. - - -// -// Running The Closure Compiler -// - -Once you have the jar binary, running the Closure Compiler is straightforward. - -On the command line, type - -java -jar compiler.jar - -This starts the compiler in interactive mode. Type - -var x = 17 + 25; - -then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux) -and "Enter" again. The Compiler will respond: - -var x=42; - -The Closure Compiler has many options for reading input from a file, -writing output to a file, checking your code, and running -optimizations. To learn more, type - -java -jar compiler.jar --help - -You can read more detailed documentation about the many flags at -http://code.google.com/closure/compiler/docs/gettingstarted_app.html - - -// -// Compiling Multiple Scripts -// - -If you have multiple scripts, you should compile them all together with -one compile command. - -java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js - -The Closure Compiler will concatenate the files in the order they're -passed at the command line. - -If you need to compile many, many scripts together, you may start to -run into problems with managing dependencies between scripts. You -should check out the Closure Library. It contains functions for -enforcing dependencies between scripts, and a tool called calcdeps.py -that knows how to give scripts to the Closure Compiler in the right -order. - -http://code.google.com/p/closure-library/ - -// -// Licensing -// - -Unless otherwise stated, all source files are licensed under -the Apache License, Version 2.0. - - ------ -Code under: -src/com/google/javascript/rhino -test/com/google/javascript/rhino - -URL: http://www.mozilla.org/rhino -Version: 1.5R3, with heavy modifications -License: Netscape Public License and MPL / GPL dual license - -Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an -implementation of JavaScript for the JVM. The JavaScript parser and -the parse tree data structures were extracted and modified -significantly for use by Google's JavaScript compiler. - -Local Modifications: The packages have been renamespaced. All code not -relevant to parsing has been removed. A JsDoc parser and static typing -system have been added. - - ------ -Code in: -lib/rhino - -Rhino -URL: http://www.mozilla.org/rhino -Version: Trunk -License: Netscape Public License and MPL / GPL dual license - -Description: Mozilla Rhino is an implementation of JavaScript for the JVM. - -Local Modifications: Minor changes to parsing JSDoc that usually get pushed -up-stream to Rhino trunk. - - ------ -Code in: -lib/args4j.jar - -Args4j -URL: https://args4j.dev.java.net/ -Version: 2.0.16 -License: MIT - -Description: -args4j is a small Java class library that makes it easy to parse command line -options/arguments in your CUI application. - -Local Modifications: None. - - ------ -Code in: -lib/guava.jar - -Guava Libraries -URL: http://code.google.com/p/guava-libraries/ -Version: 15.0 -License: Apache License 2.0 - -Description: Google's core Java libraries. - -Local Modifications: None. - - ------ -Code in: -lib/jsr305.jar - -Annotations for software defect detection -URL: http://code.google.com/p/jsr-305/ -Version: svn revision 47 -License: BSD License - -Description: Annotations for software defect detection. - -Local Modifications: None. - - ------ -Code in: -lib/jarjar.jar - -Jar Jar Links -URL: http://jarjar.googlecode.com/ -Version: 1.1 -License: Apache License 2.0 - -Description: -A utility for repackaging Java libraries. - -Local Modifications: None. - - ----- -Code in: -lib/junit.jar - -JUnit -URL: http://sourceforge.net/projects/junit/ -Version: 4.10 -License: Common Public License 1.0 - -Description: A framework for writing and running automated tests in Java. - -Local Modifications: None. - - ---- -Code in: -lib/protobuf-java.jar - -Protocol Buffers -URL: http://code.google.com/p/protobuf/ -Version: 2.4.1 -License: New BSD License - -Description: Supporting libraries for protocol buffers, -an encoding of structured data. - -Local Modifications: None - - ---- -Code in: -lib/ant.jar -lib/ant-launcher.jar - -URL: http://ant.apache.org/bindownload.cgi -Version: 1.8.1 -License: Apache License 2.0 -Description: - Ant is a Java based build tool. In theory it is kind of like "make" - without make's wrinkles and with the full portability of pure java code. - -Local Modifications: None - - ---- -Code in: -lib/json.jar -URL: http://json.org/java/index.html -Version: JSON version 20090211 -License: MIT license -Description: -JSON is a set of java files for use in transmitting data in JSON format. - -Local Modifications: None - ---- -Code in -lib/mockito-core.jar -URL: https://code.google.com/p/mockito -Version: 1.9.5 -License: MIT license -Description: -Mockito is an open source testing framework for Java. The framework allows the creation of Test Double objects (called "Mock Objects") in automated unit tests for the purpose of Test-driven Development (TDD) or Behavior Driven Development (BDD). - -Local Modifications: None - ---- -Code in -lib/objenesis.jar -URL: http://objenesis.org -Version: 1.2 -License: Apache 2.0 license -Description: -Depended by lib/mockito-core.jar, not used directly. - -Local Modifications: None diff --git a/bin/compiler.jar b/bin/compiler.jar index 67aa45afc..a297dc0f1 100644 Binary files a/bin/compiler.jar and b/bin/compiler.jar differ diff --git a/modules/pcjs/bin/x86gen.js b/modules/pcjs/bin/x86gen.js index ea99d742c..6ffb89075 100644 --- a/modules/pcjs/bin/x86gen.js +++ b/modules/pcjs/bin/x86gen.js @@ -59,6 +59,8 @@ try { var aDst = ["Mem", "Reg"]; var aSize = ["Byte", "Word"]; +var aOpPrefix = ["B", "W"]; +var aAddrPrefix = ["", "32"]; var aDisp = ["8", "16"]; /* @@ -71,7 +73,6 @@ var aREG = [ var w, sError = ""; var fGenMods = true; -var fGenTables = true; var sEAFuncs = ""; if (!fGenMods) { @@ -182,10 +183,6 @@ if (!fGenMods) { cOps++; } } - - if (fGenTables) print(" this.aOpCodeFuncs = ["); - if (fGenTables) print(sOps); - if (fGenTables) print(" ];"); } else { @@ -195,80 +192,76 @@ else { var aMOD = ["mem", "mem+d8", "mem+d16", "reg"]; /* - * Index aRM like so: aRM[mod][w][r_m], forcing w to 0 unless mod is 3 + * Index aRM like so: aRM[a][mod][w][r_m], forcing w to 0 unless mod is 3 */ var aRM = [ - [["BX+SI", "BX+DI", "BP+SI", "BP+DI", "SI", "DI", "d16", "BX"], []], - [["BX+SI+d8", "BX+DI+d8", "BP+SI+d8", "BP+DI+d8", "SI+d8", "DI+d8", "BP+d8", "BX+d8"], []], - [["BX+SI+d16", "BX+DI+d16", "BP+SI+d16", "BP+DI+d16", "SI+d16", "DI+d16", "BP+d16", "BX+d16"], []], - [["AL", "CL", "DL", "BL", "AH", "CH", "DH", "BH"], ["AX", "CX", "DX", "BX", "SP", "BP", "SI", "DI"]] + [ + [["BX+SI", "BX+DI", "BP+SI", "BP+DI", "SI", "DI", "d16", "BX"], []], + [["BX+SI+d8", "BX+DI+d8", "BP+SI+d8", "BP+DI+d8", "SI+d8", "DI+d8", "BP+d8", "BX+d8"], []], + [["BX+SI+d16", "BX+DI+d16", "BP+SI+d16", "BP+DI+d16", "SI+d16", "DI+d16", "BP+d16", "BX+d16"], []], + [["AL", "CL", "DL", "BL", "AH", "CH", "DH", "BH"], ["AX", "CX", "DX", "BX", "SP", "BP", "SI", "DI"]] + ],[ + [["EAX", "ECX", "EDX", "EBX", "sib", "d32", "ESI", "EDI"], []], + [["EAX+d8", "ECX+d8", "EDX+d8", "EBX+d8", "sib+d8", "EBP+d8", "ESI+d8", "EDI+d8"], []], + [["EAX+d32", "ECX+d32", "EDX+d32", "EBX+d32", "sib+d32", "EBP+d32", "ESI+d32", "EDI+d32"], []], + [["AL", "CL", "DL", "BL", "AH", "CH", "DH", "BH"], ["EAX", "ECX", "EDX", "EBX", "ESP", "EBP", "ESI", "EDI"]] + ] ]; var cOpMods, mrm; var sOpMods, sOpMod, sContainer; print('"use strict";\n'); - print("var X86Mods = {};\n"); + print("var X86ModB = {};"); + print("var X86ModW = {};"); + print("var X86ModB32 = {};"); + print("var X86ModW32 = {};\n"); - for (var d = 0; d <= 1 && !sError; d++) { + for (var a = 0; a <= 1 && !sError; a++) { for (w = 0; w <= 1 && !sError; w++) { + for (var d = 1; d >= 0 && !sError; d--) { + + cOpMods = 0; + sOpMods = ""; + sContainer = "X86Mod" + aOpPrefix[w] + aAddrPrefix[a] + ".aOpMod" + aDst[d]; + + print(sContainer + " = ["); + for (mrm = 0x00; mrm <= 0xff && !sError; mrm++) { + sOpMod = genMode(a, d, w, mrm); + if (sOpMod) { + if (sOpMods) sOpMods += ((cOpMods % 4)? ", " : ",\n"); + sOpMods += " " + sContainer + "." + sOpMod; + cOpMods++; + } + } + print("];\n"); + } + cOpMods = 0; sOpMods = ""; + sContainer = "X86Mod" + aOpPrefix[w] + aAddrPrefix[a] + ".aOpModGrp"; - sContainer = "X86Mods"; // + aDst[d].substr(0, 1) + aSize[w].substr(0, 1); - - if (fGenTables) print(sContainer + " = {"); - + print(sContainer + " = ["); for (mrm = 0x00; mrm <= 0xff && !sError; mrm++) { - sOpMod = genMode(d, w, mrm); + sOpMod = genMode(a, 0, w, mrm, "Grp"); if (sOpMod) { if (sOpMods) sOpMods += ((cOpMods % 4)? ", " : ",\n"); sOpMods += " " + sContainer + "." + sOpMod; cOpMods++; } } - - if (fGenTables) print("};\n"); - - if (fGenTables) print("X86Mods.aOpMod" + aDst[d] + aSize[w] + " = ["); - if (fGenTables) print(sOpMods); - if (fGenTables) print("];\n"); + print("];\n"); } } - for (w = 0; w <= 1 && !sError; w++) { - - cOpMods = 0; - sOpMods = ""; - - sContainer = "X86Mods"; // + "G" + aSize[w].substr(0, 1); - - if (fGenTables) print(sContainer + " = {"); - - for (mrm = 0x00; mrm <= 0xff && !sError; mrm++) { - sOpMod = genMode(0, w, mrm, "Grp"); - if (sOpMod) { - if (sOpMods) sOpMods += ((cOpMods % 4)? ", " : ",\n"); - sOpMods += " " + sContainer + "." + sOpMod; - cOpMods++; - } - } - - if (fGenTables) print("};\n"); - - if (fGenTables) print("X86Mods.aOpMod" + "Grp" + aSize[w] + " = ["); - if (fGenTables) print(sOpMods); - if (fGenTables) print("];\n"); - } - if (sEAFuncs) { print("var X86Mods = {\n" + sEAFuncs + "};\n"); } } -function genMode(d, w, mrm, sGroup, sRO) { +function genMode(a, d, w, mrm, sGroup, sRO) { var mod = (mrm >> 6); var reg = (mrm >> 3) & 0x7; var r_m = (mrm & 0x7); @@ -331,49 +324,49 @@ function genMode(d, w, mrm, sGroup, sRO) { switch (reg) { case 0: sRegGet = "this.regEAX & this.opMask"; - sRegSet = "this.regEAX = (this.regEAX & this.opMaskClear) | "; + sRegSet = "this.regEAX = (this.regEAX & ~this.opMask) | "; sRegBTLo = "this.backTrack.btiAL"; sRegBTHi = "this.backTrack.btiAH"; break; case 1: sRegGet = "this.regECX & this.opMask"; - sRegSet = "this.regECX = (this.regECX & this.opMaskClear) | "; + sRegSet = "this.regECX = (this.regECX & ~this.opMask) | "; sRegBTLo = "this.backTrack.btiCL"; sRegBTHi = "this.backTrack.btiCH"; break; case 2: sRegGet = "this.regEDX & this.opMask"; - sRegSet = "this.regEDX = (this.regEDX & this.opMaskClear) | "; + sRegSet = "this.regEDX = (this.regEDX & ~this.opMask) | "; sRegBTLo = "this.backTrack.btiDL"; sRegBTHi = "this.backTrack.btiDH"; break; case 3: sRegGet = "this.regEBX & this.opMask"; - sRegSet = "this.regEBX = (this.regEBX & this.opMaskClear) | "; + sRegSet = "this.regEBX = (this.regEBX & ~this.opMask) | "; sRegBTLo = "this.backTrack.btiBL"; sRegBTHi = "this.backTrack.btiBH"; break; case 4: sRegGet = "this.regESP & this.opMask"; - sRegSet = "this.regESP = (this.regESP & this.opMaskClear) | "; + sRegSet = "this.regESP = (this.regESP & ~this.opMask) | "; sRegBTLo = "X86.BACKTRACK.SP_LO"; sRegBTHi = "X86.BACKTRACK.SP_HI"; break; case 5: sRegGet = "this.regEBP & this.opMask"; - sRegSet = "this.regEBP = (this.regEBP & this.opMaskClear) | "; + sRegSet = "this.regEBP = (this.regEBP & ~this.opMask) | "; sRegBTLo = "this.backTrack.btiBPLo"; sRegBTHi = "this.backTrack.btiBPHi"; break; case 6: sRegGet = "this.regESI & this.opMask"; - sRegSet = "this.regESI = (this.regESI & this.opMaskClear) | "; + sRegSet = "this.regESI = (this.regESI & ~this.opMask) | "; sRegBTLo = "this.backTrack.btiSILo"; sRegBTHi = "this.backTrack.btiSIHi"; break; case 7: sRegGet = "this.regEDI & this.opMask"; - sRegSet = "this.regEDI = (this.regEDI & this.opMaskClear) | "; + sRegSet = "this.regEDI = (this.regEDI & ~this.opMask) | "; sRegBTLo = "this.backTrack.btiDILo"; sRegBTHi = "this.backTrack.btiDIHi"; break; @@ -398,267 +391,525 @@ function genMode(d, w, mrm, sGroup, sRO) { var sModRegSetBegin = "", sModRegSetEnd = ""; var sModRegBTLo = null, sModRegBTHi = null; var sModRegSeg = "this.segData"; - switch (mod) { - case 0: - switch (r_m) { + + if (!a) { + switch (mod) { case 0: - sModAddr = "this.regEBX + this.regESI"; - sModFunc = "BXSI"; - nCycles = "this.CYCLES.nEACyclesBaseIndex"; // 8086: 7 - break; - case 1: - sModAddr = "this.regEBX + this.regEDI"; - sModFunc = "BXDI"; - nCycles = "this.CYCLES.nEACyclesBaseIndexExtra"; // 8086: 8 - break; - case 2: - sModAddr = "this.regEBP + this.regESI"; - sModFunc = "BPSI"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseIndexExtra"; // 8086: 8 - break; - case 3: - sModAddr = "this.regEBP + this.regEDI"; - sModFunc = "BPDI"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseIndex"; // 8086: 7 - break; - case 4: - sModAddr = "this.regESI"; - sModFunc = "SI"; - nCycles = "this.CYCLES.nEACyclesBase"; // 8086: 5 - break; - case 5: - sModAddr = "this.regEDI"; - sModFunc = "DI"; - nCycles = "this.CYCLES.nEACyclesBase"; // 8086: 5 - break; - case 6: - sModAddr = "this.getIPWord()"; - sModFunc = "D16"; - nCycles = "this.CYCLES.nEACyclesDisp"; // 8086: 6 - break; - case 7: - sModAddr = "this.regEBX"; - sModFunc = "BX"; - nCycles = "this.CYCLES.nEACyclesBase"; // 8086: 5 - break; - default: - sError = "unrecognized mod=0 r/m: " + r_m; - break; - } - break; - case 1: - switch (r_m) { - case 0: - sModAddr = "this.regEBX + this.regESI + this.getIPDisp()"; - sModFunc = "BXSID8"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 - break; - case 1: - sModAddr = "this.regEBX + this.regEDI + this.getIPDisp()"; - sModFunc = "BXDID8"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 - break; - case 2: - sModAddr = "this.regEBP + this.regESI + this.getIPDisp()"; - sModFunc = "BPSID8"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 - break; - case 3: - sModAddr = "this.regEBP + this.regEDI + this.getIPDisp()"; - sModFunc = "BPDID8"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 - break; - case 4: - sModAddr = "this.regESI + this.getIPDisp()"; - sModFunc = "SID8"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - case 5: - sModAddr = "this.regEDI + this.getIPDisp()"; - sModFunc = "DID8"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - case 6: - sModAddr = "this.regEBP + this.getIPDisp()"; - sModFunc = "BPD8"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - case 7: - sModAddr = "this.regEBX + this.getIPDisp()"; - sModFunc = "BXD8"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - default: - sError = "unrecognized mod=1 r/m: " + r_m; - break; - } - break; - case 2: - switch (r_m) { - case 0: - sModAddr = "this.regEBX + this.regESI + this.getIPWord()"; - sModFunc = "BXSID16"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 - break; - case 1: - sModAddr = "this.regEBX + this.regEDI + this.getIPWord()"; - sModFunc = "BXDID16"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 - break; - case 2: - sModAddr = "this.regEBP + this.regESI + this.getIPWord()"; - sModFunc = "BPSID16"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 - break; - case 3: - sModAddr = "this.regEBP + this.regEDI + this.getIPWord()"; - sModFunc = "BPDID16"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 - break; - case 4: - sModAddr = "this.regESI + this.getIPWord()"; - sModFunc = "SID16"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - case 5: - sModAddr = "this.regEDI + this.getIPWord()"; - sModFunc = "DID16"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - case 6: - sModAddr = "this.regEBP + this.getIPWord()"; - sModFunc = "BPD16"; - sModRegSeg = "this.segStack"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - case 7: - sModAddr = "this.regEBX + this.getIPWord()"; - sModFunc = "BXD16"; - nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 - break; - default: - sError = "unrecognized mod=2 r/m: " + r_m; - break; - } - break; - case 3: - if (!w) { switch (r_m) { case 0: - sModRegGet = "this.regEAX & 0xff"; - sModRegSet = "this.regEAX = (this.regEAX & ~0xff) | "; - sModRegBTLo = "this.backTrack.btiAL"; + sModAddr = "this.regEBX + this.regESI"; + sModFunc = "BXSI"; + nCycles = "this.CYCLES.nEACyclesBaseIndex"; // 8086: 7 break; case 1: - sModRegGet = "this.regECX & 0xff"; - sModRegSet = "this.regECX = (this.regECX & ~0xff) | "; - sModRegBTLo = "this.backTrack.btiCL"; + sModAddr = "this.regEBX + this.regEDI"; + sModFunc = "BXDI"; + nCycles = "this.CYCLES.nEACyclesBaseIndexExtra"; // 8086: 8 break; case 2: - sModRegGet = "this.regEDX & 0xff"; - sModRegSet = "this.regEDX = (this.regEDX & ~0xff) | "; - sModRegBTLo = "this.backTrack.btiDL"; + sModAddr = "this.regEBP + this.regESI"; + sModFunc = "BPSI"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseIndexExtra"; // 8086: 8 break; case 3: - sModRegGet = "this.regEBX & 0xff"; - sModRegSet = "this.regEBX = (this.regEBX & ~0xff) | "; - sModRegBTLo = "this.backTrack.btiBL"; + sModAddr = "this.regEBP + this.regEDI"; + sModFunc = "BPDI"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseIndex"; // 8086: 7 break; case 4: - sModRegGet = "(this.regEAX >> 8) & 0xff"; - sModRegSet = "this.regEAX = (this.regEAX & ~0xff00) | "; - sModRegSetEnd = " << 8"; - sModRegBTLo = "this.backTrack.btiAH"; + sModAddr = "this.regESI"; + sModFunc = "SI"; + nCycles = "this.CYCLES.nEACyclesBase"; // 8086: 5 break; case 5: - sModRegGet = "(this.regECX >> 8) & 0xff"; - sModRegSet = "this.regECX = (this.regECX & ~0xff00) | "; - sModRegSetEnd = " << 8"; - sModRegBTLo = "this.backTrack.btiCH"; + sModAddr = "this.regEDI"; + sModFunc = "DI"; + nCycles = "this.CYCLES.nEACyclesBase"; // 8086: 5 break; case 6: - sModRegGet = "(this.regEDX >> 8) & 0xff"; - sModRegSet = "this.regEDX = (this.regEDX & ~0xff00) | "; - sModRegSetEnd = " << 8"; - sModRegBTLo = "this.backTrack.btiDH"; + sModAddr = "this.getIPWord()"; + sModFunc = "D16"; + nCycles = "this.CYCLES.nEACyclesDisp"; // 8086: 6 break; case 7: - sModRegGet = "(this.regEBX >> 8) & 0xff"; - sModRegSet = "this.regEBX = (this.regEBX & ~0xff00) | "; - sModRegSetEnd = " << 8"; - sModRegBTLo = "this.backTrack.btiBH"; + sModAddr = "this.regEBX"; + sModFunc = "BX"; + nCycles = "this.CYCLES.nEACyclesBase"; // 8086: 5 break; default: - sError = "unrecognized w=0 mod=3 r/m: " + r_m; + sError = "unrecognized mod=0 r/m: " + r_m; break; } - } - else { + break; + case 1: switch (r_m) { case 0: - sModRegGet = "this.regEAX & this.opMask"; - sModRegSet = "this.regEAX = (this.regEAX & this.opMaskClear) | "; - sModRegBTLo = "this.backTrack.btiAL"; - sModRegBTHi = "this.backTrack.btiAH"; + sModAddr = "this.regEBX + this.regESI + this.getIPDisp()"; + sModFunc = "BXSID8"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 break; case 1: - sModRegGet = "this.regECX & this.opMask"; - sModRegSet = "this.regECX = (this.regECX & this.opMaskClear) | "; - sModRegBTLo = "this.backTrack.btiCL"; - sModRegBTHi = "this.backTrack.btiCH"; + sModAddr = "this.regEBX + this.regEDI + this.getIPDisp()"; + sModFunc = "BXDID8"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 break; case 2: - sModRegGet = "this.regEDX & this.opMask"; - sModRegSet = "this.regEDX = (this.regEDX & this.opMaskClear) | "; - sModRegBTLo = "this.backTrack.btiDL"; - sModRegBTHi = "this.backTrack.btiDH"; + sModAddr = "this.regEBP + this.regESI + this.getIPDisp()"; + sModFunc = "BPSID8"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 break; case 3: - sModRegGet = "this.regEBX & this.opMask"; - sModRegSet = "this.regEBX = (this.regEBX & this.opMaskClear) | "; - sModRegBTLo = "this.backTrack.btiBL"; - sModRegBTHi = "this.backTrack.btiBH"; + sModAddr = "this.regEBP + this.regEDI + this.getIPDisp()"; + sModFunc = "BPDID8"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 break; case 4: - sModRegGet = "this.regESP & this.opMask"; - sModRegSet = "this.regESP = (this.regESP & this.opMaskClear) | "; - sModRegBTLo = "X86.BACKTRACK.SP_LO"; - sModRegBTHi = "X86.BACKTRACK.SP_HI"; + sModAddr = "this.regESI + this.getIPDisp()"; + sModFunc = "SID8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 break; case 5: - sModRegGet = "this.regEBP & this.opMask"; - sModRegSet = "this.regEBP = (this.regEBP & this.opMaskClear) | "; - sModRegBTLo = "this.backTrack.btiBPLo"; - sModRegBTHi = "this.backTrack.btiBPHi"; + sModAddr = "this.regEDI + this.getIPDisp()"; + sModFunc = "DID8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 break; case 6: - sModRegGet = "this.regESI & this.opMask"; - sModRegSet = "this.regESI = (this.regESI & this.opMaskClear) | "; - sModRegBTLo = "this.backTrack.btiSILo"; - sModRegBTHi = "this.backTrack.btiSIHi"; + sModAddr = "this.regEBP + this.getIPDisp()"; + sModFunc = "BPD8"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 break; case 7: - sModRegGet = "this.regEDI & this.opMask"; - sModRegSet = "this.regEDI = (this.regEDI & this.opMaskClear) | "; - sModRegBTLo = "this.backTrack.btiDILo"; - sModRegBTHi = "this.backTrack.btiDIHi"; + sModAddr = "this.regEBX + this.getIPDisp()"; + sModFunc = "BXD8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 break; default: - sError = "unrecognized w=1 mod=3 r/m: " + r_m; + sError = "unrecognized mod=1 r/m: " + r_m; break; } + break; + case 2: + switch (r_m) { + case 0: + sModAddr = "this.regEBX + this.regESI + this.getIPWord()"; + sModFunc = "BXSID16"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 + break; + case 1: + sModAddr = "this.regEBX + this.regEDI + this.getIPWord()"; + sModFunc = "BXDID16"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 + break; + case 2: + sModAddr = "this.regEBP + this.regESI + this.getIPWord()"; + sModFunc = "BPSID16"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDispExtra"; // 8086: 12 + break; + case 3: + sModAddr = "this.regEBP + this.regEDI + this.getIPWord()"; + sModFunc = "BPDID16"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseIndexDisp"; // 8086: 11 + break; + case 4: + sModAddr = "this.regESI + this.getIPWord()"; + sModFunc = "SID16"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 + break; + case 5: + sModAddr = "this.regEDI + this.getIPWord()"; + sModFunc = "DID16"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 + break; + case 6: + sModAddr = "this.regEBP + this.getIPWord()"; + sModFunc = "BPD16"; + sModRegSeg = "this.segStack"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 + break; + case 7: + sModAddr = "this.regEBX + this.getIPWord()"; + sModFunc = "BXD16"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; // 8086: 9 + break; + default: + sError = "unrecognized mod=2 r/m: " + r_m; + break; + } + break; + case 3: + if (!w) { + switch (r_m) { + case 0: + sModRegGet = "this.regEAX & 0xff"; + sModRegSet = "this.regEAX = (this.regEAX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiAL"; + break; + case 1: + sModRegGet = "this.regECX & 0xff"; + sModRegSet = "this.regECX = (this.regECX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiCL"; + break; + case 2: + sModRegGet = "this.regEDX & 0xff"; + sModRegSet = "this.regEDX = (this.regEDX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiDL"; + break; + case 3: + sModRegGet = "this.regEBX & 0xff"; + sModRegSet = "this.regEBX = (this.regEBX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiBL"; + break; + case 4: + sModRegGet = "(this.regEAX >> 8) & 0xff"; + sModRegSet = "this.regEAX = (this.regEAX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiAH"; + break; + case 5: + sModRegGet = "(this.regECX >> 8) & 0xff"; + sModRegSet = "this.regECX = (this.regECX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiCH"; + break; + case 6: + sModRegGet = "(this.regEDX >> 8) & 0xff"; + sModRegSet = "this.regEDX = (this.regEDX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiDH"; + break; + case 7: + sModRegGet = "(this.regEBX >> 8) & 0xff"; + sModRegSet = "this.regEBX = (this.regEBX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiBH"; + break; + default: + sError = "unrecognized w=0 mod=3 r/m: " + r_m; + break; + } + } + else { + switch (r_m) { + case 0: + sModRegGet = "this.regEAX & this.opMask"; + sModRegSet = "this.regEAX = (this.regEAX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiAL"; + sModRegBTHi = "this.backTrack.btiAH"; + break; + case 1: + sModRegGet = "this.regECX & this.opMask"; + sModRegSet = "this.regECX = (this.regECX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiCL"; + sModRegBTHi = "this.backTrack.btiCH"; + break; + case 2: + sModRegGet = "this.regEDX & this.opMask"; + sModRegSet = "this.regEDX = (this.regEDX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiDL"; + sModRegBTHi = "this.backTrack.btiDH"; + break; + case 3: + sModRegGet = "this.regEBX & this.opMask"; + sModRegSet = "this.regEBX = (this.regEBX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiBL"; + sModRegBTHi = "this.backTrack.btiBH"; + break; + case 4: + sModRegGet = "this.regESP & this.opMask"; + sModRegSet = "this.regESP = (this.regESP & ~this.opMask) | "; + sModRegBTLo = "X86.BACKTRACK.SP_LO"; + sModRegBTHi = "X86.BACKTRACK.SP_HI"; + break; + case 5: + sModRegGet = "this.regEBP & this.opMask"; + sModRegSet = "this.regEBP = (this.regEBP & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiBPLo"; + sModRegBTHi = "this.backTrack.btiBPHi"; + break; + case 6: + sModRegGet = "this.regESI & this.opMask"; + sModRegSet = "this.regESI = (this.regESI & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiSILo"; + sModRegBTHi = "this.backTrack.btiSIHi"; + break; + case 7: + sModRegGet = "this.regEDI & this.opMask"; + sModRegSet = "this.regEDI = (this.regEDI & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiDILo"; + sModRegBTHi = "this.backTrack.btiDIHi"; + break; + default: + sError = "unrecognized w=1 mod=3 r/m: " + r_m; + break; + } + } + break; + default: + sError = "unrecognized mod: " + mod; + break; + } + } else { + switch (mod) { + case 0: + switch (r_m) { + case 0: + sModAddr = "this.regEAX"; + sModFunc = "EAX"; + nCycles = "this.CYCLES.nEACyclesBase"; + break; + case 1: + sModAddr = "this.regECX"; + sModFunc = "ECX"; + nCycles = "this.CYCLES.nEACyclesBase"; + break; + case 2: + sModAddr = "this.regEDX"; + sModFunc = "EDX"; + nCycles = "this.CYCLES.nEACyclesBase"; + break; + case 3: + sModAddr = "this.regEBX"; + sModFunc = "EBX"; + nCycles = "this.CYCLES.nEACyclesBase"; + break; + case 4: + sModAddr = "this.getSIB()"; + sModFunc = "SIB"; + nCycles = "this.CYCLES.nEACyclesBase"; + break; + case 5: + sModAddr = "this.getIPWord()"; + sModFunc = "D32"; + nCycles = "this.CYCLES.nEACyclesDisp"; + break; + case 6: + sModAddr = "this.regESI"; + sModFunc = "ESI"; + nCycles = "this.CYCLES.nEACyclesBase"; + break; + case 7: + sModAddr = "this.regEDI"; + sModFunc = "EDI"; + nCycles = "this.CYCLES.nEACyclesBase"; + break; + default: + sError = "unrecognized mod=0 r/m: " + r_m; + break; + } + break; + case 1: + switch (r_m) { + case 0: + sModAddr = "this.regEAX + this.getIPDisp()"; + sModFunc = "EAXD8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 1: + sModAddr = "this.regECX + this.getIPDisp()"; + sModFunc = "ECXD8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 2: + sModAddr = "this.regEDX + this.getIPDisp()"; + sModFunc = "EDXD8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 3: + sModAddr = "this.regEBX + this.getIPDisp()"; + sModFunc = "EBXD8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 4: + sModAddr = "this.getSIB() + this.getIPDisp()"; + sModFunc = "SIBD8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 5: + sModAddr = "this.regEBP + this.getIPDisp()"; + sModFunc = "EBPD8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 6: + sModAddr = "this.regESI + this.getIPDisp()"; + sModFunc = "ESID8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 7: + sModAddr = "this.regEDI + this.getIPDisp()"; + sModFunc = "EDID8"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + default: + sError = "unrecognized mod=1 r/m: " + r_m; + break; + } + break; + case 2: + switch (r_m) { + case 0: + sModAddr = "this.regEAX + this.getIPWord()"; + sModFunc = "EAXD32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 1: + sModAddr = "this.regECX + this.getIPWord()"; + sModFunc = "ECXD32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 2: + sModAddr = "this.regEDX + this.getIPWord()"; + sModFunc = "EDXD32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 3: + sModAddr = "this.regEBX + this.getIPWord()"; + sModFunc = "EBXD32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 4: + sModAddr = "this.getSIB() + this.getIPWord()"; + sModFunc = "SIBD32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 5: + sModAddr = "this.regEBP + this.getIPWord()"; + sModFunc = "EBPD32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 6: + sModAddr = "this.regESI + this.getIPWord()"; + sModFunc = "ESID32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + case 7: + sModAddr = "this.regEDI + this.getIPWord()"; + sModFunc = "EDID32"; + nCycles = "this.CYCLES.nEACyclesBaseDisp"; + break; + default: + sError = "unrecognized mod=2 r/m: " + r_m; + break; + } + break; + case 3: + if (!w) { + switch (r_m) { + case 0: + sModRegGet = "this.regEAX & 0xff"; + sModRegSet = "this.regEAX = (this.regEAX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiAL"; + break; + case 1: + sModRegGet = "this.regECX & 0xff"; + sModRegSet = "this.regECX = (this.regECX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiCL"; + break; + case 2: + sModRegGet = "this.regEDX & 0xff"; + sModRegSet = "this.regEDX = (this.regEDX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiDL"; + break; + case 3: + sModRegGet = "this.regEBX & 0xff"; + sModRegSet = "this.regEBX = (this.regEBX & ~0xff) | "; + sModRegBTLo = "this.backTrack.btiBL"; + break; + case 4: + sModRegGet = "(this.regEAX >> 8) & 0xff"; + sModRegSet = "this.regEAX = (this.regEAX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiAH"; + break; + case 5: + sModRegGet = "(this.regECX >> 8) & 0xff"; + sModRegSet = "this.regECX = (this.regECX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiCH"; + break; + case 6: + sModRegGet = "(this.regEDX >> 8) & 0xff"; + sModRegSet = "this.regEDX = (this.regEDX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiDH"; + break; + case 7: + sModRegGet = "(this.regEBX >> 8) & 0xff"; + sModRegSet = "this.regEBX = (this.regEBX & ~0xff00) | "; + sModRegSetEnd = " << 8"; + sModRegBTLo = "this.backTrack.btiBH"; + break; + default: + sError = "unrecognized w=0 mod=3 r/m: " + r_m; + break; + } + } + else { + switch (r_m) { + case 0: + sModRegGet = "this.regEAX & this.opMask"; + sModRegSet = "this.regEAX = (this.regEAX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiAL"; + sModRegBTHi = "this.backTrack.btiAH"; + break; + case 1: + sModRegGet = "this.regECX & this.opMask"; + sModRegSet = "this.regECX = (this.regECX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiCL"; + sModRegBTHi = "this.backTrack.btiCH"; + break; + case 2: + sModRegGet = "this.regEDX & this.opMask"; + sModRegSet = "this.regEDX = (this.regEDX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiDL"; + sModRegBTHi = "this.backTrack.btiDH"; + break; + case 3: + sModRegGet = "this.regEBX & this.opMask"; + sModRegSet = "this.regEBX = (this.regEBX & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiBL"; + sModRegBTHi = "this.backTrack.btiBH"; + break; + case 4: + sModRegGet = "this.regESP & this.opMask"; + sModRegSet = "this.regESP = (this.regESP & ~this.opMask) | "; + sModRegBTLo = "X86.BACKTRACK.SP_LO"; + sModRegBTHi = "X86.BACKTRACK.SP_HI"; + break; + case 5: + sModRegGet = "this.regEBP & this.opMask"; + sModRegSet = "this.regEBP = (this.regEBP & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiBPLo"; + sModRegBTHi = "this.backTrack.btiBPHi"; + break; + case 6: + sModRegGet = "this.regESI & this.opMask"; + sModRegSet = "this.regESI = (this.regESI & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiSILo"; + sModRegBTHi = "this.backTrack.btiSIHi"; + break; + case 7: + sModRegGet = "this.regEDI & this.opMask"; + sModRegSet = "this.regEDI = (this.regEDI & ~this.opMask) | "; + sModRegBTLo = "this.backTrack.btiDILo"; + sModRegBTHi = "this.backTrack.btiDIHi"; + break; + default: + sError = "unrecognized w=1 mod=3 r/m: " + r_m; + break; + } + } + break; + default: + sError = "unrecognized mod: " + mod; + break; } - break; - default: - sError = "unrecognized mod: " + mod; - break; } if (sError) { @@ -666,7 +917,7 @@ function genMode(d, w, mrm, sGroup, sRO) { return null; } - sOpMod = "opMod" + (sGroup? sGroup + (sRO? sRO : "") : aDst[d]) + aSize[w] + toHex(mrm, 2); + sOpMod = "opMod" + aOpPrefix[w] + aAddrPrefix[a] + (sGroup? sGroup + (sRO? sRO : "") : aDst[d]) + toHex(mrm, 2); var sTemp = aSize[w].charAt(0).toLowerCase(); @@ -675,22 +926,25 @@ function genMode(d, w, mrm, sGroup, sRO) { * Use this to generate ModRM decoders that accept an array (ie, "group") of functions, and pass along an implied argument as well */ if (sRO && reg != 7) { - sOpMod = "opMod" + (sGroup? sGroup : aDst[d]) + aSize[w] + toHex(mrm, 2); + sOpMod = "opMod" + aSize[w] + aAddrPrefix[a] + (sGroup? sGroup : aDst[d]) + toHex(mrm, 2); return sOpMod; } print(" /**"); - print(" * " + sOpMod + "(afnGrp, fnSrc): mod=" + toMod(d, mod) + " reg=" + toReg(d, w, reg, sGroup) + " r/m=" + toRM(mod, w, r_m)); + print(" * " + sOpMod + "(afnGrp, fnSrc): mod=" + toMod(d, mod) + " reg=" + toReg(d, w, reg, sGroup) + " r/m=" + toRM(a, mod, w, r_m)); print(" *"); print(" * @this {X86CPU}"); print(" * @param {Array.} afnGrp"); print(" * @param {function()} fnSrc"); print(" */"); - print(" " + sOpMod.replace("Byte","").replace("Word","") + ": function " + sOpMod + "(afnGrp, fnSrc) {"); + print(" function " + sOpMod + "(afnGrp, fnSrc) {"); if (sModAddr) { - if (sModAddr.indexOf("+") > 0 || sModAddr.indexOf("regE") >= 0) { - sModAddr = "((" + sModAddr + ") & 0xffff)"; + if (!a && sModAddr.indexOf("regE") >= 0) { + if (sModAddr.indexOf(' ') > 0) { + sModAddr = "(" + sModAddr + ")"; + } + sModAddr += " & 0xffff"; } if (!d) { if (reg == 7 && sRO) { @@ -768,22 +1022,25 @@ function genMode(d, w, mrm, sGroup, sRO) { */ if (mod == 3 && !d) { var mrmPrime = (mod << 6) | (r_m << 3) | reg; - sOpMod = "opMod" + aDst[1] + aSize[w] + toHex(mrmPrime, 2); + print(" X86Mod" + aOpPrefix[w] + aAddrPrefix[a] + ".aOpModReg[0x" + toHex(mrmPrime, 2) + "],"); + sOpMod = "opMod" + aOpPrefix[w] + aAddrPrefix[a] + aDst[1] + toHex(mrmPrime, 2); return sOpMod; } print(" /**"); - print(" * " + sOpMod + "(fn): mod=" + toMod(d, mod) + " reg=" + toReg(d, w, reg) + " r/m=" + toRM(mod, w, r_m)); + print(" * " + sOpMod + "(fn): mod=" + toMod(d, mod) + " reg=" + toReg(d, w, reg) + " r/m=" + toRM(a, mod, w, r_m)); print(" *"); print(" * @this {X86CPU}"); print(" * @param {function(number,number)} fn (dst,src)"); print(" */"); - print(" " + sOpMod.replace("Byte","").replace("Word","") + ": function " + sOpMod + "(fn) {"); + print(" function " + sOpMod + "(fn) {"); if (sModAddr && sRegGet) { - - if (sModAddr.indexOf("+") > 0 || sModAddr.indexOf("regE") >= 0) { - sModAddr = "((" + sModAddr + ") & 0xffff)"; + if (!a && sModAddr.indexOf("regE") >= 0) { + if (sModAddr.indexOf(' ') > 0) { + sModAddr = "(" + sModAddr + ")"; + } + sModAddr += " & 0xffff"; } if (!d) { if (sModFunc) { @@ -943,15 +1200,15 @@ function genEAFunc(sFuncName, sFuncBody) { } function toMod(d, mod) { - return toBin(mod, 2) + " (" + aMOD[mod] + ":" + (d? "src" : "dst") + ")"; + return toBin(mod, 2) + " (" + (d? "src" : "dst") + ":" + aMOD[mod] + ")"; } function toReg(d, w, reg, sGroup) { - return toBin(reg, 3) + " (" + (sGroup? "afnGrp[" + reg + "]" : aREG[w][reg] + ":" + (d? "dst" : "src")) + ")"; + return toBin(reg, 3) + " (" + (sGroup? "afnGrp[" + reg + "]" : (d? "dst" : "src") + ":" + aREG[w][reg]) + ")"; } -function toRM(mod, w, r_m) { - return toBin(r_m, 3) + " (" + aRM[mod][mod < 3? 0 : w][r_m] + ")"; +function toRM(a, mod, w, r_m) { + return toBin(r_m, 3) + " (" + aRM[a][mod][mod < 3? 0 : w][r_m] + ")"; } function toBin(v, len) { diff --git a/modules/pcjs/lib/chipset.js b/modules/pcjs/lib/chipset.js index 7ff0f4772..1b2ebabba 100644 --- a/modules/pcjs/lib/chipset.js +++ b/modules/pcjs/lib/chipset.js @@ -3323,7 +3323,7 @@ ChipSet.prototype.getIRRVector = function(iPIC) var nIRQ = pic.nIRQBase + nIRL; if (DEBUG && this.messageEnabled(this.messageBitsIRQ(nIRQ))) { - this.printMessage("getIRRVector(): IRQ " + nIRQ + " interrupting @" + str.toHexAddr(this.cpu.regIP, this.cpu.segCS.sel) + " stack=" + str.toHexAddr(this.cpu.regESP, this.cpu.segSS.sel), true); + this.printMessage("getIRRVector(): IRQ " + nIRQ + " interrupting @" + str.toHexAddr(this.cpu.regEIP, this.cpu.segCS.sel) + " stack=" + str.toHexAddr(this.cpu.regESP, this.cpu.segSS.sel), true); } if (MAXDEBUG && DEBUGGER) { this.acInterrupts[nIRQ]++; diff --git a/modules/pcjs/lib/debugger.js b/modules/pcjs/lib/debugger.js index 225a1bdfb..58c3166ec 100644 --- a/modules/pcjs/lib/debugger.js +++ b/modules/pcjs/lib/debugger.js @@ -1580,7 +1580,7 @@ if (DEBUGGER) { this.aMessageRegs[asRegs[17]] = str.toHexWord(cpu.segCS.sel); this.aMessageRegs[asRegs[18]] = str.toHexWord(cpu.segSS.sel); this.aMessageRegs[asRegs[19]] = str.toHexWord(cpu.segDS.sel); - this.aMessageRegs[asRegs[20]] = str.toHexWord(cpu.regIP); + this.aMessageRegs[asRegs[20]] = str.toHexWord(cpu.regEIP); }; /** @@ -1593,7 +1593,7 @@ if (DEBUGGER) { Debugger.prototype.message = function(sMessage, fAddress) { if (fAddress) { - sMessage += " @" + str.toHexAddr(this.cpu.regIP, this.cpu.segCS.sel); + sMessage += " @" + str.toHexAddr(this.cpu.regEIP, this.cpu.segCS.sel); } if (this.sMessagePrev && sMessage == this.sMessagePrev) return; @@ -1737,7 +1737,7 @@ if (DEBUGGER) { if (this.traceEnabled !== undefined && this.traceEnabled[prop]) { var trace = Debugger.TRACE[prop]; var len = (trace.size >> 2); - var s = str.toHexAddr(this.cpu.opEA - this.cpu.segCS.base, this.cpu.segCS.sel) + " " + Debugger.asIns[trace.ins] + "(" + str.toHex(dst, len) + "," + str.toHex(src, len) + "," + (flagsIn === null? "-" : str.toHexWord(flagsIn)) + ") " + str.toHex(result, len) + "," + (flagsOut === null? "-" : str.toHexWord(flagsOut)); + var s = str.toHexAddr(this.cpu.opLIP - this.cpu.segCS.base, this.cpu.segCS.sel) + " " + Debugger.asIns[trace.ins] + "(" + str.toHex(dst, len) + "," + str.toHex(src, len) + "," + (flagsIn === null? "-" : str.toHexWord(flagsIn)) + ") " + str.toHex(result, len) + "," + (flagsOut === null? "-" : str.toHexWord(flagsOut)); if (!this.aTraceBuffer.length) this.aTraceBuffer = new Array(Debugger.TRACE_LIMIT); this.aTraceBuffer[this.iTraceBuffer++] = s; if (this.iTraceBuffer >= this.aTraceBuffer.length) { @@ -1840,7 +1840,7 @@ if (DEBUGGER) { * is good for avoiding breakpoints, but bad for our instruction data collection if * checks are enabled. */ - if (this.checksEnabled()) this.checkInstruction(this.cpu.regEIP, true); + if (this.checksEnabled()) this.checkInstruction(this.cpu.regLIP, true); } try { var nCyclesStep = this.cpu.stepCPU(nCycles); @@ -1893,7 +1893,7 @@ if (DEBUGGER) { if (fRegs === undefined) fRegs = true; if (fCompact === undefined) fCompact = true; - this.aAddrNextCode = this.newAddr(this.cpu.regIP, this.cpu.segCS.sel); + this.aAddrNextCode = this.newAddr(this.cpu.regEIP, this.cpu.segCS.sel); /* * this.fProcStep used to be a simple boolean, but now it's 0 (or undefined) * if inactive, 1 if stepping over an instruction without a register dump, or 2 @@ -1979,7 +1979,7 @@ if (DEBUGGER) { this.historyInit(); this.cInstructions = 0; this.nCycles = 0; - this.aAddrNextCode = this.newAddr(this.cpu.regIP, this.cpu.segCS.sel); + this.aAddrNextCode = this.newAddr(this.cpu.regEIP, this.cpu.segCS.sel); /* * fRunning is set by start() and cleared by stop(). In addition, we clear * it here, so that if the CPU is reset while running, we can prevent stop() @@ -2109,7 +2109,7 @@ if (DEBUGGER) { } this.updateStatus(true, this.fProcStep != 2); this.setFocus(); - this.clearTempBreakpoint(this.cpu.regEIP); + this.clearTempBreakpoint(this.cpu.regLIP); } }; @@ -2168,12 +2168,12 @@ if (DEBUGGER) { * This is a good example of what NOT to do in a high-frequency function, and defeats * the purpose of preallocating and preinitializing the history array in historyInit(): * - * this.aOpcodeHistory[this.iOpcodeHistory] = this.newAddr(this.cpu.regIP, this.cpu.segCS.sel, addr); + * this.aOpcodeHistory[this.iOpcodeHistory] = this.newAddr(this.cpu.regEIP, this.cpu.segCS.sel, addr); * * As the name implies, newAddr() returns a new "Addr" (Array) object every time it's called. */ var a = this.aOpcodeHistory[this.iOpcodeHistory]; - a[0] = this.cpu.regIP; + a[0] = this.cpu.regEIP; a[1] = this.cpu.segCS.sel; a[2] = addr; if (++this.iOpcodeHistory == this.aOpcodeHistory.length) this.iOpcodeHistory = 0; @@ -3044,7 +3044,7 @@ if (DEBUGGER) { " DI=" + str.toHexWord(this.cpu.regEDI) + '\n'; s += this.getSegStr(this.cpu.segDS, fProt) + ' ' + this.getSegStr(this.cpu.segES, fProt) + ' ' + this.getSegStr(this.cpu.segSS, fProt); s += (fProt? '\n' : ' '); - s += this.getSegStr(this.cpu.segCS, fProt) + " IP=" + str.toHexWord(this.cpu.regIP) + + s += this.getSegStr(this.cpu.segCS, fProt) + " IP=" + str.toHexWord(this.cpu.regEIP) + this.getFlagStr("V") + this.getFlagStr("D") + this.getFlagStr("I") + this.getFlagStr("T") + this.getFlagStr("S") + this.getFlagStr("Z") + this.getFlagStr("A") + this.getFlagStr("P") + this.getFlagStr("C") + " PS=" + str.toHexWord(this.cpu.getPS()); @@ -3174,7 +3174,7 @@ if (DEBUGGER) { * treat "PC" as an alias for the 16-bit flags register. So for purposes of parseValue(), "PC" has been removed. */ case "IP": - value = this.cpu.regIP; + value = this.cpu.regEIP; break; default: value = str.parseInt(sValue); @@ -4342,12 +4342,12 @@ if (DEBUGGER) { case "CS": // fIns = true; this.cpu.setCS(w); - this.aAddrNextCode = this.newAddr(this.cpu.regIP, this.cpu.segCS.sel); + this.aAddrNextCode = this.newAddr(this.cpu.regEIP, this.cpu.segCS.sel); break; case "IP": // fIns = true; this.cpu.setIP(w); - this.aAddrNextCode = this.newAddr(this.cpu.regIP, this.cpu.segCS.sel); + this.aAddrNextCode = this.newAddr(this.cpu.regEIP, this.cpu.segCS.sel); break; /* * I used to alias "PC" to "IP", until I discovered that early (perhaps ALL) versions of @@ -4420,7 +4420,7 @@ if (DEBUGGER) { this.println((fCompact? '' : '\n') + this.getRegStr(fProt)); if (fIns) { - this.aAddrNextCode = this.newAddr(this.cpu.regIP, this.cpu.segCS.sel); + this.aAddrNextCode = this.newAddr(this.cpu.regEIP, this.cpu.segCS.sel); this.doUnassemble(this.hexAddr(this.aAddrNextCode)); } }; @@ -4461,7 +4461,7 @@ if (DEBUGGER) { if (!this.fProcStep) { var fPrefix; var fRepeat = false; - var aAddr = this.newAddr(this.cpu.regIP, this.cpu.segCS.sel); + var aAddr = this.newAddr(this.cpu.regEIP, this.cpu.segCS.sel); do { fPrefix = false; var bOpcode = this.getByte(aAddr); diff --git a/modules/pcjs/lib/memory.js b/modules/pcjs/lib/memory.js index 28f92965e..b9b4e4f44 100644 --- a/modules/pcjs/lib/memory.js +++ b/modules/pcjs/lib/memory.js @@ -189,7 +189,7 @@ function Memory(addr, size, fReadOnly, controller) Memory.readNone = function readNone(off) { if (DEBUGGER && this.dbg.messageEnabled(Messages.MEM) /* && !off */) { - this.dbg.message("attempt to read invalid block %" + str.toHex(this.addr) + " from " + str.toHexAddr(this.cpu.regIP, this.cpu.segCS.sel)); + this.dbg.message("attempt to read invalid block %" + str.toHex(this.addr) + " from " + str.toHexAddr(this.cpu.regEIP, this.cpu.segCS.sel)); } return 0; }; @@ -201,11 +201,12 @@ Memory.readNone = function readNone(off) * @param {number} off * @param {number} v (could be either a byte or word value, since we use the same handler for both kinds of accesses) */ -Memory.writeNone = function writeNone(off, v) { +Memory.writeNone = function writeNone(off, v) +{ if (DEBUGGER && this.dbg.messageEnabled(Messages.MEM) /* && !off */) { this.dbg.message("attempt to write 0x" + str.toHexWord(v) + " to invalid block %" + str.toHex(this.addr), true); } -}, +}; /** * readByteMemory(off) diff --git a/modules/pcjs/lib/x86cpu.js b/modules/pcjs/lib/x86cpu.js index a73b9bf26..e8adacd50 100644 --- a/modules/pcjs/lib/x86cpu.js +++ b/modules/pcjs/lib/x86cpu.js @@ -469,7 +469,7 @@ X86CPU.PREFETCH = { * * Corresponding to iPrefetchHead is addrPrefetchHead; both are incremented in lock-step. * Whenever the prefetch queue is flushed, it's typically because a new, non-incremental - * regEIP has been set, so flushPrefetch() expects to receive that address. + * regLIP has been set, so flushPrefetch() expects to receive that address. * * If the prefetch queue does not contain any (or enough) bytes to satisfy a getBytePrefetch() * or getWordPrefetch() request, we force the queue to be filled with the necessary number @@ -786,14 +786,14 @@ X86CPU.prototype.reset = function() * CS Base = 0xFF0000 DS/ES/SS Base = 0x000000 IDT Base = 0x000000 * CS Limit = 0xFFFF DS/ES/SS Limit = 0xFFFF IDT Limit = 0x03FF * - * We define some additional "registers", such as regEIP. which mirrors the physical address corresponding - * to CS:IP (ie, the address of the next opcode). This means that whenever segCS or regIP are explicitly - * modified, regEIP must be updated as well. So, when setting segCS or regIP, you should always use setCSIP(), + * We define some additional "registers", such as regLIP. which mirrors the linear address corresponding + * to CS:IP (ie, the address of the next opcode). This means that whenever segCS or regEIP are explicitly + * modified, regLIP must be updated as well. So, when setting segCS or regEIP, you should always use setCSIP(), * which takes both an offset and a segment, or setIP(), whichever is appropriate; in unusual cases where only * segCS is changing (eg, undocumented 8086 opcodes), use setCS(). * * The other segment registers (DS, SS and ES) have similar setters (for segDS, segSS and segES), but those - * functions do not mirror any segment:offset values in the same way that regEIP mirrors CS:IP. + * functions do not mirror any segment:offset values in the same way that regLIP mirrors CS:IP. * * @this {X86CPU} */ @@ -946,12 +946,38 @@ X86CPU.prototype.resetRegs = function() this.segData = this.segDS; this.segStack = this.segSS; this.opFlags = this.opPrefixes = 0; - this.opSize = 2; - this.opMask = 0xffff; - this.opMaskClear = ~this.opMask; - this.addrSize = 2; - this.addrMask = 0xffff; - this.addrMaskClear = ~this.addrMask; + + /* + * The following contain the (default) OPERAND size (in terms of number of bytes), and the corresponding masks + * for isolating the (src) bits of an OPERAND and clearing the (dst) bits of an OPERAND. These are reset to + * their segCS counterparts at the start of every new instruction, but are also set here for documentation purposes. + */ + this.opSize = this.segCS.opSize; + this.opMask = this.segCS.opMask; + + /* + * Similarly, the following contain the (default) ADDRESS size (in terms of number of bytes), and the corresponding + * masks for isolating the (src) bits of an address and clearing the (dst) bits of an address. Like the OPERAND size + * properties, these are reset to their segCS counterparts at the start of every new instruction. + */ + this.addrSize = this.segCS.addrSize; + this.addrMask = this.segCS.addrMask; + + /* + * It's also worth noting that instructions that implicitly use the stack also rely on something called STACK size, + * which is based on the BIG bit of the last descriptor loaded into SS; use the following segSS properties: + * + * segSS.addrSize (2 or 4) + * segSS.addrMask (0xffff or 0xffffffff) + * + * As there is no STACK size instruction prefix override, there's no need to propagate these segSS properties + * to separate X86CPU properties, as we do for the OPERAND size and ADDRESS size properties. + */ + + /* + * The default ModRM dispatch tables; the *Word tables will be updated based on the current ADDRESS size, + * which is based foremost on segCS.addrSize, but can also be overridden by an ADDRESS size instruction prefix. + */ this.aOpModMemByte = X86ModB.aOpModMem; this.aOpModRegByte = X86ModB.aOpModReg; this.aOpModGrpByte = X86ModB.aOpModGrp; @@ -969,7 +995,7 @@ X86CPU.prototype.resetRegs = function() X86CPU.prototype.getChecksum = function() { var sum = (this.regEAX + this.regEBX + this.regECX + this.regEDX + this.regESP + this.regEBP + this.regESI + this.regEDI) | 0; - sum = (sum + this.regIP + this.segCS.sel + this.segDS.sel + this.segSS.sel + this.segES.sel + this.getPS()) | 0; + sum = (sum + this.regEIP + this.segCS.sel + this.segDS.sel + this.segSS.sel + this.segES.sel + this.getPS()) | 0; return sum; }; @@ -1009,7 +1035,7 @@ X86CPU.prototype.checkIntNotify = function(nInt) var aNotify = this.aIntNotify[nInt]; if (aNotify !== undefined) { for (var i = 0; i < aNotify.length; i++) { - if (!aNotify[i][1].call(aNotify[i][0], this.regEIP)) { + if (!aNotify[i][1].call(aNotify[i][0], this.regLIP)) { return false; } } @@ -1019,8 +1045,8 @@ X86CPU.prototype.checkIntNotify = function(nInt) * checksEnabled() function, and therefore in fDebugCheck, so for maximum speed, we check fDebugCheck first. */ if (DEBUGGER && this.aFlags.fDebugCheck) { - if (this.messageEnabled(Messages.INT) && this.dbg.messageInt(nInt, this.regEIP)) { - this.addIntReturn(this.regEIP, function(cpu, nCycles) { + if (this.messageEnabled(Messages.INT) && this.dbg.messageInt(nInt, this.regLIP)) { + this.addIntReturn(this.regLIP, function(cpu, nCycles) { return function onIntReturn(nLevel) { cpu.dbg.messageIntReturn(nInt, nLevel, cpu.getCycles() - nCycles); }; @@ -1160,7 +1186,7 @@ X86CPU.prototype.save = function() { var state = new State(this); state.set(0, [this.regEAX, this.regEBX, this.regECX, this.regEDX, this.regESP, this.regEBP, this.regESI, this.regEDI, this.nIOPL]); - state.set(1, [this.regIP, this.segCS.save(), this.segDS.save(), this.segSS.save(), this.segES.save(), this.saveProtMode(), this.getPS()]); + state.set(1, [this.regEIP, this.segCS.save(), this.segDS.save(), this.segSS.save(), this.segES.save(), this.saveProtMode(), this.getPS()]); state.set(2, [this.segData.sName, this.segStack.sName, this.opFlags, this.opPrefixes, this.intFlags, this.regEA, this.regEAWrite]); state.set(3, [0, this.nTotalCycles, this.getSpeed()]); state.set(4, this.bus.saveMemory()); @@ -1295,9 +1321,9 @@ X86CPU.prototype.getSeg = function(sName) */ X86CPU.prototype.setCS = function(sel) { - this.regEIP = this.segCS.load(sel & 0xffff) + this.regIP; + this.regLIP = this.segCS.load(sel & 0xffff) + this.regEIP; this.opFlags |= this.OPFLAG_NOINTR8086; - if (PREFETCH) this.flushPrefetch(this.regEIP); + if (PREFETCH) this.flushPrefetch(this.regLIP); }; /** @@ -1321,8 +1347,6 @@ X86CPU.prototype.setDS = function(sel) X86CPU.prototype.setSS = function(sel) { this.segSS.load(sel & 0xffff); - this.segSS.addrMask = (this.model >= X86.MODEL_80386 && (this.segSS.ext & X86.DESC.EXT.BIG))? 0xffffffff : 0xffff; - this.segSS.addrMaskClear = ~this.segSS.addrMask; this.opFlags |= X86.OPFLAG.NOINTR; }; @@ -1342,9 +1366,9 @@ X86CPU.prototype.setES = function(sel) * setIP(off) * * With the addition of flushPrefetch(), this function should only be called - * for non-incremental IP updates; setIP(this.regIP+1) is no longer appropriate. + * for non-incremental IP updates; setIP(this.regEIP+1) is no longer appropriate. * - * In fact, for performance reasons, it's preferable to increment regIP yourself, + * In fact, for performance reasons, it's preferable to increment regEIP yourself, * but you can also call advanceIP() if speed is not important. * * @this {X86CPU} @@ -1352,8 +1376,8 @@ X86CPU.prototype.setES = function(sel) */ X86CPU.prototype.setIP = function(off) { - this.regEIP = this.segCS.base + (this.regIP = off & 0xffff); - if (PREFETCH) this.flushPrefetch(this.regEIP); + this.regLIP = this.segCS.base + (this.regEIP = off & 0xffff); + if (PREFETCH) this.flushPrefetch(this.regLIP); }; /** @@ -1385,11 +1409,11 @@ X86CPU.prototype.setCSIP = function(off, sel, fCall) * We break this operation into the following discrete steps (eg, set IP, load CS, and then update EIP) * so that segCS.load(sel) has the option of modifying IP when sel refers to a gate (call, interrupt, trap, etc). */ - this.regIP = off; + this.regEIP = off; var base = this.segCS.load(sel); if (base != X86.ADDR_INVALID) { - this.regEIP = base + this.regIP; - if (PREFETCH) this.flushPrefetch(this.regEIP); + this.regLIP = base + this.regEIP; + if (PREFETCH) this.flushPrefetch(this.regLIP); return this.segCS.fStackSwitch; } return null; @@ -1403,7 +1427,7 @@ X86CPU.prototype.setCSIP = function(off, sel, fCall) */ X86CPU.prototype.advanceIP = function(inc) { - this.regEIP = this.segCS.base + (this.regIP = (this.regIP + inc) & 0xffff); + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + inc) & 0xffff); if (PREFETCH) this.advancePrefetch(inc); }; @@ -2251,7 +2275,7 @@ X86CPU.prototype.fillPrefetch = function(n) * Empty the prefetch queue. * * @this {X86CPU} - * @param {number} addr is a physical (non-segmented) address of the current program counter (regEIP) + * @param {number} addr is a physical (non-segmented) address of the current program counter (regLIP) */ X86CPU.prototype.flushPrefetch = function(addr) { @@ -2279,7 +2303,7 @@ X86CPU.prototype.advancePrefetch = function(inc) this.iPrefetchTail = (this.iPrefetchTail + inc) & X86CPU.PREFETCH.MASK; this.cbPrefetchQueued -= inc; } else { - this.flushPrefetch(this.regEIP); + this.flushPrefetch(this.regLIP); if (MAXDEBUG) this.printMessage("advancePrefetch(" + inc + "): flushed"); } }; @@ -2292,9 +2316,9 @@ X86CPU.prototype.advancePrefetch = function(inc) */ X86CPU.prototype.getIPByte = function() { - var b = (PREFETCH? this.getBytePrefetch(this.regEIP) : this.getByte(this.regEIP)); - if (BACKTRACK) this.bus.updateBackTrackCode(this.regEIP, this.backTrack.btiMemLo); - this.regEIP = this.segCS.base + (this.regIP = (this.regIP + 1) & 0xffff); // this.advanceIP(1) + var b = (PREFETCH? this.getBytePrefetch(this.regLIP) : this.getByte(this.regLIP)); + if (BACKTRACK) this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo); + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + 1) & 0xffff); // this.advanceIP(1) return b; }; @@ -2306,9 +2330,9 @@ X86CPU.prototype.getIPByte = function() */ X86CPU.prototype.getIPDisp = function() { - var b = ((PREFETCH? this.getBytePrefetch(this.regEIP) : this.getByte(this.regEIP)) << 24) >> 24; - if (BACKTRACK) this.bus.updateBackTrackCode(this.regEIP, this.backTrack.btiMemLo); - this.regEIP = this.segCS.base + (this.regIP = (this.regIP + 1) & 0xffff); // this.advanceIP(1) + var b = ((PREFETCH? this.getBytePrefetch(this.regLIP) : this.getByte(this.regLIP)) << 24) >> 24; + if (BACKTRACK) this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo); + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + 1) & 0xffff); // this.advanceIP(1) return b & 0xffff; }; @@ -2320,12 +2344,12 @@ X86CPU.prototype.getIPDisp = function() */ X86CPU.prototype.getIPWord = function() { - var w = (PREFETCH? this.getWordPrefetch(this.regEIP) : this.getWord(this.regEIP)); + var w = (PREFETCH? this.getWordPrefetch(this.regLIP) : this.getWord(this.regLIP)); if (BACKTRACK) { - this.bus.updateBackTrackCode(this.regEIP, this.backTrack.btiMemLo); - this.bus.updateBackTrackCode(this.regEIP + 1, this.backTrack.btiMemHi); + this.bus.updateBackTrackCode(this.regLIP, this.backTrack.btiMemLo); + this.bus.updateBackTrackCode(this.regLIP + 1, this.backTrack.btiMemHi); } - this.regEIP = this.segCS.base + (this.regIP = (this.regIP + 2) & 0xffff); // this.advanceIP(2) + this.regLIP = this.segCS.base + (this.regEIP = (this.regEIP + 2) & 0xffff); // this.advanceIP(2) return w; }; @@ -2517,7 +2541,7 @@ X86CPU.prototype.displayStatus = function(fForce) this.displayReg("DS", this.segDS.sel); this.displayReg("SS", this.segSS.sel); this.displayReg("ES", this.segES.sel); - this.displayReg("IP", this.regIP); + this.displayReg("IP", this.regEIP); var regPS = this.getPS(); this.displayReg("PS", regPS); this.displayReg("C", (regPS & X86.PS.CF)? 1 : 0, 1); @@ -2544,7 +2568,7 @@ X86CPU.prototype.displayStatus = function(fForce) * stepping vs. running should never change the behavior of the simulation. * * Similarly, the Debugger's execution breakpoints have no involvement with the x86 breakpoint instruction - * (0xCC); the Debugger monitors changes to the regEIP register to implement its own execution breakpoints. + * (0xCC); the Debugger monitors changes to the regLIP register to implement its own execution breakpoints. * * As a result, the Debugger's complete independence means you can run other 8086/8088 debuggers * (eg, DEBUG) inside the simulation without interference; you can even "debug" them with the Debugger. @@ -2618,10 +2642,16 @@ X86CPU.prototype.stepCPU = function(nMinCycles) if (opPrefixes) { this.opPrefixes |= opPrefixes; } else { - this.opEA = this.regEIP; + this.opLIP = this.regLIP; this.regEA = this.regEAWrite = X86.ADDR_INVALID; this.segData = this.segDS; this.segStack = this.segSS; + + this.opSize = this.segCS.opSize; + this.opMask = this.segCS.opMask; + this.addrSize = this.segCS.addrSize; + this.addrMask = this.segCS.addrMask; + this.opPrefixes = this.opFlags & X86.OPFLAG.REPEAT; if (this.intFlags) { if (this.checkINTR()) { @@ -2658,7 +2688,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles) } if (DEBUGGER && fDebugCheck) { - if (this.dbg.checkInstruction(this.regEIP, fDebugSkip)) { + if (this.dbg.checkInstruction(this.regLIP, fDebugSkip)) { this.stopCPU(); break; } @@ -2676,11 +2706,11 @@ X86CPU.prototype.stepCPU = function(nMinCycles) this.stopCPU(); break; } - var t = this.regEIP + this.getCycles(); + var t = this.regLIP + this.getCycles(); var n = this.aSamples[this.iSampleNext]; if (n !== -1) { if (n !== t) { - this.println("sample deviation at index " + this.iSampleNext + ": current EIP=" + str.toHex(this.regEIP)); + this.println("sample deviation at index " + this.iSampleNext + ": current EIP=" + str.toHex(this.regLIP)); this.stopCPU(); break; } @@ -2726,7 +2756,7 @@ X86CPU.prototype.stepCPU = function(nMinCycles) */ if (this.aFlags.fComplete && this.nStepCycles >= this.nSnapCycles && !(this.opFlags & X86.OPFLAG.PREFIXES)) { this.println("cycle miscount: " + (this.nSnapCycles - this.nStepCycles)); - this.setIP(this.opEA - this.segCS.base); + this.setIP(this.opLIP - this.segCS.base); this.stopCPU(); break; } diff --git a/modules/pcjs/lib/x86grps.js b/modules/pcjs/lib/x86grps.js index 064fec1ed..22ef27099 100644 --- a/modules/pcjs/lib/x86grps.js +++ b/modules/pcjs/lib/x86grps.js @@ -142,6 +142,40 @@ var X86Grps = { return dst; }, /** + * opGrpADDw(dst, src) + * + * Notes regarding carry following a 32-bit addition: + * + * The following table summarizes bit 31 of dst, src, and result, along with the expected carry bit: + * + * dst src res carry + * --- --- --- ----- + * 0 0 0 0 no + * 0 0 1 0 no (there must have been a carry out of bit 30, but it was "absorbed") + * 0 1 0 1 yes (there must have been a carry out of bit 30, but it was NOT "absorbed") + * 0 1 1 0 no + * 1 0 0 1 yes (same as the preceding "yes" case) + * 1 0 1 0 no + * 1 1 0 1 yes (since the addition of two ones must always produce a carry) + * 1 1 1 1 yes (since the addition of two ones must always produce a carry) + * + * So, we can use “(dst ^ ((dst ^ src) & (src ^ res))) >> 15” to shift the proper carry bit into the conventional + * SIZE_WORD position; eg: + * + * resultValue = ((resultValue >>> 16) | (resultValue & 0xffff)) | (((dst ^ ((dst ^ src) & (src ^ resultValue))) >> 15) & SIZE_WORD); + * + * Essentially, we’re “cramming” all 32 result bits into the low 16 bits (which will effectively represent the + * zero flag), and then setting bit 16 to the effective carry flag. This transforms the zero and carry conditions + * for a DWORD computation into the corresponding conditions for a WORD computation. This will slow down 32-bit + * addition, but it allows 8-bit and 16-bit addition to remain fast. Languages that support 64-bit values in + * conjunction with bit-wise operators can omit that one-line transformation, and we can set SIZE_DWORD to a 33-bit + * value, but sadly, we cannot do that in JavaScript. + * + * Alternatively, we could store src and dst into their own result variables (eg, resultSrc and resultDst) and + * compute carry lazily, but that would affect MUCH more existing code (eg, all code that currently inspects carry + * with a single bit test). I think the DWORD-to-WORD flag conversion for 32-bit instructions that modify zero + * and/or carry) is a more reasonable first step. + * * @this {X86CPU} * @param {number} dst * @param {number} src @@ -269,54 +303,22 @@ var X86Grps = { * of updating CARRY and OVERFLOW (and possibly changing resultSize from SIZE_BYTE to SIZE_WORD, or vice versa), * we must take care to preserve SIGN, ZERO, and the other arithmetic flags. * - * This code originally left resultParitySign alone, but if resultSize changes, then resultParitySign needs to - * change along with it. PARITY is always based on the low 8 bits of resultParitySign, so let's focus on SIGN: - * if resultSize is changing from SIZE_BYTE to SIZE_WORD, propagating bit 7 to bit 15 of resultParitySign preserves - * SIGN; similarly, if resultSize is changing from SIZE_WORD to SIZE_BYTE, propagating bit 15 to bit 7 preserves - * SIGN--but could also alter PARITY. So we must compensate: if bit 15 differs from bit 7, then XOR resultParitySign - * with 0xC0, which will flip not only bit 7 but also bit 6, thereby preserving PARITY. - * - * resultValue merits similar consideration because of the ZERO flag: if resultSize increases, nothing needs to be - * done, because the larger size will still pick up any non-zero bits in the lower 8 bits of resultValue, but if it - * decreases, we need to OR the upper 8 bits from resultValue into the lower 8 bits. - * - * Finally, this function must set the CARRY and OVERFLOW flags according to the given result. OVERFLOW is a particular - * pain, because it has a dependency on resultParitySign; the simplest solution is to call setOF() or clearOF(). + * However, in the interest of efficiency, rather than changing resultSize to match the operand size, it's easier + * to leave resultSize as-is and simply set CARRY and OVERFLOW based on the previous resultSize, since there isn't + * actually any requirement or dependency (that I can think of) that resultSize always reflect the operand size of + * the last operation. Since only 2 of the 6 arithmetic flags need to change, that tips the scales in favor of leaving + * resultSize alone. * * NOTE: Although I've yet to find confirmation of this for the 8086/8088, OVERFLOW is "undefined" on modern x86 * CPUs for shift counts > 1 (in fact, on modern CPUs, OVERFLOW tends to be clear in those situations). Since I set * OVERFLOW the same way for all shift counts, my "well-defined" behavior may or may not match the 8086/8088, but * until I see a defined behavior (or more importantly, some dependency on a different behavior), this seems good enough. * - * UPDATE: While the desire to set resultSize to match the operand size is strong, it occurred to me later that - * it would be easier to leave resultSize as-is and simply set CARRY and OVERFLOW based on the previous resultSize, - * since there isn't actually any requirement or dependency (that I can think of) that resultSize always reflect the - * operand size of the last operation. And since only 2 of the 6 arithmetic flags need to change, that tips the scales - * in favor of leaving resultSize alone. However, the previous code that worked so hard to update resultSize is still - * here, commented out; it works, but it's less efficient. - * * @this {X86CPU} * @param {number} result (untruncated, so that we can inspect it for CARRY and OVERFLOW) * @param {number} size */ opGrpRotateFlags: function(result, size) { - /* - var deltaSize = size - this.resultSize; - if (deltaSize) { - var bitsXOR = 0; - var bitsSign = this.resultParitySign & 0x8080; - if (deltaSize > 0) { - if (bitsSign == 0x0080 || bitsSign == 0x8000) bitsXOR = 0x8000; - } else { - if (bitsSign == 0x0080 || bitsSign == 0x8000) bitsXOR = 0x00C0; - this.resultValue |= (this.resultValue >> 8); - } - this.resultParitySign ^= bitsXOR; - this.resultSize = size; - } - this.resultValue = (this.resultValue & (size - 1)) | (result & size); - if ((result ^ (result >> 1)) & (size >> 1)) this.setOF(); else this.clearOF(); - */ this.resultValue = (this.resultValue & (this.resultSize - 1)) | ((result & size)? this.resultSize : 0); if ((result ^ (result >> 1)) & (size >> 1)) this.setOF(); else this.clearOF(); }, @@ -1110,7 +1112,7 @@ var X86Grps = { * @return {number} */ opGrpCALLw: function(dst, src) { - this.pushWord(this.regIP); + this.pushWord(this.regEIP); this.setIP(dst); this.nStepCycles -= (this.regEA < 0? this.CYCLES.nOpCyclesCallWR : this.CYCLES.nOpCyclesCallWM); if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; @@ -1154,7 +1156,7 @@ var X86Grps = { return X86Grps.opGrpUndefined.call(this, dst, src); } this.setCSIP(dst, this.getWord(this.regEA + 2)); - if (this.cIntReturn) this.checkIntReturn(this.regEIP); + if (this.cIntReturn) this.checkIntReturn(this.regLIP); this.nStepCycles -= this.CYCLES.nOpCyclesJmpDM; if (EAFUNCS) this.setEAWord = this.setEAWordDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; return dst; diff --git a/modules/pcjs/lib/x86help.js b/modules/pcjs/lib/x86help.js index a678e1dfc..45c9b0e18 100644 --- a/modules/pcjs/lib/x86help.js +++ b/modules/pcjs/lib/x86help.js @@ -248,7 +248,7 @@ var X86Help = { * * TODO: Determine the cycle cost when a BOUND exception is triggered, over and above nOpCyclesBound. */ - this.setIP(this.opEA - this.segCS.base); + this.setIP(this.opLIP - this.segCS.base); X86Help.opHelpINT.call(this, X86.EXCEPTION.BOUND_ERR, null, 0); } if (EAFUNCS) this.setEAByte = this.setEAByteDisabled; else this.opFlags |= X86.OPFLAG.NOWRITE; @@ -490,10 +490,10 @@ var X86Help = { */ opHelpCALLF: function(off, sel) { var regCS = this.segCS.sel; - var regIP = this.regIP; + var regEIP = this.regEIP; if (this.setCSIP(off, sel, true) != null) { this.pushWord(regCS); - this.pushWord(regIP); + this.pushWord(regEIP); } }, /** @@ -506,10 +506,10 @@ var X86Help = { * @param {number} n */ opHelpRETF: function(n) { - var regIP = this.popWord(); + var regEIP = this.popWord(); var regCS = this.popWord(); if (n) this.regESP = (this.regESP + n) & 0xffff; - if (this.setCSIP(regIP, regCS, false)) { + if (this.setCSIP(regEIP, regCS, false)) { if (n) this.regESP = (this.regESP + n) & 0xffff; /* * As per Intel documentation: "If any of [the DS or ES] registers refer to segments whose DPL is @@ -529,7 +529,7 @@ var X86Help = { this.segES.load(0); } } - if (n == 2 && this.cIntReturn) this.checkIntReturn(this.regEIP); + if (n == 2 && this.cIntReturn) this.checkIntReturn(this.regLIP); }, /** * opHelpINT(nIDT, nError, nCycles) @@ -554,14 +554,14 @@ var X86Help = { this.segCS.fCall = true; var regPS = this.getPS(); var regCS = this.segCS.sel; - var regIP = this.regIP; + var regEIP = this.regEIP; var base = this.segCS.loadIDT(nIDT); if (base != X86.ADDR_INVALID) { - this.regEIP = base + this.regIP; - if (PREFETCH) this.flushPrefetch(this.regEIP); + this.regLIP = base + this.regEIP; + if (PREFETCH) this.flushPrefetch(this.regLIP); this.pushWord(regPS); this.pushWord(regCS); - this.pushWord(regIP); + this.pushWord(regEIP); if (nError != null) this.pushWord(nError); this.nFault = -1; } @@ -585,12 +585,12 @@ var X86Help = { } } var cpl = this.segCS.cpl; - var regIP = this.popWord(); + var regEIP = this.popWord(); var regCS = this.popWord(); var regPS = this.popWord(); - if (this.setCSIP(regIP, regCS, false) != null) { + if (this.setCSIP(regEIP, regCS, false) != null) { this.setPS(regPS, cpl); - if (this.cIntReturn) this.checkIntReturn(this.regEIP); + if (this.cIntReturn) this.checkIntReturn(this.regLIP); } }, /** @@ -599,7 +599,7 @@ var X86Help = { * @this {X86CPU} */ opHelpDIVOverflow: function() { - this.setIP(this.opEA - this.segCS.base); + this.setIP(this.opLIP - this.segCS.base); /* * TODO: Determine the proper cycle cost. */ @@ -619,7 +619,7 @@ var X86Help = { { if (!this.aFlags.fComplete) { this.printMessage("Fault " + str.toHexByte(nFault) + " blocked by Debugger", Messages.WARN); - this.setIP(this.opEA - this.segCS.base); + this.setIP(this.opLIP - this.segCS.base); return; } @@ -629,7 +629,7 @@ var X86Help = { /* * Single-fault (error code is passed through, and the responsible instruction is restartable) */ - this.setIP(this.opEA - this.segCS.base); + this.setIP(this.opLIP - this.segCS.base); fDispatch = true; } else if (this.nFault != X86.EXCEPTION.DF_FAULT) { /* @@ -691,7 +691,7 @@ var X86Help = { opHelpFaultMessage: function(nFault, nError, fHalt) { var bitsMessage = Messages.FAULT; - var bOpcode = this.bus.getByteDirect(this.regEIP); + var bOpcode = this.bus.getByteDirect(this.regLIP); /* * OS/2 1.0 uses an INT3 (0xCC) opcode in conjunction with an invalid IDT to trigger a triple-fault @@ -716,7 +716,7 @@ var X86Help = { * (Power-On Self Test); we don't want to ignore those, but we don't want to halt on them either. We * detect those faults by virtue of EIP being in the range %0F0000 to %0FFFFF. */ - if (this.regEIP >= 0x0F0000 && this.regEIP <= 0x0FFFFF) { + if (this.regLIP >= 0x0F0000 && this.regLIP <= 0x0FFFFF) { fHalt = false; } @@ -729,7 +729,7 @@ var X86Help = { } if (this.messageEnabled(bitsMessage) || fHalt) { - var sMessage = (fHalt? '\n' : '') + "Fault " + str.toHexByte(nFault) + (nError != null? " (" + str.toHexWord(nError) + ")" : "") + " on opcode 0x" + str.toHexByte(bOpcode) + " at " + str.toHexAddr(this.regIP, this.segCS.sel) + " (%" + str.toHex(this.regEIP, 6) + ")"; + var sMessage = (fHalt? '\n' : '') + "Fault " + str.toHexByte(nFault) + (nError != null? " (" + str.toHexWord(nError) + ")" : "") + " on opcode 0x" + str.toHexByte(bOpcode) + " at " + str.toHexAddr(this.regEIP, this.segCS.sel) + " (%" + str.toHex(this.regLIP, 6) + ")"; var fRunning = this.aFlags.fRunning; if (this.printMessage(sMessage, bitsMessage)) { if (fHalt) { @@ -767,8 +767,8 @@ var X86Help = { * @this {X86CPU} */ opHelpUndefined: function() { - this.setIP(this.opEA - this.segCS.base); - this.setError("Undefined opcode 0x" + str.toHexByte(this.bus.getByteDirect(this.regEIP)) + " at " + str.toHexAddr(this.regIP, this.segCS.sel)); + this.setIP(this.opLIP - this.segCS.base); + this.setError("Undefined opcode 0x" + str.toHexByte(this.bus.getByteDirect(this.regLIP)) + " at " + str.toHexAddr(this.regEIP, this.segCS.sel)); this.stopCPU(); } }; diff --git a/modules/pcjs/lib/x86modb.js b/modules/pcjs/lib/x86modb.js index e8f29f95f..6dda26327 100644 --- a/modules/pcjs/lib/x86modb.js +++ b/modules/pcjs/lib/x86modb.js @@ -36,2318 +36,16 @@ if (typeof module !== 'undefined') { var X86 = require("./x86"); } -var X86ModB = { - /** - * opModMemByte00(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem00: function opModMemByte00(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte01(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem01: function opModMemByte01(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte02(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem02: function opModMemByte02(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte03(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem03: function opModMemByte03(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte04(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem04: function opModMemByte04(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte05(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem05: function opModMemByte05(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte06(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem06: function opModMemByte06(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte07(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem07: function opModMemByte07(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte08(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem08: function opModMemByte08(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte09(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem09: function opModMemByte09(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte0A(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem0A: function opModMemByte0A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte0B(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem0B: function opModMemByte0B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte0C(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem0C: function opModMemByte0C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte0D(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem0D: function opModMemByte0D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte0E(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem0E: function opModMemByte0E(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte0F(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem0F: function opModMemByte0F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte10(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem10: function opModMemByte10(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte11(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem11: function opModMemByte11(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte12(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem12: function opModMemByte12(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte13(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem13: function opModMemByte13(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte14(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem14: function opModMemByte14(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte15(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem15: function opModMemByte15(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte16(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem16: function opModMemByte16(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte17(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem17: function opModMemByte17(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte18(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem18: function opModMemByte18(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte19(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem19: function opModMemByte19(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte1A(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem1A: function opModMemByte1A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte1B(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem1B: function opModMemByte1B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte1C(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem1C: function opModMemByte1C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte1D(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem1D: function opModMemByte1D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte1E(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem1E: function opModMemByte1E(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte1F(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem1F: function opModMemByte1F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte20(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem20: function opModMemByte20(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte21(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem21: function opModMemByte21(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte22(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem22: function opModMemByte22(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte23(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem23: function opModMemByte23(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte24(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem24: function opModMemByte24(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte25(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem25: function opModMemByte25(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte26(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem26: function opModMemByte26(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte27(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem27: function opModMemByte27(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte28(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem28: function opModMemByte28(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte29(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem29: function opModMemByte29(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte2A(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem2A: function opModMemByte2A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte2B(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem2B: function opModMemByte2B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte2C(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem2C: function opModMemByte2C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte2D(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem2D: function opModMemByte2D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte2E(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem2E: function opModMemByte2E(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte2F(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem2F: function opModMemByte2F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte30(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem30: function opModMemByte30(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte31(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem31: function opModMemByte31(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte32(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem32: function opModMemByte32(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte33(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem33: function opModMemByte33(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte34(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem34: function opModMemByte34(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte35(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem35: function opModMemByte35(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte36(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem36: function opModMemByte36(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte37(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem37: function opModMemByte37(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte38(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem38: function opModMemByte38(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte39(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem39: function opModMemByte39(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte3A(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem3A: function opModMemByte3A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModMemByte3B(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem3B: function opModMemByte3B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModMemByte3C(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem3C: function opModMemByte3C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte3D(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem3D: function opModMemByte3D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte3E(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem3E: function opModMemByte3E(fn) { - var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModMemByte3F(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem3F: function opModMemByte3F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModMemByte40(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem40: function opModMemByte40(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte41(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem41: function opModMemByte41(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte42(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem42: function opModMemByte42(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte43(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem43: function opModMemByte43(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte44(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem44: function opModMemByte44(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte45(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem45: function opModMemByte45(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte46(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem46: function opModMemByte46(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte47(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem47: function opModMemByte47(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte48(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem48: function opModMemByte48(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte49(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem49: function opModMemByte49(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte4A(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem4A: function opModMemByte4A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte4B(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem4B: function opModMemByte4B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte4C(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem4C: function opModMemByte4C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte4D(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem4D: function opModMemByte4D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte4E(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem4E: function opModMemByte4E(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte4F(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem4F: function opModMemByte4F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte50(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem50: function opModMemByte50(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte51(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem51: function opModMemByte51(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte52(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem52: function opModMemByte52(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte53(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem53: function opModMemByte53(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte54(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem54: function opModMemByte54(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte55(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem55: function opModMemByte55(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte56(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem56: function opModMemByte56(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte57(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem57: function opModMemByte57(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte58(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem58: function opModMemByte58(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte59(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem59: function opModMemByte59(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte5A(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem5A: function opModMemByte5A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte5B(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem5B: function opModMemByte5B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte5C(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem5C: function opModMemByte5C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte5D(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem5D: function opModMemByte5D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte5E(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem5E: function opModMemByte5E(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte5F(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem5F: function opModMemByte5F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte60(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem60: function opModMemByte60(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte61(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem61: function opModMemByte61(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte62(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem62: function opModMemByte62(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte63(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem63: function opModMemByte63(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte64(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem64: function opModMemByte64(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte65(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem65: function opModMemByte65(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte66(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem66: function opModMemByte66(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte67(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem67: function opModMemByte67(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte68(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem68: function opModMemByte68(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte69(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem69: function opModMemByte69(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte6A(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem6A: function opModMemByte6A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte6B(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem6B: function opModMemByte6B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte6C(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem6C: function opModMemByte6C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte6D(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem6D: function opModMemByte6D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte6E(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem6E: function opModMemByte6E(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte6F(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem6F: function opModMemByte6F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte70(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem70: function opModMemByte70(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte71(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem71: function opModMemByte71(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte72(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem72: function opModMemByte72(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte73(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem73: function opModMemByte73(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte74(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem74: function opModMemByte74(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte75(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem75: function opModMemByte75(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte76(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem76: function opModMemByte76(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte77(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem77: function opModMemByte77(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte78(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem78: function opModMemByte78(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte79(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem79: function opModMemByte79(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte7A(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem7A: function opModMemByte7A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte7B(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem7B: function opModMemByte7B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte7C(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem7C: function opModMemByte7C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte7D(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem7D: function opModMemByte7D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte7E(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem7E: function opModMemByte7E(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte7F(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem7F: function opModMemByte7F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte80(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem80: function opModMemByte80(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte81(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem81: function opModMemByte81(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte82(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem82: function opModMemByte82(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte83(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem83: function opModMemByte83(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte84(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem84: function opModMemByte84(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte85(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem85: function opModMemByte85(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte86(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem86: function opModMemByte86(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte87(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem87: function opModMemByte87(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte88(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem88: function opModMemByte88(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte89(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem89: function opModMemByte89(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte8A(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem8A: function opModMemByte8A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte8B(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem8B: function opModMemByte8B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte8C(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem8C: function opModMemByte8C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte8D(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem8D: function opModMemByte8D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte8E(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem8E: function opModMemByte8E(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte8F(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem8F: function opModMemByte8F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regECX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte90(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem90: function opModMemByte90(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte91(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem91: function opModMemByte91(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte92(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem92: function opModMemByte92(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte93(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem93: function opModMemByte93(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte94(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem94: function opModMemByte94(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte95(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem95: function opModMemByte95(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte96(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem96: function opModMemByte96(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte97(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem97: function opModMemByte97(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte98(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem98: function opModMemByte98(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte99(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem99: function opModMemByte99(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte9A(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem9A: function opModMemByte9A(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByte9B(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem9B: function opModMemByte9B(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByte9C(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem9C: function opModMemByte9C(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte9D(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem9D: function opModMemByte9D(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte9E(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem9E: function opModMemByte9E(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByte9F(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMem9F: function opModMemByte9F(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteA0(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA0: function opModMemByteA0(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteA1(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA1: function opModMemByteA1(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteA2(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA2: function opModMemByteA2(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteA3(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA3: function opModMemByteA3(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteA4(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA4: function opModMemByteA4(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteA5(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA5: function opModMemByteA5(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteA6(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA6: function opModMemByteA6(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteA7(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA7: function opModMemByteA7(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteA8(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA8: function opModMemByteA8(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteA9(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemA9: function opModMemByteA9(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteAA(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemAA: function opModMemByteAA(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteAB(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemAB: function opModMemByteAB(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteAC(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemAC: function opModMemByteAC(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteAD(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemAD: function opModMemByteAD(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteAE(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemAE: function opModMemByteAE(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteAF(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemAF: function opModMemByteAF(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteB0(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB0: function opModMemByteB0(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteB1(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB1: function opModMemByteB1(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteB2(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB2: function opModMemByteB2(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteB3(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB3: function opModMemByteB3(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteB4(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB4: function opModMemByteB4(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteB5(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB5: function opModMemByteB5(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteB6(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB6: function opModMemByteB6(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteB7(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB7: function opModMemByteB7(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteB8(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB8: function opModMemByteB8(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteB9(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemB9: function opModMemByteB9(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteBA(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemBA: function opModMemByteBA(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModMemByteBB(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemBB: function opModMemByteBB(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModMemByteBC(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemBC: function opModMemByteBC(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteBD(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemBD: function opModMemByteBD(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteBE(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemBE: function opModMemByteBE(fn) { - var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModMemByteBF(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModMemBF: function opModMemByteBF(fn) { - var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); - if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; - this.setEAByte(b); - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, +var X86ModB = {}; + +X86ModB.aOpModReg = [ /** * opModRegByte00(fn): mod=00 (mem:src) reg=000 (AL:dst) r/m=000 (BX+SI) * * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg00: function opModRegByte00(fn) { + function opModRegByte00(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2359,7 +57,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg01: function opModRegByte01(fn) { + function opModRegByte01(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2371,7 +69,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg02: function opModRegByte02(fn) { + function opModRegByte02(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2383,7 +81,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg03: function opModRegByte03(fn) { + function opModRegByte03(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2395,7 +93,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg04: function opModRegByte04(fn) { + function opModRegByte04(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2407,7 +105,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg05: function opModRegByte05(fn) { + function opModRegByte05(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2419,7 +117,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg06: function opModRegByte06(fn) { + function opModRegByte06(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2431,7 +129,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg07: function opModRegByte07(fn) { + function opModRegByte07(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -2443,7 +141,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg08: function opModRegByte08(fn) { + function opModRegByte08(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2455,7 +153,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg09: function opModRegByte09(fn) { + function opModRegByte09(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2467,7 +165,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg0A: function opModRegByte0A(fn) { + function opModRegByte0A(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2479,7 +177,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg0B: function opModRegByte0B(fn) { + function opModRegByte0B(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2491,7 +189,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg0C: function opModRegByte0C(fn) { + function opModRegByte0C(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2503,7 +201,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg0D: function opModRegByte0D(fn) { + function opModRegByte0D(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2515,7 +213,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg0E: function opModRegByte0E(fn) { + function opModRegByte0E(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2527,7 +225,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg0F: function opModRegByte0F(fn) { + function opModRegByte0F(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -2539,7 +237,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg10: function opModRegByte10(fn) { + function opModRegByte10(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2551,7 +249,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg11: function opModRegByte11(fn) { + function opModRegByte11(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2563,7 +261,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg12: function opModRegByte12(fn) { + function opModRegByte12(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2575,7 +273,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg13: function opModRegByte13(fn) { + function opModRegByte13(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2587,7 +285,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg14: function opModRegByte14(fn) { + function opModRegByte14(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2599,7 +297,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg15: function opModRegByte15(fn) { + function opModRegByte15(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2611,7 +309,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg16: function opModRegByte16(fn) { + function opModRegByte16(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2623,7 +321,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg17: function opModRegByte17(fn) { + function opModRegByte17(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -2635,7 +333,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg18: function opModRegByte18(fn) { + function opModRegByte18(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2647,7 +345,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg19: function opModRegByte19(fn) { + function opModRegByte19(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2659,7 +357,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg1A: function opModRegByte1A(fn) { + function opModRegByte1A(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2671,7 +369,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg1B: function opModRegByte1B(fn) { + function opModRegByte1B(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2683,7 +381,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg1C: function opModRegByte1C(fn) { + function opModRegByte1C(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2695,7 +393,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg1D: function opModRegByte1D(fn) { + function opModRegByte1D(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2707,7 +405,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg1E: function opModRegByte1E(fn) { + function opModRegByte1E(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2719,7 +417,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg1F: function opModRegByte1F(fn) { + function opModRegByte1F(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -2731,7 +429,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg20: function opModRegByte20(fn) { + function opModRegByte20(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2743,7 +441,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg21: function opModRegByte21(fn) { + function opModRegByte21(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2755,7 +453,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg22: function opModRegByte22(fn) { + function opModRegByte22(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2767,7 +465,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg23: function opModRegByte23(fn) { + function opModRegByte23(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2779,7 +477,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg24: function opModRegByte24(fn) { + function opModRegByte24(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2791,7 +489,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg25: function opModRegByte25(fn) { + function opModRegByte25(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2803,7 +501,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg26: function opModRegByte26(fn) { + function opModRegByte26(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2815,7 +513,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg27: function opModRegByte27(fn) { + function opModRegByte27(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -2827,7 +525,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg28: function opModRegByte28(fn) { + function opModRegByte28(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2839,7 +537,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg29: function opModRegByte29(fn) { + function opModRegByte29(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2851,7 +549,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg2A: function opModRegByte2A(fn) { + function opModRegByte2A(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2863,7 +561,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg2B: function opModRegByte2B(fn) { + function opModRegByte2B(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2875,7 +573,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg2C: function opModRegByte2C(fn) { + function opModRegByte2C(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2887,7 +585,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg2D: function opModRegByte2D(fn) { + function opModRegByte2D(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2899,7 +597,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg2E: function opModRegByte2E(fn) { + function opModRegByte2E(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2911,7 +609,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg2F: function opModRegByte2F(fn) { + function opModRegByte2F(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -2923,7 +621,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg30: function opModRegByte30(fn) { + function opModRegByte30(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -2935,7 +633,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg31: function opModRegByte31(fn) { + function opModRegByte31(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -2947,7 +645,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg32: function opModRegByte32(fn) { + function opModRegByte32(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -2959,7 +657,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg33: function opModRegByte33(fn) { + function opModRegByte33(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -2971,7 +669,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg34: function opModRegByte34(fn) { + function opModRegByte34(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -2983,7 +681,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg35: function opModRegByte35(fn) { + function opModRegByte35(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -2995,7 +693,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg36: function opModRegByte36(fn) { + function opModRegByte36(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3007,7 +705,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg37: function opModRegByte37(fn) { + function opModRegByte37(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3019,7 +717,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg38: function opModRegByte38(fn) { + function opModRegByte38(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3031,7 +729,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg39: function opModRegByte39(fn) { + function opModRegByte39(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3043,7 +741,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg3A: function opModRegByte3A(fn) { + function opModRegByte3A(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3055,7 +753,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg3B: function opModRegByte3B(fn) { + function opModRegByte3B(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3067,7 +765,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg3C: function opModRegByte3C(fn) { + function opModRegByte3C(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, (this.regESI & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3079,7 +777,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg3D: function opModRegByte3D(fn) { + function opModRegByte3D(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEDI & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3091,7 +789,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg3E: function opModRegByte3E(fn) { + function opModRegByte3E(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, this.getIPWord())); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3103,7 +801,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg3F: function opModRegByte3F(fn) { + function opModRegByte3F(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, (this.regEBX & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3115,7 +813,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg40: function opModRegByte40(fn) { + function opModRegByte40(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3127,7 +825,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg41: function opModRegByte41(fn) { + function opModRegByte41(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3139,7 +837,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg42: function opModRegByte42(fn) { + function opModRegByte42(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3151,7 +849,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg43: function opModRegByte43(fn) { + function opModRegByte43(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3163,7 +861,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg44: function opModRegByte44(fn) { + function opModRegByte44(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3175,7 +873,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg45: function opModRegByte45(fn) { + function opModRegByte45(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3187,7 +885,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg46: function opModRegByte46(fn) { + function opModRegByte46(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3199,7 +897,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg47: function opModRegByte47(fn) { + function opModRegByte47(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3211,7 +909,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg48: function opModRegByte48(fn) { + function opModRegByte48(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3223,7 +921,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg49: function opModRegByte49(fn) { + function opModRegByte49(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3235,7 +933,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg4A: function opModRegByte4A(fn) { + function opModRegByte4A(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3247,7 +945,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg4B: function opModRegByte4B(fn) { + function opModRegByte4B(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3259,7 +957,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg4C: function opModRegByte4C(fn) { + function opModRegByte4C(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3271,7 +969,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg4D: function opModRegByte4D(fn) { + function opModRegByte4D(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3283,7 +981,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg4E: function opModRegByte4E(fn) { + function opModRegByte4E(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3295,7 +993,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg4F: function opModRegByte4F(fn) { + function opModRegByte4F(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3307,7 +1005,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg50: function opModRegByte50(fn) { + function opModRegByte50(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3319,7 +1017,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg51: function opModRegByte51(fn) { + function opModRegByte51(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3331,7 +1029,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg52: function opModRegByte52(fn) { + function opModRegByte52(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3343,7 +1041,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg53: function opModRegByte53(fn) { + function opModRegByte53(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3355,7 +1053,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg54: function opModRegByte54(fn) { + function opModRegByte54(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3367,7 +1065,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg55: function opModRegByte55(fn) { + function opModRegByte55(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3379,7 +1077,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg56: function opModRegByte56(fn) { + function opModRegByte56(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3391,7 +1089,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg57: function opModRegByte57(fn) { + function opModRegByte57(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -3403,7 +1101,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg58: function opModRegByte58(fn) { + function opModRegByte58(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3415,7 +1113,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg59: function opModRegByte59(fn) { + function opModRegByte59(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3427,7 +1125,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg5A: function opModRegByte5A(fn) { + function opModRegByte5A(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3439,7 +1137,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg5B: function opModRegByte5B(fn) { + function opModRegByte5B(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3451,7 +1149,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg5C: function opModRegByte5C(fn) { + function opModRegByte5C(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3463,7 +1161,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg5D: function opModRegByte5D(fn) { + function opModRegByte5D(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3475,7 +1173,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg5E: function opModRegByte5E(fn) { + function opModRegByte5E(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3487,7 +1185,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg5F: function opModRegByte5F(fn) { + function opModRegByte5F(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -3499,7 +1197,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg60: function opModRegByte60(fn) { + function opModRegByte60(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3511,7 +1209,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg61: function opModRegByte61(fn) { + function opModRegByte61(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3523,7 +1221,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg62: function opModRegByte62(fn) { + function opModRegByte62(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3535,7 +1233,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg63: function opModRegByte63(fn) { + function opModRegByte63(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3547,7 +1245,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg64: function opModRegByte64(fn) { + function opModRegByte64(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3559,7 +1257,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg65: function opModRegByte65(fn) { + function opModRegByte65(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3571,7 +1269,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg66: function opModRegByte66(fn) { + function opModRegByte66(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3583,7 +1281,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg67: function opModRegByte67(fn) { + function opModRegByte67(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -3595,7 +1293,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg68: function opModRegByte68(fn) { + function opModRegByte68(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3607,7 +1305,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg69: function opModRegByte69(fn) { + function opModRegByte69(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3619,7 +1317,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg6A: function opModRegByte6A(fn) { + function opModRegByte6A(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3631,7 +1329,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg6B: function opModRegByte6B(fn) { + function opModRegByte6B(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3643,7 +1341,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg6C: function opModRegByte6C(fn) { + function opModRegByte6C(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3655,7 +1353,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg6D: function opModRegByte6D(fn) { + function opModRegByte6D(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3667,7 +1365,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg6E: function opModRegByte6E(fn) { + function opModRegByte6E(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3679,7 +1377,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg6F: function opModRegByte6F(fn) { + function opModRegByte6F(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -3691,7 +1389,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg70: function opModRegByte70(fn) { + function opModRegByte70(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3703,7 +1401,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg71: function opModRegByte71(fn) { + function opModRegByte71(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3715,7 +1413,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg72: function opModRegByte72(fn) { + function opModRegByte72(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3727,7 +1425,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg73: function opModRegByte73(fn) { + function opModRegByte73(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3739,7 +1437,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg74: function opModRegByte74(fn) { + function opModRegByte74(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3751,7 +1449,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg75: function opModRegByte75(fn) { + function opModRegByte75(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3763,7 +1461,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg76: function opModRegByte76(fn) { + function opModRegByte76(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3775,7 +1473,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg77: function opModRegByte77(fn) { + function opModRegByte77(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -3787,7 +1485,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg78: function opModRegByte78(fn) { + function opModRegByte78(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3799,7 +1497,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg79: function opModRegByte79(fn) { + function opModRegByte79(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3811,7 +1509,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg7A: function opModRegByte7A(fn) { + function opModRegByte7A(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3823,7 +1521,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg7B: function opModRegByte7B(fn) { + function opModRegByte7B(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3835,7 +1533,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg7C: function opModRegByte7C(fn) { + function opModRegByte7C(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3847,7 +1545,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg7D: function opModRegByte7D(fn) { + function opModRegByte7D(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3859,7 +1557,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg7E: function opModRegByte7E(fn) { + function opModRegByte7E(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3871,7 +1569,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg7F: function opModRegByte7F(fn) { + function opModRegByte7F(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -3883,7 +1581,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg80: function opModRegByte80(fn) { + function opModRegByte80(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3895,7 +1593,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg81: function opModRegByte81(fn) { + function opModRegByte81(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3907,7 +1605,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg82: function opModRegByte82(fn) { + function opModRegByte82(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3919,7 +1617,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg83: function opModRegByte83(fn) { + function opModRegByte83(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3931,7 +1629,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg84: function opModRegByte84(fn) { + function opModRegByte84(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3943,7 +1641,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg85: function opModRegByte85(fn) { + function opModRegByte85(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3955,7 +1653,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg86: function opModRegByte86(fn) { + function opModRegByte86(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3967,7 +1665,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg87: function opModRegByte87(fn) { + function opModRegByte87(fn) { var b = fn.call(this, this.regEAX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -3979,7 +1677,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg88: function opModRegByte88(fn) { + function opModRegByte88(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -3991,7 +1689,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg89: function opModRegByte89(fn) { + function opModRegByte89(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -4003,7 +1701,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg8A: function opModRegByte8A(fn) { + function opModRegByte8A(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -4015,7 +1713,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg8B: function opModRegByte8B(fn) { + function opModRegByte8B(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -4027,7 +1725,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg8C: function opModRegByte8C(fn) { + function opModRegByte8C(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -4039,7 +1737,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg8D: function opModRegByte8D(fn) { + function opModRegByte8D(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -4051,7 +1749,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg8E: function opModRegByte8E(fn) { + function opModRegByte8E(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -4063,7 +1761,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg8F: function opModRegByte8F(fn) { + function opModRegByte8F(fn) { var b = fn.call(this, this.regECX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -4075,7 +1773,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg90: function opModRegByte90(fn) { + function opModRegByte90(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4087,7 +1785,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg91: function opModRegByte91(fn) { + function opModRegByte91(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4099,7 +1797,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg92: function opModRegByte92(fn) { + function opModRegByte92(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4111,7 +1809,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg93: function opModRegByte93(fn) { + function opModRegByte93(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4123,7 +1821,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg94: function opModRegByte94(fn) { + function opModRegByte94(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4135,7 +1833,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg95: function opModRegByte95(fn) { + function opModRegByte95(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4147,7 +1845,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg96: function opModRegByte96(fn) { + function opModRegByte96(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4159,7 +1857,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg97: function opModRegByte97(fn) { + function opModRegByte97(fn) { var b = fn.call(this, this.regEDX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -4171,7 +1869,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg98: function opModRegByte98(fn) { + function opModRegByte98(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4183,7 +1881,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg99: function opModRegByte99(fn) { + function opModRegByte99(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4195,7 +1893,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg9A: function opModRegByte9A(fn) { + function opModRegByte9A(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4207,7 +1905,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg9B: function opModRegByte9B(fn) { + function opModRegByte9B(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4219,7 +1917,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg9C: function opModRegByte9C(fn) { + function opModRegByte9C(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4231,7 +1929,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg9D: function opModRegByte9D(fn) { + function opModRegByte9D(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4243,7 +1941,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg9E: function opModRegByte9E(fn) { + function opModRegByte9E(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4255,7 +1953,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModReg9F: function opModRegByte9F(fn) { + function opModRegByte9F(fn) { var b = fn.call(this, this.regEBX & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -4267,7 +1965,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA0: function opModRegByteA0(fn) { + function opModRegByteA0(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4279,7 +1977,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA1: function opModRegByteA1(fn) { + function opModRegByteA1(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4291,7 +1989,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA2: function opModRegByteA2(fn) { + function opModRegByteA2(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4303,7 +2001,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA3: function opModRegByteA3(fn) { + function opModRegByteA3(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4315,7 +2013,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA4: function opModRegByteA4(fn) { + function opModRegByteA4(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4327,7 +2025,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA5: function opModRegByteA5(fn) { + function opModRegByteA5(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4339,7 +2037,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA6: function opModRegByteA6(fn) { + function opModRegByteA6(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4351,7 +2049,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA7: function opModRegByteA7(fn) { + function opModRegByteA7(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -4363,7 +2061,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA8: function opModRegByteA8(fn) { + function opModRegByteA8(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4375,7 +2073,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegA9: function opModRegByteA9(fn) { + function opModRegByteA9(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4387,7 +2085,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegAA: function opModRegByteAA(fn) { + function opModRegByteAA(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4399,7 +2097,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegAB: function opModRegByteAB(fn) { + function opModRegByteAB(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4411,7 +2109,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegAC: function opModRegByteAC(fn) { + function opModRegByteAC(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4423,7 +2121,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegAD: function opModRegByteAD(fn) { + function opModRegByteAD(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4435,7 +2133,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegAE: function opModRegByteAE(fn) { + function opModRegByteAE(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4447,7 +2145,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegAF: function opModRegByteAF(fn) { + function opModRegByteAF(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -4459,7 +2157,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB0: function opModRegByteB0(fn) { + function opModRegByteB0(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4471,7 +2169,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB1: function opModRegByteB1(fn) { + function opModRegByteB1(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4483,7 +2181,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB2: function opModRegByteB2(fn) { + function opModRegByteB2(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4495,7 +2193,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB3: function opModRegByteB3(fn) { + function opModRegByteB3(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4507,7 +2205,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB4: function opModRegByteB4(fn) { + function opModRegByteB4(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4519,7 +2217,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB5: function opModRegByteB5(fn) { + function opModRegByteB5(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4531,7 +2229,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB6: function opModRegByteB6(fn) { + function opModRegByteB6(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4543,7 +2241,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB7: function opModRegByteB7(fn) { + function opModRegByteB7(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -4555,7 +2253,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB8: function opModRegByteB8(fn) { + function opModRegByteB8(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4567,7 +2265,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegB9: function opModRegByteB9(fn) { + function opModRegByteB9(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4579,7 +2277,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegBA: function opModRegByteBA(fn) { + function opModRegByteBA(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4591,7 +2289,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegBB: function opModRegByteBB(fn) { + function opModRegByteBB(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4603,7 +2301,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegBC: function opModRegByteBC(fn) { + function opModRegByteBC(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4615,7 +2313,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegBD: function opModRegByteBD(fn) { + function opModRegByteBD(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4627,7 +2325,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegBE: function opModRegByteBE(fn) { + function opModRegByteBE(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4639,7 +2337,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegBF: function opModRegByteBF(fn) { + function opModRegByteBF(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.getEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -4651,7 +2349,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC0: function opModRegByteC0(fn) { + function opModRegByteC0(fn) { var b = fn.call(this, this.regEAX & 0xff, this.regEAX & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; }, @@ -4661,7 +2359,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC1: function opModRegByteC1(fn) { + function opModRegByteC1(fn) { var b = fn.call(this, this.regEAX & 0xff, this.regECX & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCL; @@ -4672,7 +2370,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC2: function opModRegByteC2(fn) { + function opModRegByteC2(fn) { var b = fn.call(this, this.regEAX & 0xff, this.regEDX & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDL; @@ -4683,7 +2381,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC3: function opModRegByteC3(fn) { + function opModRegByteC3(fn) { var b = fn.call(this, this.regEAX & 0xff, this.regEBX & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBL; @@ -4694,7 +2392,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC4: function opModRegByteC4(fn) { + function opModRegByteC4(fn) { var b = fn.call(this, this.regEAX & 0xff, (this.regEAX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiAH; @@ -4705,7 +2403,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC5: function opModRegByteC5(fn) { + function opModRegByteC5(fn) { var b = fn.call(this, this.regEAX & 0xff, (this.regECX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiCH; @@ -4716,7 +2414,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC6: function opModRegByteC6(fn) { + function opModRegByteC6(fn) { var b = fn.call(this, this.regEAX & 0xff, (this.regEDX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiDH; @@ -4727,7 +2425,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC7: function opModRegByteC7(fn) { + function opModRegByteC7(fn) { var b = fn.call(this, this.regEAX & 0xff, (this.regEBX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiBH; @@ -4738,7 +2436,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC8: function opModRegByteC8(fn) { + function opModRegByteC8(fn) { var b = fn.call(this, this.regECX & 0xff, this.regEAX & 0xff); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAL; @@ -4749,7 +2447,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegC9: function opModRegByteC9(fn) { + function opModRegByteC9(fn) { var b = fn.call(this, this.regECX & 0xff, this.regECX & 0xff); this.regECX = (this.regECX & ~0xff) | b; }, @@ -4759,7 +2457,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegCA: function opModRegByteCA(fn) { + function opModRegByteCA(fn) { var b = fn.call(this, this.regECX & 0xff, this.regEDX & 0xff); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDL; @@ -4770,7 +2468,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegCB: function opModRegByteCB(fn) { + function opModRegByteCB(fn) { var b = fn.call(this, this.regECX & 0xff, this.regEBX & 0xff); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBL; @@ -4781,7 +2479,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegCC: function opModRegByteCC(fn) { + function opModRegByteCC(fn) { var b = fn.call(this, this.regECX & 0xff, (this.regEAX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiAH; @@ -4792,7 +2490,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegCD: function opModRegByteCD(fn) { + function opModRegByteCD(fn) { var b = fn.call(this, this.regECX & 0xff, (this.regECX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiCH; @@ -4803,7 +2501,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegCE: function opModRegByteCE(fn) { + function opModRegByteCE(fn) { var b = fn.call(this, this.regECX & 0xff, (this.regEDX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiDH; @@ -4814,7 +2512,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegCF: function opModRegByteCF(fn) { + function opModRegByteCF(fn) { var b = fn.call(this, this.regECX & 0xff, (this.regEBX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiBH; @@ -4825,7 +2523,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD0: function opModRegByteD0(fn) { + function opModRegByteD0(fn) { var b = fn.call(this, this.regEDX & 0xff, this.regEAX & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAL; @@ -4836,7 +2534,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD1: function opModRegByteD1(fn) { + function opModRegByteD1(fn) { var b = fn.call(this, this.regEDX & 0xff, this.regECX & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCL; @@ -4847,7 +2545,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD2: function opModRegByteD2(fn) { + function opModRegByteD2(fn) { var b = fn.call(this, this.regEDX & 0xff, this.regEDX & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; }, @@ -4857,7 +2555,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD3: function opModRegByteD3(fn) { + function opModRegByteD3(fn) { var b = fn.call(this, this.regEDX & 0xff, this.regEBX & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBL; @@ -4868,7 +2566,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD4: function opModRegByteD4(fn) { + function opModRegByteD4(fn) { var b = fn.call(this, this.regEDX & 0xff, (this.regEAX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiAH; @@ -4879,7 +2577,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD5: function opModRegByteD5(fn) { + function opModRegByteD5(fn) { var b = fn.call(this, this.regEDX & 0xff, (this.regECX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiCH; @@ -4890,7 +2588,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD6: function opModRegByteD6(fn) { + function opModRegByteD6(fn) { var b = fn.call(this, this.regEDX & 0xff, (this.regEDX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiDH; @@ -4901,7 +2599,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD7: function opModRegByteD7(fn) { + function opModRegByteD7(fn) { var b = fn.call(this, this.regEDX & 0xff, (this.regEBX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiBH; @@ -4912,7 +2610,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD8: function opModRegByteD8(fn) { + function opModRegByteD8(fn) { var b = fn.call(this, this.regEBX & 0xff, this.regEAX & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAL; @@ -4923,7 +2621,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegD9: function opModRegByteD9(fn) { + function opModRegByteD9(fn) { var b = fn.call(this, this.regEBX & 0xff, this.regECX & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCL; @@ -4934,7 +2632,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegDA: function opModRegByteDA(fn) { + function opModRegByteDA(fn) { var b = fn.call(this, this.regEBX & 0xff, this.regEDX & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDL; @@ -4945,7 +2643,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegDB: function opModRegByteDB(fn) { + function opModRegByteDB(fn) { var b = fn.call(this, this.regEBX & 0xff, this.regEBX & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; }, @@ -4955,7 +2653,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegDC: function opModRegByteDC(fn) { + function opModRegByteDC(fn) { var b = fn.call(this, this.regEBX & 0xff, (this.regEAX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiAH; @@ -4966,7 +2664,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegDD: function opModRegByteDD(fn) { + function opModRegByteDD(fn) { var b = fn.call(this, this.regEBX & 0xff, (this.regECX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiCH; @@ -4977,7 +2675,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegDE: function opModRegByteDE(fn) { + function opModRegByteDE(fn) { var b = fn.call(this, this.regEBX & 0xff, (this.regEDX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiDH; @@ -4988,7 +2686,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegDF: function opModRegByteDF(fn) { + function opModRegByteDF(fn) { var b = fn.call(this, this.regEBX & 0xff, (this.regEBX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiBH; @@ -4999,7 +2697,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE0: function opModRegByteE0(fn) { + function opModRegByteE0(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEAX & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiAL; @@ -5010,7 +2708,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE1: function opModRegByteE1(fn) { + function opModRegByteE1(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regECX & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCL; @@ -5021,7 +2719,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE2: function opModRegByteE2(fn) { + function opModRegByteE2(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEDX & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDL; @@ -5032,7 +2730,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE3: function opModRegByteE3(fn) { + function opModRegByteE3(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, this.regEBX & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBL; @@ -5043,7 +2741,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE4: function opModRegByteE4(fn) { + function opModRegByteE4(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); }, @@ -5053,7 +2751,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE5: function opModRegByteE5(fn) { + function opModRegByteE5(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regECX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiCH; @@ -5064,7 +2762,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE6: function opModRegByteE6(fn) { + function opModRegByteE6(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiDH; @@ -5075,7 +2773,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE7: function opModRegByteE7(fn) { + function opModRegByteE7(fn) { var b = fn.call(this, (this.regEAX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiBH; @@ -5086,7 +2784,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE8: function opModRegByteE8(fn) { + function opModRegByteE8(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEAX & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAL; @@ -5097,7 +2795,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegE9: function opModRegByteE9(fn) { + function opModRegByteE9(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regECX & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiCL; @@ -5108,7 +2806,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegEA: function opModRegByteEA(fn) { + function opModRegByteEA(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEDX & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDL; @@ -5119,7 +2817,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegEB: function opModRegByteEB(fn) { + function opModRegByteEB(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, this.regEBX & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBL; @@ -5130,7 +2828,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegEC: function opModRegByteEC(fn) { + function opModRegByteEC(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiAH; @@ -5141,7 +2839,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegED: function opModRegByteED(fn) { + function opModRegByteED(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regECX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); }, @@ -5151,7 +2849,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegEE: function opModRegByteEE(fn) { + function opModRegByteEE(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiDH; @@ -5162,7 +2860,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegEF: function opModRegByteEF(fn) { + function opModRegByteEF(fn) { var b = fn.call(this, (this.regECX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiBH; @@ -5173,7 +2871,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF0: function opModRegByteF0(fn) { + function opModRegByteF0(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEAX & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAL; @@ -5184,7 +2882,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF1: function opModRegByteF1(fn) { + function opModRegByteF1(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regECX & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCL; @@ -5195,7 +2893,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF2: function opModRegByteF2(fn) { + function opModRegByteF2(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEDX & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiDL; @@ -5206,7 +2904,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF3: function opModRegByteF3(fn) { + function opModRegByteF3(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, this.regEBX & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBL; @@ -5217,7 +2915,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF4: function opModRegByteF4(fn) { + function opModRegByteF4(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiAH; @@ -5228,7 +2926,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF5: function opModRegByteF5(fn) { + function opModRegByteF5(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regECX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiCH; @@ -5239,7 +2937,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF6: function opModRegByteF6(fn) { + function opModRegByteF6(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); }, @@ -5249,7 +2947,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF7: function opModRegByteF7(fn) { + function opModRegByteF7(fn) { var b = fn.call(this, (this.regEDX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiBH; @@ -5260,7 +2958,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF8: function opModRegByteF8(fn) { + function opModRegByteF8(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEAX & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAL; @@ -5271,7 +2969,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegF9: function opModRegByteF9(fn) { + function opModRegByteF9(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regECX & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCL; @@ -5282,7 +2980,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegFA: function opModRegByteFA(fn) { + function opModRegByteFA(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEDX & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDL; @@ -5293,7 +2991,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegFB: function opModRegByteFB(fn) { + function opModRegByteFB(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, this.regEBX & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiBL; @@ -5304,7 +3002,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegFC: function opModRegByteFC(fn) { + function opModRegByteFC(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEAX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiAH; @@ -5315,7 +3013,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegFD: function opModRegByteFD(fn) { + function opModRegByteFD(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regECX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiCH; @@ -5326,7 +3024,7 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegFE: function opModRegByteFE(fn) { + function opModRegByteFE(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEDX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiDH; @@ -5337,10 +3035,2336 @@ var X86ModB = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModRegFF: function opModRegByteFF(fn) { + function opModRegByteFF(fn) { var b = fn.call(this, (this.regEBX >> 8) & 0xff, (this.regEBX >> 8) & 0xff); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); + } +]; + +X86ModB.aOpModMem = [ + /** + * opModMemByte00(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte00(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; }, + /** + * opModMemByte01(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte01(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte02(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte02(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte03(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte03(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte04(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte04(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte05(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte05(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte06(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte06(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte07(fn): mod=00 (mem:dst) reg=000 (AL:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte07(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte08(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte08(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte09(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte09(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte0A(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte0A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte0B(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte0B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte0C(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte0C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte0D(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte0D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte0E(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte0E(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte0F(fn): mod=00 (mem:dst) reg=001 (CL:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte0F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte10(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte10(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte11(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte11(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte12(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte12(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte13(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte13(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte14(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte14(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte15(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte15(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte16(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte16(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte17(fn): mod=00 (mem:dst) reg=010 (DL:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte17(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte18(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte18(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte19(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte19(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte1A(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte1A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte1B(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte1B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte1C(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte1C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte1D(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte1D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte1E(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte1E(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte1F(fn): mod=00 (mem:dst) reg=011 (BL:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte1F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte20(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte20(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte21(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte21(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte22(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte22(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte23(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte23(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte24(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte24(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte25(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte25(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte26(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte26(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte27(fn): mod=00 (mem:dst) reg=100 (AH:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte27(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte28(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte28(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte29(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte29(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte2A(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte2A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte2B(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte2B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte2C(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte2C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte2D(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte2D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte2E(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte2E(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte2F(fn): mod=00 (mem:dst) reg=101 (CH:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte2F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte30(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte30(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte31(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte31(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte32(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte32(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte33(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte33(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte34(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte34(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte35(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte35(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte36(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte36(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte37(fn): mod=00 (mem:dst) reg=110 (DH:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte37(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte38(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte38(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte39(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte39(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte3A(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte3A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModMemByte3B(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte3B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModMemByte3C(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte3C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte3D(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte3D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte3E(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte3E(fn) { + var b = fn.call(this, this.modEAByte(this.segData, this.getIPWord()), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModMemByte3F(fn): mod=00 (mem:dst) reg=111 (BH:src) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte3F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModMemByte40(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte40(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte41(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte41(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte42(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte42(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte43(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte43(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte44(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte44(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte45(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte45(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte46(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte46(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte47(fn): mod=01 (mem+d8:dst) reg=000 (AL:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte47(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte48(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte48(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte49(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte49(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte4A(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte4A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte4B(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte4B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte4C(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte4C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte4D(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte4D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte4E(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte4E(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte4F(fn): mod=01 (mem+d8:dst) reg=001 (CL:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte4F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte50(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte50(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte51(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte51(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte52(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte52(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte53(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte53(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte54(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte54(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte55(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte55(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte56(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte56(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte57(fn): mod=01 (mem+d8:dst) reg=010 (DL:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte57(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte58(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte58(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte59(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte59(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte5A(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte5A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte5B(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte5B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte5C(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte5C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte5D(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte5D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte5E(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte5E(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte5F(fn): mod=01 (mem+d8:dst) reg=011 (BL:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte5F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte60(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte60(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte61(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte61(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte62(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte62(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte63(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte63(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte64(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte64(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte65(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte65(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte66(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte66(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte67(fn): mod=01 (mem+d8:dst) reg=100 (AH:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte67(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte68(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte68(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte69(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte69(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte6A(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte6A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte6B(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte6B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte6C(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte6C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte6D(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte6D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte6E(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte6E(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte6F(fn): mod=01 (mem+d8:dst) reg=101 (CH:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte6F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte70(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte70(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte71(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte71(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte72(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte72(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte73(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte73(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte74(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte74(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte75(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte75(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte76(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte76(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte77(fn): mod=01 (mem+d8:dst) reg=110 (DH:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte77(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte78(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte78(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte79(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte79(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte7A(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte7A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte7B(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte7B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte7C(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte7C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte7D(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte7D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte7E(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte7E(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte7F(fn): mod=01 (mem+d8:dst) reg=111 (BH:src) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte7F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte80(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte80(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte81(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte81(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte82(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte82(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte83(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte83(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte84(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte84(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte85(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte85(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte86(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte86(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte87(fn): mod=10 (mem+d16:dst) reg=000 (AL:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte87(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEAX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte88(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte88(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte89(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte89(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte8A(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte8A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte8B(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte8B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte8C(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte8C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte8D(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte8D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte8E(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte8E(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte8F(fn): mod=10 (mem+d16:dst) reg=001 (CL:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte8F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regECX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte90(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte90(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte91(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte91(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte92(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte92(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte93(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte93(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte94(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte94(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte95(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte95(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte96(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte96(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte97(fn): mod=10 (mem+d16:dst) reg=010 (DL:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte97(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEDX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte98(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte98(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte99(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte99(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte9A(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte9A(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByte9B(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte9B(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByte9C(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte9C(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte9D(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte9D(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte9E(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte9E(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByte9F(fn): mod=10 (mem+d16:dst) reg=011 (BL:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByte9F(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEBX & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBL; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteA0(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA0(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteA1(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA1(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteA2(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA2(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteA3(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA3(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteA4(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA4(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteA5(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA5(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteA6(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA6(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteA7(fn): mod=10 (mem+d16:dst) reg=100 (AH:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA7(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regEAX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiAH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteA8(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA8(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteA9(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteA9(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteAA(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteAA(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteAB(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteAB(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteAC(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteAC(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteAD(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteAD(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteAE(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteAE(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteAF(fn): mod=10 (mem+d16:dst) reg=101 (CH:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteAF(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regECX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiCH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteB0(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB0(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteB1(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB1(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteB2(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB2(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteB3(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB3(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteB4(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB4(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteB5(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB5(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteB6(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB6(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteB7(fn): mod=10 (mem+d16:dst) reg=110 (DH:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB7(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regEDX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiDH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteB8(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB8(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteB9(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteB9(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteBA(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteBA(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModMemByteBB(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteBB(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModMemByteBC(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteBC(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteBD(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteBD(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteBE(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteBE(fn) { + var b = fn.call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModMemByteBF(fn): mod=10 (mem+d16:dst) reg=111 (BH:src) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModMemByteBF(fn) { + var b = fn.call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), (this.regEBX >> 8) & 0xff); + if (BACKTRACK) this.backTrack.btiEALo = this.backTrack.btiBH; + this.setEAByte(b); + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + X86ModB.aOpModReg[0xC0], X86ModB.aOpModReg[0xC8], X86ModB.aOpModReg[0xD0], X86ModB.aOpModReg[0xD8], + X86ModB.aOpModReg[0xE0], X86ModB.aOpModReg[0xE8], X86ModB.aOpModReg[0xF0], X86ModB.aOpModReg[0xF8], + X86ModB.aOpModReg[0xC1], X86ModB.aOpModReg[0xC9], X86ModB.aOpModReg[0xD1], X86ModB.aOpModReg[0xD9], + X86ModB.aOpModReg[0xE1], X86ModB.aOpModReg[0xE9], X86ModB.aOpModReg[0xF1], X86ModB.aOpModReg[0xF9], + X86ModB.aOpModReg[0xC2], X86ModB.aOpModReg[0xCA], X86ModB.aOpModReg[0xD2], X86ModB.aOpModReg[0xDA], + X86ModB.aOpModReg[0xE2], X86ModB.aOpModReg[0xEA], X86ModB.aOpModReg[0xF2], X86ModB.aOpModReg[0xFA], + X86ModB.aOpModReg[0xC3], X86ModB.aOpModReg[0xCB], X86ModB.aOpModReg[0xD3], X86ModB.aOpModReg[0xDB], + X86ModB.aOpModReg[0xE3], X86ModB.aOpModReg[0xEB], X86ModB.aOpModReg[0xF3], X86ModB.aOpModReg[0xFB], + X86ModB.aOpModReg[0xC4], X86ModB.aOpModReg[0xCC], X86ModB.aOpModReg[0xD4], X86ModB.aOpModReg[0xDC], + X86ModB.aOpModReg[0xE4], X86ModB.aOpModReg[0xEC], X86ModB.aOpModReg[0xF4], X86ModB.aOpModReg[0xFC], + X86ModB.aOpModReg[0xC5], X86ModB.aOpModReg[0xCD], X86ModB.aOpModReg[0xD5], X86ModB.aOpModReg[0xDD], + X86ModB.aOpModReg[0xE5], X86ModB.aOpModReg[0xED], X86ModB.aOpModReg[0xF5], X86ModB.aOpModReg[0xFD], + X86ModB.aOpModReg[0xC6], X86ModB.aOpModReg[0xCE], X86ModB.aOpModReg[0xD6], X86ModB.aOpModReg[0xDE], + X86ModB.aOpModReg[0xE6], X86ModB.aOpModReg[0xEE], X86ModB.aOpModReg[0xF6], X86ModB.aOpModReg[0xFE], + X86ModB.aOpModReg[0xC7], X86ModB.aOpModReg[0xCF], X86ModB.aOpModReg[0xD7], X86ModB.aOpModReg[0xDF], + X86ModB.aOpModReg[0xE7], X86ModB.aOpModReg[0xEF], X86ModB.aOpModReg[0xF7], X86ModB.aOpModReg[0xFF] +]; + +X86ModB.aOpModGrp = [ /** * opModGrpByte00(afnGrp, fnSrc): mod=00 (mem:dst) reg=000 (afnGrp[0]) r/m=000 (BX+SI) * @@ -5348,7 +5372,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp00: function opModGrpByte00(afnGrp, fnSrc) { + function opModGrpByte00(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5360,7 +5384,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp01: function opModGrpByte01(afnGrp, fnSrc) { + function opModGrpByte01(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5372,7 +5396,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp02: function opModGrpByte02(afnGrp, fnSrc) { + function opModGrpByte02(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5384,7 +5408,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp03: function opModGrpByte03(afnGrp, fnSrc) { + function opModGrpByte03(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5396,7 +5420,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp04: function opModGrpByte04(afnGrp, fnSrc) { + function opModGrpByte04(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5408,7 +5432,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp05: function opModGrpByte05(afnGrp, fnSrc) { + function opModGrpByte05(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5420,7 +5444,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp06: function opModGrpByte06(afnGrp, fnSrc) { + function opModGrpByte06(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -5432,7 +5456,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp07: function opModGrpByte07(afnGrp, fnSrc) { + function opModGrpByte07(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5444,7 +5468,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp08: function opModGrpByte08(afnGrp, fnSrc) { + function opModGrpByte08(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5456,7 +5480,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp09: function opModGrpByte09(afnGrp, fnSrc) { + function opModGrpByte09(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5468,7 +5492,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0A: function opModGrpByte0A(afnGrp, fnSrc) { + function opModGrpByte0A(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5480,7 +5504,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0B: function opModGrpByte0B(afnGrp, fnSrc) { + function opModGrpByte0B(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5492,7 +5516,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0C: function opModGrpByte0C(afnGrp, fnSrc) { + function opModGrpByte0C(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5504,7 +5528,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0D: function opModGrpByte0D(afnGrp, fnSrc) { + function opModGrpByte0D(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5516,7 +5540,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0E: function opModGrpByte0E(afnGrp, fnSrc) { + function opModGrpByte0E(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -5528,7 +5552,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0F: function opModGrpByte0F(afnGrp, fnSrc) { + function opModGrpByte0F(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5540,7 +5564,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp10: function opModGrpByte10(afnGrp, fnSrc) { + function opModGrpByte10(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5552,7 +5576,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp11: function opModGrpByte11(afnGrp, fnSrc) { + function opModGrpByte11(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5564,7 +5588,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp12: function opModGrpByte12(afnGrp, fnSrc) { + function opModGrpByte12(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5576,7 +5600,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp13: function opModGrpByte13(afnGrp, fnSrc) { + function opModGrpByte13(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5588,7 +5612,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp14: function opModGrpByte14(afnGrp, fnSrc) { + function opModGrpByte14(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5600,7 +5624,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp15: function opModGrpByte15(afnGrp, fnSrc) { + function opModGrpByte15(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5612,7 +5636,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp16: function opModGrpByte16(afnGrp, fnSrc) { + function opModGrpByte16(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -5624,7 +5648,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp17: function opModGrpByte17(afnGrp, fnSrc) { + function opModGrpByte17(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5636,7 +5660,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp18: function opModGrpByte18(afnGrp, fnSrc) { + function opModGrpByte18(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5648,7 +5672,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp19: function opModGrpByte19(afnGrp, fnSrc) { + function opModGrpByte19(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5660,7 +5684,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1A: function opModGrpByte1A(afnGrp, fnSrc) { + function opModGrpByte1A(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5672,7 +5696,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1B: function opModGrpByte1B(afnGrp, fnSrc) { + function opModGrpByte1B(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5684,7 +5708,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1C: function opModGrpByte1C(afnGrp, fnSrc) { + function opModGrpByte1C(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5696,7 +5720,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1D: function opModGrpByte1D(afnGrp, fnSrc) { + function opModGrpByte1D(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5708,7 +5732,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1E: function opModGrpByte1E(afnGrp, fnSrc) { + function opModGrpByte1E(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -5720,7 +5744,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1F: function opModGrpByte1F(afnGrp, fnSrc) { + function opModGrpByte1F(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5732,7 +5756,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp20: function opModGrpByte20(afnGrp, fnSrc) { + function opModGrpByte20(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5744,7 +5768,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp21: function opModGrpByte21(afnGrp, fnSrc) { + function opModGrpByte21(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5756,7 +5780,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp22: function opModGrpByte22(afnGrp, fnSrc) { + function opModGrpByte22(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5768,7 +5792,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp23: function opModGrpByte23(afnGrp, fnSrc) { + function opModGrpByte23(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5780,7 +5804,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp24: function opModGrpByte24(afnGrp, fnSrc) { + function opModGrpByte24(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5792,7 +5816,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp25: function opModGrpByte25(afnGrp, fnSrc) { + function opModGrpByte25(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5804,7 +5828,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp26: function opModGrpByte26(afnGrp, fnSrc) { + function opModGrpByte26(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -5816,7 +5840,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp27: function opModGrpByte27(afnGrp, fnSrc) { + function opModGrpByte27(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5828,7 +5852,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp28: function opModGrpByte28(afnGrp, fnSrc) { + function opModGrpByte28(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5840,7 +5864,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp29: function opModGrpByte29(afnGrp, fnSrc) { + function opModGrpByte29(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5852,7 +5876,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2A: function opModGrpByte2A(afnGrp, fnSrc) { + function opModGrpByte2A(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5864,7 +5888,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2B: function opModGrpByte2B(afnGrp, fnSrc) { + function opModGrpByte2B(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5876,7 +5900,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2C: function opModGrpByte2C(afnGrp, fnSrc) { + function opModGrpByte2C(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5888,7 +5912,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2D: function opModGrpByte2D(afnGrp, fnSrc) { + function opModGrpByte2D(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5900,7 +5924,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2E: function opModGrpByte2E(afnGrp, fnSrc) { + function opModGrpByte2E(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -5912,7 +5936,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2F: function opModGrpByte2F(afnGrp, fnSrc) { + function opModGrpByte2F(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5924,7 +5948,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp30: function opModGrpByte30(afnGrp, fnSrc) { + function opModGrpByte30(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5936,7 +5960,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp31: function opModGrpByte31(afnGrp, fnSrc) { + function opModGrpByte31(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5948,7 +5972,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp32: function opModGrpByte32(afnGrp, fnSrc) { + function opModGrpByte32(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -5960,7 +5984,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp33: function opModGrpByte33(afnGrp, fnSrc) { + function opModGrpByte33(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -5972,7 +5996,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp34: function opModGrpByte34(afnGrp, fnSrc) { + function opModGrpByte34(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5984,7 +6008,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp35: function opModGrpByte35(afnGrp, fnSrc) { + function opModGrpByte35(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -5996,7 +6020,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp36: function opModGrpByte36(afnGrp, fnSrc) { + function opModGrpByte36(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6008,7 +6032,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp37: function opModGrpByte37(afnGrp, fnSrc) { + function opModGrpByte37(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6020,7 +6044,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp38: function opModGrpByte38(afnGrp, fnSrc) { + function opModGrpByte38(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6032,7 +6056,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp39: function opModGrpByte39(afnGrp, fnSrc) { + function opModGrpByte39(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6044,7 +6068,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3A: function opModGrpByte3A(afnGrp, fnSrc) { + function opModGrpByte3A(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6056,7 +6080,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3B: function opModGrpByte3B(afnGrp, fnSrc) { + function opModGrpByte3B(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6068,7 +6092,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3C: function opModGrpByte3C(afnGrp, fnSrc) { + function opModGrpByte3C(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6080,7 +6104,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3D: function opModGrpByte3D(afnGrp, fnSrc) { + function opModGrpByte3D(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6092,7 +6116,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3E: function opModGrpByte3E(afnGrp, fnSrc) { + function opModGrpByte3E(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6104,7 +6128,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3F: function opModGrpByte3F(afnGrp, fnSrc) { + function opModGrpByte3F(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6116,7 +6140,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp40: function opModGrpByte40(afnGrp, fnSrc) { + function opModGrpByte40(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6128,7 +6152,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp41: function opModGrpByte41(afnGrp, fnSrc) { + function opModGrpByte41(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6140,7 +6164,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp42: function opModGrpByte42(afnGrp, fnSrc) { + function opModGrpByte42(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6152,7 +6176,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp43: function opModGrpByte43(afnGrp, fnSrc) { + function opModGrpByte43(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6164,7 +6188,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp44: function opModGrpByte44(afnGrp, fnSrc) { + function opModGrpByte44(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6176,7 +6200,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp45: function opModGrpByte45(afnGrp, fnSrc) { + function opModGrpByte45(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6188,7 +6212,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp46: function opModGrpByte46(afnGrp, fnSrc) { + function opModGrpByte46(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6200,7 +6224,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp47: function opModGrpByte47(afnGrp, fnSrc) { + function opModGrpByte47(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6212,7 +6236,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp48: function opModGrpByte48(afnGrp, fnSrc) { + function opModGrpByte48(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6224,7 +6248,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp49: function opModGrpByte49(afnGrp, fnSrc) { + function opModGrpByte49(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6236,7 +6260,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4A: function opModGrpByte4A(afnGrp, fnSrc) { + function opModGrpByte4A(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6248,7 +6272,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4B: function opModGrpByte4B(afnGrp, fnSrc) { + function opModGrpByte4B(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6260,7 +6284,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4C: function opModGrpByte4C(afnGrp, fnSrc) { + function opModGrpByte4C(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6272,7 +6296,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4D: function opModGrpByte4D(afnGrp, fnSrc) { + function opModGrpByte4D(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6284,7 +6308,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4E: function opModGrpByte4E(afnGrp, fnSrc) { + function opModGrpByte4E(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6296,7 +6320,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4F: function opModGrpByte4F(afnGrp, fnSrc) { + function opModGrpByte4F(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6308,7 +6332,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp50: function opModGrpByte50(afnGrp, fnSrc) { + function opModGrpByte50(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6320,7 +6344,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp51: function opModGrpByte51(afnGrp, fnSrc) { + function opModGrpByte51(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6332,7 +6356,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp52: function opModGrpByte52(afnGrp, fnSrc) { + function opModGrpByte52(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6344,7 +6368,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp53: function opModGrpByte53(afnGrp, fnSrc) { + function opModGrpByte53(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6356,7 +6380,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp54: function opModGrpByte54(afnGrp, fnSrc) { + function opModGrpByte54(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6368,7 +6392,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp55: function opModGrpByte55(afnGrp, fnSrc) { + function opModGrpByte55(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6380,7 +6404,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp56: function opModGrpByte56(afnGrp, fnSrc) { + function opModGrpByte56(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6392,7 +6416,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp57: function opModGrpByte57(afnGrp, fnSrc) { + function opModGrpByte57(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6404,7 +6428,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp58: function opModGrpByte58(afnGrp, fnSrc) { + function opModGrpByte58(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6416,7 +6440,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp59: function opModGrpByte59(afnGrp, fnSrc) { + function opModGrpByte59(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6428,7 +6452,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5A: function opModGrpByte5A(afnGrp, fnSrc) { + function opModGrpByte5A(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6440,7 +6464,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5B: function opModGrpByte5B(afnGrp, fnSrc) { + function opModGrpByte5B(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6452,7 +6476,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5C: function opModGrpByte5C(afnGrp, fnSrc) { + function opModGrpByte5C(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6464,7 +6488,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5D: function opModGrpByte5D(afnGrp, fnSrc) { + function opModGrpByte5D(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6476,7 +6500,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5E: function opModGrpByte5E(afnGrp, fnSrc) { + function opModGrpByte5E(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6488,7 +6512,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5F: function opModGrpByte5F(afnGrp, fnSrc) { + function opModGrpByte5F(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6500,7 +6524,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp60: function opModGrpByte60(afnGrp, fnSrc) { + function opModGrpByte60(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6512,7 +6536,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp61: function opModGrpByte61(afnGrp, fnSrc) { + function opModGrpByte61(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6524,7 +6548,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp62: function opModGrpByte62(afnGrp, fnSrc) { + function opModGrpByte62(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6536,7 +6560,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp63: function opModGrpByte63(afnGrp, fnSrc) { + function opModGrpByte63(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6548,7 +6572,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp64: function opModGrpByte64(afnGrp, fnSrc) { + function opModGrpByte64(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6560,7 +6584,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp65: function opModGrpByte65(afnGrp, fnSrc) { + function opModGrpByte65(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6572,7 +6596,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp66: function opModGrpByte66(afnGrp, fnSrc) { + function opModGrpByte66(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6584,7 +6608,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp67: function opModGrpByte67(afnGrp, fnSrc) { + function opModGrpByte67(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6596,7 +6620,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp68: function opModGrpByte68(afnGrp, fnSrc) { + function opModGrpByte68(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6608,7 +6632,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp69: function opModGrpByte69(afnGrp, fnSrc) { + function opModGrpByte69(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6620,7 +6644,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6A: function opModGrpByte6A(afnGrp, fnSrc) { + function opModGrpByte6A(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6632,7 +6656,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6B: function opModGrpByte6B(afnGrp, fnSrc) { + function opModGrpByte6B(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6644,7 +6668,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6C: function opModGrpByte6C(afnGrp, fnSrc) { + function opModGrpByte6C(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6656,7 +6680,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6D: function opModGrpByte6D(afnGrp, fnSrc) { + function opModGrpByte6D(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6668,7 +6692,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6E: function opModGrpByte6E(afnGrp, fnSrc) { + function opModGrpByte6E(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6680,7 +6704,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6F: function opModGrpByte6F(afnGrp, fnSrc) { + function opModGrpByte6F(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6692,7 +6716,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp70: function opModGrpByte70(afnGrp, fnSrc) { + function opModGrpByte70(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6704,7 +6728,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp71: function opModGrpByte71(afnGrp, fnSrc) { + function opModGrpByte71(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6716,7 +6740,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp72: function opModGrpByte72(afnGrp, fnSrc) { + function opModGrpByte72(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6728,7 +6752,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp73: function opModGrpByte73(afnGrp, fnSrc) { + function opModGrpByte73(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6740,7 +6764,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp74: function opModGrpByte74(afnGrp, fnSrc) { + function opModGrpByte74(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6752,7 +6776,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp75: function opModGrpByte75(afnGrp, fnSrc) { + function opModGrpByte75(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6764,7 +6788,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp76: function opModGrpByte76(afnGrp, fnSrc) { + function opModGrpByte76(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6776,7 +6800,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp77: function opModGrpByte77(afnGrp, fnSrc) { + function opModGrpByte77(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6788,7 +6812,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp78: function opModGrpByte78(afnGrp, fnSrc) { + function opModGrpByte78(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6800,7 +6824,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp79: function opModGrpByte79(afnGrp, fnSrc) { + function opModGrpByte79(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6812,7 +6836,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7A: function opModGrpByte7A(afnGrp, fnSrc) { + function opModGrpByte7A(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6824,7 +6848,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7B: function opModGrpByte7B(afnGrp, fnSrc) { + function opModGrpByte7B(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6836,7 +6860,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7C: function opModGrpByte7C(afnGrp, fnSrc) { + function opModGrpByte7C(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6848,7 +6872,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7D: function opModGrpByte7D(afnGrp, fnSrc) { + function opModGrpByte7D(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6860,7 +6884,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7E: function opModGrpByte7E(afnGrp, fnSrc) { + function opModGrpByte7E(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6872,7 +6896,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7F: function opModGrpByte7F(afnGrp, fnSrc) { + function opModGrpByte7F(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6884,7 +6908,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp80: function opModGrpByte80(afnGrp, fnSrc) { + function opModGrpByte80(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6896,7 +6920,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp81: function opModGrpByte81(afnGrp, fnSrc) { + function opModGrpByte81(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6908,7 +6932,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp82: function opModGrpByte82(afnGrp, fnSrc) { + function opModGrpByte82(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6920,7 +6944,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp83: function opModGrpByte83(afnGrp, fnSrc) { + function opModGrpByte83(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6932,7 +6956,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp84: function opModGrpByte84(afnGrp, fnSrc) { + function opModGrpByte84(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6944,7 +6968,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp85: function opModGrpByte85(afnGrp, fnSrc) { + function opModGrpByte85(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6956,7 +6980,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp86: function opModGrpByte86(afnGrp, fnSrc) { + function opModGrpByte86(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6968,7 +6992,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp87: function opModGrpByte87(afnGrp, fnSrc) { + function opModGrpByte87(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6980,7 +7004,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp88: function opModGrpByte88(afnGrp, fnSrc) { + function opModGrpByte88(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6992,7 +7016,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp89: function opModGrpByte89(afnGrp, fnSrc) { + function opModGrpByte89(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7004,7 +7028,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8A: function opModGrpByte8A(afnGrp, fnSrc) { + function opModGrpByte8A(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7016,7 +7040,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8B: function opModGrpByte8B(afnGrp, fnSrc) { + function opModGrpByte8B(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7028,7 +7052,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8C: function opModGrpByte8C(afnGrp, fnSrc) { + function opModGrpByte8C(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7040,7 +7064,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8D: function opModGrpByte8D(afnGrp, fnSrc) { + function opModGrpByte8D(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7052,7 +7076,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8E: function opModGrpByte8E(afnGrp, fnSrc) { + function opModGrpByte8E(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7064,7 +7088,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8F: function opModGrpByte8F(afnGrp, fnSrc) { + function opModGrpByte8F(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7076,7 +7100,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp90: function opModGrpByte90(afnGrp, fnSrc) { + function opModGrpByte90(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7088,7 +7112,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp91: function opModGrpByte91(afnGrp, fnSrc) { + function opModGrpByte91(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7100,7 +7124,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp92: function opModGrpByte92(afnGrp, fnSrc) { + function opModGrpByte92(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7112,7 +7136,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp93: function opModGrpByte93(afnGrp, fnSrc) { + function opModGrpByte93(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7124,7 +7148,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp94: function opModGrpByte94(afnGrp, fnSrc) { + function opModGrpByte94(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7136,7 +7160,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp95: function opModGrpByte95(afnGrp, fnSrc) { + function opModGrpByte95(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7148,7 +7172,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp96: function opModGrpByte96(afnGrp, fnSrc) { + function opModGrpByte96(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7160,7 +7184,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp97: function opModGrpByte97(afnGrp, fnSrc) { + function opModGrpByte97(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7172,7 +7196,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp98: function opModGrpByte98(afnGrp, fnSrc) { + function opModGrpByte98(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7184,7 +7208,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp99: function opModGrpByte99(afnGrp, fnSrc) { + function opModGrpByte99(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7196,7 +7220,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9A: function opModGrpByte9A(afnGrp, fnSrc) { + function opModGrpByte9A(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7208,7 +7232,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9B: function opModGrpByte9B(afnGrp, fnSrc) { + function opModGrpByte9B(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7220,7 +7244,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9C: function opModGrpByte9C(afnGrp, fnSrc) { + function opModGrpByte9C(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7232,7 +7256,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9D: function opModGrpByte9D(afnGrp, fnSrc) { + function opModGrpByte9D(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7244,7 +7268,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9E: function opModGrpByte9E(afnGrp, fnSrc) { + function opModGrpByte9E(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7256,7 +7280,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9F: function opModGrpByte9F(afnGrp, fnSrc) { + function opModGrpByte9F(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7268,7 +7292,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA0: function opModGrpByteA0(afnGrp, fnSrc) { + function opModGrpByteA0(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7280,7 +7304,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA1: function opModGrpByteA1(afnGrp, fnSrc) { + function opModGrpByteA1(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7292,7 +7316,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA2: function opModGrpByteA2(afnGrp, fnSrc) { + function opModGrpByteA2(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7304,7 +7328,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA3: function opModGrpByteA3(afnGrp, fnSrc) { + function opModGrpByteA3(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7316,7 +7340,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA4: function opModGrpByteA4(afnGrp, fnSrc) { + function opModGrpByteA4(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7328,7 +7352,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA5: function opModGrpByteA5(afnGrp, fnSrc) { + function opModGrpByteA5(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7340,7 +7364,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA6: function opModGrpByteA6(afnGrp, fnSrc) { + function opModGrpByteA6(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7352,7 +7376,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA7: function opModGrpByteA7(afnGrp, fnSrc) { + function opModGrpByteA7(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7364,7 +7388,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA8: function opModGrpByteA8(afnGrp, fnSrc) { + function opModGrpByteA8(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7376,7 +7400,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA9: function opModGrpByteA9(afnGrp, fnSrc) { + function opModGrpByteA9(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7388,7 +7412,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAA: function opModGrpByteAA(afnGrp, fnSrc) { + function opModGrpByteAA(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7400,7 +7424,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAB: function opModGrpByteAB(afnGrp, fnSrc) { + function opModGrpByteAB(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7412,7 +7436,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAC: function opModGrpByteAC(afnGrp, fnSrc) { + function opModGrpByteAC(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7424,7 +7448,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAD: function opModGrpByteAD(afnGrp, fnSrc) { + function opModGrpByteAD(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7436,7 +7460,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAE: function opModGrpByteAE(afnGrp, fnSrc) { + function opModGrpByteAE(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7448,7 +7472,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAF: function opModGrpByteAF(afnGrp, fnSrc) { + function opModGrpByteAF(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7460,7 +7484,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB0: function opModGrpByteB0(afnGrp, fnSrc) { + function opModGrpByteB0(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7472,7 +7496,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB1: function opModGrpByteB1(afnGrp, fnSrc) { + function opModGrpByteB1(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7484,7 +7508,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB2: function opModGrpByteB2(afnGrp, fnSrc) { + function opModGrpByteB2(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7496,7 +7520,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB3: function opModGrpByteB3(afnGrp, fnSrc) { + function opModGrpByteB3(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7508,7 +7532,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB4: function opModGrpByteB4(afnGrp, fnSrc) { + function opModGrpByteB4(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7520,7 +7544,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB5: function opModGrpByteB5(afnGrp, fnSrc) { + function opModGrpByteB5(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7532,7 +7556,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB6: function opModGrpByteB6(afnGrp, fnSrc) { + function opModGrpByteB6(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7544,7 +7568,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB7: function opModGrpByteB7(afnGrp, fnSrc) { + function opModGrpByteB7(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7556,7 +7580,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB8: function opModGrpByteB8(afnGrp, fnSrc) { + function opModGrpByteB8(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7568,7 +7592,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB9: function opModGrpByteB9(afnGrp, fnSrc) { + function opModGrpByteB9(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7580,7 +7604,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBA: function opModGrpByteBA(afnGrp, fnSrc) { + function opModGrpByteBA(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7592,7 +7616,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBB: function opModGrpByteBB(afnGrp, fnSrc) { + function opModGrpByteBB(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7604,7 +7628,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBC: function opModGrpByteBC(afnGrp, fnSrc) { + function opModGrpByteBC(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7616,7 +7640,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBD: function opModGrpByteBD(afnGrp, fnSrc) { + function opModGrpByteBD(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7628,7 +7652,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBE: function opModGrpByteBE(afnGrp, fnSrc) { + function opModGrpByteBE(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7640,7 +7664,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBF: function opModGrpByteBF(afnGrp, fnSrc) { + function opModGrpByteBF(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.modEAByte(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAByte(b); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7652,7 +7676,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC0: function opModGrpByteC0(afnGrp, fnSrc) { + function opModGrpByteC0(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -7664,7 +7688,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC1: function opModGrpByteC1(afnGrp, fnSrc) { + function opModGrpByteC1(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -7676,7 +7700,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC2: function opModGrpByteC2(afnGrp, fnSrc) { + function opModGrpByteC2(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -7688,7 +7712,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC3: function opModGrpByteC3(afnGrp, fnSrc) { + function opModGrpByteC3(afnGrp, fnSrc) { var b = afnGrp[0].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -7700,7 +7724,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC4: function opModGrpByteC4(afnGrp, fnSrc) { + function opModGrpByteC4(afnGrp, fnSrc) { var b = afnGrp[0].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -7712,7 +7736,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC5: function opModGrpByteC5(afnGrp, fnSrc) { + function opModGrpByteC5(afnGrp, fnSrc) { var b = afnGrp[0].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -7724,7 +7748,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC6: function opModGrpByteC6(afnGrp, fnSrc) { + function opModGrpByteC6(afnGrp, fnSrc) { var b = afnGrp[0].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -7736,7 +7760,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC7: function opModGrpByteC7(afnGrp, fnSrc) { + function opModGrpByteC7(afnGrp, fnSrc) { var b = afnGrp[0].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -7748,7 +7772,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC8: function opModGrpByteC8(afnGrp, fnSrc) { + function opModGrpByteC8(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -7760,7 +7784,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC9: function opModGrpByteC9(afnGrp, fnSrc) { + function opModGrpByteC9(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -7772,7 +7796,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCA: function opModGrpByteCA(afnGrp, fnSrc) { + function opModGrpByteCA(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -7784,7 +7808,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCB: function opModGrpByteCB(afnGrp, fnSrc) { + function opModGrpByteCB(afnGrp, fnSrc) { var b = afnGrp[1].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -7796,7 +7820,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCC: function opModGrpByteCC(afnGrp, fnSrc) { + function opModGrpByteCC(afnGrp, fnSrc) { var b = afnGrp[1].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -7808,7 +7832,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCD: function opModGrpByteCD(afnGrp, fnSrc) { + function opModGrpByteCD(afnGrp, fnSrc) { var b = afnGrp[1].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -7820,7 +7844,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCE: function opModGrpByteCE(afnGrp, fnSrc) { + function opModGrpByteCE(afnGrp, fnSrc) { var b = afnGrp[1].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -7832,7 +7856,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCF: function opModGrpByteCF(afnGrp, fnSrc) { + function opModGrpByteCF(afnGrp, fnSrc) { var b = afnGrp[1].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -7844,7 +7868,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD0: function opModGrpByteD0(afnGrp, fnSrc) { + function opModGrpByteD0(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -7856,7 +7880,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD1: function opModGrpByteD1(afnGrp, fnSrc) { + function opModGrpByteD1(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -7868,7 +7892,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD2: function opModGrpByteD2(afnGrp, fnSrc) { + function opModGrpByteD2(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -7880,7 +7904,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD3: function opModGrpByteD3(afnGrp, fnSrc) { + function opModGrpByteD3(afnGrp, fnSrc) { var b = afnGrp[2].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -7892,7 +7916,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD4: function opModGrpByteD4(afnGrp, fnSrc) { + function opModGrpByteD4(afnGrp, fnSrc) { var b = afnGrp[2].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -7904,7 +7928,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD5: function opModGrpByteD5(afnGrp, fnSrc) { + function opModGrpByteD5(afnGrp, fnSrc) { var b = afnGrp[2].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -7916,7 +7940,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD6: function opModGrpByteD6(afnGrp, fnSrc) { + function opModGrpByteD6(afnGrp, fnSrc) { var b = afnGrp[2].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -7928,7 +7952,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD7: function opModGrpByteD7(afnGrp, fnSrc) { + function opModGrpByteD7(afnGrp, fnSrc) { var b = afnGrp[2].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -7940,7 +7964,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD8: function opModGrpByteD8(afnGrp, fnSrc) { + function opModGrpByteD8(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -7952,7 +7976,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD9: function opModGrpByteD9(afnGrp, fnSrc) { + function opModGrpByteD9(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -7964,7 +7988,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDA: function opModGrpByteDA(afnGrp, fnSrc) { + function opModGrpByteDA(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -7976,7 +8000,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDB: function opModGrpByteDB(afnGrp, fnSrc) { + function opModGrpByteDB(afnGrp, fnSrc) { var b = afnGrp[3].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -7988,7 +8012,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDC: function opModGrpByteDC(afnGrp, fnSrc) { + function opModGrpByteDC(afnGrp, fnSrc) { var b = afnGrp[3].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -8000,7 +8024,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDD: function opModGrpByteDD(afnGrp, fnSrc) { + function opModGrpByteDD(afnGrp, fnSrc) { var b = afnGrp[3].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -8012,7 +8036,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDE: function opModGrpByteDE(afnGrp, fnSrc) { + function opModGrpByteDE(afnGrp, fnSrc) { var b = afnGrp[3].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -8024,7 +8048,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDF: function opModGrpByteDF(afnGrp, fnSrc) { + function opModGrpByteDF(afnGrp, fnSrc) { var b = afnGrp[3].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -8036,7 +8060,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE0: function opModGrpByteE0(afnGrp, fnSrc) { + function opModGrpByteE0(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -8048,7 +8072,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE1: function opModGrpByteE1(afnGrp, fnSrc) { + function opModGrpByteE1(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -8060,7 +8084,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE2: function opModGrpByteE2(afnGrp, fnSrc) { + function opModGrpByteE2(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -8072,7 +8096,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE3: function opModGrpByteE3(afnGrp, fnSrc) { + function opModGrpByteE3(afnGrp, fnSrc) { var b = afnGrp[4].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -8084,7 +8108,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE4: function opModGrpByteE4(afnGrp, fnSrc) { + function opModGrpByteE4(afnGrp, fnSrc) { var b = afnGrp[4].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -8096,7 +8120,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE5: function opModGrpByteE5(afnGrp, fnSrc) { + function opModGrpByteE5(afnGrp, fnSrc) { var b = afnGrp[4].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -8108,7 +8132,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE6: function opModGrpByteE6(afnGrp, fnSrc) { + function opModGrpByteE6(afnGrp, fnSrc) { var b = afnGrp[4].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -8120,7 +8144,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE7: function opModGrpByteE7(afnGrp, fnSrc) { + function opModGrpByteE7(afnGrp, fnSrc) { var b = afnGrp[4].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -8132,7 +8156,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE8: function opModGrpByteE8(afnGrp, fnSrc) { + function opModGrpByteE8(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -8144,7 +8168,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE9: function opModGrpByteE9(afnGrp, fnSrc) { + function opModGrpByteE9(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -8156,7 +8180,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEA: function opModGrpByteEA(afnGrp, fnSrc) { + function opModGrpByteEA(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -8168,7 +8192,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEB: function opModGrpByteEB(afnGrp, fnSrc) { + function opModGrpByteEB(afnGrp, fnSrc) { var b = afnGrp[5].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -8180,7 +8204,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEC: function opModGrpByteEC(afnGrp, fnSrc) { + function opModGrpByteEC(afnGrp, fnSrc) { var b = afnGrp[5].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -8192,7 +8216,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpED: function opModGrpByteED(afnGrp, fnSrc) { + function opModGrpByteED(afnGrp, fnSrc) { var b = afnGrp[5].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -8204,7 +8228,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEE: function opModGrpByteEE(afnGrp, fnSrc) { + function opModGrpByteEE(afnGrp, fnSrc) { var b = afnGrp[5].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -8216,7 +8240,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEF: function opModGrpByteEF(afnGrp, fnSrc) { + function opModGrpByteEF(afnGrp, fnSrc) { var b = afnGrp[5].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -8228,7 +8252,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF0: function opModGrpByteF0(afnGrp, fnSrc) { + function opModGrpByteF0(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -8240,7 +8264,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF1: function opModGrpByteF1(afnGrp, fnSrc) { + function opModGrpByteF1(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -8252,7 +8276,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF2: function opModGrpByteF2(afnGrp, fnSrc) { + function opModGrpByteF2(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -8264,7 +8288,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF3: function opModGrpByteF3(afnGrp, fnSrc) { + function opModGrpByteF3(afnGrp, fnSrc) { var b = afnGrp[6].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -8276,7 +8300,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF4: function opModGrpByteF4(afnGrp, fnSrc) { + function opModGrpByteF4(afnGrp, fnSrc) { var b = afnGrp[6].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -8288,7 +8312,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF5: function opModGrpByteF5(afnGrp, fnSrc) { + function opModGrpByteF5(afnGrp, fnSrc) { var b = afnGrp[6].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -8300,7 +8324,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF6: function opModGrpByteF6(afnGrp, fnSrc) { + function opModGrpByteF6(afnGrp, fnSrc) { var b = afnGrp[6].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -8312,7 +8336,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF7: function opModGrpByteF7(afnGrp, fnSrc) { + function opModGrpByteF7(afnGrp, fnSrc) { var b = afnGrp[6].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; @@ -8324,7 +8348,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF8: function opModGrpByteF8(afnGrp, fnSrc) { + function opModGrpByteF8(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.regEAX & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiEALo; @@ -8336,7 +8360,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF9: function opModGrpByteF9(afnGrp, fnSrc) { + function opModGrpByteF9(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.regECX & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiCL = this.backTrack.btiEALo; @@ -8348,7 +8372,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFA: function opModGrpByteFA(afnGrp, fnSrc) { + function opModGrpByteFA(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.regEDX & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiDL = this.backTrack.btiEALo; @@ -8360,7 +8384,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFB: function opModGrpByteFB(afnGrp, fnSrc) { + function opModGrpByteFB(afnGrp, fnSrc) { var b = afnGrp[7].call(this, this.regEBX & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff) | b; if (BACKTRACK) this.backTrack.btiBL = this.backTrack.btiEALo; @@ -8372,7 +8396,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFC: function opModGrpByteFC(afnGrp, fnSrc) { + function opModGrpByteFC(afnGrp, fnSrc) { var b = afnGrp[7].call(this, (this.regEAX >> 8) & 0xff, fnSrc.call(this)); this.regEAX = (this.regEAX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiEALo; @@ -8384,7 +8408,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFD: function opModGrpByteFD(afnGrp, fnSrc) { + function opModGrpByteFD(afnGrp, fnSrc) { var b = afnGrp[7].call(this, (this.regECX >> 8) & 0xff, fnSrc.call(this)); this.regECX = (this.regECX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiCH = this.backTrack.btiEALo; @@ -8396,7 +8420,7 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFE: function opModGrpByteFE(afnGrp, fnSrc) { + function opModGrpByteFE(afnGrp, fnSrc) { var b = afnGrp[7].call(this, (this.regEDX >> 8) & 0xff, fnSrc.call(this)); this.regEDX = (this.regEDX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiDH = this.backTrack.btiEALo; @@ -8408,212 +8432,11 @@ var X86ModB = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFF: function opModGrpByteFF(afnGrp, fnSrc) { + function opModGrpByteFF(afnGrp, fnSrc) { var b = afnGrp[7].call(this, (this.regEBX >> 8) & 0xff, fnSrc.call(this)); this.regEBX = (this.regEBX & ~0xff00) | (b << 8); if (BACKTRACK) this.backTrack.btiBH = this.backTrack.btiEALo; } -}; - -X86ModB.aOpModMem = [ - X86ModB.opModMem00, X86ModB.opModMem01, X86ModB.opModMem02, X86ModB.opModMem03, - X86ModB.opModMem04, X86ModB.opModMem05, X86ModB.opModMem06, X86ModB.opModMem07, - X86ModB.opModMem08, X86ModB.opModMem09, X86ModB.opModMem0A, X86ModB.opModMem0B, - X86ModB.opModMem0C, X86ModB.opModMem0D, X86ModB.opModMem0E, X86ModB.opModMem0F, - X86ModB.opModMem10, X86ModB.opModMem11, X86ModB.opModMem12, X86ModB.opModMem13, - X86ModB.opModMem14, X86ModB.opModMem15, X86ModB.opModMem16, X86ModB.opModMem17, - X86ModB.opModMem18, X86ModB.opModMem19, X86ModB.opModMem1A, X86ModB.opModMem1B, - X86ModB.opModMem1C, X86ModB.opModMem1D, X86ModB.opModMem1E, X86ModB.opModMem1F, - X86ModB.opModMem20, X86ModB.opModMem21, X86ModB.opModMem22, X86ModB.opModMem23, - X86ModB.opModMem24, X86ModB.opModMem25, X86ModB.opModMem26, X86ModB.opModMem27, - X86ModB.opModMem28, X86ModB.opModMem29, X86ModB.opModMem2A, X86ModB.opModMem2B, - X86ModB.opModMem2C, X86ModB.opModMem2D, X86ModB.opModMem2E, X86ModB.opModMem2F, - X86ModB.opModMem30, X86ModB.opModMem31, X86ModB.opModMem32, X86ModB.opModMem33, - X86ModB.opModMem34, X86ModB.opModMem35, X86ModB.opModMem36, X86ModB.opModMem37, - X86ModB.opModMem38, X86ModB.opModMem39, X86ModB.opModMem3A, X86ModB.opModMem3B, - X86ModB.opModMem3C, X86ModB.opModMem3D, X86ModB.opModMem3E, X86ModB.opModMem3F, - X86ModB.opModMem40, X86ModB.opModMem41, X86ModB.opModMem42, X86ModB.opModMem43, - X86ModB.opModMem44, X86ModB.opModMem45, X86ModB.opModMem46, X86ModB.opModMem47, - X86ModB.opModMem48, X86ModB.opModMem49, X86ModB.opModMem4A, X86ModB.opModMem4B, - X86ModB.opModMem4C, X86ModB.opModMem4D, X86ModB.opModMem4E, X86ModB.opModMem4F, - X86ModB.opModMem50, X86ModB.opModMem51, X86ModB.opModMem52, X86ModB.opModMem53, - X86ModB.opModMem54, X86ModB.opModMem55, X86ModB.opModMem56, X86ModB.opModMem57, - X86ModB.opModMem58, X86ModB.opModMem59, X86ModB.opModMem5A, X86ModB.opModMem5B, - X86ModB.opModMem5C, X86ModB.opModMem5D, X86ModB.opModMem5E, X86ModB.opModMem5F, - X86ModB.opModMem60, X86ModB.opModMem61, X86ModB.opModMem62, X86ModB.opModMem63, - X86ModB.opModMem64, X86ModB.opModMem65, X86ModB.opModMem66, X86ModB.opModMem67, - X86ModB.opModMem68, X86ModB.opModMem69, X86ModB.opModMem6A, X86ModB.opModMem6B, - X86ModB.opModMem6C, X86ModB.opModMem6D, X86ModB.opModMem6E, X86ModB.opModMem6F, - X86ModB.opModMem70, X86ModB.opModMem71, X86ModB.opModMem72, X86ModB.opModMem73, - X86ModB.opModMem74, X86ModB.opModMem75, X86ModB.opModMem76, X86ModB.opModMem77, - X86ModB.opModMem78, X86ModB.opModMem79, X86ModB.opModMem7A, X86ModB.opModMem7B, - X86ModB.opModMem7C, X86ModB.opModMem7D, X86ModB.opModMem7E, X86ModB.opModMem7F, - X86ModB.opModMem80, X86ModB.opModMem81, X86ModB.opModMem82, X86ModB.opModMem83, - X86ModB.opModMem84, X86ModB.opModMem85, X86ModB.opModMem86, X86ModB.opModMem87, - X86ModB.opModMem88, X86ModB.opModMem89, X86ModB.opModMem8A, X86ModB.opModMem8B, - X86ModB.opModMem8C, X86ModB.opModMem8D, X86ModB.opModMem8E, X86ModB.opModMem8F, - X86ModB.opModMem90, X86ModB.opModMem91, X86ModB.opModMem92, X86ModB.opModMem93, - X86ModB.opModMem94, X86ModB.opModMem95, X86ModB.opModMem96, X86ModB.opModMem97, - X86ModB.opModMem98, X86ModB.opModMem99, X86ModB.opModMem9A, X86ModB.opModMem9B, - X86ModB.opModMem9C, X86ModB.opModMem9D, X86ModB.opModMem9E, X86ModB.opModMem9F, - X86ModB.opModMemA0, X86ModB.opModMemA1, X86ModB.opModMemA2, X86ModB.opModMemA3, - X86ModB.opModMemA4, X86ModB.opModMemA5, X86ModB.opModMemA6, X86ModB.opModMemA7, - X86ModB.opModMemA8, X86ModB.opModMemA9, X86ModB.opModMemAA, X86ModB.opModMemAB, - X86ModB.opModMemAC, X86ModB.opModMemAD, X86ModB.opModMemAE, X86ModB.opModMemAF, - X86ModB.opModMemB0, X86ModB.opModMemB1, X86ModB.opModMemB2, X86ModB.opModMemB3, - X86ModB.opModMemB4, X86ModB.opModMemB5, X86ModB.opModMemB6, X86ModB.opModMemB7, - X86ModB.opModMemB8, X86ModB.opModMemB9, X86ModB.opModMemBA, X86ModB.opModMemBB, - X86ModB.opModMemBC, X86ModB.opModMemBD, X86ModB.opModMemBE, X86ModB.opModMemBF, - X86ModB.opModRegC0, X86ModB.opModRegC8, X86ModB.opModRegD0, X86ModB.opModRegD8, - X86ModB.opModRegE0, X86ModB.opModRegE8, X86ModB.opModRegF0, X86ModB.opModRegF8, - X86ModB.opModRegC1, X86ModB.opModRegC9, X86ModB.opModRegD1, X86ModB.opModRegD9, - X86ModB.opModRegE1, X86ModB.opModRegE9, X86ModB.opModRegF1, X86ModB.opModRegF9, - X86ModB.opModRegC2, X86ModB.opModRegCA, X86ModB.opModRegD2, X86ModB.opModRegDA, - X86ModB.opModRegE2, X86ModB.opModRegEA, X86ModB.opModRegF2, X86ModB.opModRegFA, - X86ModB.opModRegC3, X86ModB.opModRegCB, X86ModB.opModRegD3, X86ModB.opModRegDB, - X86ModB.opModRegE3, X86ModB.opModRegEB, X86ModB.opModRegF3, X86ModB.opModRegFB, - X86ModB.opModRegC4, X86ModB.opModRegCC, X86ModB.opModRegD4, X86ModB.opModRegDC, - X86ModB.opModRegE4, X86ModB.opModRegEC, X86ModB.opModRegF4, X86ModB.opModRegFC, - X86ModB.opModRegC5, X86ModB.opModRegCD, X86ModB.opModRegD5, X86ModB.opModRegDD, - X86ModB.opModRegE5, X86ModB.opModRegED, X86ModB.opModRegF5, X86ModB.opModRegFD, - X86ModB.opModRegC6, X86ModB.opModRegCE, X86ModB.opModRegD6, X86ModB.opModRegDE, - X86ModB.opModRegE6, X86ModB.opModRegEE, X86ModB.opModRegF6, X86ModB.opModRegFE, - X86ModB.opModRegC7, X86ModB.opModRegCF, X86ModB.opModRegD7, X86ModB.opModRegDF, - X86ModB.opModRegE7, X86ModB.opModRegEF, X86ModB.opModRegF7, X86ModB.opModRegFF -]; - -X86ModB.aOpModReg = [ - X86ModB.opModReg00, X86ModB.opModReg01, X86ModB.opModReg02, X86ModB.opModReg03, - X86ModB.opModReg04, X86ModB.opModReg05, X86ModB.opModReg06, X86ModB.opModReg07, - X86ModB.opModReg08, X86ModB.opModReg09, X86ModB.opModReg0A, X86ModB.opModReg0B, - X86ModB.opModReg0C, X86ModB.opModReg0D, X86ModB.opModReg0E, X86ModB.opModReg0F, - X86ModB.opModReg10, X86ModB.opModReg11, X86ModB.opModReg12, X86ModB.opModReg13, - X86ModB.opModReg14, X86ModB.opModReg15, X86ModB.opModReg16, X86ModB.opModReg17, - X86ModB.opModReg18, X86ModB.opModReg19, X86ModB.opModReg1A, X86ModB.opModReg1B, - X86ModB.opModReg1C, X86ModB.opModReg1D, X86ModB.opModReg1E, X86ModB.opModReg1F, - X86ModB.opModReg20, X86ModB.opModReg21, X86ModB.opModReg22, X86ModB.opModReg23, - X86ModB.opModReg24, X86ModB.opModReg25, X86ModB.opModReg26, X86ModB.opModReg27, - X86ModB.opModReg28, X86ModB.opModReg29, X86ModB.opModReg2A, X86ModB.opModReg2B, - X86ModB.opModReg2C, X86ModB.opModReg2D, X86ModB.opModReg2E, X86ModB.opModReg2F, - X86ModB.opModReg30, X86ModB.opModReg31, X86ModB.opModReg32, X86ModB.opModReg33, - X86ModB.opModReg34, X86ModB.opModReg35, X86ModB.opModReg36, X86ModB.opModReg37, - X86ModB.opModReg38, X86ModB.opModReg39, X86ModB.opModReg3A, X86ModB.opModReg3B, - X86ModB.opModReg3C, X86ModB.opModReg3D, X86ModB.opModReg3E, X86ModB.opModReg3F, - X86ModB.opModReg40, X86ModB.opModReg41, X86ModB.opModReg42, X86ModB.opModReg43, - X86ModB.opModReg44, X86ModB.opModReg45, X86ModB.opModReg46, X86ModB.opModReg47, - X86ModB.opModReg48, X86ModB.opModReg49, X86ModB.opModReg4A, X86ModB.opModReg4B, - X86ModB.opModReg4C, X86ModB.opModReg4D, X86ModB.opModReg4E, X86ModB.opModReg4F, - X86ModB.opModReg50, X86ModB.opModReg51, X86ModB.opModReg52, X86ModB.opModReg53, - X86ModB.opModReg54, X86ModB.opModReg55, X86ModB.opModReg56, X86ModB.opModReg57, - X86ModB.opModReg58, X86ModB.opModReg59, X86ModB.opModReg5A, X86ModB.opModReg5B, - X86ModB.opModReg5C, X86ModB.opModReg5D, X86ModB.opModReg5E, X86ModB.opModReg5F, - X86ModB.opModReg60, X86ModB.opModReg61, X86ModB.opModReg62, X86ModB.opModReg63, - X86ModB.opModReg64, X86ModB.opModReg65, X86ModB.opModReg66, X86ModB.opModReg67, - X86ModB.opModReg68, X86ModB.opModReg69, X86ModB.opModReg6A, X86ModB.opModReg6B, - X86ModB.opModReg6C, X86ModB.opModReg6D, X86ModB.opModReg6E, X86ModB.opModReg6F, - X86ModB.opModReg70, X86ModB.opModReg71, X86ModB.opModReg72, X86ModB.opModReg73, - X86ModB.opModReg74, X86ModB.opModReg75, X86ModB.opModReg76, X86ModB.opModReg77, - X86ModB.opModReg78, X86ModB.opModReg79, X86ModB.opModReg7A, X86ModB.opModReg7B, - X86ModB.opModReg7C, X86ModB.opModReg7D, X86ModB.opModReg7E, X86ModB.opModReg7F, - X86ModB.opModReg80, X86ModB.opModReg81, X86ModB.opModReg82, X86ModB.opModReg83, - X86ModB.opModReg84, X86ModB.opModReg85, X86ModB.opModReg86, X86ModB.opModReg87, - X86ModB.opModReg88, X86ModB.opModReg89, X86ModB.opModReg8A, X86ModB.opModReg8B, - X86ModB.opModReg8C, X86ModB.opModReg8D, X86ModB.opModReg8E, X86ModB.opModReg8F, - X86ModB.opModReg90, X86ModB.opModReg91, X86ModB.opModReg92, X86ModB.opModReg93, - X86ModB.opModReg94, X86ModB.opModReg95, X86ModB.opModReg96, X86ModB.opModReg97, - X86ModB.opModReg98, X86ModB.opModReg99, X86ModB.opModReg9A, X86ModB.opModReg9B, - X86ModB.opModReg9C, X86ModB.opModReg9D, X86ModB.opModReg9E, X86ModB.opModReg9F, - X86ModB.opModRegA0, X86ModB.opModRegA1, X86ModB.opModRegA2, X86ModB.opModRegA3, - X86ModB.opModRegA4, X86ModB.opModRegA5, X86ModB.opModRegA6, X86ModB.opModRegA7, - X86ModB.opModRegA8, X86ModB.opModRegA9, X86ModB.opModRegAA, X86ModB.opModRegAB, - X86ModB.opModRegAC, X86ModB.opModRegAD, X86ModB.opModRegAE, X86ModB.opModRegAF, - X86ModB.opModRegB0, X86ModB.opModRegB1, X86ModB.opModRegB2, X86ModB.opModRegB3, - X86ModB.opModRegB4, X86ModB.opModRegB5, X86ModB.opModRegB6, X86ModB.opModRegB7, - X86ModB.opModRegB8, X86ModB.opModRegB9, X86ModB.opModRegBA, X86ModB.opModRegBB, - X86ModB.opModRegBC, X86ModB.opModRegBD, X86ModB.opModRegBE, X86ModB.opModRegBF, - X86ModB.opModRegC0, X86ModB.opModRegC1, X86ModB.opModRegC2, X86ModB.opModRegC3, - X86ModB.opModRegC4, X86ModB.opModRegC5, X86ModB.opModRegC6, X86ModB.opModRegC7, - X86ModB.opModRegC8, X86ModB.opModRegC9, X86ModB.opModRegCA, X86ModB.opModRegCB, - X86ModB.opModRegCC, X86ModB.opModRegCD, X86ModB.opModRegCE, X86ModB.opModRegCF, - X86ModB.opModRegD0, X86ModB.opModRegD1, X86ModB.opModRegD2, X86ModB.opModRegD3, - X86ModB.opModRegD4, X86ModB.opModRegD5, X86ModB.opModRegD6, X86ModB.opModRegD7, - X86ModB.opModRegD8, X86ModB.opModRegD9, X86ModB.opModRegDA, X86ModB.opModRegDB, - X86ModB.opModRegDC, X86ModB.opModRegDD, X86ModB.opModRegDE, X86ModB.opModRegDF, - X86ModB.opModRegE0, X86ModB.opModRegE1, X86ModB.opModRegE2, X86ModB.opModRegE3, - X86ModB.opModRegE4, X86ModB.opModRegE5, X86ModB.opModRegE6, X86ModB.opModRegE7, - X86ModB.opModRegE8, X86ModB.opModRegE9, X86ModB.opModRegEA, X86ModB.opModRegEB, - X86ModB.opModRegEC, X86ModB.opModRegED, X86ModB.opModRegEE, X86ModB.opModRegEF, - X86ModB.opModRegF0, X86ModB.opModRegF1, X86ModB.opModRegF2, X86ModB.opModRegF3, - X86ModB.opModRegF4, X86ModB.opModRegF5, X86ModB.opModRegF6, X86ModB.opModRegF7, - X86ModB.opModRegF8, X86ModB.opModRegF9, X86ModB.opModRegFA, X86ModB.opModRegFB, - X86ModB.opModRegFC, X86ModB.opModRegFD, X86ModB.opModRegFE, X86ModB.opModRegFF -]; - -X86ModB.aOpModGrp = [ - X86ModB.opModGrp00, X86ModB.opModGrp01, X86ModB.opModGrp02, X86ModB.opModGrp03, - X86ModB.opModGrp04, X86ModB.opModGrp05, X86ModB.opModGrp06, X86ModB.opModGrp07, - X86ModB.opModGrp08, X86ModB.opModGrp09, X86ModB.opModGrp0A, X86ModB.opModGrp0B, - X86ModB.opModGrp0C, X86ModB.opModGrp0D, X86ModB.opModGrp0E, X86ModB.opModGrp0F, - X86ModB.opModGrp10, X86ModB.opModGrp11, X86ModB.opModGrp12, X86ModB.opModGrp13, - X86ModB.opModGrp14, X86ModB.opModGrp15, X86ModB.opModGrp16, X86ModB.opModGrp17, - X86ModB.opModGrp18, X86ModB.opModGrp19, X86ModB.opModGrp1A, X86ModB.opModGrp1B, - X86ModB.opModGrp1C, X86ModB.opModGrp1D, X86ModB.opModGrp1E, X86ModB.opModGrp1F, - X86ModB.opModGrp20, X86ModB.opModGrp21, X86ModB.opModGrp22, X86ModB.opModGrp23, - X86ModB.opModGrp24, X86ModB.opModGrp25, X86ModB.opModGrp26, X86ModB.opModGrp27, - X86ModB.opModGrp28, X86ModB.opModGrp29, X86ModB.opModGrp2A, X86ModB.opModGrp2B, - X86ModB.opModGrp2C, X86ModB.opModGrp2D, X86ModB.opModGrp2E, X86ModB.opModGrp2F, - X86ModB.opModGrp30, X86ModB.opModGrp31, X86ModB.opModGrp32, X86ModB.opModGrp33, - X86ModB.opModGrp34, X86ModB.opModGrp35, X86ModB.opModGrp36, X86ModB.opModGrp37, - X86ModB.opModGrp38, X86ModB.opModGrp39, X86ModB.opModGrp3A, X86ModB.opModGrp3B, - X86ModB.opModGrp3C, X86ModB.opModGrp3D, X86ModB.opModGrp3E, X86ModB.opModGrp3F, - X86ModB.opModGrp40, X86ModB.opModGrp41, X86ModB.opModGrp42, X86ModB.opModGrp43, - X86ModB.opModGrp44, X86ModB.opModGrp45, X86ModB.opModGrp46, X86ModB.opModGrp47, - X86ModB.opModGrp48, X86ModB.opModGrp49, X86ModB.opModGrp4A, X86ModB.opModGrp4B, - X86ModB.opModGrp4C, X86ModB.opModGrp4D, X86ModB.opModGrp4E, X86ModB.opModGrp4F, - X86ModB.opModGrp50, X86ModB.opModGrp51, X86ModB.opModGrp52, X86ModB.opModGrp53, - X86ModB.opModGrp54, X86ModB.opModGrp55, X86ModB.opModGrp56, X86ModB.opModGrp57, - X86ModB.opModGrp58, X86ModB.opModGrp59, X86ModB.opModGrp5A, X86ModB.opModGrp5B, - X86ModB.opModGrp5C, X86ModB.opModGrp5D, X86ModB.opModGrp5E, X86ModB.opModGrp5F, - X86ModB.opModGrp60, X86ModB.opModGrp61, X86ModB.opModGrp62, X86ModB.opModGrp63, - X86ModB.opModGrp64, X86ModB.opModGrp65, X86ModB.opModGrp66, X86ModB.opModGrp67, - X86ModB.opModGrp68, X86ModB.opModGrp69, X86ModB.opModGrp6A, X86ModB.opModGrp6B, - X86ModB.opModGrp6C, X86ModB.opModGrp6D, X86ModB.opModGrp6E, X86ModB.opModGrp6F, - X86ModB.opModGrp70, X86ModB.opModGrp71, X86ModB.opModGrp72, X86ModB.opModGrp73, - X86ModB.opModGrp74, X86ModB.opModGrp75, X86ModB.opModGrp76, X86ModB.opModGrp77, - X86ModB.opModGrp78, X86ModB.opModGrp79, X86ModB.opModGrp7A, X86ModB.opModGrp7B, - X86ModB.opModGrp7C, X86ModB.opModGrp7D, X86ModB.opModGrp7E, X86ModB.opModGrp7F, - X86ModB.opModGrp80, X86ModB.opModGrp81, X86ModB.opModGrp82, X86ModB.opModGrp83, - X86ModB.opModGrp84, X86ModB.opModGrp85, X86ModB.opModGrp86, X86ModB.opModGrp87, - X86ModB.opModGrp88, X86ModB.opModGrp89, X86ModB.opModGrp8A, X86ModB.opModGrp8B, - X86ModB.opModGrp8C, X86ModB.opModGrp8D, X86ModB.opModGrp8E, X86ModB.opModGrp8F, - X86ModB.opModGrp90, X86ModB.opModGrp91, X86ModB.opModGrp92, X86ModB.opModGrp93, - X86ModB.opModGrp94, X86ModB.opModGrp95, X86ModB.opModGrp96, X86ModB.opModGrp97, - X86ModB.opModGrp98, X86ModB.opModGrp99, X86ModB.opModGrp9A, X86ModB.opModGrp9B, - X86ModB.opModGrp9C, X86ModB.opModGrp9D, X86ModB.opModGrp9E, X86ModB.opModGrp9F, - X86ModB.opModGrpA0, X86ModB.opModGrpA1, X86ModB.opModGrpA2, X86ModB.opModGrpA3, - X86ModB.opModGrpA4, X86ModB.opModGrpA5, X86ModB.opModGrpA6, X86ModB.opModGrpA7, - X86ModB.opModGrpA8, X86ModB.opModGrpA9, X86ModB.opModGrpAA, X86ModB.opModGrpAB, - X86ModB.opModGrpAC, X86ModB.opModGrpAD, X86ModB.opModGrpAE, X86ModB.opModGrpAF, - X86ModB.opModGrpB0, X86ModB.opModGrpB1, X86ModB.opModGrpB2, X86ModB.opModGrpB3, - X86ModB.opModGrpB4, X86ModB.opModGrpB5, X86ModB.opModGrpB6, X86ModB.opModGrpB7, - X86ModB.opModGrpB8, X86ModB.opModGrpB9, X86ModB.opModGrpBA, X86ModB.opModGrpBB, - X86ModB.opModGrpBC, X86ModB.opModGrpBD, X86ModB.opModGrpBE, X86ModB.opModGrpBF, - X86ModB.opModGrpC0, X86ModB.opModGrpC1, X86ModB.opModGrpC2, X86ModB.opModGrpC3, - X86ModB.opModGrpC4, X86ModB.opModGrpC5, X86ModB.opModGrpC6, X86ModB.opModGrpC7, - X86ModB.opModGrpC8, X86ModB.opModGrpC9, X86ModB.opModGrpCA, X86ModB.opModGrpCB, - X86ModB.opModGrpCC, X86ModB.opModGrpCD, X86ModB.opModGrpCE, X86ModB.opModGrpCF, - X86ModB.opModGrpD0, X86ModB.opModGrpD1, X86ModB.opModGrpD2, X86ModB.opModGrpD3, - X86ModB.opModGrpD4, X86ModB.opModGrpD5, X86ModB.opModGrpD6, X86ModB.opModGrpD7, - X86ModB.opModGrpD8, X86ModB.opModGrpD9, X86ModB.opModGrpDA, X86ModB.opModGrpDB, - X86ModB.opModGrpDC, X86ModB.opModGrpDD, X86ModB.opModGrpDE, X86ModB.opModGrpDF, - X86ModB.opModGrpE0, X86ModB.opModGrpE1, X86ModB.opModGrpE2, X86ModB.opModGrpE3, - X86ModB.opModGrpE4, X86ModB.opModGrpE5, X86ModB.opModGrpE6, X86ModB.opModGrpE7, - X86ModB.opModGrpE8, X86ModB.opModGrpE9, X86ModB.opModGrpEA, X86ModB.opModGrpEB, - X86ModB.opModGrpEC, X86ModB.opModGrpED, X86ModB.opModGrpEE, X86ModB.opModGrpEF, - X86ModB.opModGrpF0, X86ModB.opModGrpF1, X86ModB.opModGrpF2, X86ModB.opModGrpF3, - X86ModB.opModGrpF4, X86ModB.opModGrpF5, X86ModB.opModGrpF6, X86ModB.opModGrpF7, - X86ModB.opModGrpF8, X86ModB.opModGrpF9, X86ModB.opModGrpFA, X86ModB.opModGrpFB, - X86ModB.opModGrpFC, X86ModB.opModGrpFD, X86ModB.opModGrpFE, X86ModB.opModGrpFF ]; if (typeof module !== 'undefined') module.exports = X86ModB; diff --git a/modules/pcjs/lib/x86modw.js b/modules/pcjs/lib/x86modw.js index 88773a340..e3bbec687 100644 --- a/modules/pcjs/lib/x86modw.js +++ b/modules/pcjs/lib/x86modw.js @@ -36,14 +36,3422 @@ if (typeof module !== 'undefined') { var X86 = require("./x86"); } -var X86ModW = { +var X86ModW = {}; + +X86ModW.aOpModReg = [ + /** + * opModRegWord00(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord00(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord01(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord01(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord02(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord02(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord03(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord03(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord04(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord04(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord05(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord05(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord06(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord06(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord07(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord07(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord08(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord08(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord09(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord09(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord0A(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord0A(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord0B(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord0B(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord0C(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord0C(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord0D(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord0D(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord0E(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord0E(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord0F(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord0F(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord10(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord10(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord11(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord11(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord12(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord12(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord13(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord13(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord14(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord14(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord15(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord15(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord16(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord16(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord17(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord17(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord18(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord18(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord19(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord19(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord1A(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord1A(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord1B(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord1B(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord1C(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord1C(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord1D(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord1D(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord1E(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord1E(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord1F(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord1F(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord20(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord20(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord21(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord21(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord22(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord22(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord23(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord23(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord24(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord24(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord25(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord25(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord26(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord26(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord27(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord27(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord28(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord28(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord29(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord29(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord2A(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord2A(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord2B(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord2B(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord2C(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord2C(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord2D(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord2D(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord2E(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord2E(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord2F(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord2F(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord30(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord30(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord31(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord31(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord32(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord32(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord33(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord33(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord34(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord34(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord35(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord35(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord36(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord36(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord37(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord37(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord38(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=000 (BX+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord38(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord39(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=001 (BX+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord39(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord3A(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=010 (BP+SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord3A(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; + }, + /** + * opModRegWord3B(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=011 (BP+DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord3B(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; + }, + /** + * opModRegWord3C(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=100 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord3C(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord3D(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=101 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord3D(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord3E(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=110 (d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord3E(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, this.getIPWord())); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesDisp; + }, + /** + * opModRegWord3F(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=111 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord3F(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBase; + }, + /** + * opModRegWord40(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord40(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord41(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord41(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord42(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord42(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord43(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord43(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord44(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord44(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord45(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord45(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord46(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord46(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord47(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord47(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord48(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord48(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord49(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord49(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord4A(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord4A(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord4B(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord4B(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord4C(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord4C(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord4D(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord4D(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord4E(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord4E(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord4F(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord4F(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord50(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord50(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord51(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord51(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord52(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord52(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord53(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord53(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord54(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord54(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord55(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord55(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord56(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord56(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord57(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord57(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord58(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord58(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord59(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord59(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord5A(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord5A(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord5B(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord5B(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord5C(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord5C(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord5D(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord5D(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord5E(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord5E(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord5F(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord5F(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord60(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord60(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord61(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord61(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord62(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord62(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord63(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord63(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord64(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord64(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord65(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord65(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord66(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord66(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord67(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord67(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord68(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord68(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord69(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord69(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord6A(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord6A(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord6B(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord6B(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord6C(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord6C(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord6D(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord6D(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord6E(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord6E(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord6F(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord6F(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord70(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord70(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord71(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord71(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord72(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord72(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord73(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord73(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord74(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord74(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord75(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord75(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord76(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord76(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord77(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord77(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord78(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=000 (BX+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord78(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord79(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=001 (BX+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord79(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord7A(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=010 (BP+SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord7A(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord7B(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=011 (BP+DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord7B(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord7C(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=100 (SI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord7C(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord7D(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=101 (DI+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord7D(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord7E(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=110 (BP+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord7E(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord7F(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=111 (BX+d8) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord7F(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord80(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord80(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord81(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord81(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord82(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord82(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord83(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord83(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord84(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord84(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord85(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord85(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord86(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord86(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord87(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord87(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord88(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord88(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord89(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord89(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord8A(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord8A(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord8B(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord8B(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord8C(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord8C(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord8D(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord8D(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord8E(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord8E(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord8F(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord8F(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord90(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord90(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord91(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord91(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord92(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord92(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord93(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord93(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord94(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord94(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord95(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord95(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord96(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord96(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord97(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord97(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord98(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord98(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord99(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord99(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord9A(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord9A(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWord9B(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord9B(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWord9C(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord9C(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord9D(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord9D(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord9E(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord9E(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWord9F(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWord9F(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordA0(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA0(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordA1(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA1(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordA2(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA2(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordA3(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA3(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordA4(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA4(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordA5(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA5(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordA6(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA6(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordA7(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA7(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regESP = (this.regESP & ~this.opMask) | w; + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordA8(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA8(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordA9(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordA9(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordAA(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordAA(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordAB(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordAB(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordAC(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordAC(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordAD(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordAD(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordAE(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordAE(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordAF(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordAF(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordB0(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB0(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordB1(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB1(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordB2(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB2(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordB3(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB3(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordB4(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB4(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordB5(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB5(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordB6(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB6(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordB7(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB7(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordB8(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=000 (BX+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB8(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordB9(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=001 (BX+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordB9(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordBA(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=010 (BP+SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordBA(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; + }, + /** + * opModRegWordBB(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=011 (BP+DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordBB(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; + }, + /** + * opModRegWordBC(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=100 (SI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordBC(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordBD(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=101 (DI+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordBD(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordBE(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=110 (BP+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordBE(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordBF(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=111 (BX+d16) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordBF(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; + } + this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; + }, + /** + * opModRegWordC0(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC0(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regEAX & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + }, + /** + * opModRegWordC1(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC1(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regECX & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH; + } + }, + /** + * opModRegWordC2(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC2(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regEDX & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH; + } + }, + /** + * opModRegWordC3(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC3(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regEBX & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH; + } + }, + /** + * opModRegWordC4(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC4(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regESP & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opModRegWordC5(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC5(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regEBP & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi; + } + }, + /** + * opModRegWordC6(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC6(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regESI & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi; + } + }, + /** + * opModRegWordC7(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC7(fn) { + var w = fn.call(this, this.regEAX & this.opMask, this.regEDI & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi; + } + }, + /** + * opModRegWordC8(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC8(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regEAX & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH; + } + }, + /** + * opModRegWordC9(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordC9(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regECX & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + }, + /** + * opModRegWordCA(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordCA(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regEDX & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH; + } + }, + /** + * opModRegWordCB(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordCB(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regEBX & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH; + } + }, + /** + * opModRegWordCC(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordCC(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regESP & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opModRegWordCD(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordCD(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regEBP & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi; + } + }, + /** + * opModRegWordCE(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordCE(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regESI & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi; + } + }, + /** + * opModRegWordCF(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordCF(fn) { + var w = fn.call(this, this.regECX & this.opMask, this.regEDI & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi; + } + }, + /** + * opModRegWordD0(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD0(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regEAX & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH; + } + }, + /** + * opModRegWordD1(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD1(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regECX & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH; + } + }, + /** + * opModRegWordD2(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD2(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regEDX & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + }, + /** + * opModRegWordD3(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD3(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regEBX & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH; + } + }, + /** + * opModRegWordD4(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD4(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regESP & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opModRegWordD5(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD5(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regEBP & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi; + } + }, + /** + * opModRegWordD6(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD6(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regESI & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi; + } + }, + /** + * opModRegWordD7(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD7(fn) { + var w = fn.call(this, this.regEDX & this.opMask, this.regEDI & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi; + } + }, + /** + * opModRegWordD8(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD8(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regEAX & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH; + } + }, + /** + * opModRegWordD9(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordD9(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regECX & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH; + } + }, + /** + * opModRegWordDA(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordDA(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regEDX & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH; + } + }, + /** + * opModRegWordDB(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordDB(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regEBX & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + }, + /** + * opModRegWordDC(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordDC(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regESP & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI; + } + }, + /** + * opModRegWordDD(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordDD(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regEBP & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi; + } + }, + /** + * opModRegWordDE(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordDE(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regESI & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi; + } + }, + /** + * opModRegWordDF(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordDF(fn) { + var w = fn.call(this, this.regEBX & this.opMask, this.regEDI & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi; + } + }, + /** + * opModRegWordE0(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE0(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regEAX & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE1(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE1(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regECX & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE2(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE2(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regEDX & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE3(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE3(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regEBX & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE4(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE4(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regESP & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE5(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE5(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regEBP & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE6(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE6(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regESI & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE7(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE7(fn) { + var w = fn.call(this, this.regESP & this.opMask, this.regEDI & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | w; + }, + /** + * opModRegWordE8(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE8(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regEAX & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH; + } + }, + /** + * opModRegWordE9(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordE9(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regECX & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH; + } + }, + /** + * opModRegWordEA(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordEA(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regEDX & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH; + } + }, + /** + * opModRegWordEB(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordEB(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regEBX & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH; + } + }, + /** + * opModRegWordEC(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordEC(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regESP & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI; + } + }, + /** + * opModRegWordED(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordED(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regEBP & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + }, + /** + * opModRegWordEE(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordEE(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regESI & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi; + } + }, + /** + * opModRegWordEF(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordEF(fn) { + var w = fn.call(this, this.regEBP & this.opMask, this.regEDI & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi; + } + }, + /** + * opModRegWordF0(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF0(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regEAX & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH; + } + }, + /** + * opModRegWordF1(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF1(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regECX & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH; + } + }, + /** + * opModRegWordF2(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF2(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regEDX & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH; + } + }, + /** + * opModRegWordF3(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF3(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regEBX & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH; + } + }, + /** + * opModRegWordF4(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF4(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regESP & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI; + } + }, + /** + * opModRegWordF5(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF5(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regEBP & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi; + } + }, + /** + * opModRegWordF6(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF6(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regESI & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + }, + /** + * opModRegWordF7(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF7(fn) { + var w = fn.call(this, this.regESI & this.opMask, this.regEDI & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi; + } + }, + /** + * opModRegWordF8(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=000 (AX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF8(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regEAX & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH; + } + }, + /** + * opModRegWordF9(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=001 (CX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordF9(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regECX & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH; + } + }, + /** + * opModRegWordFA(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=010 (DX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordFA(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regEDX & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH; + } + }, + /** + * opModRegWordFB(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=011 (BX) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordFB(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regEBX & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH; + } + }, + /** + * opModRegWordFC(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=100 (SP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordFC(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regESP & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI; + } + }, + /** + * opModRegWordFD(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=101 (BP) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordFD(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regEBP & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi; + } + }, + /** + * opModRegWordFE(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=110 (SI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordFE(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regESI & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + if (BACKTRACK) { + this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi; + } + }, + /** + * opModRegWordFF(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=111 (DI) + * + * @this {X86CPU} + * @param {function(number,number)} fn (dst,src) + */ + function opModRegWordFF(fn) { + var w = fn.call(this, this.regEDI & this.opMask, this.regEDI & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | w; + } +]; + +X86ModW.aOpModMem = [ /** * opModMemWord00(fn): mod=00 (mem:dst) reg=000 (AX:src) r/m=000 (BX+SI) * * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem00: function opModMemWord00(fn) { + function opModMemWord00(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -57,7 +3465,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem01: function opModMemWord01(fn) { + function opModMemWord01(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -71,7 +3479,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem02: function opModMemWord02(fn) { + function opModMemWord02(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -85,7 +3493,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem03: function opModMemWord03(fn) { + function opModMemWord03(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -99,7 +3507,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem04: function opModMemWord04(fn) { + function opModMemWord04(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -113,7 +3521,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem05: function opModMemWord05(fn) { + function opModMemWord05(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -127,7 +3535,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem06: function opModMemWord06(fn) { + function opModMemWord06(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -141,7 +3549,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem07: function opModMemWord07(fn) { + function opModMemWord07(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -155,7 +3563,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem08: function opModMemWord08(fn) { + function opModMemWord08(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -169,7 +3577,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem09: function opModMemWord09(fn) { + function opModMemWord09(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -183,7 +3591,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem0A: function opModMemWord0A(fn) { + function opModMemWord0A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -197,7 +3605,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem0B: function opModMemWord0B(fn) { + function opModMemWord0B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -211,7 +3619,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem0C: function opModMemWord0C(fn) { + function opModMemWord0C(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -225,7 +3633,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem0D: function opModMemWord0D(fn) { + function opModMemWord0D(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -239,7 +3647,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem0E: function opModMemWord0E(fn) { + function opModMemWord0E(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -253,7 +3661,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem0F: function opModMemWord0F(fn) { + function opModMemWord0F(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -267,7 +3675,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem10: function opModMemWord10(fn) { + function opModMemWord10(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -281,7 +3689,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem11: function opModMemWord11(fn) { + function opModMemWord11(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -295,7 +3703,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem12: function opModMemWord12(fn) { + function opModMemWord12(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -309,7 +3717,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem13: function opModMemWord13(fn) { + function opModMemWord13(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -323,7 +3731,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem14: function opModMemWord14(fn) { + function opModMemWord14(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -337,7 +3745,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem15: function opModMemWord15(fn) { + function opModMemWord15(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -351,7 +3759,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem16: function opModMemWord16(fn) { + function opModMemWord16(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -365,7 +3773,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem17: function opModMemWord17(fn) { + function opModMemWord17(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -379,7 +3787,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem18: function opModMemWord18(fn) { + function opModMemWord18(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -393,7 +3801,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem19: function opModMemWord19(fn) { + function opModMemWord19(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -407,7 +3815,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem1A: function opModMemWord1A(fn) { + function opModMemWord1A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -421,7 +3829,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem1B: function opModMemWord1B(fn) { + function opModMemWord1B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -435,7 +3843,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem1C: function opModMemWord1C(fn) { + function opModMemWord1C(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -449,7 +3857,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem1D: function opModMemWord1D(fn) { + function opModMemWord1D(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -463,7 +3871,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem1E: function opModMemWord1E(fn) { + function opModMemWord1E(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -477,7 +3885,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem1F: function opModMemWord1F(fn) { + function opModMemWord1F(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -491,7 +3899,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem20: function opModMemWord20(fn) { + function opModMemWord20(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -505,7 +3913,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem21: function opModMemWord21(fn) { + function opModMemWord21(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -519,7 +3927,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem22: function opModMemWord22(fn) { + function opModMemWord22(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -533,7 +3941,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem23: function opModMemWord23(fn) { + function opModMemWord23(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -547,7 +3955,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem24: function opModMemWord24(fn) { + function opModMemWord24(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -561,7 +3969,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem25: function opModMemWord25(fn) { + function opModMemWord25(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -575,7 +3983,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem26: function opModMemWord26(fn) { + function opModMemWord26(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -589,7 +3997,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem27: function opModMemWord27(fn) { + function opModMemWord27(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -603,7 +4011,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem28: function opModMemWord28(fn) { + function opModMemWord28(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -617,7 +4025,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem29: function opModMemWord29(fn) { + function opModMemWord29(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -631,7 +4039,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem2A: function opModMemWord2A(fn) { + function opModMemWord2A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -645,7 +4053,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem2B: function opModMemWord2B(fn) { + function opModMemWord2B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -659,7 +4067,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem2C: function opModMemWord2C(fn) { + function opModMemWord2C(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -673,7 +4081,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem2D: function opModMemWord2D(fn) { + function opModMemWord2D(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -687,7 +4095,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem2E: function opModMemWord2E(fn) { + function opModMemWord2E(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -701,7 +4109,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem2F: function opModMemWord2F(fn) { + function opModMemWord2F(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -715,7 +4123,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem30: function opModMemWord30(fn) { + function opModMemWord30(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -729,7 +4137,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem31: function opModMemWord31(fn) { + function opModMemWord31(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -743,7 +4151,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem32: function opModMemWord32(fn) { + function opModMemWord32(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -757,7 +4165,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem33: function opModMemWord33(fn) { + function opModMemWord33(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -771,7 +4179,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem34: function opModMemWord34(fn) { + function opModMemWord34(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -785,7 +4193,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem35: function opModMemWord35(fn) { + function opModMemWord35(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -799,7 +4207,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem36: function opModMemWord36(fn) { + function opModMemWord36(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -813,7 +4221,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem37: function opModMemWord37(fn) { + function opModMemWord37(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -827,7 +4235,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem38: function opModMemWord38(fn) { + function opModMemWord38(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -841,7 +4249,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem39: function opModMemWord39(fn) { + function opModMemWord39(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -855,7 +4263,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem3A: function opModMemWord3A(fn) { + function opModMemWord3A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -869,7 +4277,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem3B: function opModMemWord3B(fn) { + function opModMemWord3B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -883,7 +4291,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem3C: function opModMemWord3C(fn) { + function opModMemWord3C(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -897,7 +4305,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem3D: function opModMemWord3D(fn) { + function opModMemWord3D(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -911,7 +4319,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem3E: function opModMemWord3E(fn) { + function opModMemWord3E(fn) { var w = fn.call(this, this.modEAWord(this.segData, this.getIPWord()), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -925,7 +4333,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem3F: function opModMemWord3F(fn) { + function opModMemWord3F(fn) { var w = fn.call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -939,7 +4347,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem40: function opModMemWord40(fn) { + function opModMemWord40(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -953,7 +4361,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem41: function opModMemWord41(fn) { + function opModMemWord41(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -967,7 +4375,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem42: function opModMemWord42(fn) { + function opModMemWord42(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -981,7 +4389,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem43: function opModMemWord43(fn) { + function opModMemWord43(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -995,7 +4403,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem44: function opModMemWord44(fn) { + function opModMemWord44(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1009,7 +4417,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem45: function opModMemWord45(fn) { + function opModMemWord45(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1023,7 +4431,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem46: function opModMemWord46(fn) { + function opModMemWord46(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1037,7 +4445,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem47: function opModMemWord47(fn) { + function opModMemWord47(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1051,7 +4459,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem48: function opModMemWord48(fn) { + function opModMemWord48(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1065,7 +4473,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem49: function opModMemWord49(fn) { + function opModMemWord49(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1079,7 +4487,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem4A: function opModMemWord4A(fn) { + function opModMemWord4A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1093,7 +4501,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem4B: function opModMemWord4B(fn) { + function opModMemWord4B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1107,7 +4515,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem4C: function opModMemWord4C(fn) { + function opModMemWord4C(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1121,7 +4529,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem4D: function opModMemWord4D(fn) { + function opModMemWord4D(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1135,7 +4543,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem4E: function opModMemWord4E(fn) { + function opModMemWord4E(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1149,7 +4557,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem4F: function opModMemWord4F(fn) { + function opModMemWord4F(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1163,7 +4571,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem50: function opModMemWord50(fn) { + function opModMemWord50(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1177,7 +4585,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem51: function opModMemWord51(fn) { + function opModMemWord51(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1191,7 +4599,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem52: function opModMemWord52(fn) { + function opModMemWord52(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1205,7 +4613,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem53: function opModMemWord53(fn) { + function opModMemWord53(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1219,7 +4627,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem54: function opModMemWord54(fn) { + function opModMemWord54(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1233,7 +4641,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem55: function opModMemWord55(fn) { + function opModMemWord55(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1247,7 +4655,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem56: function opModMemWord56(fn) { + function opModMemWord56(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1261,7 +4669,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem57: function opModMemWord57(fn) { + function opModMemWord57(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -1275,7 +4683,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem58: function opModMemWord58(fn) { + function opModMemWord58(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1289,7 +4697,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem59: function opModMemWord59(fn) { + function opModMemWord59(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1303,7 +4711,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem5A: function opModMemWord5A(fn) { + function opModMemWord5A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1317,7 +4725,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem5B: function opModMemWord5B(fn) { + function opModMemWord5B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1331,7 +4739,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem5C: function opModMemWord5C(fn) { + function opModMemWord5C(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1345,7 +4753,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem5D: function opModMemWord5D(fn) { + function opModMemWord5D(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1359,7 +4767,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem5E: function opModMemWord5E(fn) { + function opModMemWord5E(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1373,7 +4781,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem5F: function opModMemWord5F(fn) { + function opModMemWord5F(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -1387,7 +4795,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem60: function opModMemWord60(fn) { + function opModMemWord60(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1401,7 +4809,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem61: function opModMemWord61(fn) { + function opModMemWord61(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1415,7 +4823,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem62: function opModMemWord62(fn) { + function opModMemWord62(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1429,7 +4837,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem63: function opModMemWord63(fn) { + function opModMemWord63(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1443,7 +4851,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem64: function opModMemWord64(fn) { + function opModMemWord64(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1457,7 +4865,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem65: function opModMemWord65(fn) { + function opModMemWord65(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1471,7 +4879,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem66: function opModMemWord66(fn) { + function opModMemWord66(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1485,7 +4893,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem67: function opModMemWord67(fn) { + function opModMemWord67(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -1499,7 +4907,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem68: function opModMemWord68(fn) { + function opModMemWord68(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1513,7 +4921,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem69: function opModMemWord69(fn) { + function opModMemWord69(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1527,7 +4935,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem6A: function opModMemWord6A(fn) { + function opModMemWord6A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1541,7 +4949,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem6B: function opModMemWord6B(fn) { + function opModMemWord6B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1555,7 +4963,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem6C: function opModMemWord6C(fn) { + function opModMemWord6C(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1569,7 +4977,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem6D: function opModMemWord6D(fn) { + function opModMemWord6D(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1583,7 +4991,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem6E: function opModMemWord6E(fn) { + function opModMemWord6E(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1597,7 +5005,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem6F: function opModMemWord6F(fn) { + function opModMemWord6F(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -1611,7 +5019,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem70: function opModMemWord70(fn) { + function opModMemWord70(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1625,7 +5033,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem71: function opModMemWord71(fn) { + function opModMemWord71(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1639,7 +5047,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem72: function opModMemWord72(fn) { + function opModMemWord72(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1653,7 +5061,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem73: function opModMemWord73(fn) { + function opModMemWord73(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1667,7 +5075,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem74: function opModMemWord74(fn) { + function opModMemWord74(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1681,7 +5089,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem75: function opModMemWord75(fn) { + function opModMemWord75(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1695,7 +5103,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem76: function opModMemWord76(fn) { + function opModMemWord76(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1709,7 +5117,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem77: function opModMemWord77(fn) { + function opModMemWord77(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -1723,7 +5131,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem78: function opModMemWord78(fn) { + function opModMemWord78(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1737,7 +5145,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem79: function opModMemWord79(fn) { + function opModMemWord79(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1751,7 +5159,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem7A: function opModMemWord7A(fn) { + function opModMemWord7A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1765,7 +5173,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem7B: function opModMemWord7B(fn) { + function opModMemWord7B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1779,7 +5187,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem7C: function opModMemWord7C(fn) { + function opModMemWord7C(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1793,7 +5201,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem7D: function opModMemWord7D(fn) { + function opModMemWord7D(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1807,7 +5215,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem7E: function opModMemWord7E(fn) { + function opModMemWord7E(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1821,7 +5229,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem7F: function opModMemWord7F(fn) { + function opModMemWord7F(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -1835,7 +5243,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem80: function opModMemWord80(fn) { + function opModMemWord80(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1849,7 +5257,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem81: function opModMemWord81(fn) { + function opModMemWord81(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1863,7 +5271,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem82: function opModMemWord82(fn) { + function opModMemWord82(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1877,7 +5285,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem83: function opModMemWord83(fn) { + function opModMemWord83(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1891,7 +5299,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem84: function opModMemWord84(fn) { + function opModMemWord84(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1905,7 +5313,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem85: function opModMemWord85(fn) { + function opModMemWord85(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1919,7 +5327,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem86: function opModMemWord86(fn) { + function opModMemWord86(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1933,7 +5341,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem87: function opModMemWord87(fn) { + function opModMemWord87(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEAX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiAL; this.backTrack.btiEAHi = this.backTrack.btiAH; @@ -1947,7 +5355,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem88: function opModMemWord88(fn) { + function opModMemWord88(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1961,7 +5369,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem89: function opModMemWord89(fn) { + function opModMemWord89(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1975,7 +5383,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem8A: function opModMemWord8A(fn) { + function opModMemWord8A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -1989,7 +5397,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem8B: function opModMemWord8B(fn) { + function opModMemWord8B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -2003,7 +5411,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem8C: function opModMemWord8C(fn) { + function opModMemWord8C(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -2017,7 +5425,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem8D: function opModMemWord8D(fn) { + function opModMemWord8D(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -2031,7 +5439,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem8E: function opModMemWord8E(fn) { + function opModMemWord8E(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -2045,7 +5453,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem8F: function opModMemWord8F(fn) { + function opModMemWord8F(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regECX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiCL; this.backTrack.btiEAHi = this.backTrack.btiCH; @@ -2059,7 +5467,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem90: function opModMemWord90(fn) { + function opModMemWord90(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2073,7 +5481,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem91: function opModMemWord91(fn) { + function opModMemWord91(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2087,7 +5495,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem92: function opModMemWord92(fn) { + function opModMemWord92(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2101,7 +5509,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem93: function opModMemWord93(fn) { + function opModMemWord93(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2115,7 +5523,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem94: function opModMemWord94(fn) { + function opModMemWord94(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2129,7 +5537,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem95: function opModMemWord95(fn) { + function opModMemWord95(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2143,7 +5551,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem96: function opModMemWord96(fn) { + function opModMemWord96(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2157,7 +5565,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem97: function opModMemWord97(fn) { + function opModMemWord97(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEDX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDL; this.backTrack.btiEAHi = this.backTrack.btiDH; @@ -2171,7 +5579,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem98: function opModMemWord98(fn) { + function opModMemWord98(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2185,7 +5593,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem99: function opModMemWord99(fn) { + function opModMemWord99(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2199,7 +5607,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem9A: function opModMemWord9A(fn) { + function opModMemWord9A(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2213,7 +5621,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem9B: function opModMemWord9B(fn) { + function opModMemWord9B(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2227,7 +5635,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem9C: function opModMemWord9C(fn) { + function opModMemWord9C(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2241,7 +5649,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem9D: function opModMemWord9D(fn) { + function opModMemWord9D(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2255,7 +5663,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem9E: function opModMemWord9E(fn) { + function opModMemWord9E(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2269,7 +5677,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMem9F: function opModMemWord9F(fn) { + function opModMemWord9F(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEBX & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBL; this.backTrack.btiEAHi = this.backTrack.btiBH; @@ -2283,7 +5691,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA0: function opModMemWordA0(fn) { + function opModMemWordA0(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2297,7 +5705,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA1: function opModMemWordA1(fn) { + function opModMemWordA1(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2311,7 +5719,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA2: function opModMemWordA2(fn) { + function opModMemWordA2(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2325,7 +5733,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA3: function opModMemWordA3(fn) { + function opModMemWordA3(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2339,7 +5747,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA4: function opModMemWordA4(fn) { + function opModMemWordA4(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2353,7 +5761,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA5: function opModMemWordA5(fn) { + function opModMemWordA5(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2367,7 +5775,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA6: function opModMemWordA6(fn) { + function opModMemWordA6(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2381,7 +5789,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA7: function opModMemWordA7(fn) { + function opModMemWordA7(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regESP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = X86.BACKTRACK.SP_LO; this.backTrack.btiEAHi = X86.BACKTRACK.SP_HI; @@ -2395,7 +5803,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA8: function opModMemWordA8(fn) { + function opModMemWordA8(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2409,7 +5817,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemA9: function opModMemWordA9(fn) { + function opModMemWordA9(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2423,7 +5831,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemAA: function opModMemWordAA(fn) { + function opModMemWordAA(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2437,7 +5845,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemAB: function opModMemWordAB(fn) { + function opModMemWordAB(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2451,7 +5859,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemAC: function opModMemWordAC(fn) { + function opModMemWordAC(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2465,7 +5873,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemAD: function opModMemWordAD(fn) { + function opModMemWordAD(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2479,7 +5887,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemAE: function opModMemWordAE(fn) { + function opModMemWordAE(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2493,7 +5901,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemAF: function opModMemWordAF(fn) { + function opModMemWordAF(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEBP & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiBPLo; this.backTrack.btiEAHi = this.backTrack.btiBPHi; @@ -2507,7 +5915,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB0: function opModMemWordB0(fn) { + function opModMemWordB0(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2521,7 +5929,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB1: function opModMemWordB1(fn) { + function opModMemWordB1(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2535,7 +5943,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB2: function opModMemWordB2(fn) { + function opModMemWordB2(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2549,7 +5957,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB3: function opModMemWordB3(fn) { + function opModMemWordB3(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2563,7 +5971,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB4: function opModMemWordB4(fn) { + function opModMemWordB4(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2577,7 +5985,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB5: function opModMemWordB5(fn) { + function opModMemWordB5(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2591,7 +5999,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB6: function opModMemWordB6(fn) { + function opModMemWordB6(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2605,7 +6013,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB7: function opModMemWordB7(fn) { + function opModMemWordB7(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regESI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiSILo; this.backTrack.btiEAHi = this.backTrack.btiSIHi; @@ -2619,7 +6027,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB8: function opModMemWordB8(fn) { + function opModMemWordB8(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2633,7 +6041,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemB9: function opModMemWordB9(fn) { + function opModMemWordB9(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2647,7 +6055,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemBA: function opModMemWordBA(fn) { + function opModMemWordBA(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2661,7 +6069,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemBB: function opModMemWordBB(fn) { + function opModMemWordBB(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2675,7 +6083,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemBC: function opModMemWordBC(fn) { + function opModMemWordBC(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2689,7 +6097,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemBD: function opModMemWordBD(fn) { + function opModMemWordBD(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2703,7 +6111,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemBE: function opModMemWordBE(fn) { + function opModMemWordBE(fn) { var w = fn.call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2717,7 +6125,7 @@ var X86ModW = { * @this {X86CPU} * @param {function(number,number)} fn (dst,src) */ - opModMemBF: function opModMemWordBF(fn) { + function opModMemWordBF(fn) { var w = fn.call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), this.regEDI & this.opMask); if (BACKTRACK) { this.backTrack.btiEALo = this.backTrack.btiDILo; this.backTrack.btiEAHi = this.backTrack.btiDIHi; @@ -2725,3409 +6133,25 @@ var X86ModW = { this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; }, - /** - * opModRegWord00(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg00: function opModRegWord00(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord01(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg01: function opModRegWord01(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord02(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg02: function opModRegWord02(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord03(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg03: function opModRegWord03(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord04(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg04: function opModRegWord04(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord05(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg05: function opModRegWord05(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord06(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg06: function opModRegWord06(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord07(fn): mod=00 (mem:src) reg=000 (AX:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg07: function opModRegWord07(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord08(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg08: function opModRegWord08(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord09(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg09: function opModRegWord09(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord0A(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg0A: function opModRegWord0A(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord0B(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg0B: function opModRegWord0B(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord0C(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg0C: function opModRegWord0C(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord0D(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg0D: function opModRegWord0D(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord0E(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg0E: function opModRegWord0E(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord0F(fn): mod=00 (mem:src) reg=001 (CX:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg0F: function opModRegWord0F(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord10(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg10: function opModRegWord10(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord11(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg11: function opModRegWord11(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord12(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg12: function opModRegWord12(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord13(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg13: function opModRegWord13(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord14(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg14: function opModRegWord14(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord15(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg15: function opModRegWord15(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord16(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg16: function opModRegWord16(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord17(fn): mod=00 (mem:src) reg=010 (DX:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg17: function opModRegWord17(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord18(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg18: function opModRegWord18(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord19(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg19: function opModRegWord19(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord1A(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg1A: function opModRegWord1A(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord1B(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg1B: function opModRegWord1B(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord1C(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg1C: function opModRegWord1C(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord1D(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg1D: function opModRegWord1D(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord1E(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg1E: function opModRegWord1E(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord1F(fn): mod=00 (mem:src) reg=011 (BX:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg1F: function opModRegWord1F(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord20(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg20: function opModRegWord20(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord21(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg21: function opModRegWord21(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord22(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg22: function opModRegWord22(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord23(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg23: function opModRegWord23(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord24(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg24: function opModRegWord24(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord25(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg25: function opModRegWord25(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord26(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg26: function opModRegWord26(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord27(fn): mod=00 (mem:src) reg=100 (SP:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg27: function opModRegWord27(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord28(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg28: function opModRegWord28(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord29(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg29: function opModRegWord29(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord2A(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg2A: function opModRegWord2A(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord2B(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg2B: function opModRegWord2B(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord2C(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg2C: function opModRegWord2C(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord2D(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg2D: function opModRegWord2D(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord2E(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg2E: function opModRegWord2E(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord2F(fn): mod=00 (mem:src) reg=101 (BP:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg2F: function opModRegWord2F(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord30(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg30: function opModRegWord30(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord31(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg31: function opModRegWord31(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord32(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg32: function opModRegWord32(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord33(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg33: function opModRegWord33(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord34(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg34: function opModRegWord34(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord35(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg35: function opModRegWord35(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord36(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg36: function opModRegWord36(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord37(fn): mod=00 (mem:src) reg=110 (SI:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg37: function opModRegWord37(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord38(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=000 (BX+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg38: function opModRegWord38(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord39(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=001 (BX+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg39: function opModRegWord39(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord3A(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=010 (BP+SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg3A: function opModRegWord3A(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; - }, - /** - * opModRegWord3B(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=011 (BP+DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg3B: function opModRegWord3B(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; - }, - /** - * opModRegWord3C(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=100 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg3C: function opModRegWord3C(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, (this.regESI & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord3D(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=101 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg3D: function opModRegWord3D(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, (this.regEDI & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord3E(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=110 (d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg3E: function opModRegWord3E(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, this.getIPWord())); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesDisp; - }, - /** - * opModRegWord3F(fn): mod=00 (mem:src) reg=111 (DI:dst) r/m=111 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg3F: function opModRegWord3F(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, (this.regEBX & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBase; - }, - /** - * opModRegWord40(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg40: function opModRegWord40(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord41(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg41: function opModRegWord41(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord42(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg42: function opModRegWord42(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord43(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg43: function opModRegWord43(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord44(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg44: function opModRegWord44(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord45(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg45: function opModRegWord45(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord46(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg46: function opModRegWord46(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord47(fn): mod=01 (mem+d8:src) reg=000 (AX:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg47: function opModRegWord47(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord48(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg48: function opModRegWord48(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord49(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg49: function opModRegWord49(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord4A(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg4A: function opModRegWord4A(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord4B(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg4B: function opModRegWord4B(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord4C(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg4C: function opModRegWord4C(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord4D(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg4D: function opModRegWord4D(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord4E(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg4E: function opModRegWord4E(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord4F(fn): mod=01 (mem+d8:src) reg=001 (CX:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg4F: function opModRegWord4F(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord50(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg50: function opModRegWord50(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord51(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg51: function opModRegWord51(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord52(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg52: function opModRegWord52(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord53(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg53: function opModRegWord53(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord54(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg54: function opModRegWord54(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord55(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg55: function opModRegWord55(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord56(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg56: function opModRegWord56(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord57(fn): mod=01 (mem+d8:src) reg=010 (DX:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg57: function opModRegWord57(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord58(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg58: function opModRegWord58(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord59(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg59: function opModRegWord59(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord5A(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg5A: function opModRegWord5A(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord5B(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg5B: function opModRegWord5B(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord5C(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg5C: function opModRegWord5C(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord5D(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg5D: function opModRegWord5D(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord5E(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg5E: function opModRegWord5E(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord5F(fn): mod=01 (mem+d8:src) reg=011 (BX:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg5F: function opModRegWord5F(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord60(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg60: function opModRegWord60(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord61(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg61: function opModRegWord61(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord62(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg62: function opModRegWord62(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord63(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg63: function opModRegWord63(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord64(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg64: function opModRegWord64(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord65(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg65: function opModRegWord65(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord66(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg66: function opModRegWord66(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord67(fn): mod=01 (mem+d8:src) reg=100 (SP:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg67: function opModRegWord67(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord68(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg68: function opModRegWord68(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord69(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg69: function opModRegWord69(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord6A(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg6A: function opModRegWord6A(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord6B(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg6B: function opModRegWord6B(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord6C(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg6C: function opModRegWord6C(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord6D(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg6D: function opModRegWord6D(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord6E(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg6E: function opModRegWord6E(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord6F(fn): mod=01 (mem+d8:src) reg=101 (BP:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg6F: function opModRegWord6F(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord70(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg70: function opModRegWord70(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord71(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg71: function opModRegWord71(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord72(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg72: function opModRegWord72(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord73(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg73: function opModRegWord73(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord74(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg74: function opModRegWord74(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord75(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg75: function opModRegWord75(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord76(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg76: function opModRegWord76(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord77(fn): mod=01 (mem+d8:src) reg=110 (SI:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg77: function opModRegWord77(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord78(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=000 (BX+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg78: function opModRegWord78(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord79(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=001 (BX+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg79: function opModRegWord79(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord7A(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=010 (BP+SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg7A: function opModRegWord7A(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord7B(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=011 (BP+DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg7B: function opModRegWord7B(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord7C(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=100 (SI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg7C: function opModRegWord7C(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord7D(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=101 (DI+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg7D: function opModRegWord7D(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord7E(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=110 (BP+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg7E: function opModRegWord7E(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord7F(fn): mod=01 (mem+d8:src) reg=111 (DI:dst) r/m=111 (BX+d8) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg7F: function opModRegWord7F(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord80(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg80: function opModRegWord80(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord81(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg81: function opModRegWord81(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord82(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg82: function opModRegWord82(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord83(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg83: function opModRegWord83(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord84(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg84: function opModRegWord84(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord85(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg85: function opModRegWord85(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord86(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg86: function opModRegWord86(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord87(fn): mod=10 (mem+d16:src) reg=000 (AX:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg87: function opModRegWord87(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord88(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg88: function opModRegWord88(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord89(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg89: function opModRegWord89(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord8A(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg8A: function opModRegWord8A(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord8B(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg8B: function opModRegWord8B(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord8C(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg8C: function opModRegWord8C(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord8D(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg8D: function opModRegWord8D(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord8E(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg8E: function opModRegWord8E(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord8F(fn): mod=10 (mem+d16:src) reg=001 (CX:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg8F: function opModRegWord8F(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord90(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg90: function opModRegWord90(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord91(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg91: function opModRegWord91(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord92(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg92: function opModRegWord92(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord93(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg93: function opModRegWord93(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord94(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg94: function opModRegWord94(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord95(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg95: function opModRegWord95(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord96(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg96: function opModRegWord96(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord97(fn): mod=10 (mem+d16:src) reg=010 (DX:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg97: function opModRegWord97(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord98(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg98: function opModRegWord98(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord99(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg99: function opModRegWord99(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord9A(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg9A: function opModRegWord9A(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWord9B(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg9B: function opModRegWord9B(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWord9C(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg9C: function opModRegWord9C(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord9D(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg9D: function opModRegWord9D(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord9E(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg9E: function opModRegWord9E(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWord9F(fn): mod=10 (mem+d16:src) reg=011 (BX:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModReg9F: function opModRegWord9F(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordA0(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA0: function opModRegWordA0(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordA1(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA1: function opModRegWordA1(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordA2(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA2: function opModRegWordA2(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordA3(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA3: function opModRegWordA3(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordA4(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA4: function opModRegWordA4(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordA5(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA5: function opModRegWordA5(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordA6(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA6: function opModRegWordA6(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordA7(fn): mod=10 (mem+d16:src) reg=100 (SP:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA7: function opModRegWordA7(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regESP = (this.regESP & this.opMaskClear) | w; - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordA8(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA8: function opModRegWordA8(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordA9(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegA9: function opModRegWordA9(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordAA(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegAA: function opModRegWordAA(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordAB(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegAB: function opModRegWordAB(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordAC(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegAC: function opModRegWordAC(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordAD(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegAD: function opModRegWordAD(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordAE(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegAE: function opModRegWordAE(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordAF(fn): mod=10 (mem+d16:src) reg=101 (BP:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegAF: function opModRegWordAF(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordB0(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB0: function opModRegWordB0(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordB1(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB1: function opModRegWordB1(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordB2(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB2: function opModRegWordB2(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordB3(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB3: function opModRegWordB3(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordB4(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB4: function opModRegWordB4(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordB5(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB5: function opModRegWordB5(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordB6(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB6: function opModRegWordB6(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordB7(fn): mod=10 (mem+d16:src) reg=110 (SI:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB7: function opModRegWordB7(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordB8(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=000 (BX+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB8: function opModRegWordB8(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordB9(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=001 (BX+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegB9: function opModRegWordB9(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordBA(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=010 (BP+SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegBA: function opModRegWordBA(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; - }, - /** - * opModRegWordBB(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=011 (BP+DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegBB: function opModRegWordBB(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; - }, - /** - * opModRegWordBC(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=100 (SI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegBC: function opModRegWordBC(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordBD(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=101 (DI+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegBD: function opModRegWordBD(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordBE(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=110 (BP+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegBE: function opModRegWordBE(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordBF(fn): mod=10 (mem+d16:src) reg=111 (DI:dst) r/m=111 (BX+d16) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegBF: function opModRegWordBF(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.getEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff))); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; - } - this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; - }, - /** - * opModRegWordC0(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC0: function opModRegWordC0(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regEAX & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - }, - /** - * opModRegWordC1(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC1: function opModRegWordC1(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regECX & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiCL; this.backTrack.btiAH = this.backTrack.btiCH; - } - }, - /** - * opModRegWordC2(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC2: function opModRegWordC2(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regEDX & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiDL; this.backTrack.btiAH = this.backTrack.btiDH; - } - }, - /** - * opModRegWordC3(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC3: function opModRegWordC3(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regEBX & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiBL; this.backTrack.btiAH = this.backTrack.btiBH; - } - }, - /** - * opModRegWordC4(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC4: function opModRegWordC4(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regESP & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = X86.BACKTRACK.SP_LO; this.backTrack.btiAH = X86.BACKTRACK.SP_HI; - } - }, - /** - * opModRegWordC5(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC5: function opModRegWordC5(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regEBP & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiBPLo; this.backTrack.btiAH = this.backTrack.btiBPHi; - } - }, - /** - * opModRegWordC6(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC6: function opModRegWordC6(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regESI & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiSILo; this.backTrack.btiAH = this.backTrack.btiSIHi; - } - }, - /** - * opModRegWordC7(fn): mod=11 (reg:src) reg=000 (AX:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC7: function opModRegWordC7(fn) { - var w = fn.call(this, this.regEAX & this.opMask, this.regEDI & this.opMask); - this.regEAX = (this.regEAX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiAL = this.backTrack.btiDILo; this.backTrack.btiAH = this.backTrack.btiDIHi; - } - }, - /** - * opModRegWordC8(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC8: function opModRegWordC8(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regEAX & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiAL; this.backTrack.btiCH = this.backTrack.btiAH; - } - }, - /** - * opModRegWordC9(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegC9: function opModRegWordC9(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regECX & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - }, - /** - * opModRegWordCA(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegCA: function opModRegWordCA(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regEDX & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiDL; this.backTrack.btiCH = this.backTrack.btiDH; - } - }, - /** - * opModRegWordCB(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegCB: function opModRegWordCB(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regEBX & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiBL; this.backTrack.btiCH = this.backTrack.btiBH; - } - }, - /** - * opModRegWordCC(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegCC: function opModRegWordCC(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regESP & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = X86.BACKTRACK.SP_LO; this.backTrack.btiCH = X86.BACKTRACK.SP_HI; - } - }, - /** - * opModRegWordCD(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegCD: function opModRegWordCD(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regEBP & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiBPLo; this.backTrack.btiCH = this.backTrack.btiBPHi; - } - }, - /** - * opModRegWordCE(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegCE: function opModRegWordCE(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regESI & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiSILo; this.backTrack.btiCH = this.backTrack.btiSIHi; - } - }, - /** - * opModRegWordCF(fn): mod=11 (reg:src) reg=001 (CX:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegCF: function opModRegWordCF(fn) { - var w = fn.call(this, this.regECX & this.opMask, this.regEDI & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiCL = this.backTrack.btiDILo; this.backTrack.btiCH = this.backTrack.btiDIHi; - } - }, - /** - * opModRegWordD0(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD0: function opModRegWordD0(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regEAX & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiAL; this.backTrack.btiDH = this.backTrack.btiAH; - } - }, - /** - * opModRegWordD1(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD1: function opModRegWordD1(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regECX & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiCL; this.backTrack.btiDH = this.backTrack.btiCH; - } - }, - /** - * opModRegWordD2(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD2: function opModRegWordD2(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regEDX & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - }, - /** - * opModRegWordD3(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD3: function opModRegWordD3(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regEBX & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiBL; this.backTrack.btiDH = this.backTrack.btiBH; - } - }, - /** - * opModRegWordD4(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD4: function opModRegWordD4(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regESP & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = X86.BACKTRACK.SP_LO; this.backTrack.btiDH = X86.BACKTRACK.SP_HI; - } - }, - /** - * opModRegWordD5(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD5: function opModRegWordD5(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regEBP & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiBPLo; this.backTrack.btiDH = this.backTrack.btiBPHi; - } - }, - /** - * opModRegWordD6(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD6: function opModRegWordD6(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regESI & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiSILo; this.backTrack.btiDH = this.backTrack.btiSIHi; - } - }, - /** - * opModRegWordD7(fn): mod=11 (reg:src) reg=010 (DX:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD7: function opModRegWordD7(fn) { - var w = fn.call(this, this.regEDX & this.opMask, this.regEDI & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDL = this.backTrack.btiDILo; this.backTrack.btiDH = this.backTrack.btiDIHi; - } - }, - /** - * opModRegWordD8(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD8: function opModRegWordD8(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regEAX & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiAL; this.backTrack.btiBH = this.backTrack.btiAH; - } - }, - /** - * opModRegWordD9(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegD9: function opModRegWordD9(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regECX & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiCL; this.backTrack.btiBH = this.backTrack.btiCH; - } - }, - /** - * opModRegWordDA(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegDA: function opModRegWordDA(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regEDX & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiDL; this.backTrack.btiBH = this.backTrack.btiDH; - } - }, - /** - * opModRegWordDB(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegDB: function opModRegWordDB(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regEBX & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - }, - /** - * opModRegWordDC(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegDC: function opModRegWordDC(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regESP & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = X86.BACKTRACK.SP_LO; this.backTrack.btiBH = X86.BACKTRACK.SP_HI; - } - }, - /** - * opModRegWordDD(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegDD: function opModRegWordDD(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regEBP & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiBPLo; this.backTrack.btiBH = this.backTrack.btiBPHi; - } - }, - /** - * opModRegWordDE(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegDE: function opModRegWordDE(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regESI & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiSILo; this.backTrack.btiBH = this.backTrack.btiSIHi; - } - }, - /** - * opModRegWordDF(fn): mod=11 (reg:src) reg=011 (BX:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegDF: function opModRegWordDF(fn) { - var w = fn.call(this, this.regEBX & this.opMask, this.regEDI & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBL = this.backTrack.btiDILo; this.backTrack.btiBH = this.backTrack.btiDIHi; - } - }, - /** - * opModRegWordE0(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE0: function opModRegWordE0(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regEAX & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE1(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE1: function opModRegWordE1(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regECX & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE2(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE2: function opModRegWordE2(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regEDX & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE3(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE3: function opModRegWordE3(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regEBX & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE4(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE4: function opModRegWordE4(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regESP & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE5(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE5: function opModRegWordE5(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regEBP & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE6(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE6: function opModRegWordE6(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regESI & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE7(fn): mod=11 (reg:src) reg=100 (SP:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE7: function opModRegWordE7(fn) { - var w = fn.call(this, this.regESP & this.opMask, this.regEDI & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | w; - }, - /** - * opModRegWordE8(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE8: function opModRegWordE8(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regEAX & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiAL; this.backTrack.btiBPHi = this.backTrack.btiAH; - } - }, - /** - * opModRegWordE9(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegE9: function opModRegWordE9(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regECX & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiCL; this.backTrack.btiBPHi = this.backTrack.btiCH; - } - }, - /** - * opModRegWordEA(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegEA: function opModRegWordEA(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regEDX & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiDL; this.backTrack.btiBPHi = this.backTrack.btiDH; - } - }, - /** - * opModRegWordEB(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegEB: function opModRegWordEB(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regEBX & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiBL; this.backTrack.btiBPHi = this.backTrack.btiBH; - } - }, - /** - * opModRegWordEC(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegEC: function opModRegWordEC(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regESP & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = X86.BACKTRACK.SP_LO; this.backTrack.btiBPHi = X86.BACKTRACK.SP_HI; - } - }, - /** - * opModRegWordED(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegED: function opModRegWordED(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regEBP & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - }, - /** - * opModRegWordEE(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegEE: function opModRegWordEE(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regESI & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiSILo; this.backTrack.btiBPHi = this.backTrack.btiSIHi; - } - }, - /** - * opModRegWordEF(fn): mod=11 (reg:src) reg=101 (BP:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegEF: function opModRegWordEF(fn) { - var w = fn.call(this, this.regEBP & this.opMask, this.regEDI & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiBPLo = this.backTrack.btiDILo; this.backTrack.btiBPHi = this.backTrack.btiDIHi; - } - }, - /** - * opModRegWordF0(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF0: function opModRegWordF0(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regEAX & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiAL; this.backTrack.btiSIHi = this.backTrack.btiAH; - } - }, - /** - * opModRegWordF1(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF1: function opModRegWordF1(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regECX & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiCL; this.backTrack.btiSIHi = this.backTrack.btiCH; - } - }, - /** - * opModRegWordF2(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF2: function opModRegWordF2(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regEDX & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiDL; this.backTrack.btiSIHi = this.backTrack.btiDH; - } - }, - /** - * opModRegWordF3(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF3: function opModRegWordF3(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regEBX & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiBL; this.backTrack.btiSIHi = this.backTrack.btiBH; - } - }, - /** - * opModRegWordF4(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF4: function opModRegWordF4(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regESP & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = X86.BACKTRACK.SP_LO; this.backTrack.btiSIHi = X86.BACKTRACK.SP_HI; - } - }, - /** - * opModRegWordF5(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF5: function opModRegWordF5(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regEBP & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiBPLo; this.backTrack.btiSIHi = this.backTrack.btiBPHi; - } - }, - /** - * opModRegWordF6(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF6: function opModRegWordF6(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regESI & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - }, - /** - * opModRegWordF7(fn): mod=11 (reg:src) reg=110 (SI:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF7: function opModRegWordF7(fn) { - var w = fn.call(this, this.regESI & this.opMask, this.regEDI & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiSILo = this.backTrack.btiDILo; this.backTrack.btiSIHi = this.backTrack.btiDIHi; - } - }, - /** - * opModRegWordF8(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=000 (AX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF8: function opModRegWordF8(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regEAX & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiAL; this.backTrack.btiDIHi = this.backTrack.btiAH; - } - }, - /** - * opModRegWordF9(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=001 (CX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegF9: function opModRegWordF9(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regECX & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiCL; this.backTrack.btiDIHi = this.backTrack.btiCH; - } - }, - /** - * opModRegWordFA(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=010 (DX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegFA: function opModRegWordFA(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regEDX & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiDL; this.backTrack.btiDIHi = this.backTrack.btiDH; - } - }, - /** - * opModRegWordFB(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=011 (BX) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegFB: function opModRegWordFB(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regEBX & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiBL; this.backTrack.btiDIHi = this.backTrack.btiBH; - } - }, - /** - * opModRegWordFC(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=100 (SP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegFC: function opModRegWordFC(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regESP & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = X86.BACKTRACK.SP_LO; this.backTrack.btiDIHi = X86.BACKTRACK.SP_HI; - } - }, - /** - * opModRegWordFD(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=101 (BP) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegFD: function opModRegWordFD(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regEBP & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiBPLo; this.backTrack.btiDIHi = this.backTrack.btiBPHi; - } - }, - /** - * opModRegWordFE(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=110 (SI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegFE: function opModRegWordFE(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regESI & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - if (BACKTRACK) { - this.backTrack.btiDILo = this.backTrack.btiSILo; this.backTrack.btiDIHi = this.backTrack.btiSIHi; - } - }, - /** - * opModRegWordFF(fn): mod=11 (reg:src) reg=111 (DI:dst) r/m=111 (DI) - * - * @this {X86CPU} - * @param {function(number,number)} fn (dst,src) - */ - opModRegFF: function opModRegWordFF(fn) { - var w = fn.call(this, this.regEDI & this.opMask, this.regEDI & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | w; - }, + X86ModW.aOpModReg[0xC0], X86ModW.aOpModReg[0xC8], X86ModW.aOpModReg[0xD0], X86ModW.aOpModReg[0xD8], + X86ModW.aOpModReg[0xE0], X86ModW.aOpModReg[0xE8], X86ModW.aOpModReg[0xF0], X86ModW.aOpModReg[0xF8], + X86ModW.aOpModReg[0xC1], X86ModW.aOpModReg[0xC9], X86ModW.aOpModReg[0xD1], X86ModW.aOpModReg[0xD9], + X86ModW.aOpModReg[0xE1], X86ModW.aOpModReg[0xE9], X86ModW.aOpModReg[0xF1], X86ModW.aOpModReg[0xF9], + X86ModW.aOpModReg[0xC2], X86ModW.aOpModReg[0xCA], X86ModW.aOpModReg[0xD2], X86ModW.aOpModReg[0xDA], + X86ModW.aOpModReg[0xE2], X86ModW.aOpModReg[0xEA], X86ModW.aOpModReg[0xF2], X86ModW.aOpModReg[0xFA], + X86ModW.aOpModReg[0xC3], X86ModW.aOpModReg[0xCB], X86ModW.aOpModReg[0xD3], X86ModW.aOpModReg[0xDB], + X86ModW.aOpModReg[0xE3], X86ModW.aOpModReg[0xEB], X86ModW.aOpModReg[0xF3], X86ModW.aOpModReg[0xFB], + X86ModW.aOpModReg[0xC4], X86ModW.aOpModReg[0xCC], X86ModW.aOpModReg[0xD4], X86ModW.aOpModReg[0xDC], + X86ModW.aOpModReg[0xE4], X86ModW.aOpModReg[0xEC], X86ModW.aOpModReg[0xF4], X86ModW.aOpModReg[0xFC], + X86ModW.aOpModReg[0xC5], X86ModW.aOpModReg[0xCD], X86ModW.aOpModReg[0xD5], X86ModW.aOpModReg[0xDD], + X86ModW.aOpModReg[0xE5], X86ModW.aOpModReg[0xED], X86ModW.aOpModReg[0xF5], X86ModW.aOpModReg[0xFD], + X86ModW.aOpModReg[0xC6], X86ModW.aOpModReg[0xCE], X86ModW.aOpModReg[0xD6], X86ModW.aOpModReg[0xDE], + X86ModW.aOpModReg[0xE6], X86ModW.aOpModReg[0xEE], X86ModW.aOpModReg[0xF6], X86ModW.aOpModReg[0xFE], + X86ModW.aOpModReg[0xC7], X86ModW.aOpModReg[0xCF], X86ModW.aOpModReg[0xD7], X86ModW.aOpModReg[0xDF], + X86ModW.aOpModReg[0xE7], X86ModW.aOpModReg[0xEF], X86ModW.aOpModReg[0xF7], X86ModW.aOpModReg[0xFF] +]; + +X86ModW.aOpModGrp = [ /** * opModGrpWord00(afnGrp, fnSrc): mod=00 (mem:dst) reg=000 (afnGrp[0]) r/m=000 (BX+SI) * @@ -6135,7 +6159,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp00: function opModGrpWord00(afnGrp, fnSrc) { + function opModGrpWord00(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6147,7 +6171,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp01: function opModGrpWord01(afnGrp, fnSrc) { + function opModGrpWord01(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6159,7 +6183,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp02: function opModGrpWord02(afnGrp, fnSrc) { + function opModGrpWord02(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6171,7 +6195,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp03: function opModGrpWord03(afnGrp, fnSrc) { + function opModGrpWord03(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6183,7 +6207,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp04: function opModGrpWord04(afnGrp, fnSrc) { + function opModGrpWord04(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6195,7 +6219,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp05: function opModGrpWord05(afnGrp, fnSrc) { + function opModGrpWord05(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6207,7 +6231,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp06: function opModGrpWord06(afnGrp, fnSrc) { + function opModGrpWord06(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6219,7 +6243,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp07: function opModGrpWord07(afnGrp, fnSrc) { + function opModGrpWord07(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6231,7 +6255,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp08: function opModGrpWord08(afnGrp, fnSrc) { + function opModGrpWord08(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6243,7 +6267,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp09: function opModGrpWord09(afnGrp, fnSrc) { + function opModGrpWord09(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6255,7 +6279,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0A: function opModGrpWord0A(afnGrp, fnSrc) { + function opModGrpWord0A(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6267,7 +6291,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0B: function opModGrpWord0B(afnGrp, fnSrc) { + function opModGrpWord0B(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6279,7 +6303,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0C: function opModGrpWord0C(afnGrp, fnSrc) { + function opModGrpWord0C(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6291,7 +6315,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0D: function opModGrpWord0D(afnGrp, fnSrc) { + function opModGrpWord0D(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6303,7 +6327,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0E: function opModGrpWord0E(afnGrp, fnSrc) { + function opModGrpWord0E(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6315,7 +6339,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp0F: function opModGrpWord0F(afnGrp, fnSrc) { + function opModGrpWord0F(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6327,7 +6351,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp10: function opModGrpWord10(afnGrp, fnSrc) { + function opModGrpWord10(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6339,7 +6363,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp11: function opModGrpWord11(afnGrp, fnSrc) { + function opModGrpWord11(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6351,7 +6375,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp12: function opModGrpWord12(afnGrp, fnSrc) { + function opModGrpWord12(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6363,7 +6387,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp13: function opModGrpWord13(afnGrp, fnSrc) { + function opModGrpWord13(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6375,7 +6399,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp14: function opModGrpWord14(afnGrp, fnSrc) { + function opModGrpWord14(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6387,7 +6411,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp15: function opModGrpWord15(afnGrp, fnSrc) { + function opModGrpWord15(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6399,7 +6423,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp16: function opModGrpWord16(afnGrp, fnSrc) { + function opModGrpWord16(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6411,7 +6435,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp17: function opModGrpWord17(afnGrp, fnSrc) { + function opModGrpWord17(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6423,7 +6447,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp18: function opModGrpWord18(afnGrp, fnSrc) { + function opModGrpWord18(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6435,7 +6459,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp19: function opModGrpWord19(afnGrp, fnSrc) { + function opModGrpWord19(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6447,7 +6471,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1A: function opModGrpWord1A(afnGrp, fnSrc) { + function opModGrpWord1A(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6459,7 +6483,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1B: function opModGrpWord1B(afnGrp, fnSrc) { + function opModGrpWord1B(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6471,7 +6495,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1C: function opModGrpWord1C(afnGrp, fnSrc) { + function opModGrpWord1C(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6483,7 +6507,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1D: function opModGrpWord1D(afnGrp, fnSrc) { + function opModGrpWord1D(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6495,7 +6519,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1E: function opModGrpWord1E(afnGrp, fnSrc) { + function opModGrpWord1E(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6507,7 +6531,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp1F: function opModGrpWord1F(afnGrp, fnSrc) { + function opModGrpWord1F(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6519,7 +6543,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp20: function opModGrpWord20(afnGrp, fnSrc) { + function opModGrpWord20(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6531,7 +6555,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp21: function opModGrpWord21(afnGrp, fnSrc) { + function opModGrpWord21(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6543,7 +6567,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp22: function opModGrpWord22(afnGrp, fnSrc) { + function opModGrpWord22(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6555,7 +6579,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp23: function opModGrpWord23(afnGrp, fnSrc) { + function opModGrpWord23(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6567,7 +6591,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp24: function opModGrpWord24(afnGrp, fnSrc) { + function opModGrpWord24(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6579,7 +6603,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp25: function opModGrpWord25(afnGrp, fnSrc) { + function opModGrpWord25(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6591,7 +6615,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp26: function opModGrpWord26(afnGrp, fnSrc) { + function opModGrpWord26(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6603,7 +6627,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp27: function opModGrpWord27(afnGrp, fnSrc) { + function opModGrpWord27(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6615,7 +6639,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp28: function opModGrpWord28(afnGrp, fnSrc) { + function opModGrpWord28(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6627,7 +6651,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp29: function opModGrpWord29(afnGrp, fnSrc) { + function opModGrpWord29(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6639,7 +6663,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2A: function opModGrpWord2A(afnGrp, fnSrc) { + function opModGrpWord2A(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6651,7 +6675,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2B: function opModGrpWord2B(afnGrp, fnSrc) { + function opModGrpWord2B(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6663,7 +6687,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2C: function opModGrpWord2C(afnGrp, fnSrc) { + function opModGrpWord2C(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6675,7 +6699,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2D: function opModGrpWord2D(afnGrp, fnSrc) { + function opModGrpWord2D(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6687,7 +6711,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2E: function opModGrpWord2E(afnGrp, fnSrc) { + function opModGrpWord2E(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6699,7 +6723,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp2F: function opModGrpWord2F(afnGrp, fnSrc) { + function opModGrpWord2F(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6711,7 +6735,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp30: function opModGrpWord30(afnGrp, fnSrc) { + function opModGrpWord30(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6723,7 +6747,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp31: function opModGrpWord31(afnGrp, fnSrc) { + function opModGrpWord31(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6735,7 +6759,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp32: function opModGrpWord32(afnGrp, fnSrc) { + function opModGrpWord32(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6747,7 +6771,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp33: function opModGrpWord33(afnGrp, fnSrc) { + function opModGrpWord33(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6759,7 +6783,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp34: function opModGrpWord34(afnGrp, fnSrc) { + function opModGrpWord34(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6771,7 +6795,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp35: function opModGrpWord35(afnGrp, fnSrc) { + function opModGrpWord35(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6783,7 +6807,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp36: function opModGrpWord36(afnGrp, fnSrc) { + function opModGrpWord36(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6795,7 +6819,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp37: function opModGrpWord37(afnGrp, fnSrc) { + function opModGrpWord37(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6807,7 +6831,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp38: function opModGrpWord38(afnGrp, fnSrc) { + function opModGrpWord38(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6819,7 +6843,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp39: function opModGrpWord39(afnGrp, fnSrc) { + function opModGrpWord39(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6831,7 +6855,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3A: function opModGrpWord3A(afnGrp, fnSrc) { + function opModGrpWord3A(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexExtra; @@ -6843,7 +6867,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3B: function opModGrpWord3B(afnGrp, fnSrc) { + function opModGrpWord3B(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndex; @@ -6855,7 +6879,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3C: function opModGrpWord3C(afnGrp, fnSrc) { + function opModGrpWord3C(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, (this.regESI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6867,7 +6891,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3D: function opModGrpWord3D(afnGrp, fnSrc) { + function opModGrpWord3D(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, (this.regEDI & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6879,7 +6903,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3E: function opModGrpWord3E(afnGrp, fnSrc) { + function opModGrpWord3E(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, this.getIPWord()), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesDisp; @@ -6891,7 +6915,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp3F: function opModGrpWord3F(afnGrp, fnSrc) { + function opModGrpWord3F(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, (this.regEBX & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBase; @@ -6903,7 +6927,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp40: function opModGrpWord40(afnGrp, fnSrc) { + function opModGrpWord40(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6915,7 +6939,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp41: function opModGrpWord41(afnGrp, fnSrc) { + function opModGrpWord41(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6927,7 +6951,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp42: function opModGrpWord42(afnGrp, fnSrc) { + function opModGrpWord42(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -6939,7 +6963,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp43: function opModGrpWord43(afnGrp, fnSrc) { + function opModGrpWord43(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -6951,7 +6975,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp44: function opModGrpWord44(afnGrp, fnSrc) { + function opModGrpWord44(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6963,7 +6987,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp45: function opModGrpWord45(afnGrp, fnSrc) { + function opModGrpWord45(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6975,7 +6999,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp46: function opModGrpWord46(afnGrp, fnSrc) { + function opModGrpWord46(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6987,7 +7011,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp47: function opModGrpWord47(afnGrp, fnSrc) { + function opModGrpWord47(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -6999,7 +7023,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp48: function opModGrpWord48(afnGrp, fnSrc) { + function opModGrpWord48(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7011,7 +7035,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp49: function opModGrpWord49(afnGrp, fnSrc) { + function opModGrpWord49(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7023,7 +7047,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4A: function opModGrpWord4A(afnGrp, fnSrc) { + function opModGrpWord4A(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7035,7 +7059,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4B: function opModGrpWord4B(afnGrp, fnSrc) { + function opModGrpWord4B(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7047,7 +7071,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4C: function opModGrpWord4C(afnGrp, fnSrc) { + function opModGrpWord4C(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7059,7 +7083,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4D: function opModGrpWord4D(afnGrp, fnSrc) { + function opModGrpWord4D(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7071,7 +7095,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4E: function opModGrpWord4E(afnGrp, fnSrc) { + function opModGrpWord4E(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7083,7 +7107,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp4F: function opModGrpWord4F(afnGrp, fnSrc) { + function opModGrpWord4F(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7095,7 +7119,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp50: function opModGrpWord50(afnGrp, fnSrc) { + function opModGrpWord50(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7107,7 +7131,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp51: function opModGrpWord51(afnGrp, fnSrc) { + function opModGrpWord51(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7119,7 +7143,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp52: function opModGrpWord52(afnGrp, fnSrc) { + function opModGrpWord52(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7131,7 +7155,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp53: function opModGrpWord53(afnGrp, fnSrc) { + function opModGrpWord53(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7143,7 +7167,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp54: function opModGrpWord54(afnGrp, fnSrc) { + function opModGrpWord54(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7155,7 +7179,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp55: function opModGrpWord55(afnGrp, fnSrc) { + function opModGrpWord55(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7167,7 +7191,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp56: function opModGrpWord56(afnGrp, fnSrc) { + function opModGrpWord56(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7179,7 +7203,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp57: function opModGrpWord57(afnGrp, fnSrc) { + function opModGrpWord57(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7191,7 +7215,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp58: function opModGrpWord58(afnGrp, fnSrc) { + function opModGrpWord58(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7203,7 +7227,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp59: function opModGrpWord59(afnGrp, fnSrc) { + function opModGrpWord59(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7215,7 +7239,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5A: function opModGrpWord5A(afnGrp, fnSrc) { + function opModGrpWord5A(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7227,7 +7251,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5B: function opModGrpWord5B(afnGrp, fnSrc) { + function opModGrpWord5B(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7239,7 +7263,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5C: function opModGrpWord5C(afnGrp, fnSrc) { + function opModGrpWord5C(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7251,7 +7275,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5D: function opModGrpWord5D(afnGrp, fnSrc) { + function opModGrpWord5D(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7263,7 +7287,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5E: function opModGrpWord5E(afnGrp, fnSrc) { + function opModGrpWord5E(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7275,7 +7299,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp5F: function opModGrpWord5F(afnGrp, fnSrc) { + function opModGrpWord5F(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7287,7 +7311,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp60: function opModGrpWord60(afnGrp, fnSrc) { + function opModGrpWord60(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7299,7 +7323,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp61: function opModGrpWord61(afnGrp, fnSrc) { + function opModGrpWord61(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7311,7 +7335,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp62: function opModGrpWord62(afnGrp, fnSrc) { + function opModGrpWord62(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7323,7 +7347,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp63: function opModGrpWord63(afnGrp, fnSrc) { + function opModGrpWord63(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7335,7 +7359,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp64: function opModGrpWord64(afnGrp, fnSrc) { + function opModGrpWord64(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7347,7 +7371,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp65: function opModGrpWord65(afnGrp, fnSrc) { + function opModGrpWord65(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7359,7 +7383,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp66: function opModGrpWord66(afnGrp, fnSrc) { + function opModGrpWord66(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7371,7 +7395,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp67: function opModGrpWord67(afnGrp, fnSrc) { + function opModGrpWord67(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7383,7 +7407,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp68: function opModGrpWord68(afnGrp, fnSrc) { + function opModGrpWord68(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7395,7 +7419,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp69: function opModGrpWord69(afnGrp, fnSrc) { + function opModGrpWord69(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7407,7 +7431,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6A: function opModGrpWord6A(afnGrp, fnSrc) { + function opModGrpWord6A(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7419,7 +7443,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6B: function opModGrpWord6B(afnGrp, fnSrc) { + function opModGrpWord6B(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7431,7 +7455,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6C: function opModGrpWord6C(afnGrp, fnSrc) { + function opModGrpWord6C(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7443,7 +7467,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6D: function opModGrpWord6D(afnGrp, fnSrc) { + function opModGrpWord6D(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7455,7 +7479,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6E: function opModGrpWord6E(afnGrp, fnSrc) { + function opModGrpWord6E(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7467,7 +7491,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp6F: function opModGrpWord6F(afnGrp, fnSrc) { + function opModGrpWord6F(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7479,7 +7503,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp70: function opModGrpWord70(afnGrp, fnSrc) { + function opModGrpWord70(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7491,7 +7515,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp71: function opModGrpWord71(afnGrp, fnSrc) { + function opModGrpWord71(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7503,7 +7527,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp72: function opModGrpWord72(afnGrp, fnSrc) { + function opModGrpWord72(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7515,7 +7539,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp73: function opModGrpWord73(afnGrp, fnSrc) { + function opModGrpWord73(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7527,7 +7551,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp74: function opModGrpWord74(afnGrp, fnSrc) { + function opModGrpWord74(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7539,7 +7563,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp75: function opModGrpWord75(afnGrp, fnSrc) { + function opModGrpWord75(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7551,7 +7575,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp76: function opModGrpWord76(afnGrp, fnSrc) { + function opModGrpWord76(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7563,7 +7587,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp77: function opModGrpWord77(afnGrp, fnSrc) { + function opModGrpWord77(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7575,7 +7599,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp78: function opModGrpWord78(afnGrp, fnSrc) { + function opModGrpWord78(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7587,7 +7611,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp79: function opModGrpWord79(afnGrp, fnSrc) { + function opModGrpWord79(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7599,7 +7623,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7A: function opModGrpWord7A(afnGrp, fnSrc) { + function opModGrpWord7A(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7611,7 +7635,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7B: function opModGrpWord7B(afnGrp, fnSrc) { + function opModGrpWord7B(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7623,7 +7647,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7C: function opModGrpWord7C(afnGrp, fnSrc) { + function opModGrpWord7C(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7635,7 +7659,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7D: function opModGrpWord7D(afnGrp, fnSrc) { + function opModGrpWord7D(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7647,7 +7671,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7E: function opModGrpWord7E(afnGrp, fnSrc) { + function opModGrpWord7E(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7659,7 +7683,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp7F: function opModGrpWord7F(afnGrp, fnSrc) { + function opModGrpWord7F(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPDisp()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7671,7 +7695,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp80: function opModGrpWord80(afnGrp, fnSrc) { + function opModGrpWord80(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7683,7 +7707,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp81: function opModGrpWord81(afnGrp, fnSrc) { + function opModGrpWord81(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7695,7 +7719,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp82: function opModGrpWord82(afnGrp, fnSrc) { + function opModGrpWord82(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7707,7 +7731,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp83: function opModGrpWord83(afnGrp, fnSrc) { + function opModGrpWord83(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7719,7 +7743,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp84: function opModGrpWord84(afnGrp, fnSrc) { + function opModGrpWord84(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7731,7 +7755,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp85: function opModGrpWord85(afnGrp, fnSrc) { + function opModGrpWord85(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7743,7 +7767,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp86: function opModGrpWord86(afnGrp, fnSrc) { + function opModGrpWord86(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7755,7 +7779,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp87: function opModGrpWord87(afnGrp, fnSrc) { + function opModGrpWord87(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7767,7 +7791,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp88: function opModGrpWord88(afnGrp, fnSrc) { + function opModGrpWord88(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7779,7 +7803,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp89: function opModGrpWord89(afnGrp, fnSrc) { + function opModGrpWord89(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7791,7 +7815,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8A: function opModGrpWord8A(afnGrp, fnSrc) { + function opModGrpWord8A(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7803,7 +7827,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8B: function opModGrpWord8B(afnGrp, fnSrc) { + function opModGrpWord8B(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7815,7 +7839,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8C: function opModGrpWord8C(afnGrp, fnSrc) { + function opModGrpWord8C(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7827,7 +7851,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8D: function opModGrpWord8D(afnGrp, fnSrc) { + function opModGrpWord8D(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7839,7 +7863,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8E: function opModGrpWord8E(afnGrp, fnSrc) { + function opModGrpWord8E(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7851,7 +7875,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp8F: function opModGrpWord8F(afnGrp, fnSrc) { + function opModGrpWord8F(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7863,7 +7887,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp90: function opModGrpWord90(afnGrp, fnSrc) { + function opModGrpWord90(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7875,7 +7899,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp91: function opModGrpWord91(afnGrp, fnSrc) { + function opModGrpWord91(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7887,7 +7911,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp92: function opModGrpWord92(afnGrp, fnSrc) { + function opModGrpWord92(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7899,7 +7923,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp93: function opModGrpWord93(afnGrp, fnSrc) { + function opModGrpWord93(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7911,7 +7935,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp94: function opModGrpWord94(afnGrp, fnSrc) { + function opModGrpWord94(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7923,7 +7947,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp95: function opModGrpWord95(afnGrp, fnSrc) { + function opModGrpWord95(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7935,7 +7959,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp96: function opModGrpWord96(afnGrp, fnSrc) { + function opModGrpWord96(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7947,7 +7971,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp97: function opModGrpWord97(afnGrp, fnSrc) { + function opModGrpWord97(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -7959,7 +7983,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp98: function opModGrpWord98(afnGrp, fnSrc) { + function opModGrpWord98(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -7971,7 +7995,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp99: function opModGrpWord99(afnGrp, fnSrc) { + function opModGrpWord99(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7983,7 +8007,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9A: function opModGrpWord9A(afnGrp, fnSrc) { + function opModGrpWord9A(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -7995,7 +8019,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9B: function opModGrpWord9B(afnGrp, fnSrc) { + function opModGrpWord9B(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8007,7 +8031,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9C: function opModGrpWord9C(afnGrp, fnSrc) { + function opModGrpWord9C(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8019,7 +8043,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9D: function opModGrpWord9D(afnGrp, fnSrc) { + function opModGrpWord9D(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8031,7 +8055,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9E: function opModGrpWord9E(afnGrp, fnSrc) { + function opModGrpWord9E(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8043,7 +8067,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrp9F: function opModGrpWord9F(afnGrp, fnSrc) { + function opModGrpWord9F(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8055,7 +8079,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA0: function opModGrpWordA0(afnGrp, fnSrc) { + function opModGrpWordA0(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8067,7 +8091,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA1: function opModGrpWordA1(afnGrp, fnSrc) { + function opModGrpWordA1(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8079,7 +8103,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA2: function opModGrpWordA2(afnGrp, fnSrc) { + function opModGrpWordA2(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8091,7 +8115,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA3: function opModGrpWordA3(afnGrp, fnSrc) { + function opModGrpWordA3(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8103,7 +8127,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA4: function opModGrpWordA4(afnGrp, fnSrc) { + function opModGrpWordA4(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8115,7 +8139,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA5: function opModGrpWordA5(afnGrp, fnSrc) { + function opModGrpWordA5(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8127,7 +8151,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA6: function opModGrpWordA6(afnGrp, fnSrc) { + function opModGrpWordA6(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8139,7 +8163,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA7: function opModGrpWordA7(afnGrp, fnSrc) { + function opModGrpWordA7(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8151,7 +8175,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA8: function opModGrpWordA8(afnGrp, fnSrc) { + function opModGrpWordA8(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8163,7 +8187,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpA9: function opModGrpWordA9(afnGrp, fnSrc) { + function opModGrpWordA9(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8175,7 +8199,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAA: function opModGrpWordAA(afnGrp, fnSrc) { + function opModGrpWordAA(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8187,7 +8211,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAB: function opModGrpWordAB(afnGrp, fnSrc) { + function opModGrpWordAB(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8199,7 +8223,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAC: function opModGrpWordAC(afnGrp, fnSrc) { + function opModGrpWordAC(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8211,7 +8235,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAD: function opModGrpWordAD(afnGrp, fnSrc) { + function opModGrpWordAD(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8223,7 +8247,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAE: function opModGrpWordAE(afnGrp, fnSrc) { + function opModGrpWordAE(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8235,7 +8259,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpAF: function opModGrpWordAF(afnGrp, fnSrc) { + function opModGrpWordAF(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8247,7 +8271,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB0: function opModGrpWordB0(afnGrp, fnSrc) { + function opModGrpWordB0(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8259,7 +8283,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB1: function opModGrpWordB1(afnGrp, fnSrc) { + function opModGrpWordB1(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8271,7 +8295,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB2: function opModGrpWordB2(afnGrp, fnSrc) { + function opModGrpWordB2(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8283,7 +8307,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB3: function opModGrpWordB3(afnGrp, fnSrc) { + function opModGrpWordB3(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8295,7 +8319,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB4: function opModGrpWordB4(afnGrp, fnSrc) { + function opModGrpWordB4(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8307,7 +8331,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB5: function opModGrpWordB5(afnGrp, fnSrc) { + function opModGrpWordB5(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8319,7 +8343,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB6: function opModGrpWordB6(afnGrp, fnSrc) { + function opModGrpWordB6(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8331,7 +8355,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB7: function opModGrpWordB7(afnGrp, fnSrc) { + function opModGrpWordB7(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8343,7 +8367,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB8: function opModGrpWordB8(afnGrp, fnSrc) { + function opModGrpWordB8(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8355,7 +8379,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpB9: function opModGrpWordB9(afnGrp, fnSrc) { + function opModGrpWordB9(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8367,7 +8391,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBA: function opModGrpWordBA(afnGrp, fnSrc) { + function opModGrpWordBA(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDispExtra; @@ -8379,7 +8403,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBB: function opModGrpWordBB(afnGrp, fnSrc) { + function opModGrpWordBB(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseIndexDisp; @@ -8391,7 +8415,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBC: function opModGrpWordBC(afnGrp, fnSrc) { + function opModGrpWordBC(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regESI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8403,7 +8427,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBD: function opModGrpWordBD(afnGrp, fnSrc) { + function opModGrpWordBD(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEDI + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8415,7 +8439,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBE: function opModGrpWordBE(afnGrp, fnSrc) { + function opModGrpWordBE(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segStack, ((this.regEBP + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8427,7 +8451,7 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpBF: function opModGrpWordBF(afnGrp, fnSrc) { + function opModGrpWordBF(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.modEAWord(this.segData, ((this.regEBX + this.getIPWord()) & 0xffff)), fnSrc.call(this)); this.setEAWord(w); this.nStepCycles -= this.CYCLES.nEACyclesBaseDisp; @@ -8439,9 +8463,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC0: function opModGrpWordC0(afnGrp, fnSrc) { + function opModGrpWordC0(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8453,9 +8477,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC1: function opModGrpWordC1(afnGrp, fnSrc) { + function opModGrpWordC1(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8467,9 +8491,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC2: function opModGrpWordC2(afnGrp, fnSrc) { + function opModGrpWordC2(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8481,9 +8505,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC3: function opModGrpWordC3(afnGrp, fnSrc) { + function opModGrpWordC3(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8495,9 +8519,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC4: function opModGrpWordC4(afnGrp, fnSrc) { + function opModGrpWordC4(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -8509,9 +8533,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC5: function opModGrpWordC5(afnGrp, fnSrc) { + function opModGrpWordC5(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8523,9 +8547,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC6: function opModGrpWordC6(afnGrp, fnSrc) { + function opModGrpWordC6(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8537,9 +8561,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC7: function opModGrpWordC7(afnGrp, fnSrc) { + function opModGrpWordC7(afnGrp, fnSrc) { var w = afnGrp[0].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8551,9 +8575,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC8: function opModGrpWordC8(afnGrp, fnSrc) { + function opModGrpWordC8(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8565,9 +8589,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpC9: function opModGrpWordC9(afnGrp, fnSrc) { + function opModGrpWordC9(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8579,9 +8603,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCA: function opModGrpWordCA(afnGrp, fnSrc) { + function opModGrpWordCA(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8593,9 +8617,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCB: function opModGrpWordCB(afnGrp, fnSrc) { + function opModGrpWordCB(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8607,9 +8631,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCC: function opModGrpWordCC(afnGrp, fnSrc) { + function opModGrpWordCC(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -8621,9 +8645,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCD: function opModGrpWordCD(afnGrp, fnSrc) { + function opModGrpWordCD(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8635,9 +8659,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCE: function opModGrpWordCE(afnGrp, fnSrc) { + function opModGrpWordCE(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8649,9 +8673,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpCF: function opModGrpWordCF(afnGrp, fnSrc) { + function opModGrpWordCF(afnGrp, fnSrc) { var w = afnGrp[1].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8663,9 +8687,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD0: function opModGrpWordD0(afnGrp, fnSrc) { + function opModGrpWordD0(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8677,9 +8701,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD1: function opModGrpWordD1(afnGrp, fnSrc) { + function opModGrpWordD1(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8691,9 +8715,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD2: function opModGrpWordD2(afnGrp, fnSrc) { + function opModGrpWordD2(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8705,9 +8729,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD3: function opModGrpWordD3(afnGrp, fnSrc) { + function opModGrpWordD3(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8719,9 +8743,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD4: function opModGrpWordD4(afnGrp, fnSrc) { + function opModGrpWordD4(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -8733,9 +8757,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD5: function opModGrpWordD5(afnGrp, fnSrc) { + function opModGrpWordD5(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8747,9 +8771,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD6: function opModGrpWordD6(afnGrp, fnSrc) { + function opModGrpWordD6(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8761,9 +8785,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD7: function opModGrpWordD7(afnGrp, fnSrc) { + function opModGrpWordD7(afnGrp, fnSrc) { var w = afnGrp[2].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8775,9 +8799,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD8: function opModGrpWordD8(afnGrp, fnSrc) { + function opModGrpWordD8(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8789,9 +8813,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpD9: function opModGrpWordD9(afnGrp, fnSrc) { + function opModGrpWordD9(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8803,9 +8827,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDA: function opModGrpWordDA(afnGrp, fnSrc) { + function opModGrpWordDA(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8817,9 +8841,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDB: function opModGrpWordDB(afnGrp, fnSrc) { + function opModGrpWordDB(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8831,9 +8855,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDC: function opModGrpWordDC(afnGrp, fnSrc) { + function opModGrpWordDC(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -8845,9 +8869,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDD: function opModGrpWordDD(afnGrp, fnSrc) { + function opModGrpWordDD(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8859,9 +8883,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDE: function opModGrpWordDE(afnGrp, fnSrc) { + function opModGrpWordDE(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8873,9 +8897,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpDF: function opModGrpWordDF(afnGrp, fnSrc) { + function opModGrpWordDF(afnGrp, fnSrc) { var w = afnGrp[3].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8887,9 +8911,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE0: function opModGrpWordE0(afnGrp, fnSrc) { + function opModGrpWordE0(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -8901,9 +8925,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE1: function opModGrpWordE1(afnGrp, fnSrc) { + function opModGrpWordE1(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -8915,9 +8939,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE2: function opModGrpWordE2(afnGrp, fnSrc) { + function opModGrpWordE2(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -8929,9 +8953,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE3: function opModGrpWordE3(afnGrp, fnSrc) { + function opModGrpWordE3(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -8943,9 +8967,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE4: function opModGrpWordE4(afnGrp, fnSrc) { + function opModGrpWordE4(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -8957,9 +8981,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE5: function opModGrpWordE5(afnGrp, fnSrc) { + function opModGrpWordE5(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -8971,9 +8995,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE6: function opModGrpWordE6(afnGrp, fnSrc) { + function opModGrpWordE6(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -8985,9 +9009,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE7: function opModGrpWordE7(afnGrp, fnSrc) { + function opModGrpWordE7(afnGrp, fnSrc) { var w = afnGrp[4].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -8999,9 +9023,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE8: function opModGrpWordE8(afnGrp, fnSrc) { + function opModGrpWordE8(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -9013,9 +9037,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpE9: function opModGrpWordE9(afnGrp, fnSrc) { + function opModGrpWordE9(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -9027,9 +9051,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEA: function opModGrpWordEA(afnGrp, fnSrc) { + function opModGrpWordEA(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -9041,9 +9065,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEB: function opModGrpWordEB(afnGrp, fnSrc) { + function opModGrpWordEB(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -9055,9 +9079,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEC: function opModGrpWordEC(afnGrp, fnSrc) { + function opModGrpWordEC(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -9069,9 +9093,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpED: function opModGrpWordED(afnGrp, fnSrc) { + function opModGrpWordED(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -9083,9 +9107,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEE: function opModGrpWordEE(afnGrp, fnSrc) { + function opModGrpWordEE(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -9097,9 +9121,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpEF: function opModGrpWordEF(afnGrp, fnSrc) { + function opModGrpWordEF(afnGrp, fnSrc) { var w = afnGrp[5].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -9111,9 +9135,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF0: function opModGrpWordF0(afnGrp, fnSrc) { + function opModGrpWordF0(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -9125,9 +9149,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF1: function opModGrpWordF1(afnGrp, fnSrc) { + function opModGrpWordF1(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -9139,9 +9163,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF2: function opModGrpWordF2(afnGrp, fnSrc) { + function opModGrpWordF2(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -9153,9 +9177,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF3: function opModGrpWordF3(afnGrp, fnSrc) { + function opModGrpWordF3(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -9167,9 +9191,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF4: function opModGrpWordF4(afnGrp, fnSrc) { + function opModGrpWordF4(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -9181,9 +9205,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF5: function opModGrpWordF5(afnGrp, fnSrc) { + function opModGrpWordF5(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -9195,9 +9219,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF6: function opModGrpWordF6(afnGrp, fnSrc) { + function opModGrpWordF6(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -9209,9 +9233,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF7: function opModGrpWordF7(afnGrp, fnSrc) { + function opModGrpWordF7(afnGrp, fnSrc) { var w = afnGrp[6].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } @@ -9223,9 +9247,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF8: function opModGrpWordF8(afnGrp, fnSrc) { + function opModGrpWordF8(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regEAX & this.opMask, fnSrc.call(this)); - this.regEAX = (this.regEAX & this.opMaskClear) | w; + this.regEAX = (this.regEAX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiAL = this.backTrack.btiEALo; this.backTrack.btiAH = this.backTrack.btiEAHi; } @@ -9237,9 +9261,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpF9: function opModGrpWordF9(afnGrp, fnSrc) { + function opModGrpWordF9(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regECX & this.opMask, fnSrc.call(this)); - this.regECX = (this.regECX & this.opMaskClear) | w; + this.regECX = (this.regECX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiCL = this.backTrack.btiEALo; this.backTrack.btiCH = this.backTrack.btiEAHi; } @@ -9251,9 +9275,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFA: function opModGrpWordFA(afnGrp, fnSrc) { + function opModGrpWordFA(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regEDX & this.opMask, fnSrc.call(this)); - this.regEDX = (this.regEDX & this.opMaskClear) | w; + this.regEDX = (this.regEDX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDL = this.backTrack.btiEALo; this.backTrack.btiDH = this.backTrack.btiEAHi; } @@ -9265,9 +9289,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFB: function opModGrpWordFB(afnGrp, fnSrc) { + function opModGrpWordFB(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regEBX & this.opMask, fnSrc.call(this)); - this.regEBX = (this.regEBX & this.opMaskClear) | w; + this.regEBX = (this.regEBX & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBL = this.backTrack.btiEALo; this.backTrack.btiBH = this.backTrack.btiEAHi; } @@ -9279,9 +9303,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFC: function opModGrpWordFC(afnGrp, fnSrc) { + function opModGrpWordFC(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regESP & this.opMask, fnSrc.call(this)); - this.regESP = (this.regESP & this.opMaskClear) | w; + this.regESP = (this.regESP & ~this.opMask) | w; if (BACKTRACK) { X86.BACKTRACK.SP_LO = this.backTrack.btiEALo; X86.BACKTRACK.SP_HI = this.backTrack.btiEAHi; } @@ -9293,9 +9317,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFD: function opModGrpWordFD(afnGrp, fnSrc) { + function opModGrpWordFD(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regEBP & this.opMask, fnSrc.call(this)); - this.regEBP = (this.regEBP & this.opMaskClear) | w; + this.regEBP = (this.regEBP & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiBPLo = this.backTrack.btiEALo; this.backTrack.btiBPHi = this.backTrack.btiEAHi; } @@ -9307,9 +9331,9 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFE: function opModGrpWordFE(afnGrp, fnSrc) { + function opModGrpWordFE(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regESI & this.opMask, fnSrc.call(this)); - this.regESI = (this.regESI & this.opMaskClear) | w; + this.regESI = (this.regESI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiSILo = this.backTrack.btiEALo; this.backTrack.btiSIHi = this.backTrack.btiEAHi; } @@ -9321,214 +9345,13 @@ var X86ModW = { * @param {Array.} afnGrp * @param {function()} fnSrc */ - opModGrpFF: function opModGrpWordFF(afnGrp, fnSrc) { + function opModGrpWordFF(afnGrp, fnSrc) { var w = afnGrp[7].call(this, this.regEDI & this.opMask, fnSrc.call(this)); - this.regEDI = (this.regEDI & this.opMaskClear) | w; + this.regEDI = (this.regEDI & ~this.opMask) | w; if (BACKTRACK) { this.backTrack.btiDILo = this.backTrack.btiEALo; this.backTrack.btiDIHi = this.backTrack.btiEAHi; } } -}; - -X86ModW.aOpModMem = [ - X86ModW.opModMem00, X86ModW.opModMem01, X86ModW.opModMem02, X86ModW.opModMem03, - X86ModW.opModMem04, X86ModW.opModMem05, X86ModW.opModMem06, X86ModW.opModMem07, - X86ModW.opModMem08, X86ModW.opModMem09, X86ModW.opModMem0A, X86ModW.opModMem0B, - X86ModW.opModMem0C, X86ModW.opModMem0D, X86ModW.opModMem0E, X86ModW.opModMem0F, - X86ModW.opModMem10, X86ModW.opModMem11, X86ModW.opModMem12, X86ModW.opModMem13, - X86ModW.opModMem14, X86ModW.opModMem15, X86ModW.opModMem16, X86ModW.opModMem17, - X86ModW.opModMem18, X86ModW.opModMem19, X86ModW.opModMem1A, X86ModW.opModMem1B, - X86ModW.opModMem1C, X86ModW.opModMem1D, X86ModW.opModMem1E, X86ModW.opModMem1F, - X86ModW.opModMem20, X86ModW.opModMem21, X86ModW.opModMem22, X86ModW.opModMem23, - X86ModW.opModMem24, X86ModW.opModMem25, X86ModW.opModMem26, X86ModW.opModMem27, - X86ModW.opModMem28, X86ModW.opModMem29, X86ModW.opModMem2A, X86ModW.opModMem2B, - X86ModW.opModMem2C, X86ModW.opModMem2D, X86ModW.opModMem2E, X86ModW.opModMem2F, - X86ModW.opModMem30, X86ModW.opModMem31, X86ModW.opModMem32, X86ModW.opModMem33, - X86ModW.opModMem34, X86ModW.opModMem35, X86ModW.opModMem36, X86ModW.opModMem37, - X86ModW.opModMem38, X86ModW.opModMem39, X86ModW.opModMem3A, X86ModW.opModMem3B, - X86ModW.opModMem3C, X86ModW.opModMem3D, X86ModW.opModMem3E, X86ModW.opModMem3F, - X86ModW.opModMem40, X86ModW.opModMem41, X86ModW.opModMem42, X86ModW.opModMem43, - X86ModW.opModMem44, X86ModW.opModMem45, X86ModW.opModMem46, X86ModW.opModMem47, - X86ModW.opModMem48, X86ModW.opModMem49, X86ModW.opModMem4A, X86ModW.opModMem4B, - X86ModW.opModMem4C, X86ModW.opModMem4D, X86ModW.opModMem4E, X86ModW.opModMem4F, - X86ModW.opModMem50, X86ModW.opModMem51, X86ModW.opModMem52, X86ModW.opModMem53, - X86ModW.opModMem54, X86ModW.opModMem55, X86ModW.opModMem56, X86ModW.opModMem57, - X86ModW.opModMem58, X86ModW.opModMem59, X86ModW.opModMem5A, X86ModW.opModMem5B, - X86ModW.opModMem5C, X86ModW.opModMem5D, X86ModW.opModMem5E, X86ModW.opModMem5F, - X86ModW.opModMem60, X86ModW.opModMem61, X86ModW.opModMem62, X86ModW.opModMem63, - X86ModW.opModMem64, X86ModW.opModMem65, X86ModW.opModMem66, X86ModW.opModMem67, - X86ModW.opModMem68, X86ModW.opModMem69, X86ModW.opModMem6A, X86ModW.opModMem6B, - X86ModW.opModMem6C, X86ModW.opModMem6D, X86ModW.opModMem6E, X86ModW.opModMem6F, - X86ModW.opModMem70, X86ModW.opModMem71, X86ModW.opModMem72, X86ModW.opModMem73, - X86ModW.opModMem74, X86ModW.opModMem75, X86ModW.opModMem76, X86ModW.opModMem77, - X86ModW.opModMem78, X86ModW.opModMem79, X86ModW.opModMem7A, X86ModW.opModMem7B, - X86ModW.opModMem7C, X86ModW.opModMem7D, X86ModW.opModMem7E, X86ModW.opModMem7F, - X86ModW.opModMem80, X86ModW.opModMem81, X86ModW.opModMem82, X86ModW.opModMem83, - X86ModW.opModMem84, X86ModW.opModMem85, X86ModW.opModMem86, X86ModW.opModMem87, - X86ModW.opModMem88, X86ModW.opModMem89, X86ModW.opModMem8A, X86ModW.opModMem8B, - X86ModW.opModMem8C, X86ModW.opModMem8D, X86ModW.opModMem8E, X86ModW.opModMem8F, - X86ModW.opModMem90, X86ModW.opModMem91, X86ModW.opModMem92, X86ModW.opModMem93, - X86ModW.opModMem94, X86ModW.opModMem95, X86ModW.opModMem96, X86ModW.opModMem97, - X86ModW.opModMem98, X86ModW.opModMem99, X86ModW.opModMem9A, X86ModW.opModMem9B, - X86ModW.opModMem9C, X86ModW.opModMem9D, X86ModW.opModMem9E, X86ModW.opModMem9F, - X86ModW.opModMemA0, X86ModW.opModMemA1, X86ModW.opModMemA2, X86ModW.opModMemA3, - X86ModW.opModMemA4, X86ModW.opModMemA5, X86ModW.opModMemA6, X86ModW.opModMemA7, - X86ModW.opModMemA8, X86ModW.opModMemA9, X86ModW.opModMemAA, X86ModW.opModMemAB, - X86ModW.opModMemAC, X86ModW.opModMemAD, X86ModW.opModMemAE, X86ModW.opModMemAF, - X86ModW.opModMemB0, X86ModW.opModMemB1, X86ModW.opModMemB2, X86ModW.opModMemB3, - X86ModW.opModMemB4, X86ModW.opModMemB5, X86ModW.opModMemB6, X86ModW.opModMemB7, - X86ModW.opModMemB8, X86ModW.opModMemB9, X86ModW.opModMemBA, X86ModW.opModMemBB, - X86ModW.opModMemBC, X86ModW.opModMemBD, X86ModW.opModMemBE, X86ModW.opModMemBF, - X86ModW.opModRegC0, X86ModW.opModRegC8, X86ModW.opModRegD0, X86ModW.opModRegD8, - X86ModW.opModRegE0, X86ModW.opModRegE8, X86ModW.opModRegF0, X86ModW.opModRegF8, - X86ModW.opModRegC1, X86ModW.opModRegC9, X86ModW.opModRegD1, X86ModW.opModRegD9, - X86ModW.opModRegE1, X86ModW.opModRegE9, X86ModW.opModRegF1, X86ModW.opModRegF9, - X86ModW.opModRegC2, X86ModW.opModRegCA, X86ModW.opModRegD2, X86ModW.opModRegDA, - X86ModW.opModRegE2, X86ModW.opModRegEA, X86ModW.opModRegF2, X86ModW.opModRegFA, - X86ModW.opModRegC3, X86ModW.opModRegCB, X86ModW.opModRegD3, X86ModW.opModRegDB, - X86ModW.opModRegE3, X86ModW.opModRegEB, X86ModW.opModRegF3, X86ModW.opModRegFB, - X86ModW.opModRegC4, X86ModW.opModRegCC, X86ModW.opModRegD4, X86ModW.opModRegDC, - X86ModW.opModRegE4, X86ModW.opModRegEC, X86ModW.opModRegF4, X86ModW.opModRegFC, - X86ModW.opModRegC5, X86ModW.opModRegCD, X86ModW.opModRegD5, X86ModW.opModRegDD, - X86ModW.opModRegE5, X86ModW.opModRegED, X86ModW.opModRegF5, X86ModW.opModRegFD, - X86ModW.opModRegC6, X86ModW.opModRegCE, X86ModW.opModRegD6, X86ModW.opModRegDE, - X86ModW.opModRegE6, X86ModW.opModRegEE, X86ModW.opModRegF6, X86ModW.opModRegFE, - X86ModW.opModRegC7, X86ModW.opModRegCF, X86ModW.opModRegD7, X86ModW.opModRegDF, - X86ModW.opModRegE7, X86ModW.opModRegEF, X86ModW.opModRegF7, X86ModW.opModRegFF -]; - -X86ModW.aOpModReg = [ - X86ModW.opModReg00, X86ModW.opModReg01, X86ModW.opModReg02, X86ModW.opModReg03, - X86ModW.opModReg04, X86ModW.opModReg05, X86ModW.opModReg06, X86ModW.opModReg07, - X86ModW.opModReg08, X86ModW.opModReg09, X86ModW.opModReg0A, X86ModW.opModReg0B, - X86ModW.opModReg0C, X86ModW.opModReg0D, X86ModW.opModReg0E, X86ModW.opModReg0F, - X86ModW.opModReg10, X86ModW.opModReg11, X86ModW.opModReg12, X86ModW.opModReg13, - X86ModW.opModReg14, X86ModW.opModReg15, X86ModW.opModReg16, X86ModW.opModReg17, - X86ModW.opModReg18, X86ModW.opModReg19, X86ModW.opModReg1A, X86ModW.opModReg1B, - X86ModW.opModReg1C, X86ModW.opModReg1D, X86ModW.opModReg1E, X86ModW.opModReg1F, - X86ModW.opModReg20, X86ModW.opModReg21, X86ModW.opModReg22, X86ModW.opModReg23, - X86ModW.opModReg24, X86ModW.opModReg25, X86ModW.opModReg26, X86ModW.opModReg27, - X86ModW.opModReg28, X86ModW.opModReg29, X86ModW.opModReg2A, X86ModW.opModReg2B, - X86ModW.opModReg2C, X86ModW.opModReg2D, X86ModW.opModReg2E, X86ModW.opModReg2F, - X86ModW.opModReg30, X86ModW.opModReg31, X86ModW.opModReg32, X86ModW.opModReg33, - X86ModW.opModReg34, X86ModW.opModReg35, X86ModW.opModReg36, X86ModW.opModReg37, - X86ModW.opModReg38, X86ModW.opModReg39, X86ModW.opModReg3A, X86ModW.opModReg3B, - X86ModW.opModReg3C, X86ModW.opModReg3D, X86ModW.opModReg3E, X86ModW.opModReg3F, - X86ModW.opModReg40, X86ModW.opModReg41, X86ModW.opModReg42, X86ModW.opModReg43, - X86ModW.opModReg44, X86ModW.opModReg45, X86ModW.opModReg46, X86ModW.opModReg47, - X86ModW.opModReg48, X86ModW.opModReg49, X86ModW.opModReg4A, X86ModW.opModReg4B, - X86ModW.opModReg4C, X86ModW.opModReg4D, X86ModW.opModReg4E, X86ModW.opModReg4F, - X86ModW.opModReg50, X86ModW.opModReg51, X86ModW.opModReg52, X86ModW.opModReg53, - X86ModW.opModReg54, X86ModW.opModReg55, X86ModW.opModReg56, X86ModW.opModReg57, - X86ModW.opModReg58, X86ModW.opModReg59, X86ModW.opModReg5A, X86ModW.opModReg5B, - X86ModW.opModReg5C, X86ModW.opModReg5D, X86ModW.opModReg5E, X86ModW.opModReg5F, - X86ModW.opModReg60, X86ModW.opModReg61, X86ModW.opModReg62, X86ModW.opModReg63, - X86ModW.opModReg64, X86ModW.opModReg65, X86ModW.opModReg66, X86ModW.opModReg67, - X86ModW.opModReg68, X86ModW.opModReg69, X86ModW.opModReg6A, X86ModW.opModReg6B, - X86ModW.opModReg6C, X86ModW.opModReg6D, X86ModW.opModReg6E, X86ModW.opModReg6F, - X86ModW.opModReg70, X86ModW.opModReg71, X86ModW.opModReg72, X86ModW.opModReg73, - X86ModW.opModReg74, X86ModW.opModReg75, X86ModW.opModReg76, X86ModW.opModReg77, - X86ModW.opModReg78, X86ModW.opModReg79, X86ModW.opModReg7A, X86ModW.opModReg7B, - X86ModW.opModReg7C, X86ModW.opModReg7D, X86ModW.opModReg7E, X86ModW.opModReg7F, - X86ModW.opModReg80, X86ModW.opModReg81, X86ModW.opModReg82, X86ModW.opModReg83, - X86ModW.opModReg84, X86ModW.opModReg85, X86ModW.opModReg86, X86ModW.opModReg87, - X86ModW.opModReg88, X86ModW.opModReg89, X86ModW.opModReg8A, X86ModW.opModReg8B, - X86ModW.opModReg8C, X86ModW.opModReg8D, X86ModW.opModReg8E, X86ModW.opModReg8F, - X86ModW.opModReg90, X86ModW.opModReg91, X86ModW.opModReg92, X86ModW.opModReg93, - X86ModW.opModReg94, X86ModW.opModReg95, X86ModW.opModReg96, X86ModW.opModReg97, - X86ModW.opModReg98, X86ModW.opModReg99, X86ModW.opModReg9A, X86ModW.opModReg9B, - X86ModW.opModReg9C, X86ModW.opModReg9D, X86ModW.opModReg9E, X86ModW.opModReg9F, - X86ModW.opModRegA0, X86ModW.opModRegA1, X86ModW.opModRegA2, X86ModW.opModRegA3, - X86ModW.opModRegA4, X86ModW.opModRegA5, X86ModW.opModRegA6, X86ModW.opModRegA7, - X86ModW.opModRegA8, X86ModW.opModRegA9, X86ModW.opModRegAA, X86ModW.opModRegAB, - X86ModW.opModRegAC, X86ModW.opModRegAD, X86ModW.opModRegAE, X86ModW.opModRegAF, - X86ModW.opModRegB0, X86ModW.opModRegB1, X86ModW.opModRegB2, X86ModW.opModRegB3, - X86ModW.opModRegB4, X86ModW.opModRegB5, X86ModW.opModRegB6, X86ModW.opModRegB7, - X86ModW.opModRegB8, X86ModW.opModRegB9, X86ModW.opModRegBA, X86ModW.opModRegBB, - X86ModW.opModRegBC, X86ModW.opModRegBD, X86ModW.opModRegBE, X86ModW.opModRegBF, - X86ModW.opModRegC0, X86ModW.opModRegC1, X86ModW.opModRegC2, X86ModW.opModRegC3, - X86ModW.opModRegC4, X86ModW.opModRegC5, X86ModW.opModRegC6, X86ModW.opModRegC7, - X86ModW.opModRegC8, X86ModW.opModRegC9, X86ModW.opModRegCA, X86ModW.opModRegCB, - X86ModW.opModRegCC, X86ModW.opModRegCD, X86ModW.opModRegCE, X86ModW.opModRegCF, - X86ModW.opModRegD0, X86ModW.opModRegD1, X86ModW.opModRegD2, X86ModW.opModRegD3, - X86ModW.opModRegD4, X86ModW.opModRegD5, X86ModW.opModRegD6, X86ModW.opModRegD7, - X86ModW.opModRegD8, X86ModW.opModRegD9, X86ModW.opModRegDA, X86ModW.opModRegDB, - X86ModW.opModRegDC, X86ModW.opModRegDD, X86ModW.opModRegDE, X86ModW.opModRegDF, - X86ModW.opModRegE0, X86ModW.opModRegE1, X86ModW.opModRegE2, X86ModW.opModRegE3, - X86ModW.opModRegE4, X86ModW.opModRegE5, X86ModW.opModRegE6, X86ModW.opModRegE7, - X86ModW.opModRegE8, X86ModW.opModRegE9, X86ModW.opModRegEA, X86ModW.opModRegEB, - X86ModW.opModRegEC, X86ModW.opModRegED, X86ModW.opModRegEE, X86ModW.opModRegEF, - X86ModW.opModRegF0, X86ModW.opModRegF1, X86ModW.opModRegF2, X86ModW.opModRegF3, - X86ModW.opModRegF4, X86ModW.opModRegF5, X86ModW.opModRegF6, X86ModW.opModRegF7, - X86ModW.opModRegF8, X86ModW.opModRegF9, X86ModW.opModRegFA, X86ModW.opModRegFB, - X86ModW.opModRegFC, X86ModW.opModRegFD, X86ModW.opModRegFE, X86ModW.opModRegFF -]; - -X86ModW.aOpModGrp = [ - X86ModW.opModGrp00, X86ModW.opModGrp01, X86ModW.opModGrp02, X86ModW.opModGrp03, - X86ModW.opModGrp04, X86ModW.opModGrp05, X86ModW.opModGrp06, X86ModW.opModGrp07, - X86ModW.opModGrp08, X86ModW.opModGrp09, X86ModW.opModGrp0A, X86ModW.opModGrp0B, - X86ModW.opModGrp0C, X86ModW.opModGrp0D, X86ModW.opModGrp0E, X86ModW.opModGrp0F, - X86ModW.opModGrp10, X86ModW.opModGrp11, X86ModW.opModGrp12, X86ModW.opModGrp13, - X86ModW.opModGrp14, X86ModW.opModGrp15, X86ModW.opModGrp16, X86ModW.opModGrp17, - X86ModW.opModGrp18, X86ModW.opModGrp19, X86ModW.opModGrp1A, X86ModW.opModGrp1B, - X86ModW.opModGrp1C, X86ModW.opModGrp1D, X86ModW.opModGrp1E, X86ModW.opModGrp1F, - X86ModW.opModGrp20, X86ModW.opModGrp21, X86ModW.opModGrp22, X86ModW.opModGrp23, - X86ModW.opModGrp24, X86ModW.opModGrp25, X86ModW.opModGrp26, X86ModW.opModGrp27, - X86ModW.opModGrp28, X86ModW.opModGrp29, X86ModW.opModGrp2A, X86ModW.opModGrp2B, - X86ModW.opModGrp2C, X86ModW.opModGrp2D, X86ModW.opModGrp2E, X86ModW.opModGrp2F, - X86ModW.opModGrp30, X86ModW.opModGrp31, X86ModW.opModGrp32, X86ModW.opModGrp33, - X86ModW.opModGrp34, X86ModW.opModGrp35, X86ModW.opModGrp36, X86ModW.opModGrp37, - X86ModW.opModGrp38, X86ModW.opModGrp39, X86ModW.opModGrp3A, X86ModW.opModGrp3B, - X86ModW.opModGrp3C, X86ModW.opModGrp3D, X86ModW.opModGrp3E, X86ModW.opModGrp3F, - X86ModW.opModGrp40, X86ModW.opModGrp41, X86ModW.opModGrp42, X86ModW.opModGrp43, - X86ModW.opModGrp44, X86ModW.opModGrp45, X86ModW.opModGrp46, X86ModW.opModGrp47, - X86ModW.opModGrp48, X86ModW.opModGrp49, X86ModW.opModGrp4A, X86ModW.opModGrp4B, - X86ModW.opModGrp4C, X86ModW.opModGrp4D, X86ModW.opModGrp4E, X86ModW.opModGrp4F, - X86ModW.opModGrp50, X86ModW.opModGrp51, X86ModW.opModGrp52, X86ModW.opModGrp53, - X86ModW.opModGrp54, X86ModW.opModGrp55, X86ModW.opModGrp56, X86ModW.opModGrp57, - X86ModW.opModGrp58, X86ModW.opModGrp59, X86ModW.opModGrp5A, X86ModW.opModGrp5B, - X86ModW.opModGrp5C, X86ModW.opModGrp5D, X86ModW.opModGrp5E, X86ModW.opModGrp5F, - X86ModW.opModGrp60, X86ModW.opModGrp61, X86ModW.opModGrp62, X86ModW.opModGrp63, - X86ModW.opModGrp64, X86ModW.opModGrp65, X86ModW.opModGrp66, X86ModW.opModGrp67, - X86ModW.opModGrp68, X86ModW.opModGrp69, X86ModW.opModGrp6A, X86ModW.opModGrp6B, - X86ModW.opModGrp6C, X86ModW.opModGrp6D, X86ModW.opModGrp6E, X86ModW.opModGrp6F, - X86ModW.opModGrp70, X86ModW.opModGrp71, X86ModW.opModGrp72, X86ModW.opModGrp73, - X86ModW.opModGrp74, X86ModW.opModGrp75, X86ModW.opModGrp76, X86ModW.opModGrp77, - X86ModW.opModGrp78, X86ModW.opModGrp79, X86ModW.opModGrp7A, X86ModW.opModGrp7B, - X86ModW.opModGrp7C, X86ModW.opModGrp7D, X86ModW.opModGrp7E, X86ModW.opModGrp7F, - X86ModW.opModGrp80, X86ModW.opModGrp81, X86ModW.opModGrp82, X86ModW.opModGrp83, - X86ModW.opModGrp84, X86ModW.opModGrp85, X86ModW.opModGrp86, X86ModW.opModGrp87, - X86ModW.opModGrp88, X86ModW.opModGrp89, X86ModW.opModGrp8A, X86ModW.opModGrp8B, - X86ModW.opModGrp8C, X86ModW.opModGrp8D, X86ModW.opModGrp8E, X86ModW.opModGrp8F, - X86ModW.opModGrp90, X86ModW.opModGrp91, X86ModW.opModGrp92, X86ModW.opModGrp93, - X86ModW.opModGrp94, X86ModW.opModGrp95, X86ModW.opModGrp96, X86ModW.opModGrp97, - X86ModW.opModGrp98, X86ModW.opModGrp99, X86ModW.opModGrp9A, X86ModW.opModGrp9B, - X86ModW.opModGrp9C, X86ModW.opModGrp9D, X86ModW.opModGrp9E, X86ModW.opModGrp9F, - X86ModW.opModGrpA0, X86ModW.opModGrpA1, X86ModW.opModGrpA2, X86ModW.opModGrpA3, - X86ModW.opModGrpA4, X86ModW.opModGrpA5, X86ModW.opModGrpA6, X86ModW.opModGrpA7, - X86ModW.opModGrpA8, X86ModW.opModGrpA9, X86ModW.opModGrpAA, X86ModW.opModGrpAB, - X86ModW.opModGrpAC, X86ModW.opModGrpAD, X86ModW.opModGrpAE, X86ModW.opModGrpAF, - X86ModW.opModGrpB0, X86ModW.opModGrpB1, X86ModW.opModGrpB2, X86ModW.opModGrpB3, - X86ModW.opModGrpB4, X86ModW.opModGrpB5, X86ModW.opModGrpB6, X86ModW.opModGrpB7, - X86ModW.opModGrpB8, X86ModW.opModGrpB9, X86ModW.opModGrpBA, X86ModW.opModGrpBB, - X86ModW.opModGrpBC, X86ModW.opModGrpBD, X86ModW.opModGrpBE, X86ModW.opModGrpBF, - X86ModW.opModGrpC0, X86ModW.opModGrpC1, X86ModW.opModGrpC2, X86ModW.opModGrpC3, - X86ModW.opModGrpC4, X86ModW.opModGrpC5, X86ModW.opModGrpC6, X86ModW.opModGrpC7, - X86ModW.opModGrpC8, X86ModW.opModGrpC9, X86ModW.opModGrpCA, X86ModW.opModGrpCB, - X86ModW.opModGrpCC, X86ModW.opModGrpCD, X86ModW.opModGrpCE, X86ModW.opModGrpCF, - X86ModW.opModGrpD0, X86ModW.opModGrpD1, X86ModW.opModGrpD2, X86ModW.opModGrpD3, - X86ModW.opModGrpD4, X86ModW.opModGrpD5, X86ModW.opModGrpD6, X86ModW.opModGrpD7, - X86ModW.opModGrpD8, X86ModW.opModGrpD9, X86ModW.opModGrpDA, X86ModW.opModGrpDB, - X86ModW.opModGrpDC, X86ModW.opModGrpDD, X86ModW.opModGrpDE, X86ModW.opModGrpDF, - X86ModW.opModGrpE0, X86ModW.opModGrpE1, X86ModW.opModGrpE2, X86ModW.opModGrpE3, - X86ModW.opModGrpE4, X86ModW.opModGrpE5, X86ModW.opModGrpE6, X86ModW.opModGrpE7, - X86ModW.opModGrpE8, X86ModW.opModGrpE9, X86ModW.opModGrpEA, X86ModW.opModGrpEB, - X86ModW.opModGrpEC, X86ModW.opModGrpED, X86ModW.opModGrpEE, X86ModW.opModGrpEF, - X86ModW.opModGrpF0, X86ModW.opModGrpF1, X86ModW.opModGrpF2, X86ModW.opModGrpF3, - X86ModW.opModGrpF4, X86ModW.opModGrpF5, X86ModW.opModGrpF6, X86ModW.opModGrpF7, - X86ModW.opModGrpF8, X86ModW.opModGrpF9, X86ModW.opModGrpFA, X86ModW.opModGrpFB, - X86ModW.opModGrpFC, X86ModW.opModGrpFD, X86ModW.opModGrpFE, X86ModW.opModGrpFF ]; if (typeof module !== 'undefined') module.exports = X86ModW; diff --git a/modules/pcjs/lib/x86opxx.js b/modules/pcjs/lib/x86opxx.js index f85233bf8..54ab3396f 100644 --- a/modules/pcjs/lib/x86opxx.js +++ b/modules/pcjs/lib/x86opxx.js @@ -98,7 +98,7 @@ var X86OpXX = { * op=0x05 (add AX,imm16) */ opADDAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | X86Grps.opGrpADDw.call(this, this.regEAX & this.opMask, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | X86Grps.opGrpADDw.call(this, this.regEAX & this.opMask, this.getIPWord()); /* * In the absence of any EA calculations, opGrpADDw() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -174,7 +174,7 @@ var X86OpXX = { * op=0x0D (or AX,imm16) */ opORAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | X86Grps.opGrpORw.call(this, this.regEAX & this.opMask, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | X86Grps.opGrpORw.call(this, this.regEAX & this.opMask, this.getIPWord()); /* * In the absence of any EA calculations, opGrpORw() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -258,7 +258,7 @@ var X86OpXX = { * op=0x15 (adc AX,imm16) */ opADCAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | X86Grps.opGrpADCw.call(this, this.regEAX & this.opMask, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | X86Grps.opGrpADCw.call(this, this.regEAX & this.opMask, this.getIPWord()); /* * In the absence of any EA calculations, opGrpADCw() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -334,7 +334,7 @@ var X86OpXX = { * op=0x1D (sbb AX,imm16) */ opSBBAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | X86Grps.opGrpSBBw.call(this, this.regEAX & this.opMask, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | X86Grps.opGrpSBBw.call(this, this.regEAX & this.opMask, this.getIPWord()); /* * In the absence of any EA calculations, opGrpSBBw() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -410,7 +410,7 @@ var X86OpXX = { * op=0x25 (and AX,imm16) */ opANDAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | X86Grps.opGrpANDw.call(this, this.regEAX & this.opMask, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | X86Grps.opGrpANDw.call(this, this.regEAX & this.opMask, this.getIPWord()); /* * In the absence of any EA calculations, opGrpANDw() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -505,7 +505,7 @@ var X86OpXX = { * op=0x2D (sub AX,imm16) */ opSUBAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | X86Grps.opGrpSUBw.call(this, this.regEAX & this.opMask, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | X86Grps.opGrpSUBw.call(this, this.regEAX & this.opMask, this.getIPWord()); /* * In the absence of any EA calculations, opGrpSUBw() will deduct nOpCyclesArithRR, and for all CPUs * through the 80286, we need deduct only one more cycle. @@ -600,7 +600,7 @@ var X86OpXX = { * op=0x35 (xor AX,imm16) */ opXORAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | X86Grps.opGrpXORw.call(this, this.regEAX & this.opMask, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | X86Grps.opGrpXORw.call(this, this.regEAX & this.opMask, this.getIPWord()); /* * In the absence of any EA calculations, opGrpXORw() will deduct nOpCyclesArithRR, and for all CPUs through * the 80286, we need deduct only one more cycle. @@ -759,7 +759,7 @@ var X86OpXX = { */ opINCAX: function() { this.resultAuxOverflow = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.resultParitySign = this.regEAX + 1) & this.opMask; + this.regEAX = (this.regEAX & ~this.opMask) | (this.resultParitySign = this.regEAX + 1) & this.opMask; this.resultValue = this.regEAX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -771,7 +771,7 @@ var X86OpXX = { */ opINCCX: function() { this.resultAuxOverflow = this.regECX; - this.regECX = (this.regECX & this.opMaskClear) | (this.resultParitySign = this.regECX + 1) & this.opMask; + this.regECX = (this.regECX & ~this.opMask) | (this.resultParitySign = this.regECX + 1) & this.opMask; this.resultValue = this.regECX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -783,7 +783,7 @@ var X86OpXX = { */ opINCDX: function() { this.resultAuxOverflow = this.regEDX; - this.regEDX = (this.regEDX & this.opMaskClear) | (this.resultParitySign = this.regEDX + 1) & this.opMask; + this.regEDX = (this.regEDX & ~this.opMask) | (this.resultParitySign = this.regEDX + 1) & this.opMask; this.resultValue = this.regEDX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -795,7 +795,7 @@ var X86OpXX = { */ opINCBX: function() { this.resultAuxOverflow = this.regEBX; - this.regEBX = (this.regEBX & this.opMaskClear) | (this.resultParitySign = this.regEBX + 1) & this.opMask; + this.regEBX = (this.regEBX & ~this.opMask) | (this.resultParitySign = this.regEBX + 1) & this.opMask; this.resultValue = this.regEBX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -807,7 +807,7 @@ var X86OpXX = { */ opINCSP: function() { this.resultAuxOverflow = this.regESP; - this.regESP = (this.regESP & this.opMaskClear) | (this.resultParitySign = this.regESP + 1) & this.opMask; + this.regESP = (this.regESP & ~this.opMask) | (this.resultParitySign = this.regESP + 1) & this.opMask; this.resultValue = this.regESP | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -819,7 +819,7 @@ var X86OpXX = { */ opINCBP: function() { this.resultAuxOverflow = this.regEBP; - this.regEBP = (this.regEBP & this.opMaskClear) | (this.resultParitySign = this.regEBP + 1) & this.opMask; + this.regEBP = (this.regEBP & ~this.opMask) | (this.resultParitySign = this.regEBP + 1) & this.opMask; this.resultValue = this.regEBP | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -831,7 +831,7 @@ var X86OpXX = { */ opINCSI: function() { this.resultAuxOverflow = this.regESI; - this.regESI = (this.regESI & this.opMaskClear) | (this.resultParitySign = this.regESI + 1) & this.opMask; + this.regESI = (this.regESI & ~this.opMask) | (this.resultParitySign = this.regESI + 1) & this.opMask; this.resultValue = this.regESI | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -843,7 +843,7 @@ var X86OpXX = { */ opINCDI: function() { this.resultAuxOverflow = this.regEDI; - this.regEDI = (this.regEDI & this.opMaskClear) | (this.resultParitySign = this.regEDI + 1) & this.opMask; + this.regEDI = (this.regEDI & ~this.opMask) | (this.resultParitySign = this.regEDI + 1) & this.opMask; this.resultValue = this.regEDI | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of INC takes 2 cycles on all CPUs @@ -855,7 +855,7 @@ var X86OpXX = { */ opDECAX: function() { this.resultAuxOverflow = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.resultParitySign = this.regEAX - 1) & this.opMask; + this.regEAX = (this.regEAX & ~this.opMask) | (this.resultParitySign = this.regEAX - 1) & this.opMask; this.resultValue = this.regEAX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -867,7 +867,7 @@ var X86OpXX = { */ opDECCX: function() { this.resultAuxOverflow = this.regECX; - this.regECX = (this.regECX & this.opMaskClear) | (this.resultParitySign = this.regECX - 1) & this.opMask; + this.regECX = (this.regECX & ~this.opMask) | (this.resultParitySign = this.regECX - 1) & this.opMask; this.resultValue = this.regECX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -879,7 +879,7 @@ var X86OpXX = { */ opDECDX: function() { this.resultAuxOverflow = this.regEDX; - this.regEDX = (this.regEDX & this.opMaskClear) | (this.resultParitySign = this.regEDX - 1) & this.opMask; + this.regEDX = (this.regEDX & ~this.opMask) | (this.resultParitySign = this.regEDX - 1) & this.opMask; this.resultValue = this.regEDX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -891,7 +891,7 @@ var X86OpXX = { */ opDECBX: function() { this.resultAuxOverflow = this.regEBX; - this.regEBX = (this.regEBX & this.opMaskClear) | (this.resultParitySign = this.regEBX - 1) & this.opMask; + this.regEBX = (this.regEBX & ~this.opMask) | (this.resultParitySign = this.regEBX - 1) & this.opMask; this.resultValue = this.regEBX | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -903,7 +903,7 @@ var X86OpXX = { */ opDECSP: function() { this.resultAuxOverflow = this.regESP; - this.regESP = (this.regESP & this.opMaskClear) | (this.resultParitySign = this.regESP - 1) & this.opMask; + this.regESP = (this.regESP & ~this.opMask) | (this.resultParitySign = this.regESP - 1) & this.opMask; this.resultValue = this.regESP | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -915,7 +915,7 @@ var X86OpXX = { */ opDECBP: function() { this.resultAuxOverflow = this.regEBP; - this.regEBP = (this.regEBP & this.opMaskClear) | (this.resultParitySign = this.regEBP - 1) & this.opMask; + this.regEBP = (this.regEBP & ~this.opMask) | (this.resultParitySign = this.regEBP - 1) & this.opMask; this.resultValue = this.regEBP | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -927,7 +927,7 @@ var X86OpXX = { */ opDECSI: function() { this.resultAuxOverflow = this.regESI; - this.regESI = (this.regESI & this.opMaskClear) | (this.resultParitySign = this.regESI - 1) & this.opMask; + this.regESI = (this.regESI & ~this.opMask) | (this.resultParitySign = this.regESI - 1) & this.opMask; this.resultValue = this.regESI | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -939,7 +939,7 @@ var X86OpXX = { */ opDECDI: function() { this.resultAuxOverflow = this.regEDI; - this.regEDI = (this.regEDI & this.opMaskClear) | (this.resultParitySign = this.regEDI - 1) & this.opMask; + this.regEDI = (this.regEDI & ~this.opMask) | (this.resultParitySign = this.regEDI - 1) & this.opMask; this.resultValue = this.regEDI | (((this.resultValue & this.resultSize)? 1 : 0) << 16); this.resultSize = X86.RESULT.SIZE_WORD; this.nStepCycles -= 2; // this form of DEC takes 2 cycles on all CPUs @@ -1032,7 +1032,7 @@ var X86OpXX = { * op=0x58 (pop AX) */ opPOPAX: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | this.popWord(); + this.regEAX = (this.regEAX & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1041,7 +1041,7 @@ var X86OpXX = { * op=0x59 (pop CX) */ opPOPCX: function() { - this.regECX = (this.regECX & this.opMaskClear) | this.popWord(); + this.regECX = (this.regECX & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1050,7 +1050,7 @@ var X86OpXX = { * op=0x5A (pop DX) */ opPOPDX: function() { - this.regEDX = (this.regEDX & this.opMaskClear) | this.popWord(); + this.regEDX = (this.regEDX & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1059,7 +1059,7 @@ var X86OpXX = { * op=0x5B (pop BX) */ opPOPBX: function() { - this.regEBX = (this.regEBX & this.opMaskClear) | this.popWord(); + this.regEBX = (this.regEBX & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1068,7 +1068,7 @@ var X86OpXX = { * op=0x5C (pop SP) */ opPOPSP: function() { - this.regESP = (this.regESP & this.opMaskClear) | this.popWord(); + this.regESP = (this.regESP & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1077,7 +1077,7 @@ var X86OpXX = { * op=0x5D (pop BP) */ opPOPBP: function() { - this.regEBP = (this.regEBP & this.opMaskClear) | this.popWord(); + this.regEBP = (this.regEBP & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1086,7 +1086,7 @@ var X86OpXX = { * op=0x5E (pop SI) */ opPOPSI: function() { - this.regESI = (this.regESI & this.opMaskClear) | this.popWord(); + this.regESI = (this.regESI & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1095,7 +1095,7 @@ var X86OpXX = { * op=0x5F (pop DI) */ opPOPDI: function() { - this.regEDI = (this.regEDI & this.opMaskClear) | this.popWord(); + this.regEDI = (this.regEDI & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopReg; }, /** @@ -1121,14 +1121,14 @@ var X86OpXX = { * op=0x61 (popa) (80186/80188 and up) */ opPOPA: function() { - this.regEDI = (this.regEDI & this.opMaskClear) | this.popWord(); - this.regESI = (this.regESI & this.opMaskClear) | this.popWord(); - this.regEBP = (this.regEBP & this.opMaskClear) | this.popWord(); + this.regEDI = (this.regEDI & ~this.opMask) | this.popWord(); + this.regESI = (this.regESI & ~this.opMask) | this.popWord(); + this.regEBP = (this.regEBP & ~this.opMask) | this.popWord(); this.regESP += this.opSize; - this.regEBX = (this.regEBX & this.opMaskClear) | this.popWord(); - this.regEDX = (this.regEDX & this.opMaskClear) | this.popWord(); - this.regECX = (this.regECX & this.opMaskClear) | this.popWord(); - this.regEAX = (this.regEAX & this.opMaskClear) | this.popWord(); + this.regEBX = (this.regEBX & ~this.opMask) | this.popWord(); + this.regEDX = (this.regEDX & ~this.opMask) | this.popWord(); + this.regECX = (this.regECX & ~this.opMask) | this.popWord(); + this.regEAX = (this.regEAX & ~this.opMask) | this.popWord(); this.nStepCycles -= this.CYCLES.nOpCyclesPopAll; }, /** @@ -1211,10 +1211,10 @@ var X86OpXX = { } if (nReps--) { - var b = this.bus.checkPortInputNotify(this.regEDX, this.regEIP - nDelta - 1); + var b = this.bus.checkPortInputNotify(this.regEDX, this.regLIP - nDelta - 1); if (BACKTRACK) this.backTrack.btiMemLo = this.backTrack.btiIO; this.setSOByte(this.segES, this.regEDI & this.addrMask, b); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -1224,6 +1224,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -1257,13 +1258,13 @@ var X86OpXX = { if (this.opPrefixes & X86.OPFLAG.REPEAT) nCycles = 4; } if (nReps--) { - var addrFrom = this.regEIP - nDelta - 1; + var addrFrom = this.regLIP - nDelta - 1; var w = this.bus.checkPortInputNotify(this.regEDX, addrFrom); if (BACKTRACK) this.backTrack.btiMemLo = this.backTrack.btiIO; w |= (this.bus.checkPortInputNotify(this.regEDX, addrFrom) << 8); if (BACKTRACK) this.backTrack.btiMemHi = this.backTrack.btiIO; this.setSOWord(this.segES, this.regEDI & this.addrMask, w); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -1273,6 +1274,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -1305,10 +1307,10 @@ var X86OpXX = { } if (nReps--) { var b = this.getSOByte(this.segDS, this.regESI & this.addrMask); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; - this.bus.checkPortOutputNotify(this.regEDX, b, this.regEIP - nDelta - 1); + this.bus.checkPortOutputNotify(this.regEDX, b, this.regLIP - nDelta - 1); if (nReps) { /* * We have to back up to the prefix byte(s), not just to the string instruction, @@ -1316,6 +1318,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -1348,10 +1351,10 @@ var X86OpXX = { } if (nReps--) { var w = this.getSOWord(this.segDS, this.regESI & this.addrMask); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; - var addrFrom = this.regEIP - nDelta - 1; + var addrFrom = this.regLIP - nDelta - 1; this.bus.checkPortOutputNotify(this.regEDX, w & 0xff, addrFrom); this.bus.checkPortOutputNotify(this.regEDX, w >> 8, addrFrom); if (nReps) { @@ -1361,6 +1364,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -1373,7 +1377,7 @@ var X86OpXX = { opJO: function() { var disp = this.getIPDisp(); if (this.getOF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1387,7 +1391,7 @@ var X86OpXX = { opJNO: function() { var disp = this.getIPDisp(); if (!this.getOF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1401,7 +1405,7 @@ var X86OpXX = { opJC: function() { var disp = this.getIPDisp(); if (this.getCF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1415,7 +1419,7 @@ var X86OpXX = { opJNC: function() { var disp = this.getIPDisp(); if (!this.getCF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1429,7 +1433,7 @@ var X86OpXX = { opJZ: function() { var disp = this.getIPDisp(); if (this.getZF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1443,7 +1447,7 @@ var X86OpXX = { opJNZ: function() { var disp = this.getIPDisp(); if (!this.getZF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1457,7 +1461,7 @@ var X86OpXX = { opJBE: function() { var disp = this.getIPDisp(); if (this.getCF() || this.getZF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1471,7 +1475,7 @@ var X86OpXX = { opJNBE: function() { var disp = this.getIPDisp(); if (!this.getCF() && !this.getZF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1485,7 +1489,7 @@ var X86OpXX = { opJS: function() { var disp = this.getIPDisp(); if (this.getSF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1499,7 +1503,7 @@ var X86OpXX = { opJNS: function() { var disp = this.getIPDisp(); if (!this.getSF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1513,7 +1517,7 @@ var X86OpXX = { opJP: function() { var disp = this.getIPDisp(); if (this.getPF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1527,7 +1531,7 @@ var X86OpXX = { opJNP: function() { var disp = this.getIPDisp(); if (!this.getPF()) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1541,7 +1545,7 @@ var X86OpXX = { opJL: function() { var disp = this.getIPDisp(); if (!this.getSF() != !this.getOF()) { // jshint ignore:line - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1555,7 +1559,7 @@ var X86OpXX = { opJNL: function() { var disp = this.getIPDisp(); if (!this.getSF() == !this.getOF()) { // jshint ignore:line - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1569,7 +1573,7 @@ var X86OpXX = { opJLE: function() { var disp = this.getIPDisp(); if (this.getZF() || !this.getSF() != !this.getOF()) { // jshint ignore:line - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1583,7 +1587,7 @@ var X86OpXX = { opJNLE: function() { var disp = this.getIPDisp(); if (!this.getZF() && !this.getSF() == !this.getOF()) { // jshint ignore:line - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmpC; return; } @@ -1881,8 +1885,8 @@ var X86OpXX = { */ opXCHGCX: function() { var temp = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.regECX & this.opMask); - this.regECX = (this.regECX & this.opMaskClear) | (temp & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | (this.regECX & this.opMask); + this.regECX = (this.regECX & ~this.opMask) | (temp & this.opMask); this.nStepCycles -= 3; // this form of XCHG takes 3 cycles on all CPUs }, /** @@ -1892,8 +1896,8 @@ var X86OpXX = { */ opXCHGDX: function() { var temp = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.regEDX & this.opMask); - this.regEDX = (this.regEDX & this.opMaskClear) | (temp & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | (this.regEDX & this.opMask); + this.regEDX = (this.regEDX & ~this.opMask) | (temp & this.opMask); this.nStepCycles -= 3; // this form of XCHG takes 3 cycles on all CPUs }, /** @@ -1903,8 +1907,8 @@ var X86OpXX = { */ opXCHGBX: function() { var temp = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.regEBX & this.opMask); - this.regEBX = (this.regEBX & this.opMaskClear) | (temp & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | (this.regEBX & this.opMask); + this.regEBX = (this.regEBX & ~this.opMask) | (temp & this.opMask); this.nStepCycles -= 3; // this form of XCHG takes 3 cycles on all CPUs }, /** @@ -1914,8 +1918,8 @@ var X86OpXX = { */ opXCHGSP: function() { var temp = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.regESP & this.opMask); - this.regESP = (this.regESP & this.opMaskClear) | (temp & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | (this.regESP & this.opMask); + this.regESP = (this.regESP & ~this.opMask) | (temp & this.opMask); this.nStepCycles -= 3; // this form of XCHG takes 3 cycles on all CPUs }, /** @@ -1925,8 +1929,8 @@ var X86OpXX = { */ opXCHGBP: function() { var temp = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.regEBP & this.opMask); - this.regEBP = (this.regEBP & this.opMaskClear) | (temp & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | (this.regEBP & this.opMask); + this.regEBP = (this.regEBP & ~this.opMask) | (temp & this.opMask); this.nStepCycles -= 3; // this form of XCHG takes 3 cycles on all CPUs }, /** @@ -1936,8 +1940,8 @@ var X86OpXX = { */ opXCHGSI: function() { var temp = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.regESI & this.opMask); - this.regESI = (this.regESI & this.opMaskClear) | (temp & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | (this.regESI & this.opMask); + this.regESI = (this.regESI & ~this.opMask) | (temp & this.opMask); this.nStepCycles -= 3; // this form of XCHG takes 3 cycles on all CPUs }, /** @@ -1947,8 +1951,8 @@ var X86OpXX = { */ opXCHGDI: function() { var temp = this.regEAX; - this.regEAX = (this.regEAX & this.opMaskClear) | (this.regEDI & this.opMask); - this.regEDI = (this.regEDI & this.opMaskClear) | (temp & this.opMask); + this.regEAX = (this.regEAX & ~this.opMask) | (this.regEDI & this.opMask); + this.regEDI = (this.regEDI & ~this.opMask) | (temp & this.opMask); this.nStepCycles -= 3; // this form of XCHG takes 3 cycles on all CPUs }, /** @@ -1958,7 +1962,7 @@ var X86OpXX = { */ opCBW: function() { if (this.opSize == 2) { - this.regEAX = (this.regEAX & this.opMaskClear) | (((this.regEAX << 24) >> 24) & 0xffff); + this.regEAX = (this.regEAX & ~this.opMask) | (((this.regEAX << 24) >> 24) & 0xffff); } else { this.regEAX = ((this.regEAX << 16) >> 16); } @@ -1971,7 +1975,7 @@ var X86OpXX = { */ opCWD: function() { if (this.opSize == 2) { - this.regEDX = (this.regEDX & this.opMaskClear) | ((this.regEAX & 0x8000)? 0xffff : 0); + this.regEDX = (this.regEDX & ~this.opMask) | ((this.regEAX & 0x8000)? 0xffff : 0); } else { this.regEDX = (this.regEAX & 0x80000000)? 0xffffffff : 0; } @@ -2064,7 +2068,7 @@ var X86OpXX = { * op=0xA1 (mov AX,mem) */ opMOVAXDst: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | this.getEAWord(this.segData, this.getIPWord()); + this.regEAX = (this.regEAX & ~this.opMask) | this.getEAWord(this.segData, this.getIPWord()); this.nStepCycles -= this.CYCLES.nOpCyclesMovAM; }, /** @@ -2109,8 +2113,8 @@ var X86OpXX = { if (nReps--) { var nInc = ((this.regPS & X86.PS.DF)? -1 : 1); this.setSOByte(this.segES, this.regEDI & this.addrMask, this.getEAByte(this.segData, this.regESI)); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + nInc) & this.addrMask); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + nInc) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -2124,6 +2128,7 @@ var X86OpXX = { * string instructions with multiple prefixes. */ this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -2146,8 +2151,8 @@ var X86OpXX = { if (nReps--) { var nInc = ((this.regPS & X86.PS.DF)? -2 : 2); this.setSOWord(this.segES, this.regEDI & this.addrMask, this.getEAWord(this.segData, this.regESI)); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + nInc) & this.addrMask); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + nInc) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -2161,6 +2166,7 @@ var X86OpXX = { * string instructions with multiple prefixes. */ this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -2185,8 +2191,8 @@ var X86OpXX = { var bDst = this.getEAByte(this.segData, this.regESI & this.addrMask); var bSrc = this.modEAByte(this.segES, this.regEDI & this.addrMask); X86Grps.opGrpCMPb.call(this, bDst, bSrc); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + nInc) & this.addrMask); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + nInc) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask); /* * NOTE: As long as we're calling opGrpCMPb(), all our cycle times must be reduced by nOpCyclesArithRM */ @@ -2208,6 +2214,7 @@ var X86OpXX = { * string instructions with multiple prefixes. */ this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; @@ -2233,8 +2240,8 @@ var X86OpXX = { var wDst = this.getEAWord(this.segData, this.regESI & this.addrMask); var wSrc = this.modEAWord(this.segES, this.regEDI & this.addrMask); X86Grps.opGrpCMPw.call(this, wDst, wSrc); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + nInc) & this.addrMask); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + nInc) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + nInc) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + nInc) & this.addrMask); /* * NOTE: As long as we're calling opGrpCMPw(), all our cycle times must be reduced by nOpCyclesArithRM */ @@ -2256,6 +2263,7 @@ var X86OpXX = { * string instructions with multiple prefixes. */ this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; @@ -2305,7 +2313,7 @@ var X86OpXX = { * NOTE: We rely on setSOByte() to truncate regEAX to 8 bits; if setSOByte() changes, mask AX below. */ this.setSOByte(this.segES, this.regEDI & this.addrMask, this.regEAX); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -2315,7 +2323,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides - this.assert(this.regEIP == this.opEA); + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -2345,7 +2353,7 @@ var X86OpXX = { * if you think the cycle times here are too high. */ this.setSOWord(this.segES, this.regEDI & this.addrMask, this.regEAX); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -2355,6 +2363,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -2376,7 +2385,7 @@ var X86OpXX = { } if (nReps--) { this.regEAX = (this.regEAX & ~0xff) | this.getEAByte(this.segData, this.regESI & this.addrMask); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -2390,6 +2399,7 @@ var X86OpXX = { * string instructions with multiple prefixes. */ this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -2411,7 +2421,7 @@ var X86OpXX = { } if (nReps--) { this.regEAX = this.getEAWord(this.segData, this.regESI & this.addrMask); - this.regESI = (this.regESI & this.addrMaskClear) | ((this.regESI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); + this.regESI = (this.regESI & ~this.addrMask) | ((this.regESI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); this.nStepCycles -= nCycles; this.regECX -= nDelta; if (nReps) { @@ -2425,6 +2435,7 @@ var X86OpXX = { * string instructions with multiple prefixes. */ this.advanceIP(((this.opPrefixes & X86.OPFLAG.SEG)? -3 : -2)); + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } } @@ -2446,7 +2457,7 @@ var X86OpXX = { } if (nReps--) { X86Grps.opGrpCMPb.call(this, this.regEAX & 0xff, this.modEAByte(this.segES, this.regEDI & this.addrMask)); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -1 : 1)) & this.addrMask); /* * NOTE: As long as we're calling opGrpCMPb(), all our cycle times must be reduced by nOpCyclesArithRM */ @@ -2464,6 +2475,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } if (EAFUNCS) this.setEAByte = this.setEAByteEnabled; @@ -2486,7 +2498,7 @@ var X86OpXX = { } if (nReps--) { X86Grps.opGrpCMPw.call(this, this.regEAX, this.modEAWord(this.segES, this.regEDI & this.addrMask)); - this.regEDI = (this.regEDI & this.addrMaskClear) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); + this.regEDI = (this.regEDI & ~this.addrMask) | ((this.regEDI + ((this.regPS & X86.PS.DF)? -2 : 2)) & this.addrMask); /* * NOTE: As long as we're calling opGrpCMPb(), all our cycle times must be reduced by nOpCyclesArithRM */ @@ -2504,6 +2516,7 @@ var X86OpXX = { * the interrupt handler will return us to an invalid state. */ this.advanceIP(-2); // this instruction does not support segment overrides + this.assert(this.regLIP == this.opLIP); this.opFlags |= X86.OPFLAG.REPEAT; } if (EAFUNCS) this.setEAWord = this.setEAWordEnabled; @@ -2587,7 +2600,7 @@ var X86OpXX = { * op=0xB8 (mov AX,imm16) */ opMOVAXw: function() { - this.regEAX = (this.regEAX & this.opMaskClear) | this.getIPWord(); + this.regEAX = (this.regEAX & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2596,7 +2609,7 @@ var X86OpXX = { * op=0xB9 (mov CX,imm16) */ opMOVCXw: function() { - this.regECX = (this.regECX & this.opMaskClear) | this.getIPWord(); + this.regECX = (this.regECX & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2605,7 +2618,7 @@ var X86OpXX = { * op=0xBA (mov DX,imm16) */ opMOVDXw: function() { - this.regEDX = (this.regEDX & this.opMaskClear) | this.getIPWord(); + this.regEDX = (this.regEDX & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2614,7 +2627,7 @@ var X86OpXX = { * op=0xBB (mov BX,imm16) */ opMOVBXw: function() { - this.regEBX = (this.regEBX & this.opMaskClear) | this.getIPWord(); + this.regEBX = (this.regEBX & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2623,7 +2636,7 @@ var X86OpXX = { * op=0xBC (mov SP,imm16) */ opMOVSPw: function() { - this.regESP = (this.regESP & this.opMaskClear) | this.getIPWord(); + this.regESP = (this.regESP & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2632,7 +2645,7 @@ var X86OpXX = { * op=0xBD (mov BP,imm16) */ opMOVBPw: function() { - this.regEBP = (this.regEBP & this.opMaskClear) | this.getIPWord(); + this.regEBP = (this.regEBP & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2641,7 +2654,7 @@ var X86OpXX = { * op=0xBE (mov SI,imm16) */ opMOVSIw: function() { - this.regESI = (this.regESI & this.opMaskClear) | this.getIPWord(); + this.regESI = (this.regESI & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2650,7 +2663,7 @@ var X86OpXX = { * op=0xBF (mov DI,imm16) */ opMOVDIw: function() { - this.regEDI = (this.regEDI & this.opMaskClear) | this.getIPWord(); + this.regEDI = (this.regEDI & ~this.opMask) | this.getIPWord(); this.nStepCycles -= this.CYCLES.nOpCyclesLAHF; }, /** @@ -2677,7 +2690,7 @@ var X86OpXX = { opRETn: function() { var n = this.getIPWord(); this.setIP(this.popWord()); - this.regESP = (this.regESP & this.addrMaskClear) | ((this.regESP + (n << (this.opSize >> 2))) & this.addrMask); + this.regESP = (this.regESP & ~this.addrMask) | ((this.regESP + (n << (this.opSize >> 2))) & this.addrMask); this.nStepCycles -= this.CYCLES.nOpCyclesRetn; }, /** @@ -2773,13 +2786,13 @@ var X86OpXX = { if (bLevel > 0) { this.nStepCycles -= (bLevel << 2) + (bLevel > 1? 1 : 0); while (--bLevel) { - this.regEBP = (this.regEBP & this.segSS.addrMaskClear) | ((this.regEBP - this.opSize) & this.segSS.addrMask); + this.regEBP = (this.regEBP & ~this.segSS.addrMask) | ((this.regEBP - this.opSize) & this.segSS.addrMask); this.pushWord(this.getSOWord(this.segSS, this.regEBP & this.segSS.addrMask)); } this.pushWord(wFrame); } - this.regEBP = (this.regEBP & this.segSS.addrMaskClear) | wFrame; - this.regESP = (this.regESP & this.segSS.addrMaskClear) | ((this.regESP - wLocal) & this.segSS.addrMask); + this.regEBP = (this.regEBP & ~this.segSS.addrMask) | wFrame; + this.regESP = (this.regESP & ~this.segSS.addrMask) | ((this.regESP - wLocal) & this.segSS.addrMask); }, /** * @this {X86CPU} @@ -2789,8 +2802,8 @@ var X86OpXX = { * op=0xC9 (leave) (80186/80188 and up) */ opLEAVE: function() { - this.regESP = (this.regESP & this.segSS.addrMaskClear) | (this.regEBP & this.segSS.addrMask); - this.regEBP = (this.regEBP & this.opMaskClear) | (this.popWord() & this.opMask); + this.regESP = (this.regESP & ~this.segSS.addrMask) | (this.regEBP & this.segSS.addrMask); + this.regEBP = (this.regEBP & ~this.opMask) | (this.popWord() & this.opMask); /* * NOTE: 5 is the cycle time for the 80286; the 80186/80188 has a cycle time of 8. However, accurate cycle * counts for the 80186/80188 is low priority. TODO: Fix this someday. @@ -2976,7 +2989,7 @@ var X86OpXX = { opLOOPNZ: function() { var disp = this.getIPDisp(); if ((this.regECX = (this.regECX - 1) & 0xffff) && (this.resultValue & (this.resultSize - 1))) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesLoopNZ; return; } @@ -2990,7 +3003,7 @@ var X86OpXX = { opLOOPZ: function() { var disp = this.getIPDisp(); if ((this.regECX = (this.regECX - 1) & 0xffff) && !(this.resultValue & (this.resultSize - 1))) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesLoopZ; return; } @@ -3004,7 +3017,7 @@ var X86OpXX = { opLOOP: function() { var disp = this.getIPDisp(); if ((this.regECX = (this.regECX - 1) & 0xffff)) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesLoop; return; } @@ -3018,7 +3031,7 @@ var X86OpXX = { opJCXZ: function() { var disp = this.getIPDisp(); if (!this.regECX) { - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesLoopZ; return; } @@ -3031,7 +3044,7 @@ var X86OpXX = { */ opINb: function() { var port = this.getIPByte(); - this.regEAX = (this.regEAX & ~0xff) | this.bus.checkPortInputNotify(port, this.regEIP - 2); + this.regEAX = (this.regEAX & ~0xff) | this.bus.checkPortInputNotify(port, this.regLIP - 2); if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO; this.nStepCycles -= this.CYCLES.nOpCyclesInP; }, @@ -3042,9 +3055,9 @@ var X86OpXX = { */ opINw: function() { var port = this.getIPByte(); - this.regEAX = this.bus.checkPortInputNotify(port, this.regEIP - 2); + this.regEAX = this.bus.checkPortInputNotify(port, this.regLIP - 2); if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO; - this.regEAX |= (this.bus.checkPortInputNotify((port + 1) & 0xffff, this.regEIP - 2) << 8); + this.regEAX |= (this.bus.checkPortInputNotify((port + 1) & 0xffff, this.regLIP - 2) << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiIO; this.nStepCycles -= this.CYCLES.nOpCyclesInP; }, @@ -3055,7 +3068,7 @@ var X86OpXX = { */ opOUTb: function() { var port = this.getIPByte(); - this.bus.checkPortOutputNotify(port, this.regEAX & 0xff, this.regEIP - 2); + this.bus.checkPortOutputNotify(port, this.regEAX & 0xff, this.regLIP - 2); this.nStepCycles -= this.CYCLES.nOpCyclesOutP; }, /** @@ -3065,8 +3078,8 @@ var X86OpXX = { */ opOUTw: function() { var port = this.getIPByte(); - this.bus.checkPortOutputNotify(port, this.regEAX & 0xff, this.regEIP - 2); - this.bus.checkPortOutputNotify((port + 1) & 0xffff, this.regEAX >> 8, this.regEIP - 2); + this.bus.checkPortOutputNotify(port, this.regEAX & 0xff, this.regLIP - 2); + this.bus.checkPortOutputNotify((port + 1) & 0xffff, this.regEAX >> 8, this.regLIP - 2); this.nStepCycles -= this.CYCLES.nOpCyclesOutP; }, /** @@ -3076,8 +3089,8 @@ var X86OpXX = { */ opCALL: function() { var disp = this.getIPWord(); - this.pushWord(this.regIP); - this.setIP(this.regIP + disp); + this.pushWord(this.regEIP); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesCall; }, /** @@ -3087,7 +3100,7 @@ var X86OpXX = { */ opJMP: function() { var disp = this.getIPWord(); - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmp; }, /** @@ -3106,7 +3119,7 @@ var X86OpXX = { */ opJMPs: function() { var disp = this.getIPDisp(); - this.setIP(this.regIP + disp); + this.setIP(this.regEIP + disp); this.nStepCycles -= this.CYCLES.nOpCyclesJmp; }, /** @@ -3115,7 +3128,7 @@ var X86OpXX = { * op=0xEC (in AL,dx) */ opINDXb: function() { - this.regEAX = (this.regEAX & ~0xff) | this.bus.checkPortInputNotify(this.regEDX, this.regEIP - 1); + this.regEAX = (this.regEAX & ~0xff) | this.bus.checkPortInputNotify(this.regEDX, this.regLIP - 1); if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO; this.nStepCycles -= this.CYCLES.nOpCyclesInDX; }, @@ -3125,9 +3138,9 @@ var X86OpXX = { * op=0xED (in AX,dx) */ opINDXw: function() { - this.regEAX = this.bus.checkPortInputNotify(this.regEDX, this.regEIP - 1); + this.regEAX = this.bus.checkPortInputNotify(this.regEDX, this.regLIP - 1); if (BACKTRACK) this.backTrack.btiAL = this.backTrack.btiIO; - this.regEAX |= (this.bus.checkPortInputNotify((this.regEDX + 1) & 0xffff, this.regEIP - 1) << 8); + this.regEAX |= (this.bus.checkPortInputNotify((this.regEDX + 1) & 0xffff, this.regLIP - 1) << 8); if (BACKTRACK) this.backTrack.btiAH = this.backTrack.btiIO; this.nStepCycles -= this.CYCLES.nOpCyclesInDX; }, @@ -3137,7 +3150,7 @@ var X86OpXX = { * op=0xEE (out dx,AL) */ opOUTDXb: function() { - this.bus.checkPortOutputNotify(this.regEDX, this.regEAX & 0xff, this.regEIP - 1); + this.bus.checkPortOutputNotify(this.regEDX, this.regEAX & 0xff, this.regLIP - 1); this.nStepCycles -= this.CYCLES.nOpCyclesOutDX; }, /** @@ -3146,8 +3159,8 @@ var X86OpXX = { * op=0xEF (out dx,AX) */ opOUTDXw: function() { - this.bus.checkPortOutputNotify(this.regEDX, this.regEAX & 0xff, this.regEIP - 1); - this.bus.checkPortOutputNotify((this.regEDX + 1) & 0xffff, this.regEAX >> 8, this.regEIP - 1); + this.bus.checkPortOutputNotify(this.regEDX, this.regEAX & 0xff, this.regLIP - 1); + this.bus.checkPortOutputNotify((this.regEDX + 1) & 0xffff, this.regEAX >> 8, this.regLIP - 1); this.nStepCycles -= this.CYCLES.nOpCyclesOutDX; }, /** diff --git a/modules/pcjs/lib/x86seg.js b/modules/pcjs/lib/x86seg.js index 11ac64216..c74fe6683 100644 --- a/modules/pcjs/lib/x86seg.js +++ b/modules/pcjs/lib/x86seg.js @@ -58,6 +58,7 @@ function X86Seg(cpu, id, sName, fProt) this.base = 0; this.limit = 0xffff; this.acc = 0; + this.ext = 0; this.addrDesc = X86.ADDR_INVALID; this.cpl = 0; this.dpl = 0; @@ -117,7 +118,8 @@ X86Seg.ID = { X86Seg.loadReal = function loadReal(sel, fSuppress) { this.sel = sel; - this.ext = 0; + this.opSize = this.addrSize = 2; + this.opMask = this.addrMask = 0xffff; return this.base = sel << 4; }; @@ -204,11 +206,10 @@ X86Seg.loadRealIDT = function loadRealIDT(nIDT) * * TODO: Verify that 80286 real-mode actually enforces the above. See http://localhost:8088/pubs/pc/reference/intel/80286/progref/#page-260 */ - var offIDT = cpu.addrIDT + (nIDT << 2); - cpu.regIP = cpu.getWord(offIDT); - this.sel = cpu.getWord(offIDT + 2); + var addrIDT = cpu.addrIDT + (nIDT << 2); + cpu.regEIP = cpu.getWord(addrIDT); cpu.regPS &= ~(X86.PS.TF | X86.PS.IF); - return this.base = this.sel << 4; + return this.load(cpu.getWord(addrIDT + 2)); }; /** @@ -422,7 +423,7 @@ X86Seg.switchTSS = function switchTSS(selNew, fNest) cpu.setWord(cpu.segTSS.addrDesc + X86.DESC.ACC.OFFSET, cpu.segTSS.acc |= X86.DESC.ACC.TYPE.TSS_BUSY); cpu.segTSS.type = X86.DESC.ACC.TYPE.TSS_BUSY; } - cpu.setWord(addrOld + X86.TSS.TASK_IP, cpu.regIP); + cpu.setWord(addrOld + X86.TSS.TASK_IP, cpu.regEIP); cpu.setWord(addrOld + X86.TSS.TASK_PS, cpu.getPS()); cpu.setWord(addrOld + X86.TSS.TASK_AX, cpu.regEAX); cpu.setWord(addrOld + X86.TSS.TASK_CX, cpu.regECX); @@ -640,7 +641,7 @@ X86Seg.prototype.loadDesc8 = function(addrDesc, sel, fSuppress) base = X86.ADDR_INVALID; break; } - cpu.regIP = limit; + cpu.regEIP = limit; if (this.cpl < cplPrev) { if (fCall !== true) { cpu.assert(false); @@ -846,6 +847,13 @@ X86Seg.prototype.updateMode = function(fProt) } this.cpl = this.sel & X86.SEL.RPL; this.dpl = (this.acc & X86.DESC.ACC.DPL.MASK) >> X86.DESC.ACC.DPL.SHIFT; + if (this.cpu.model < X86.MODEL_80386 || !(this.ext & X86.DESC.EXT.BIG)) { + this.opSize = 2; + this.opMask = 0xffff; + } else { + this.opSize = 4; + this.opMask = 0xffffffff; + } } else { this.load = X86Seg.loadReal; this.loadIDT = X86Seg.loadRealIDT; @@ -854,7 +862,11 @@ X86Seg.prototype.updateMode = function(fProt) this.limit = 0xffff; this.cpl = this.dpl = 0; this.addrDesc = X86.ADDR_INVALID; + this.opSize = 2; + this.opMask = 0xffff; } + this.addrSize = this.opSize; + this.addrMask = this.opMask; return fProt; };