|
|
@@ -33,6 +33,16 @@ namespace ChocolArm64.Instruction
|
|
|
}
|
|
|
|
|
|
public static void Bif_V(AILEmitterCtx Context)
|
|
|
+ {
|
|
|
+ EmitBitBif(Context, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void Bit_V(AILEmitterCtx Context)
|
|
|
+ {
|
|
|
+ EmitBitBif(Context, false);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void EmitBitBif(AILEmitterCtx Context, bool NotRm)
|
|
|
{
|
|
|
AOpCodeSimdReg Op = (AOpCodeSimdReg)Context.CurrOp;
|
|
|
|
|
|
@@ -47,6 +57,11 @@ namespace ChocolArm64.Instruction
|
|
|
|
|
|
EmitVectorExtractZx(Context, Op.Rm, Index, Op.Size);
|
|
|
|
|
|
+ if (NotRm)
|
|
|
+ {
|
|
|
+ Context.Emit(OpCodes.Not);
|
|
|
+ }
|
|
|
+
|
|
|
Context.Emit(OpCodes.And);
|
|
|
|
|
|
EmitVectorExtractZx(Context, Op.Rd, Index, Op.Size);
|