summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2019-04-02 22:10:57 +0300
committerDmitry Stogov <dmitry@zend.com>2019-04-02 22:10:57 +0300
commit803d32224055373cfabd7695e456f4e1382d44ab (patch)
treea347bcbb5e07f1b45c651566b412d3c055232ff3
parent672d80f5dcb12a06d200969b8159badd45a57c0d (diff)
downloadphp-git-803d32224055373cfabd7695e456f4e1382d44ab.tar.gz
Use fastcall calling convention
-rw-r--r--Zend/zend_execute.h2
-rw-r--r--Zend/zend_execute_API.c2
-rw-r--r--ext/opcache/jit/zend_jit_x86.dasc6
3 files changed, 3 insertions, 7 deletions
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index 76f7d09f43..59b0742d82 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -344,7 +344,7 @@ ZEND_API zend_bool zend_is_executing(void);
ZEND_API void zend_set_timeout(zend_long seconds, int reset_signals);
ZEND_API void zend_unset_timeout(void);
-ZEND_API ZEND_NORETURN void zend_timeout(int dummy);
+ZEND_API ZEND_NORETURN void ZEND_FASTCALL zend_timeout(int dummy);
ZEND_API zend_class_entry *zend_fetch_class(zend_string *class_name, int fetch_type);
ZEND_API zend_class_entry *zend_fetch_class_by_name(zend_string *class_name, zend_string *lcname, int fetch_type);
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index aaf7f72cb6..07113bf69e 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -1063,7 +1063,7 @@ ZEND_API int zend_eval_string_ex(char *str, zval *retval_ptr, char *string_name,
static void zend_set_timeout_ex(zend_long seconds, int reset_signals);
-ZEND_API ZEND_NORETURN void zend_timeout(int dummy) /* {{{ */
+ZEND_API ZEND_NORETURN void ZEND_FASTCALL zend_timeout(int dummy) /* {{{ */
{
#if defined(PHP_WIN32)
# ifndef ZTS
diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc
index dbdaeda4d8..1a1b5209de 100644
--- a/ext/opcache/jit/zend_jit_x86.dasc
+++ b/ext/opcache/jit/zend_jit_x86.dasc
@@ -1724,11 +1724,7 @@ static int zend_jit_interrupt_handler_stub(dasm_State **Dst)
| MEM_OP2_1_ZTS cmp, byte, executor_globals, timed_out, 0, r0
| je >1
| //zend_timeout(0);
- |.if X64
- | xor CARG1d, CARG1d
- |.else
- | push 0
- |.endif
+ | xor FCARG1d, FCARG1d
| EXT_CALL zend_timeout, r0
|1:
| //} else if (zend_interrupt_function) {