Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6d1fbd2

Browse files
committed
Always use return address
1 parent 98bacde commit 6d1fbd2

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

‎ext/opcache/jit/zend_jit_arm64.dasc‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10936,7 +10936,15 @@ static int zend_jit_return(dasm_State **Dst, const zend_op *opline, const zend_o
1093610936
}
1093710937

1093810938
if (return_value_used == 0) {
10939-
/* pass */
10939+
if (ZEND_OBSERVER_ENABLED && Z_MODE(op1_addr) == IS_REG) {
10940+
zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);
10941+
10942+
if (!zend_jit_spill_store(Dst, op1_addr, dst, op1_info, 1)) {
10943+
return 0;
10944+
}
10945+
op1_addr = dst;
10946+
}
10947+
ret_addr = op1_addr;
1094010948
} else if (opline->op1_type == IS_CONST) {
1094110949
zval *zv = RT_CONSTANT(opline, opline->op1);
1094210950
| ZVAL_COPY_CONST ret_addr, MAY_BE_ANY, MAY_BE_ANY, zv, ZREG_REG0, ZREG_TMP1, ZREG_FPR0
@@ -11005,14 +11013,6 @@ static int zend_jit_return(dasm_State **Dst, const zend_op *opline, const zend_o
1100511013

1100611014
|9:
1100711015
if (ZEND_OBSERVER_ENABLED) {
11008-
if (Z_MODE(op1_addr) == IS_REG) {
11009-
zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);
11010-
11011-
if (!zend_jit_spill_store(Dst, op1_addr, dst, op1_info, 1)) {
11012-
return 0;
11013-
}
11014-
op1_addr = dst;
11015-
}
1101611016
| LOAD_ZVAL_ADDR FCARG2x, op1_addr
1101711017
| mov FCARG1x, FP
1101811018
| SET_EX_OPLINE opline, REG0

‎ext/opcache/jit/zend_jit_x86.dasc‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11649,7 +11649,15 @@ static int zend_jit_return(dasm_State **Dst, const zend_op *opline, const zend_o
1164911649
}
1165011650

1165111651
if (return_value_used == 0) {
11652-
/* pass */
11652+
if (ZEND_OBSERVER_ENABLED && Z_MODE(op1_addr) == IS_REG) {
11653+
zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);
11654+
11655+
if (!zend_jit_spill_store(Dst, op1_addr, dst, op1_info, 1)) {
11656+
return 0;
11657+
}
11658+
op1_addr = dst;
11659+
}
11660+
ret_addr = op1_addr;
1165311661
} else if (opline->op1_type == IS_CONST) {
1165411662
zval *zv = RT_CONSTANT(opline, opline->op1);
1165511663
| ZVAL_COPY_CONST ret_addr, MAY_BE_ANY, MAY_BE_ANY, zv, ZREG_R0
@@ -11717,14 +11725,6 @@ static int zend_jit_return(dasm_State **Dst, const zend_op *opline, const zend_o
1171711725

1171811726
|9:
1171911727
if (ZEND_OBSERVER_ENABLED) {
11720-
if (Z_MODE(op1_addr) == IS_REG) {
11721-
zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);
11722-
11723-
if (!zend_jit_spill_store(Dst, op1_addr, dst, op1_info, 1)) {
11724-
return 0;
11725-
}
11726-
op1_addr = dst;
11727-
}
1172811728
| LOAD_ZVAL_ADDR FCARG2a, op1_addr
1172911729
| mov FCARG1a, FP
1173011730
| SET_EX_OPLINE opline, r0

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /