#include "zend_virtual_cwd.h"
#include "zend_smart_str.h"
#include "zend_smart_string.h"
+#include "zend_cpuinfo.h"
#ifdef ZTS
ZEND_API int compiler_globals_id;
extern zend_php_scanner_globals language_scanner_globals;
#endif
+ zend_cpu_startup();
+
#ifdef ZEND_WIN32
php_win32_cp_set_by_id(65001);
#endif
uint32_t initialized;
} zend_cpu_info;
-static zend_cpu_info cpuinfo;
+static zend_cpu_info cpuinfo = {0};
#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
static void __zend_cpuid(uint32_t func, uint32_t subfunc) {
}
#endif
-ZEND_API int zend_cpu_supports(zend_cpu_feature feature) {
+void zend_cpu_startup(void)
+{
if (!cpuinfo.initialized) {
cpuinfo.initialized = 1;
__zend_cpuid(0, 0);
if (cpuinfo.eax == 0) {
- return 0;
+ return;
}
__zend_cpuid(1, 0);
}
+}
+
+ZEND_API int zend_cpu_supports(zend_cpu_feature feature) {
if (feature & ZEND_CPU_EDX_MASK) {
return (cpuinfo.edx & (feature & ~ZEND_CPU_EDX_MASK));
} else {