CSPspEmu.Core.Cpu.Emitter.CpuEmitter.vsrt3 C# (CSharp) Method

vsrt3() public method

public vsrt3 ( ) : AstNodeStm
return AstNodeStm
        public AstNodeStm vsrt3()
        {
            int VectorSize = ONE_TWO;
            if (VectorSize != 4) return ast.Statement();

            var VVD = VEC(VD, VType.VFloat, VectorSize);
            var VVS = VEC(VS, VType.VFloat, VectorSize);

            return VVD.SetVector(Index =>
            {
                switch (Index)
                {
                    case 0: return ast.CallStatic((Func<float, float, float>)MathFloat.Max, VVS[0], VVS[1]);
                    case 1: return ast.CallStatic((Func<float, float, float>)MathFloat.Min, VVS[0], VVS[1]);
                    case 2: return ast.CallStatic((Func<float, float, float>)MathFloat.Max, VVS[2], VVS[3]);
                    case 3: return ast.CallStatic((Func<float, float, float>)MathFloat.Min, VVS[2], VVS[3]);
                    default: throw (new InvalidOperationException("vsrt3.Assert!"));
                }
            }, PC);
        }
CpuEmitter