コード例 #1
0
 public void LiteralOpTest()
 {
     OpAndValue [] literalOps = new OpAndValue[] {
         new OpAndValue(new Op(Operands.LiteralInfoMask, 0), 0U),
         new OpAndValue(new Op(Operands.LiteralInfoMask, 0xFF), 0xFFU),
         new OpAndValue(new Op(Operands.LiteralInfoMask, 0xFF, 0xAB), 0xFFABU),
         new OpAndValue(new Op(Operands.LiteralInfoMask, 0xFF, 0xAB, 0xFF, 0x12, 0x34, 0x56, 0x78, 0x9A), 0xFFABFF123456789AU),
     };
     TestOpAndValue(literalOps);
 }
コード例 #2
0
 public void AddressOpTest()
 {
     memory.Reset();
     memory.DebugSetFramePointer(999999);
     memory.DebugSetMemory(35, r1);
     memory.DebugSetMemory(45, r3);
     memory.DebugSetMemory(55, r2);
     memory.DebugSetMemory(65, r4);
     OpAndValue[] frameOffsetOps = new OpAndValue[] {
         new OpAndValue(new Op(Operands.AddressInfoMask, 35), r1),
         new OpAndValue(new Op(Operands.AddressInfoMask, 0, 0, 0, 45), r3),
         new OpAndValue(new Op(Operands.AddressInfoMask, 0, 55), r2),
         new OpAndValue(new Op(Operands.AddressInfoMask, 0, 0, 0, 0, 0, 65), r4),
     };
     TestOpAndValue(frameOffsetOps);
     TestMemoryOpAndValue(frameOffsetOps);
 }
コード例 #3
0
        public void FrameOffsetOpTest()
        {
            memory.Reset();
            memory.DebugSetFramePointer(30);
            memory.DebugSetMemory(30, r2);
            memory.DebugSetMemory(40, r4);
            memory.DebugSetMemory(50, r1);
            memory.DebugSetMemory(60, r3);
            OpAndValue[] frameOffsetOps = new OpAndValue[] {
                new OpAndValue(new Op(0), r2),
                new OpAndValue(new Op(Operands.FrameOffsetInfoMask, 0, 0, 0, 10), r4),
                new OpAndValue(new Op(Operands.FrameOffsetInfoMask, 0, 20), r1),
                new OpAndValue(new Op(Operands.FrameOffsetInfoMask, 0, 0, 0, 0, 0, 30), r3),
            };
            TestOpAndValue(frameOffsetOps);

            memory.DebugSetMemory(30 + Operands.WritableOpTypeFrameOffsetShortMax, r3);
            frameOffsetOps[0] = new OpAndValue(new MemoryOp(Operands.WritableOpTypeFrameOffsetShortMax), r3);

            TestMemoryOpAndValue(frameOffsetOps);
        }
コード例 #4
0
 public void AddressDereferenceOpTest()
 {
     memory.Reset();
     memory.DebugSetFramePointer(999999);
     memory.DebugSetMemory(0x120, 33);
     memory.DebugSetMemory(0x26, 82);
     memory.DebugSetMemory(0x3FF, 46);
     memory.DebugSetMemory(0x369, 999);
     memory.DebugSetMemory(33, r1);
     memory.DebugSetMemory(82, r3);
     memory.DebugSetMemory(46, r2);
     memory.DebugSetMemory(999, r4);
     OpAndValue[] frameOffsetOps = new OpAndValue[] {
         new OpAndValue(new Op(Operands.AddressDereferenceInfoMask, 0x01, 0x20), r1),
         new OpAndValue(new Op(Operands.AddressDereferenceInfoMask, 0, 0, 0, 0x26), r3),
         new OpAndValue(new Op(Operands.AddressDereferenceInfoMask, 0, 0, 0x03, 0xFF), r2),
         new OpAndValue(new Op(Operands.AddressDereferenceInfoMask, 0, 0, 0, 0, 0x03, 0x69), r4),
     };
     TestOpAndValue(frameOffsetOps);
     TestMemoryOpAndValue(frameOffsetOps);
 }
コード例 #5
0
 public void FrameOffsetDereferenceOpTest()
 {
     //
     // This test is awesome because it tests ALOT of things at once!
     //
     memory.Reset();
     memory.DebugSetFramePointer(10);
     memory.DebugSetMemory(11, 4);
     memory.DebugSetMemory(13, 5);
     memory.DebugSetMemory(21, 6);
     memory.DebugSetMemory(33, 7);
     memory.DebugSetMemory(4, r3);
     memory.DebugSetMemory(5, r1);
     memory.DebugSetMemory(6, r2);
     memory.DebugSetMemory(7, r4);
     OpAndValue[] frameOffsetOps = new OpAndValue[] {
         new OpAndValue(new Op(Operands.FrameOffsetDereferenceInfoMask, 1), r3),
         new OpAndValue(new Op(Operands.FrameOffsetDereferenceInfoMask, 0, 0, 0, 3), r1),
         new OpAndValue(new Op(Operands.FrameOffsetDereferenceInfoMask, 0, 11), r2),
         new OpAndValue(new Op(Operands.FrameOffsetDereferenceInfoMask, 0, 0, 0, 0, 0, 23), r4),
     };
     TestOpAndValue(frameOffsetOps);
     TestMemoryOpAndValue(frameOffsetOps);
 }