Пример #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);
 }