summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_execute.skl
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2019-05-30 20:35:30 +0300
committerDmitry Stogov <dmitry@zend.com>2019-05-30 20:35:30 +0300
commitee565529138891e757727de230af9051caeda05d (patch)
tree960a0abebe9dc8708b1c16fb1d4c820fb0753581 /Zend/zend_vm_execute.skl
parent2ba9177d4f0de8c0c7fdc0ca6160415ec699f48d (diff)
downloadphp-git-ee565529138891e757727de230af9051caeda05d.tar.gz
Disable "bad" optimisations only for emulation loop
Diffstat (limited to 'Zend/zend_vm_execute.skl')
-rw-r--r--Zend/zend_vm_execute.skl8
1 files changed, 8 insertions, 0 deletions
diff --git a/Zend/zend_vm_execute.skl b/Zend/zend_vm_execute.skl
index 5e6e98bb24..27aae16391 100644
--- a/Zend/zend_vm_execute.skl
+++ b/Zend/zend_vm_execute.skl
@@ -1,5 +1,10 @@
{%DEFINES%}
+#if (ZEND_VM_KIND != ZEND_VM_KIND_CALL) && (ZEND_GCC_VERSION >= 4000) && !defined(__clang__)
+# pragma GCC push_options
+# pragma GCC optimize("no-gcse")
+# pragma GCC optimize("no-ivopts")
+#endif
ZEND_API void {%EXECUTOR_NAME%}_ex(zend_execute_data *ex)
{
DCL_OPLINE
@@ -20,6 +25,9 @@ ZEND_API void {%EXECUTOR_NAME%}_ex(zend_execute_data *ex)
}
zend_error_noreturn(E_CORE_ERROR, "Arrived at end of main loop which shouldn't happen");
}
+#if (ZEND_VM_KIND != ZEND_VM_KIND_CALL) && (ZEND_GCC_VERSION >= 4000) && !defined(__clang__)
+# pragma GCC pop_options
+#endif
ZEND_API void zend_{%EXECUTOR_NAME%}(zend_op_array *op_array, zval *return_value)
{