HostFeatures: Check for SVE bit permute extension

This commit is contained in:
Ryan Houdek 2024-07-10 21:45:07 -07:00
parent 5fe405e1fb
commit 3554d5c2f7
No known key found for this signature in database
3 changed files with 6 additions and 0 deletions

View File

@ -76,6 +76,8 @@
"DISABLECRYPTO": "disablecrypto",
"ENABLERPRES": "enablerpres",
"DISABLERPRES": "disablerpres",
"ENABLESVEBITPERM": "enablesvebitperm",
"DISABLESVEBITPERM": "disablesvebitperm",
"ENABLEPRESERVEALLABI": "enablepreserveallabi",
"DISABLEPRESERVEALLABI": "disablepreserveallabi"
},
@ -97,6 +99,7 @@
"\t{enable,disable}flagm2: Will force enable or disable flagm2 even if the host doesn't support it",
"\t{enable,disable}crypto: Will force enable or disable crypto extensions even if the host doesn't support it",
"\t{enable,disable}rpres: Will force enable or disable rpres even if the host doesn't support it",
"\t{enable,disable}svebitperm: Will force enable or disable svebitperm even if the host doesn't support it",
"\t{enable,disable}preserveallabi: Will force enable or disable preserve_all abi even if the host doesn't support it"
]
},

View File

@ -95,6 +95,7 @@ static void OverrideFeatures(HostFeatures* Features, uint64_t ForceSVEWidth) {
ENABLE_DISABLE_OPTION(SupportsFlagM, FlagM, FLAGM);
ENABLE_DISABLE_OPTION(SupportsFlagM2, FlagM2, FLAGM2);
ENABLE_DISABLE_OPTION(SupportsRPRES, RPRES, RPRES);
ENABLE_DISABLE_OPTION(SupportsSVEBitPerm, SVEBITPERM, SVEBITPERM);
ENABLE_DISABLE_OPTION(SupportsPreserveAllABI, PRESERVEALLABI, PRESERVEALLABI);
GET_SINGLE_OPTION(Crypto, CRYPTO);
@ -152,6 +153,7 @@ HostFeatures::HostFeatures() {
SupportsFlagM = Features.Has(vixl::CPUFeatures::Feature::kFlagM);
SupportsFlagM2 = Features.Has(vixl::CPUFeatures::Feature::kAXFlag);
SupportsRPRES = Features.Has(vixl::CPUFeatures::Feature::kRPRES);
SupportsSVEBitPerm = Features.Has(vixl::CPUFeatures::Feature::kSVEBitPerm);
Supports3DNow = true;
SupportsSSE4A = true;

View File

@ -39,6 +39,7 @@ public:
bool SupportsRPRES {};
bool SupportsPreserveAllABI {};
bool SupportsAES256 {};
bool SupportsSVEBitPerm {};
// Float exception behaviour
bool SupportsAFP {};