From 35ff14210429b04f66d687610ed020c00d15add7 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 6 Apr 2018 01:41:54 -0300 Subject: [PATCH] Add FMLS (vector) instruction --- AOpCodeTable.cs | 2 ++ Instruction/AInstEmitSimdArithmetic.cs | 18 ++++++++++++++++++ Instruction/AInstEmitSimdCmp.cs | 20 -------------------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/AOpCodeTable.cs b/AOpCodeTable.cs index 483594e..b323a11 100644 --- a/AOpCodeTable.cs +++ b/AOpCodeTable.cs @@ -213,6 +213,8 @@ namespace ChocolArm64 Set("000111100x1xxxxx011110xxxxxxxxxx", AInstEmit.Fminnm_S, typeof(AOpCodeSimdReg)); Set("0>0011100<1xxxxx110011xxxxxxxxxx", AInstEmit.Fmla_V, typeof(AOpCodeSimdReg)); Set("0x0011111<0011101<1xxxxx110011xxxxxxxxxx", AInstEmit.Fmls_V, typeof(AOpCodeSimdReg)); + Set("0x0011111< + { + Context.Emit(OpCodes.Mul); + Context.Emit(OpCodes.Sub); + }); + } + + public static void Fmls_Ve(AILEmitterCtx Context) + { + EmitVectorTernaryOpByElemF(Context, () => + { + Context.Emit(OpCodes.Mul); + Context.Emit(OpCodes.Sub); + }); + } + public static void Fmsub_S(AILEmitterCtx Context) { EmitScalarTernaryRaOpF(Context, () => diff --git a/Instruction/AInstEmitSimdCmp.cs b/Instruction/AInstEmitSimdCmp.cs index 43e8e94..a71b6d4 100644 --- a/Instruction/AInstEmitSimdCmp.cs +++ b/Instruction/AInstEmitSimdCmp.cs @@ -140,26 +140,6 @@ namespace ChocolArm64.Instruction EmitVectorFcmp(Context, OpCodes.Bgt_S); } - public static void Fcmhi_S(AILEmitterCtx Context) - { - EmitScalarFcmp(Context, OpCodes.Bgt_Un_S); - } - - public static void Fcmhi_V(AILEmitterCtx Context) - { - EmitVectorFcmp(Context, OpCodes.Bgt_Un_S); - } - - public static void Fcmhs_S(AILEmitterCtx Context) - { - EmitScalarFcmp(Context, OpCodes.Bge_Un_S); - } - - public static void Fcmhs_V(AILEmitterCtx Context) - { - EmitVectorFcmp(Context, OpCodes.Bge_Un_S); - } - public static void Fcmle_S(AILEmitterCtx Context) { EmitScalarFcmp(Context, OpCodes.Ble_S);