diff options
-rw-r--r-- | Zend/zend_execute.h | 4 | ||||
-rw-r--r-- | Zend/zend_execute_API.c | 4 | ||||
-rw-r--r-- | ext/opcache/jit/zend_jit_x86.dasc | 17 |
3 files changed, 8 insertions, 17 deletions
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index ab96d43c4c..62cee34452 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -155,8 +155,8 @@ static zend_always_inline zval* zend_assign_to_variable(zval *variable_ptr, zval return variable_ptr; } -ZEND_API zend_result zval_update_constant(zval *pp); -ZEND_API zend_result zval_update_constant_ex(zval *pp, zend_class_entry *scope); +ZEND_API zend_result ZEND_FASTCALL zval_update_constant(zval *pp); +ZEND_API zend_result ZEND_FASTCALL zval_update_constant_ex(zval *pp, zend_class_entry *scope); /* dedicated Zend executor functions - do not use! */ struct _zend_vm_stack { diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 7572a0d890..2eb3463eff 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -610,7 +610,7 @@ ZEND_API zend_bool zend_is_executing(void) /* {{{ */ } /* }}} */ -ZEND_API zend_result zval_update_constant_ex(zval *p, zend_class_entry *scope) /* {{{ */ +ZEND_API zend_result ZEND_FASTCALL zval_update_constant_ex(zval *p, zend_class_entry *scope) /* {{{ */ { if (Z_TYPE_P(p) == IS_CONSTANT_AST) { zend_ast *ast = Z_ASTVAL_P(p); @@ -638,7 +638,7 @@ ZEND_API zend_result zval_update_constant_ex(zval *p, zend_class_entry *scope) / } /* }}} */ -ZEND_API zend_result zval_update_constant(zval *pp) /* {{{ */ +ZEND_API zend_result ZEND_FASTCALL zval_update_constant(zval *pp) /* {{{ */ { return zval_update_constant_ex(pp, EG(current_execute_data) ? zend_get_executed_scope() : CG(active_class_entry)); } diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index 1621389bd2..851490add7 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -12408,19 +12408,10 @@ static int zend_jit_recv_init(dasm_State **Dst, const zend_op *opline, const zen } else { | ADDR_OP2_2 mov, aword EX->opline, opline, r0 } - |.if X64 - | LOAD_ZVAL_ADDR CARG1, res_addr - | mov r0, EX->func - | mov CARG2, [r0 + offsetof(zend_op_array, scope)] - | EXT_CALL zval_update_constant_ex, r0 - |.else - | sub r4, 8 - | mov r0, EX->func - | push dword [r0 + offsetof(zend_op_array, scope)] - | PUSH_ZVAL_ADDR res_addr, r0 - | EXT_CALL zval_update_constant_ex, r0 - | add r4, 16 - |.endif + | LOAD_ZVAL_ADDR FCARG1a, res_addr + | mov r0, EX->func + | mov FCARG2a, [r0 + offsetof(zend_op_array, scope)] + | EXT_CALL zval_update_constant_ex, r0 | test al, al | jnz >1 |.cold_code |