Skip to content

[ARM64_DYNAREC] Fixed BOUND leaking a cleared deferred flags state - #4633

Merged
ptitSeb merged 1 commit into
ptitSeb:mainfrom
ksco:arm-fix-6
Oct 30, 2026
Merged

ptitSeb merged 1 commit into
ptitSeb:mainfrom
ksco:arm-fix-6

Conversation

@ksco

@ksco ksco commented Oct 30, 2026

Copy link
Copy Markdown
Collaborator

The BOUND handler emits a conditional CALL_S() and then continues. call_c() clears df and sets dyn->f to status_none, but only on the taken path. The fall-through kept a pending df while the codegen thought it was cleared, so the stale deferred op was re-applied later and corrupted the flags. Save and restore dyn->f around that call.

The BOUND handler emits a conditional CALL_S() and then continues. call_c()
clears df and sets dyn->f to status_none, but only on the taken path. The
fall-through kept a pending df while the codegen thought it was cleared, so
the stale deferred op was re-applied later and corrupted the flags. Save and
restore dyn->f around that call.
@ptitSeb
ptitSeb merged commit 5250c6e into ptitSeb:main Oct 30, 2026
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants