Merge branch 'PHP-7.4'

* PHP-7.4:
  Disable "bad" optimisations only for emulation loop
This commit is contained in:
Dmitry Stogov 2019-05-30 20:43:17 +03:00
commit 0a6a350371
3 changed files with 16 additions and 10 deletions

View File

@ -4295,18 +4295,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) {

View File

@ -55943,6 +55943,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
@ -66789,6 +66794,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)
{

View File

@ -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)
{