diff options
| author | LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> | 2020-11-18 19:35:54 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-18 19:35:54 +0100 |
| commit | 0679084f115b6838dec4d8c5e85044c33d4122d0 (patch) | |
| tree | 0d25ace42740e37d6bb2a8cd30fa92c5313d265a /ARMeilleure/Translation | |
| parent | eafee34feebd432151809df402f3f696e4d93d08 (diff) | |
CPU (A64): Add FP16/FP32 fast paths (F16C Intrinsics) for Fcvt_S, Fcvtl_V & Fcvtn_V Instructions. Now HardwareCapabilities uses CpuId. (#1650)
* net5.0
* CPU (A64): Add FP16/FP32 fast paths (F16C Intrinsics) for Fcvt_S, Fcvtl_V & Fcvtn_V Instructions. Switch to .NET 5.0.
Nits.
Tests performed successfully in both debug and release mode (for all instructions involved).
* Address comment.
* Update appveyor.yml
* Revert "Update appveyor.yml"
This reverts commit 27cdd59e8b90e227e6924d9c162af26c00a89013.
* Remove Assembler CpuId.
* Update appveyor.yml
* Address comment.
Diffstat (limited to 'ARMeilleure/Translation')
| -rw-r--r-- | ARMeilleure/Translation/PTC/Ptc.cs | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/ARMeilleure/Translation/PTC/Ptc.cs b/ARMeilleure/Translation/PTC/Ptc.cs index dd1c44b2..3baef401 100644 --- a/ARMeilleure/Translation/PTC/Ptc.cs +++ b/ARMeilleure/Translation/PTC/Ptc.cs @@ -1,5 +1,6 @@ using ARMeilleure.CodeGen; using ARMeilleure.CodeGen.Unwinding; +using ARMeilleure.CodeGen.X86; using ARMeilleure.Memory; using Ryujinx.Common.Configuration; using Ryujinx.Common.Logging; @@ -10,7 +11,6 @@ using System.Diagnostics; using System.IO; using System.IO.Compression; using System.Runtime.InteropServices; -using System.Runtime.Intrinsics.X86; using System.Runtime.Serialization.Formatters.Binary; using System.Threading; using System.Threading.Tasks; @@ -21,7 +21,7 @@ namespace ARMeilleure.Translation.PTC { private const string HeaderMagic = "PTChd"; - private const int InternalVersion = 1273; //! To be incremented manually for each change to the ARMeilleure project. + private const int InternalVersion = 1650; //! To be incremented manually for each change to the ARMeilleure project. private const string ActualDir = "0"; private const string BackupDir = "1"; @@ -646,21 +646,7 @@ namespace ARMeilleure.Translation.PTC private static ulong GetFeatureInfo() { - ulong featureInfo = 0ul; - - featureInfo |= (Sse3.IsSupported ? 1ul : 0ul) << 0; - featureInfo |= (Pclmulqdq.IsSupported ? 1ul : 0ul) << 1; - featureInfo |= (Ssse3.IsSupported ? 1ul : 0ul) << 9; - featureInfo |= (Fma.IsSupported ? 1ul : 0ul) << 12; - featureInfo |= (Sse41.IsSupported ? 1ul : 0ul) << 19; - featureInfo |= (Sse42.IsSupported ? 1ul : 0ul) << 20; - featureInfo |= (Popcnt.IsSupported ? 1ul : 0ul) << 23; - featureInfo |= (Aes.IsSupported ? 1ul : 0ul) << 25; - featureInfo |= (Avx.IsSupported ? 1ul : 0ul) << 28; - featureInfo |= (Sse.IsSupported ? 1ul : 0ul) << 57; - featureInfo |= (Sse2.IsSupported ? 1ul : 0ul) << 58; - - return featureInfo; + return (ulong)HardwareCapabilities.FeatureInfoEdx << 32 | (uint)HardwareCapabilities.FeatureInfoEcx; } private struct Header |
