mirror of
https://github.com/php/php-src.git
synced 2026-04-01 13:12:16 +02:00
Merge branch 'PHP-8.1'
This commit is contained in:
@@ -24,12 +24,18 @@
|
||||
* *
|
||||
****************************************************************************************/
|
||||
|
||||
# if defined __CET__
|
||||
# include <cet.h>
|
||||
# else
|
||||
# define _CET_ENDBR
|
||||
# endif
|
||||
.file "jump_x86_64_sysv_elf_gas.S"
|
||||
.text
|
||||
.globl jump_fcontext
|
||||
.type jump_fcontext,@function
|
||||
.align 16
|
||||
jump_fcontext:
|
||||
_CET_ENDBR
|
||||
leaq -0x38(%rsp), %rsp /* prepare stack */
|
||||
|
||||
#if !defined(BOOST_USE_TSX)
|
||||
|
||||
@@ -24,12 +24,18 @@
|
||||
* *
|
||||
****************************************************************************************/
|
||||
|
||||
# if defined __CET__
|
||||
# include <cet.h>
|
||||
# else
|
||||
# define _CET_ENDBR
|
||||
# endif
|
||||
.file "make_x86_64_sysv_elf_gas.S"
|
||||
.text
|
||||
.globl make_fcontext
|
||||
.type make_fcontext,@function
|
||||
.align 16
|
||||
make_fcontext:
|
||||
_CET_ENDBR
|
||||
/* first arg of make_fcontext() == top of context-stack */
|
||||
movq %rdi, %rax
|
||||
|
||||
@@ -66,11 +72,13 @@ make_fcontext:
|
||||
trampoline:
|
||||
/* store return address on stack */
|
||||
/* fix stack alignment */
|
||||
_CET_ENDBR
|
||||
push %rbp
|
||||
/* jump to context-function */
|
||||
jmp *%rbx
|
||||
|
||||
finish:
|
||||
_CET_ENDBR
|
||||
/* exit code is zero */
|
||||
xorq %rdi, %rdi
|
||||
/* exit application */
|
||||
|
||||
@@ -141,7 +141,7 @@ typedef struct {
|
||||
|
||||
/* These functions are defined in assembler files provided by boost.context (located in "Zend/asm"). */
|
||||
extern void *make_fcontext(void *sp, size_t size, void (*fn)(boost_context_data));
|
||||
extern boost_context_data jump_fcontext(void *to, zend_fiber_transfer *transfer);
|
||||
extern ZEND_INDIRECT_RETURN boost_context_data jump_fcontext(void *to, zend_fiber_transfer *transfer);
|
||||
#endif
|
||||
|
||||
ZEND_API zend_class_entry *zend_ce_fiber;
|
||||
|
||||
@@ -679,4 +679,10 @@ extern "C++" {
|
||||
# define ZEND_VOIDP(ptr) (ptr)
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && ZEND_GCC_VERSION >= 9000
|
||||
# define ZEND_INDIRECT_RETURN __attribute__((__indirect_return__))
|
||||
#else
|
||||
# define ZEND_INDIRECT_RETURN
|
||||
#endif
|
||||
|
||||
#endif /* ZEND_PORTABILITY_H */
|
||||
|
||||
Reference in New Issue
Block a user