Implement FCVTNS (Scalar GP) (#2953)

* Implement FCVTNS (Scalar GP)

* Update Ptc Version
This commit is contained in:
sharmander
2022-01-19 20:21:44 -05:00
committed by GitHub
parent b27183b806
commit 60f7cba30a
5 changed files with 19 additions and 1 deletions

View File

@ -288,6 +288,7 @@ namespace ARMeilleure.Decoders
SetA64("0>0011100<100001101110xxxxxxxxxx", InstName.Fcvtms_V, InstEmit.Fcvtms_V, OpCodeSimd.Create);
SetA64("x00111100x110001000000xxxxxxxxxx", InstName.Fcvtmu_Gp, InstEmit.Fcvtmu_Gp, OpCodeSimdCvt.Create);
SetA64("0x0011100x100001011010xxxxxxxxxx", InstName.Fcvtn_V, InstEmit.Fcvtn_V, OpCodeSimd.Create);
SetA64("x00111100x100000000000xxxxxxxxxx", InstName.Fcvtns_Gp, InstEmit.Fcvtns_Gp, OpCodeSimdCvt.Create);
SetA64("010111100x100001101010xxxxxxxxxx", InstName.Fcvtns_S, InstEmit.Fcvtns_S, OpCodeSimd.Create);
SetA64("0>0011100<100001101010xxxxxxxxxx", InstName.Fcvtns_V, InstEmit.Fcvtns_V, OpCodeSimd.Create);
SetA64("011111100x100001101010xxxxxxxxxx", InstName.Fcvtnu_S, InstEmit.Fcvtnu_S, OpCodeSimd.Create);

View File

@ -314,6 +314,18 @@ namespace ARMeilleure.Instructions
}
}
public static void Fcvtns_Gp(ArmEmitterContext context)
{
if (Optimizations.UseSse41)
{
EmitSse41Fcvts_Gp(context, FPRoundingMode.ToNearest, isFixed: false);
}
else
{
EmitFcvt_s_Gp(context, (op1) => EmitRoundMathCall(context, MidpointRounding.ToEven, op1));
}
}
public static void Fcvtns_S(ArmEmitterContext context)
{
if (Optimizations.UseSse41)

View File

@ -191,6 +191,7 @@ namespace ARMeilleure.Instructions
Fcvtms_V,
Fcvtmu_Gp,
Fcvtn_V,
Fcvtns_Gp,
Fcvtns_S,
Fcvtns_V,
Fcvtnu_S,

View File

@ -27,7 +27,7 @@ namespace ARMeilleure.Translation.PTC
private const string OuterHeaderMagicString = "PTCohd\0\0";
private const string InnerHeaderMagicString = "PTCihd\0\0";
private const uint InternalVersion = 2937; //! To be incremented manually for each change to the ARMeilleure project.
private const uint InternalVersion = 2953; //! To be incremented manually for each change to the ARMeilleure project.
private const string ActualDir = "0";
private const string BackupDir = "1";