summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--win32/build/config.w323
-rw-r--r--win32/build/config.w32.phpize.in4
-rw-r--r--win32/build/confutils.js14
3 files changed, 21 insertions, 0 deletions
diff --git a/win32/build/config.w32 b/win32/build/config.w32
index 89e6761aca..574d8e274b 100644
--- a/win32/build/config.w32
+++ b/win32/build/config.w32
@@ -248,3 +248,6 @@ if (CLANG_TOOLSET) {
}
}
+ARG_WITH("codegen-arch", "Architecture for code generation: ia32, sse, sse2, avx, avx2", "no");
+toolset_setup_codegen_arch();
+
diff --git a/win32/build/config.w32.phpize.in b/win32/build/config.w32.phpize.in
index a340af0e60..d68a21fc6e 100644
--- a/win32/build/config.w32.phpize.in
+++ b/win32/build/config.w32.phpize.in
@@ -126,3 +126,7 @@ DEFINE('SNAPSHOT_TEMPLATE', PHP_SNAPSHOT_TEMPLATE);
AC_DEFINE("PHP_DIR", PHP_DIR);
DEFINE("PHP_DIR", PHP_DIR);
+
+ARG_WITH("codegen-arch", "Architecture for code generation", "no");
+toolset_setup_codegen_arch();
+
diff --git a/win32/build/confutils.js b/win32/build/confutils.js
index 45db550d77..8a4cb9347b 100644
--- a/win32/build/confutils.js
+++ b/win32/build/confutils.js
@@ -2544,6 +2544,20 @@ function toolset_setup_arch()
DEFINE("PHP_ARCHITECTURE", X64 ? 'x64' : 'x86');
}
+function toolset_setup_codegen_arch()
+{
+ if("no" == PHP_CODEGEN_ARCH) {
+ return;
+ }
+
+ if (VS_TOOLSET) {
+ var arc = PHP_CODEGEN_ARCH.toUpperCase();
+
+ if ("AVX2" == arc || "AVX" == arc || "SSE2" == arc || "SSE" == arc || "IA32" == arc) {
+ ADD_FLAG("CFLAGS", "/arch:" + arc);
+ }
+ }
+}
function toolset_setup_linker()
{