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.
This commit is contained in:
parent
eafee34fee
commit
0679084f11
9 changed files with 136 additions and 62 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue