]> granicus.if.org Git - php/commitdiff
add config option to target codegen architectures
authorAnatol Belski <ab@php.net>
Tue, 2 Dec 2014 14:59:38 +0000 (15:59 +0100)
committerAnatol Belski <ab@php.net>
Wed, 3 Dec 2014 18:20:36 +0000 (19:20 +0100)
win32/build/config.w32
win32/build/config.w32.phpize.in
win32/build/confutils.js

index 89e6761acadf5d9590282aab40bbb42fbb4cd49d..574d8e274bce8e1e50288eb8c32d2f685fc62087 100644 (file)
@@ -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();
+
index a340af0e60ad1f134caf8941ef8ff3cbebf26ba0..d68a21fc6eb69079b031b7662600c10279fa80b6 100644 (file)
@@ -126,3 +126,7 @@ DEFINE('SNAPSHOT_TEMPLATE', PHP_SNAPSHOT_TEMPLATE);
 \r
 AC_DEFINE("PHP_DIR", PHP_DIR);\r
 DEFINE("PHP_DIR", PHP_DIR);\r
+\r
+ARG_WITH("codegen-arch", "Architecture for code generation", "no");\r
+toolset_setup_codegen_arch();\r
+\r
index 45db550d77d2f6f6f405928caf793785ada6c2c5..8a4cb9347b3795ad9b2d8eedbe1cdf070303a4d3 100644 (file)
@@ -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()
 {