Add UABD instruction
This commit is contained in:
@ -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)
|
||||
|
Reference in New Issue
Block a user