mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Add tests for SSE3 capability
This commit is contained in:
@@ -262,14 +262,8 @@ String SystemStats::getUserRegion() { return AndroidStatsHelpers::getLocale
|
||||
String SystemStats::getDisplayLanguage() { return getUserLanguage(); }
|
||||
|
||||
//==============================================================================
|
||||
SystemStats::CPUFlags::CPUFlags()
|
||||
void CPUInformation::initialise() noexcept
|
||||
{
|
||||
// TODO
|
||||
hasMMX = false;
|
||||
hasSSE = false;
|
||||
hasSSE2 = false;
|
||||
has3DNow = false;
|
||||
|
||||
numCpus = bmax (1, sysconf (_SC_NPROCESSORS_ONLN));
|
||||
}
|
||||
|
||||
|
||||
@@ -127,12 +127,13 @@ String SystemStats::getUserRegion() { return getLocaleValue (_NL_IDENTIFICA
|
||||
String SystemStats::getDisplayLanguage() { return getUserLanguage(); }
|
||||
|
||||
//==============================================================================
|
||||
SystemStats::CPUFlags::CPUFlags()
|
||||
void CPUInformation::initialise() noexcept
|
||||
{
|
||||
const String flags (LinuxStatsHelpers::getCpuInfo ("flags"));
|
||||
hasMMX = flags.contains ("mmx");
|
||||
hasSSE = flags.contains ("sse");
|
||||
hasSSE2 = flags.contains ("sse2");
|
||||
hasMMX = flags.contains ("mmx");
|
||||
hasSSE = flags.contains ("sse");
|
||||
hasSSE2 = flags.contains ("sse2");
|
||||
hasSSE3 = flags.contains ("sse3");
|
||||
has3DNow = flags.contains ("3dnow");
|
||||
|
||||
numCpus = LinuxStatsHelpers::getCpuInfo ("processor").getIntValue() + 1;
|
||||
|
||||
@@ -64,21 +64,17 @@ namespace SystemStatsHelpers
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
SystemStats::CPUFlags::CPUFlags()
|
||||
void CPUInformation::initialise() noexcept
|
||||
{
|
||||
#if BEAST_INTEL && ! BEAST_NO_INLINE_ASM
|
||||
uint32 familyModel = 0, extFeatures = 0, features = 0, dummy = 0;
|
||||
SystemStatsHelpers::doCPUID (familyModel, extFeatures, dummy, features, 1);
|
||||
uint32 a = 0, b = 0, d = 0, c = 0;
|
||||
SystemStatsHelpers::doCPUID (a, b, c, d, 1);
|
||||
|
||||
hasMMX = (features & (1u << 23)) != 0;
|
||||
hasSSE = (features & (1u << 25)) != 0;
|
||||
hasSSE2 = (features & (1u << 26)) != 0;
|
||||
has3DNow = (extFeatures & (1u << 31)) != 0;
|
||||
#else
|
||||
hasMMX = false;
|
||||
hasSSE = false;
|
||||
hasSSE2 = false;
|
||||
has3DNow = false;
|
||||
hasMMX = (d & (1u << 23)) != 0;
|
||||
hasSSE = (d & (1u << 25)) != 0;
|
||||
hasSSE2 = (d & (1u << 26)) != 0;
|
||||
has3DNow = (b & (1u << 31)) != 0;
|
||||
hasSSE3 = (c & (1u << 0)) != 0;
|
||||
#endif
|
||||
|
||||
#if BEAST_IOS || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5)
|
||||
|
||||
@@ -99,16 +99,13 @@ String SystemStats::getCpuVendor()
|
||||
|
||||
|
||||
//==============================================================================
|
||||
SystemStats::CPUFlags::CPUFlags()
|
||||
void CPUInformation::initialise() noexcept
|
||||
{
|
||||
hasMMX = IsProcessorFeaturePresent (PF_MMX_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
hasSSE = IsProcessorFeaturePresent (PF_XMMI_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
hasSSE2 = IsProcessorFeaturePresent (PF_XMMI64_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
#ifdef PF_AMD3D_INSTRUCTIONS_AVAILABLE
|
||||
has3DNow = IsProcessorFeaturePresent (PF_AMD3D_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
#else
|
||||
has3DNow = IsProcessorFeaturePresent (PF_3DNOW_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
#endif
|
||||
hasMMX = IsProcessorFeaturePresent (PF_MMX_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
hasSSE = IsProcessorFeaturePresent (PF_XMMI_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
hasSSE2 = IsProcessorFeaturePresent (PF_XMMI64_INSTRUCTIONS_AVAILABLE) != 0;
|
||||
hasSSE3 = IsProcessorFeaturePresent (13 /*PF_SSE3_INSTRUCTIONS_AVAILABLE*/) != 0;
|
||||
has3DNow = IsProcessorFeaturePresent (7 /*PF_AMD3D_INSTRUCTIONS_AVAILABLE*/) != 0;
|
||||
|
||||
SYSTEM_INFO systemInfo;
|
||||
GetNativeSystemInfo (&systemInfo);
|
||||
|
||||
Reference in New Issue
Block a user