Add Frintz_S/V opcode and unit test, correction of some unit tests

This commit is contained in:
MS-DOS1999 2018-12-04 03:36:11 +01:00
parent c86aacde76
commit 0bf453e058
2 changed files with 18 additions and 0 deletions

View file

@ -1380,6 +1380,22 @@ namespace ChocolArm64.Instructions
});
}
public static void Frintz_S(ILEmitterCtx context)
{
EmitScalarUnaryOpF(context, () =>
{
EmitUnaryMathCall(context, nameof(Math.Truncate));
});
}
public static void Frintz_V(ILEmitterCtx context)
{
EmitVectorUnaryOpF(context, () =>
{
EmitUnaryMathCall(context, nameof(Math.Truncate));
});
}
public static void Frsqrte_S(ILEmitterCtx context)
{
EmitScalarUnaryOpF(context, () =>

View file

@ -329,6 +329,8 @@ namespace ChocolArm64
SetA64("0>0011101<100001100010xxxxxxxxxx", InstEmit.Frintp_V, typeof(OpCodeSimd64));
SetA64("000111100x100111010000xxxxxxxxxx", InstEmit.Frintx_S, typeof(OpCodeSimd64));
SetA64("0>1011100<100001100110xxxxxxxxxx", InstEmit.Frintx_V, typeof(OpCodeSimd64));
SetA64("000111100x100101110000xxxxxxxxxx", InstEmit.Frintz_S, typeof(OpCodeSimd64));
SetA64("0>0011101<100001100110xxxxxxxxxx", InstEmit.Frintz_V, typeof(OpCodeSimd64));
SetA64("011111101x100001110110xxxxxxxxxx", InstEmit.Frsqrte_S, typeof(OpCodeSimd64));
SetA64("0>1011101<100001110110xxxxxxxxxx", InstEmit.Frsqrte_V, typeof(OpCodeSimd64));
SetA64("010111101x1xxxxx111111xxxxxxxxxx", InstEmit.Frsqrts_S, typeof(OpCodeSimdReg64));