mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Disable "bad" optimisations only for emulation loop
This commit is contained in:
@@ -4437,18 +4437,8 @@ static zend_never_inline int ZEND_FASTCALL zend_quick_check_constant(
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#if ZEND_GCC_VERSION >= 4000 && !defined(__clang__)
|
||||
# pragma GCC push_options
|
||||
# pragma GCC optimize("no-gcse")
|
||||
# pragma GCC optimize("no-ivopts")
|
||||
#endif
|
||||
|
||||
#include "zend_vm_execute.h"
|
||||
|
||||
#if ZEND_GCC_VERSION >= 4000 && !defined(__clang__)
|
||||
# pragma GCC pop_options
|
||||
#endif
|
||||
|
||||
ZEND_API int zend_set_user_opcode_handler(zend_uchar opcode, user_opcode_handler_t handler)
|
||||
{
|
||||
if (opcode != ZEND_USER_OPCODE) {
|
||||
|
||||
@@ -54854,6 +54854,11 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_NULL_HANDLER(ZEND_OPCODE_HANDL
|
||||
#endif
|
||||
|
||||
|
||||
#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 execute_ex(zend_execute_data *ex)
|
||||
{
|
||||
DCL_OPLINE
|
||||
@@ -65700,6 +65705,9 @@ zend_leave_helper_SPEC_LABEL:
|
||||
}
|
||||
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_execute(zend_op_array *op_array, zval *return_value)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user