CSPspEmu.Core.Tests.CpuEmitterTest.VfpuZeroOneMov4Test C# (CSharp) Method

VfpuZeroOneMov4Test() private method

private VfpuZeroOneMov4Test ( ) : void
return void
        public void VfpuZeroOneMov4Test()
        {
            CpuThreadState.Vfpr.ClearAll(float.NaN);

            var Vector0 = "0,0,0,0";
            var Vector1 = "1,1,1,1";
            var Vector2 = "0,1,1,0";
            //CpuThreadState.Vfpr[4, "R320"] = new float[] { 2, 2, 2, 2 };

            ExecuteAssembly(@"
                vzero.q R100
                vone.q  R101
                vone.q  R102
                vzero.q R103

                vzero.q C200
                vone.q  C210
                vone.q  C220
                vzero.q C230

                vmov.q R400, C100
            ");

            CpuThreadState.DumpVfpuRegisters(Console.Error);

            Func<string, string> GetLine = (string Name) => { return String.Join(",", CpuThreadState.Vfpr[4, Name]); };

            Assert.AreEqual(Vector0, GetLine("R100"));
            Assert.AreEqual(Vector1, GetLine("R101"));
            Assert.AreEqual(Vector1, GetLine("R102"));
            Assert.AreEqual(Vector0, GetLine("R103"));

            Assert.AreEqual(Vector2, GetLine("C100"));
            Assert.AreEqual(Vector2, GetLine("C110"));
            Assert.AreEqual(Vector2, GetLine("C120"));
            Assert.AreEqual(Vector2, GetLine("C130"));

            Assert.AreEqual(Vector0, GetLine("C200"));
            Assert.AreEqual(Vector1, GetLine("C210"));
            Assert.AreEqual(Vector1, GetLine("C220"));
            Assert.AreEqual(Vector0, GetLine("C230"));

            Assert.AreEqual(Vector2, GetLine("R200"));
            Assert.AreEqual(Vector2, GetLine("R201"));
            Assert.AreEqual(Vector2, GetLine("R202"));
            Assert.AreEqual(Vector2, GetLine("R203"));

            Assert.AreEqual(Vector2, GetLine("R400"));
        }