Skip to content

Commit a129151

Browse files
committed
Attempt to fix incorrect reported throwing function
1 parent 6e9a830 commit a129151

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

ext/opcache/jit/zend_jit_ir.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16646,6 +16646,11 @@ static bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa *ssa,
1664616646

1664716647
static void jit_frameless_icall0(zend_jit_ctx *jit, const zend_op *opline)
1664816648
{
16649+
if (GCC_GLOBAL_REGS) {
16650+
// EX(opline) = opline
16651+
ir_STORE(jit_EX(opline), jit_IP(jit));
16652+
}
16653+
1664916654
void *function = zend_flf_handlers[opline->extended_value];
1665016655
zend_jit_addr res_addr = RES_ADDR();
1665116656
ir_ref res_ref = jit_ZVAL_ADDR(jit, res_addr);
@@ -16655,6 +16660,11 @@ static void jit_frameless_icall0(zend_jit_ctx *jit, const zend_op *opline)
1665516660

1665616661
static void jit_frameless_icall1(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info)
1665716662
{
16663+
if (GCC_GLOBAL_REGS) {
16664+
// EX(opline) = opline
16665+
ir_STORE(jit_EX(opline), jit_IP(jit));
16666+
}
16667+
1665816668
void *function = zend_flf_handlers[opline->extended_value];
1665916669
zend_jit_addr res_addr = RES_ADDR();
1666016670
zend_jit_addr op1_addr = OP1_ADDR();
@@ -16669,6 +16679,11 @@ static void jit_frameless_icall1(zend_jit_ctx *jit, const zend_op *opline, uint3
1666916679

1667016680
static void jit_frameless_icall2(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t op2_info)
1667116681
{
16682+
if (GCC_GLOBAL_REGS) {
16683+
// EX(opline) = opline
16684+
ir_STORE(jit_EX(opline), jit_IP(jit));
16685+
}
16686+
1667216687
void *function = zend_flf_handlers[opline->extended_value];
1667316688
zend_jit_addr res_addr = RES_ADDR();
1667416689
zend_jit_addr op1_addr = OP1_ADDR();
@@ -16688,6 +16703,11 @@ static void jit_frameless_icall2(zend_jit_ctx *jit, const zend_op *opline, uint3
1668816703

1668916704
static void jit_frameless_icall3(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t op2_info, uint32_t op1_data_info)
1669016705
{
16706+
if (GCC_GLOBAL_REGS) {
16707+
// EX(opline) = opline
16708+
ir_STORE(jit_EX(opline), jit_IP(jit));
16709+
}
16710+
1669116711
void *function = zend_flf_handlers[opline->extended_value];
1669216712
zend_jit_addr res_addr = RES_ADDR();
1669316713
zend_jit_addr op1_addr = OP1_ADDR();

0 commit comments

Comments
 (0)