Skip to content

[pull] master from php:master#645

Merged
pull[bot] merged 4 commits intoConnectionMaster:masterfrom
php:master
Apr 2, 2026
Merged

[pull] master from php:master#645
pull[bot] merged 4 commits intoConnectionMaster:masterfrom
php:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 2, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

iluuu1994 and others added 4 commits April 2, 2026 11:33
When a smart branch and jump live in separate basic blocks, the JIT can't skip
the jitting of the jump, as it may be reachable through another predecessor.
When the smart branch is executed using zend_jit_handler(), we're manually
writing the result of the branch to the given temporary so that the jump will
work as expected. That happens in zend_jit_set_cond().

However, this was only correctly handled for JMPZ branches. The current opline
was compared to opline following the jump, which would set the var to 1 if
equal, i.e. the branch was not taken, meaning var was not zero. For JMPNZ we
need to do the opposite.

Fixes GH-21593
* PHP-8.4:
  Fix function JIT JMPNZ smart branch
* PHP-8.5:
  Fix function JIT JMPNZ smart branch
@pull pull Bot locked and limited conversation to collaborators Apr 2, 2026
@pull pull Bot added the ⤵️ pull label Apr 2, 2026
@pull pull Bot merged commit 818bc8a into ConnectionMaster:master Apr 2, 2026
1 check passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants