gh-106529: Implement POP_JUMP_IF_XXX uops#106551
Merged
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds:
Hand-written uops
_POP_JUMP_IF_{TRUE,FALSE}. These pop the top of the stack. The jump target (in superblock space) is absolute.Hand-written translation for
POP_JUMP_IF_{TRUE,FALSE}, assuming the jump is unlikely. Once we implement jump-likelihood profiling, we can implement the jump-unlikely case.Note that the stubs are placed at the end of the trace array (and not counted in the return value of translate_bytecode_to_trace(), which is a bid dodgy). There is a gap between the main superblock and the stubs. We could close the gap, we'd just have to patch up the JUMP uops.
TODO in this PR:
TODO in a follow-up PR: