Implement VORN (register) Arm32 instruction (#2396)

This commit is contained in:
gdkchan
2021-06-23 18:21:23 -03:00
committed by GitHub
parent 49edf14a3e
commit ab9d4b862d
4 changed files with 30 additions and 9 deletions

View File

@ -115,6 +115,24 @@ namespace ARMeilleure.Instructions
}
}
public static void Vorn_I(ArmEmitterContext context)
{
if (Optimizations.UseSse2)
{
Operand mask = context.VectorOne();
EmitVectorBinaryOpSimd32(context, (n, m) =>
{
m = context.AddIntrinsic(Intrinsic.X86Pandn, m, mask);
return context.AddIntrinsic(Intrinsic.X86Por, n, m);
});
}
else
{
EmitVectorBinaryOpZx32(context, (op1, op2) => context.BitwiseOr(op1, context.BitwiseNot(op2)));
}
}
public static void Vorr_I(ArmEmitterContext context)
{
if (Optimizations.UseSse2)

View File

@ -605,6 +605,7 @@ namespace ARMeilleure.Instructions
Vnmul,
Vnmla,
Vnmls,
Vorn,
Vorr,
Vpadd,
Vpmax,