From 19b83445683cf9cfcf9e3d27596ab030eb08353c Mon Sep 17 00:00:00 2001 From: gdkchan Date: Fri, 30 Mar 2018 16:30:23 -0300 Subject: Add UABD instruction --- ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'ChocolArm64/Instruction') diff --git a/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs b/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs index 84a5babf..1d40ee89 100644 --- a/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs +++ b/ChocolArm64/Instruction/AInstEmitSimdArithmetic.cs @@ -546,18 +546,25 @@ namespace ChocolArm64.Instruction EmitVectorBinaryOpZx(Context, () => Context.Emit(OpCodes.Sub)); } + public static void Uabd_V(AILEmitterCtx Context) + { + EmitVectorTernaryOpZx(Context, () => EmitAbd(Context)); + } + public static void Uabdl_V(AILEmitterCtx Context) { - EmitVectorWidenRnRmTernaryOpZx(Context, () => - { - Context.Emit(OpCodes.Sub); + EmitVectorWidenRnRmTernaryOpZx(Context, () => EmitAbd(Context)); + } - Type[] Types = new Type[] { typeof(long) }; + private static void EmitAbd(AILEmitterCtx Context) + { + Context.Emit(OpCodes.Sub); - Context.EmitCall(typeof(Math).GetMethod(nameof(Math.Abs), Types)); + Type[] Types = new Type[] { typeof(long) }; - Context.Emit(OpCodes.Add); - }); + Context.EmitCall(typeof(Math).GetMethod(nameof(Math.Abs), Types)); + + Context.Emit(OpCodes.Add); } public static void Uaddl_V(AILEmitterCtx Context) -- cgit v1.2.3