diff --git a/Scripts/InstructionCountParser.py b/Scripts/InstructionCountParser.py index c7e03616e..74b3e04ef 100755 --- a/Scripts/InstructionCountParser.py +++ b/Scripts/InstructionCountParser.py @@ -56,7 +56,8 @@ class HostFeatures(Flag) : FEATURE_CSSC = (1 << 5) FEATURE_AFP = (1 << 6) FEATURE_RPRES = (1 << 7) - + FEATURE_FLAGM = (1 << 8) + FEATURE_FLAGM2 = (1 << 9) HostFeaturesLookup = { "SVE128" : HostFeatures.FEATURE_SVE128, @@ -67,6 +68,8 @@ HostFeaturesLookup = { "CSSC" : HostFeatures.FEATURE_CSSC, "AFP" : HostFeatures.FEATURE_AFP, "RPRES" : HostFeatures.FEATURE_RPRES, + "FLAGM" : HostFeatures.FEATURE_FLAGM, + "FLAGM2" : HostFeatures.FEATURE_FLAGM2, } def GetHostFeatures(data): diff --git a/Source/Tools/CodeSizeValidation/Main.cpp b/Source/Tools/CodeSizeValidation/Main.cpp index 098326f47..4edd6b82d 100644 --- a/Source/Tools/CodeSizeValidation/Main.cpp +++ b/Source/Tools/CodeSizeValidation/Main.cpp @@ -465,6 +465,8 @@ int main(int argc, char **argv, char **const envp) { FEATURE_CSSC = (1U << 5), FEATURE_AFP = (1U << 6), FEATURE_RPRES = (1U << 7), + FEATURE_FLAGM = (1U << 8), + FEATURE_FLAGM2 = (1U << 9), }; uint64_t SVEWidth = 0; @@ -495,6 +497,12 @@ int main(int argc, char **argv, char **const envp) { if (TestHeaderData->EnabledHostFeatures & FEATURE_RPRES) { HostFeatureControl |= static_cast(FEXCore::Config::HostFeatures::ENABLERPRES); } + if (TestHeaderData->EnabledHostFeatures & FEATURE_FLAGM) { + HostFeatureControl |= static_cast(FEXCore::Config::HostFeatures::ENABLEFLAGM); + } + if (TestHeaderData->EnabledHostFeatures & FEATURE_FLAGM2) { + HostFeatureControl |= static_cast(FEXCore::Config::HostFeatures::ENABLEFLAGM2); + } // Always enable ARMv8.1 LSE atomics. HostFeatureControl |= static_cast(FEXCore::Config::HostFeatures::ENABLEATOMICS); @@ -525,6 +533,12 @@ int main(int argc, char **argv, char **const envp) { if (TestHeaderData->DisabledHostFeatures & FEATURE_RPRES) { HostFeatureControl |= static_cast(FEXCore::Config::HostFeatures::DISABLERPRES); } + if (TestHeaderData->DisabledHostFeatures & FEATURE_FLAGM) { + HostFeatureControl |= static_cast(FEXCore::Config::HostFeatures::DISABLEFLAGM); + } + if (TestHeaderData->DisabledHostFeatures & FEATURE_FLAGM2) { + HostFeatureControl |= static_cast(FEXCore::Config::HostFeatures::DISABLEFLAGM2); + } FEXCore::Config::EraseSet(FEXCore::Config::CONFIG_HOSTFEATURES, fextl::fmt::format("{}", HostFeatureControl)); FEXCore::Config::EraseSet(FEXCore::Config::CONFIG_FORCESVEWIDTH, fextl::fmt::format("{}", SVEWidth));