diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 7e52348cb2f..c8888a4baf6 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -229,6 +229,15 @@ ZEND_API zval* zend_get_compiled_variable_value(const zend_execute_data *execute return EX_VAR(var); } +ZEND_API bool zend_gcc_global_regs(void) +{ + #if defined(HAVE_GCC_GLOBAL_REGS) + return 1; + #else + return 0; + #endif +} + static zend_always_inline zval *_get_zval_ptr_tmp(uint32_t var EXECUTE_DATA_DC) { zval *ret = EX_VAR(var); diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index d13087a5b02..36cf921f1a5 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -360,6 +360,8 @@ ZEND_API void zend_fetch_dimension_const(zval *result, zval *container, zval *di ZEND_API zval* zend_get_compiled_variable_value(const zend_execute_data *execute_data_ptr, uint32_t var); +ZEND_API bool zend_gcc_global_regs(void); + #define ZEND_USER_OPCODE_CONTINUE 0 /* execute next opcode */ #define ZEND_USER_OPCODE_RETURN 1 /* exit from executor (return from function) */ #define ZEND_USER_OPCODE_DISPATCH 2 /* call original opcode handler */ diff --git a/Zend/zend_vm.h b/Zend/zend_vm.h index f246e7fb775..1b7cf1362d7 100644 --- a/Zend/zend_vm.h +++ b/Zend/zend_vm.h @@ -29,6 +29,7 @@ ZEND_API const void* ZEND_FASTCALL zend_get_opcode_handler_func(const zend_op *o ZEND_API const zend_op *zend_get_halt_op(void); ZEND_API int ZEND_FASTCALL zend_vm_call_opcode_handler(zend_execute_data *ex); ZEND_API int zend_vm_kind(void); +ZEND_API bool zend_gcc_global_regs(void); void zend_vm_init(void); void zend_vm_dtor(void);