Repository navigation
Conversation
plafosse
force-pushed
the
test_armv7_semantic_float_flags
branch
from
October 7, 2026 13:11
d156ff6 to
6de29f2
Compare
Emit semantic condition groups in ARM and Thumb lifted IL and classify VFP comparison flag writes separately from integer writes. GE can then resolve directly to floating >= before MLIL or HLIL propagation. Map only floating conditions that exactly match the architectural NZCV outcomes, preserving flag expansion for unordered-inclusive conditions and mixed definitions. Keep carry inversion boolean-sized and update lifting expectations. Add public regression tests for all 14 conditions in ARM and Thumb mode at both floating widths, including NaNs, signed zero, infinities, overwritten flags, and integer comparison controls. Validation: all 62 public semantic tests pass against the existing core, and the existing ARM/Thumb lifting suite passes.
plafosse
force-pushed
the
test_armv7_semantic_float_flags
branch
from
October 7, 2026 13:45
6de29f2 to
48fdf1c
Compare
plafosse
marked this pull request as ready for review
October 7, 2026 16:24
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
ARM and Thumb
GEafter a VFP comparison currently expands intoN == V, producing(a < b) == is_unordered(a, b)in higher IL. Emit semantic flag groups and classify VFP flag writes as floating point so the resolver can produceLLIL_FCMP_GEdirectly.Map only predicates that exactly match the VFP NZCV outcomes. Conditions that include unordered outcomes, and conditions with mixed reaching flag definitions, retain the architectural flag expression. Integer condition mappings are preserved; VFP carry inversion uses boolean-width NOT.