From 31ef8d404a42e077fa943ffc57d945f4358e676c Mon Sep 17 00:00:00 2001 From: MS-DOS1999 Date: Tue, 18 Dec 2018 01:29:47 +0100 Subject: [PATCH] Add Frintz_S/V opcode and unit test, correction of some unit tests (#523) * Add Frintz_S/V opcode and unit test, correction of some unit tests * --test * fix code style issue * delete tab --- Instructions/InstEmitSimdArithmetic.cs | 16 ++++++++++++++++ OpCodeTable.cs | 2 ++ 2 files changed, 18 insertions(+) diff --git a/Instructions/InstEmitSimdArithmetic.cs b/Instructions/InstEmitSimdArithmetic.cs index df84596..013d043 100644 --- a/Instructions/InstEmitSimdArithmetic.cs +++ b/Instructions/InstEmitSimdArithmetic.cs @@ -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, () => diff --git a/OpCodeTable.cs b/OpCodeTable.cs index 89510fb..845a48d 100644 --- a/OpCodeTable.cs +++ b/OpCodeTable.cs @@ -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));