diff options
| author | sharmander <saldabain.dev@gmail.com> | 2022-01-04 14:45:28 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-04 16:45:28 -0300 |
| commit | e5f7ff1eee81ebc852b8bc703d5f4847eb430560 (patch) | |
| tree | 2a98e4e9b4ee40a04454b096fdfcbbfff2c54fff /ARMeilleure/Instructions | |
| parent | 60f03cb78a4c7b66ee72dbbfee4b1998474a604a (diff) | |
CPU - Implement FCVTMS (Vector) (#2937)
* Add FCVTMS_V Implementation to Armeilleure
* Fix opcode designation
* Add tests
* Amend Ptc version
* Fix OpCode / Tests
* Create Math.Floor helper method + Update implementation
* Address gdk comments
* Re-address gdk comments
* Update ARMeilleure/Decoders/OpCodeTable.cs
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
* Update Tests to use 2S (4S) and 2D
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'ARMeilleure/Instructions')
| -rw-r--r-- | ARMeilleure/Instructions/InstEmitSimdCvt.cs | 12 | ||||
| -rw-r--r-- | ARMeilleure/Instructions/InstName.cs | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/ARMeilleure/Instructions/InstEmitSimdCvt.cs b/ARMeilleure/Instructions/InstEmitSimdCvt.cs index a5b472ec..e6400e06 100644 --- a/ARMeilleure/Instructions/InstEmitSimdCvt.cs +++ b/ARMeilleure/Instructions/InstEmitSimdCvt.cs @@ -217,6 +217,18 @@ namespace ARMeilleure.Instructions } } + public static void Fcvtms_V(ArmEmitterContext context) + { + if (Optimizations.UseSse41) + { + EmitSse41FcvtsOpF(context, FPRoundingMode.TowardsMinusInfinity, scalar: false); + } + else + { + EmitFcvt(context, (op1) => EmitUnaryMathCall(context, nameof(Math.Floor), op1), signed: true, scalar: false); + } + } + public static void Fcvtmu_Gp(ArmEmitterContext context) { if (Optimizations.UseSse41) diff --git a/ARMeilleure/Instructions/InstName.cs b/ARMeilleure/Instructions/InstName.cs index a9c443f1..081a1ef5 100644 --- a/ARMeilleure/Instructions/InstName.cs +++ b/ARMeilleure/Instructions/InstName.cs @@ -188,6 +188,7 @@ namespace ARMeilleure.Instructions Fcvtau_V, Fcvtl_V, Fcvtms_Gp, + Fcvtms_V, Fcvtmu_Gp, Fcvtn_V, Fcvtns_S, |
