public static int _cvt_w_s_impl(CpuThreadState CpuThreadState, float FS)
{
//Console.WriteLine("_cvt_w_s_impl: {0}", CpuThreadState.FPR[FS]);
switch (CpuThreadState.Fcr31.RM)
{
case CpuThreadState.FCR31.TypeEnum.Rint: return (int)MathFloat.Rint(FS);
case CpuThreadState.FCR31.TypeEnum.Cast: return (int)MathFloat.Cast(FS);
case CpuThreadState.FCR31.TypeEnum.Ceil: return (int)MathFloat.Ceil(FS);
case CpuThreadState.FCR31.TypeEnum.Floor: return (int)MathFloat.Floor(FS);
}
throw(new InvalidCastException("RM has an invalid value!!"));
//case CpuThreadState.FCR31.TypeEnum.Floor: CpuThreadState.FPR_I[FD] = (int)MathFloat.Floor(CpuThreadState.FPR[FS]); break;
}