File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -1691,13 +1691,25 @@ static int zend_jit_exception_handler_stub(dasm_State **Dst)
1691
1691
1692
1692
if (GCC_GLOBAL_REGS) {
1693
1693
| add r4, SPAD // stack alignment
1694
+ | EXT_JMP handler, r0
1695
+ } else if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
1696
+ | mov FCARG1a, FP
1697
+ | EXT_CALL handler, r0
1698
+ | mov FP, aword T2 // restore FP
1699
+ | mov RX, aword T3 // restore IP
1700
+ | add r4, NR_SPAD // stack alignment
1701
+ | test eax, eax
1702
+ | jl >1
1703
+ | mov r0, 1 // ZEND_VM_ENTER
1704
+ |1:
1705
+ | ret
1694
1706
} else {
1695
1707
| mov FCARG1a, FP
1696
1708
| mov FP, aword T2 // restore FP
1697
1709
| mov RX, aword T3 // restore IP
1698
1710
| add r4, NR_SPAD // stack alignment
1711
+ | EXT_JMP handler, r0
1699
1712
}
1700
- | EXT_JMP handler, r0
1701
1713
}
1702
1714
1703
1715
return 1;
@@ -2487,6 +2499,8 @@ static int zend_jit_trace_exit_stub(dasm_State **Dst)
2487
2499
| mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
2488
2500
| mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)]
2489
2501
| call aword [IP + r0]
2502
+ | test eax, eax
2503
+ | jl ->trace_halt
2490
2504
| mov FP, aword T2 // restore FP
2491
2505
| mov RX, aword T3 // restore IP
2492
2506
| add r4, NR_SPAD // stack alignment
You can’t perform that action at this time.
0 commit comments