forked from Mirror/Ryujinx
Add FMLS (vector) instruction
This commit is contained in:
parent
2fd718c163
commit
36d9130592
3 changed files with 20 additions and 20 deletions
|
@ -213,6 +213,8 @@ namespace ChocolArm64
|
|||
Set("000111100x1xxxxx011110xxxxxxxxxx", AInstEmit.Fminnm_S, typeof(AOpCodeSimdReg));
|
||||
Set("0>0011100<1xxxxx110011xxxxxxxxxx", AInstEmit.Fmla_V, typeof(AOpCodeSimdReg));
|
||||
Set("0x0011111<<xxxxx0001x0xxxxxxxxxx", AInstEmit.Fmla_Ve, typeof(AOpCodeSimdRegElemF));
|
||||
Set("0>0011101<1xxxxx110011xxxxxxxxxx", AInstEmit.Fmls_V, typeof(AOpCodeSimdReg));
|
||||
Set("0x0011111<<xxxxx0101x0xxxxxxxxxx", AInstEmit.Fmls_Ve, typeof(AOpCodeSimdRegElemF));
|
||||
Set("000111100x100000010000xxxxxxxxxx", AInstEmit.Fmov_S, typeof(AOpCodeSimd));
|
||||
Set("00011110xx1xxxxxxxx100xxxxxxxxxx", AInstEmit.Fmov_Si, typeof(AOpCodeSimdFmov));
|
||||
Set("0xx0111100000xxx111101xxxxxxxxxx", AInstEmit.Fmov_V, typeof(AOpCodeSimdImm));
|
||||
|
|
|
@ -224,6 +224,24 @@ namespace ChocolArm64.Instruction
|
|||
});
|
||||
}
|
||||
|
||||
public static void Fmls_V(AILEmitterCtx Context)
|
||||
{
|
||||
EmitVectorTernaryOpF(Context, () =>
|
||||
{
|
||||
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, () =>
|
||||
|
|
|
@ -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);
|
||||
|
|
Reference in a new issue