コード例 #1
0
        public void SysV_LoadTrashedRegisters()
        {
            arch.Stub(a => a.GetRegister((string)null)).IgnoreArguments()
            .Do(new Func <string, RegisterStorage>(r => new RegisterStorage(r, (int)r[1], 0, PrimitiveType.Word32)));
            var env = new OperatingEnvironmentElement
            {
                Architectures =
                {
                    new PlatformArchitectureElement
                    {
                        TrashedRegisters =
                        {
                            "r2", "r3"
                        }
                    }
                }
            };

            Given_EnvironmentConfiguration(env);

            mr.ReplayAll();

            var sysv = new SysVPlatform(sc, arch);
            var regs = sysv.CreateTrashedRegisters();

            Assert.AreEqual(2, regs.Count);
            Assert.AreEqual("r2,r3", string.Join(",", regs.Select(r => r.Name)));
        }
コード例 #2
0
ファイル: SysVPlatformTests.cs プロジェクト: xxtxiaofeng/reko
        public void SysV_LoadTrashedRegisters()
        {
            arch.Setup(a => a.Name).Returns("mmix");
            arch.Setup(a => a.GetRegister(It.IsAny <string>()))
            .Returns((string r) => new RegisterStorage(r, (int)r[1], 0, PrimitiveType.Word32));
            var env = new PlatformDefinition
            {
                Architectures =
                {
                    new PlatformArchitectureDefinition()
                    {
                        Name             = "mmix",
                        TrashedRegisters =
                        {
                            "r2", "r3"
                        }
                    }
                }
            };

            Given_EnvironmentConfiguration(env);

            var sysv = new SysVPlatform(sc, arch.Object);
            var regs = sysv.CreateTrashedRegisters();

            Assert.AreEqual(2, regs.Count);
            Assert.AreEqual("r2,r3", string.Join(",", regs.Select(r => r.Name)));
        }