Improve architectures in OS::has_feature and make them work on MSVC

This commit is contained in:
Aaron Franke 2022-06-05 14:10:20 -05:00
parent 4d2ecde3e2
commit 357af68e03
No known key found for this signature in database
GPG key ID: 40A1750B977E56BF

View file

@ -413,19 +413,29 @@ bool OS::has_feature(const String &p_feature) {
if (sizeof(void *) == 4 && p_feature == "32") {
return true;
}
#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__)
#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(_M_X64)
#if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(_M_X64)
if (p_feature == "x86_64") {
return true;
}
#elif (defined(__i386) || defined(__i386__))
#elif defined(__i386) || defined(__i386__) || defined(_M_IX86)
if (p_feature == "x86_32") {
return true;
}
#endif
if (p_feature == "x86") {
return true;
}
#elif defined(__aarch64__)
#elif defined(__arm__) || defined(__aarch64__) || defined(_M_ARM) || defined(_M_ARM64)
#if defined(__aarch64__) || defined(_M_ARM64)
if (p_feature == "arm64") {
return true;
}
#elif defined(__arm__)
#elif defined(__arm__) || defined(_M_ARM)
if (p_feature == "arm32") {
return true;
}
#endif
#if defined(__ARM_ARCH_7A__)
if (p_feature == "armv7a" || p_feature == "armv7") {
return true;
@ -457,6 +467,19 @@ bool OS::has_feature(const String &p_feature) {
if (p_feature == "ppc") {
return true;
}
#elif defined(__wasm__)
#if defined(__wasm64__)
if (p_feature == "wasm64") {
return true;
}
#elif defined(__wasm32__)
if (p_feature == "wasm32") {
return true;
}
#endif
if (p_feature == "wasm") {
return true;
}
#endif
if (_check_internal_feature_support(p_feature)) {