diff --git a/source/Indy.IL2CPU.Tests/AssemblerTests/X86/AutoGeneratedTests.cs b/source/Indy.IL2CPU.Tests/AssemblerTests/X86/AutoGeneratedTests.cs index 026460999..a45c9cb91 100644 --- a/source/Indy.IL2CPU.Tests/AssemblerTests/X86/AutoGeneratedTests.cs +++ b/source/Indy.IL2CPU.Tests/AssemblerTests/X86/AutoGeneratedTests.cs @@ -13512,6 +13512,18 @@ namespace Indy.IL2CPU.Tests.AssemblerTests.X86 { new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.EDI, DestinationIsIndirect=true, DestinationDisplacement = 203000}; Verify(); } + [Test] + public void TestRegisterDestination() { + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.EAX}; + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.EBX}; + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.ECX}; + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.EDX}; + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.ESP}; + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.EBP}; + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.ESI}; + new global::Indy.IL2CPU.Assembler.X86.Call{DestinationReg = Registers.EDI}; + Verify(); + } } [TestFixture] public partial class OutTests: BaseTest { @@ -18703,429 +18715,1155 @@ namespace Indy.IL2CPU.Tests.AssemblerTests.X86 { [TestFixture] public partial class CmpXchgTests: BaseTest { [Test] - public void TestImmediateSourceMemoryDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + public void TestRegisterSourceMemoryDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationValue = 65, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationValue = 650, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationValue = 650000, DestinationIsIndirect = true, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEAXDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEAXDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEBXDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEBXDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterECXDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterECXDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEDXDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEDXDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterESPDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterESPDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEBPDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEBPDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterESIDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterESIDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEDIDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 30, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEDIDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 8}; Verify(); } [Test] - public void TestMemorySourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 65, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 650, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 650000, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceRegisterDestinationSize8() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AH, DestinationReg = Registers.DL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AL, DestinationReg = Registers.DL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BH, DestinationReg = Registers.DL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BL, DestinationReg = Registers.DL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CH, DestinationReg = Registers.DL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CL, DestinationReg = Registers.DL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DH, DestinationReg = Registers.DL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.AH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.AL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.BH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.BL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.CH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.CL, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.DH, Size = 8}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DL, DestinationReg = Registers.DL, Size = 8}; Verify(); } [Test] - public void TestMemoryAtRegisterEAXSourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; Verify(); } [Test] - public void TestMemoryAtRegisterEBXSourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEAXDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestMemoryAtRegisterECXSourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEBXDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestMemoryAtRegisterEDXSourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterECXDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestMemoryAtRegisterESPSourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEDXDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestMemoryAtRegisterEBPSourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterESPDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestMemoryAtRegisterESISourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterEBPDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestMemoryAtRegisterEDISourceImmediateDestinationSize8() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 30, Size = 8}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 30, Size = 8}; + public void TestRegisterSourceMemoryAtRegisterESIDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestImmediateSourceMemoryDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationValue = 65, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationValue = 650, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationValue = 650000, DestinationIsIndirect = true, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterEDIDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEAXDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceRegisterDestinationSize16() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.AX, DestinationReg = Registers.BP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BX, DestinationReg = Registers.BP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.CX, DestinationReg = Registers.BP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DX, DestinationReg = Registers.BP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SI, DestinationReg = Registers.BP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.DI, DestinationReg = Registers.BP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.SP, DestinationReg = Registers.BP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.AX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.BX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.CX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.DX, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.SI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.DI, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.SP, Size = 16}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.BP, DestinationReg = Registers.BP, Size = 16}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEBXDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceMemoryDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterECXDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterEAXDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEDXDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterEBXDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterESPDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterECXDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEBPDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterEDXDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterESIDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterESPDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestImmediateSourceMemoryAtRegisterEDIDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterEBPDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestMemorySourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 65, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 650, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 650000, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterESIDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestMemoryAtRegisterEAXSourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; + public void TestRegisterSourceMemoryAtRegisterEDIDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; Verify(); } [Test] - public void TestMemoryAtRegisterEBXSourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterECXSourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEDXSourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterESPSourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEBPSourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterESISourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEDISourceImmediateDestinationSize16() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300, Size = 16}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300, Size = 16}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationValue = 65, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationValue = 650, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationValue = 650000, DestinationIsIndirect = true, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterEAXDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EAX, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EAX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterEBXDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBX, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterECXDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ECX, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ECX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterEDXDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDX, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDX, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterESPDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESP, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterEBPDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBP, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EBP, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterESIDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESI, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.ESI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestImmediateSourceMemoryAtRegisterEDIDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDI, DestinationIsIndirect = true, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 2030, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 300000, DestinationReg = Registers.EDI, DestinationIsIndirect = true, DestinationDisplacement = 203000, Size = 32}; - Verify(); - } - [Test] - public void TestMemorySourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 65, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 650, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceValue = 650000, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEAXSourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEBXSourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterECXSourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEDXSourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterESPSourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEBPSourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterESISourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; - Verify(); - } - [Test] - public void TestMemoryAtRegisterEDISourceImmediateDestinationSize32() { - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 203, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 2030, DestinationValue = 300000, Size = 32}; - new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, SourceIsIndirect = true, SourceDisplacement = 203000, DestinationValue = 300000, Size = 32}; + public void TestRegisterSourceRegisterDestinationSize32() { + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EAX, DestinationReg = Registers.EDI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBX, DestinationReg = Registers.EDI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ECX, DestinationReg = Registers.EDI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDX, DestinationReg = Registers.EDI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESP, DestinationReg = Registers.EDI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EBP, DestinationReg = Registers.EDI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.ESI, DestinationReg = Registers.EDI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EAX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ECX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDX, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EBP, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.ESI, Size = 32}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg{SourceReg = Registers.EDI, DestinationReg = Registers.EDI, Size = 32}; Verify(); } } diff --git a/source/Indy.IL2CPU.Tests/AssemblerTests/X86/TestCodeGenerator.Exceptions.cs b/source/Indy.IL2CPU.Tests/AssemblerTests/X86/TestCodeGenerator.Exceptions.cs index a4c056c05..a79281b0c 100644 --- a/source/Indy.IL2CPU.Tests/AssemblerTests/X86/TestCodeGenerator.Exceptions.cs +++ b/source/Indy.IL2CPU.Tests/AssemblerTests/X86/TestCodeGenerator.Exceptions.cs @@ -26,6 +26,14 @@ namespace Indy.IL2CPU.Tests.AssemblerTests.X86 { DestInfo = new Constraints {TestImmediate8=false, TestImmediate32=false, TestImmediate16=false }, SourceInfo = new Constraints { } }); + opcodesException.Add(typeof(Call), new ConstraintsContainer{ + DestInfo=new Constraints{ TestImmediate16=false, TestImmediate8=false, TestMem16=false, TestMem8=false, InvalidRegisters=Registers.Get8BitRegisters().Union(Registers.Get16BitRegisters())}, + InvalidSizes=Instruction.InstructionSizes.Byte | Instruction.InstructionSizes.Word + }); + opcodesException.Add(typeof(CmpXchg), new ConstraintsContainer { + DestInfo = new Constraints { TestImmediate32 = false, TestImmediate16 = false, TestImmediate8 = false }, + SourceInfo = new Constraints { TestImmediate32 = false, TestImmediate16 = false, TestImmediate8 = false, TestMem8 = false, TestMem16 = false, TestMem32 = false, TestRegisters = true } + }); opcodesException.Add(typeof(ConditionalJump), new ConstraintsContainer { DestInfo = new Constraints { TestImmediate32 = true, TestImmediate16 = false, TestImmediate8 = false, TestMem8 = false, TestMem16 = false, TestMem32 = false, TestRegisters = false } }); diff --git a/source/Indy.IL2CPU/Assembler/x86/486AndUp/CmpXchg.cs b/source/Indy.IL2CPU/Assembler/x86/486AndUp/CmpXchg.cs index 3d8a1678f..54c72b387 100644 --- a/source/Indy.IL2CPU/Assembler/x86/486AndUp/CmpXchg.cs +++ b/source/Indy.IL2CPU/Assembler/x86/486AndUp/CmpXchg.cs @@ -4,5 +4,24 @@ using System.Linq; namespace Indy.IL2CPU.Assembler.X86 { [OpCode("cmpxchg")] public class CmpXchg: InstructionWithDestinationAndSourceAndSize { + public static void InitializeEncodingData(Instruction.InstructionData aData) { + aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption { + OpCode=new byte[]{0x0F, 0xB0}, + OperandSizeByte=1, + NeedsModRMByte=true, + DestinationMemory=true, + SourceReg=Guid.Empty, + ReverseRegisters=true + }); // register to memory + aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption { + OpCode=new byte[] {0x0F, 0xB0}, + OperandSizeByte=1, + NeedsModRMByte=true, + ReverseRegisters=true, + InitialModRMByteValue = 0xC0, + SourceReg=Guid.Empty, + DestinationReg=Guid.Empty + }); // register1, register2 + } } } \ No newline at end of file diff --git a/source/Indy.IL2CPU/Assembler/x86/Call.cs b/source/Indy.IL2CPU/Assembler/x86/Call.cs index ee241f90f..b30ac6fbd 100644 --- a/source/Indy.IL2CPU/Assembler/x86/Call.cs +++ b/source/Indy.IL2CPU/Assembler/x86/Call.cs @@ -6,6 +6,28 @@ using System.Text; namespace Indy.IL2CPU.Assembler.X86 { [OpCode("call")] public class Call: JumpBase { + public static void InitializeEncodingData(Instruction.InstructionData aData) { + aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption { + OpCode = new byte[] { 0xE8 }, + DestinationImmediate = true, + AllowedSizes = InstructionSizes.DWord + }); // direct value + aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption { + OpCode = new byte[] { 0xFF, 0xD0 }, + DestinationReg = Guid.Empty, + DestinationRegByte=1, + AllowedSizes = InstructionSizes.DWord + }); // register indirect + aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption { + OpCode = new byte[] { 0xFF }, + NeedsModRMByte=true, + InitialModRMByteValue=0x10, + DestinationMemory=true, + ReverseRegisters=true, + AllowedSizes = InstructionSizes.DWord + }); // memory indirect + } + public Call() { mNear = false; } diff --git a/source/Playgrounds/Matthijs/TestApp/Program.cs b/source/Playgrounds/Matthijs/TestApp/Program.cs index faad8ccbd..d03923d0d 100644 --- a/source/Playgrounds/Matthijs/TestApp/Program.cs +++ b/source/Playgrounds/Matthijs/TestApp/Program.cs @@ -12,7 +12,70 @@ namespace TestApp { class Program { class Renderer : Y86 { public void DoRender() { - new global::Indy.IL2CPU.Assembler.X86.And { SourceValue=0, DestinationReg = Registers.EAX}; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AH, DestinationReg = Registers.DL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.AL, DestinationReg = Registers.DL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BH, DestinationReg = Registers.DL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.BL, DestinationReg = Registers.DL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CH, DestinationReg = Registers.DL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.CL, DestinationReg = Registers.DL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DH, DestinationReg = Registers.DL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.AH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.AL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.BH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.BL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.CH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.CL, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.DH, Size = 8 }; + new global::Indy.IL2CPU.Assembler.X86.CmpXchg { SourceReg = Registers.DL, DestinationReg = Registers.DL, Size = 8 }; } } static void Main(string[] args) { @@ -40,7 +103,7 @@ namespace TestApp { xAsm.FlushBinary(xOutput, 0x200000); } -// TestCodeGenerator.Execute(); + //TestCodeGenerator.Execute(); //InvalidOpcodeTester.Initialize(); //InvalidOpcodeTester.ExecuteSingle(typeof(Move), 0);