Repository navigation
Conversation
|
THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS Validation record for head Coordinated candidate: PyVEX Rebase: the ARM source blob and the PyVEX regression/workflow blobs are unchanged from the preceding published heads. The PyVEX gitlink now names the VEX rebased commit, preserving the AVX512 baseline.
Workspace gate and limits
The remaining suites ran with Suites skipped because their repositories were not adopted: archinfo, pypcode, cle, angr, angr-rust, and angr-management. Workspace, test-inputs, test-packages, and pre-commit were not repeated in the resumed command. Decompiler snapshots were not run locally. This replaces the earlier-head validation. Its corpus, fixture-rebuild, mutant-control, and hosted-CI measurements were not rerun for these heads and are not claimed as current validation. |
|
THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS Lift result for Before vex baseline e306287{"case": "mixed_width_after", "itstate_reads": 1, "exits": ["0x110c9"], "size": 2, "jumpkind": "Ijk_Ret"}After vex head 866bb8c{"case": "mixed_width_after", "itstate_reads": 0, "exits": [], "size": 2, "jumpkind": "Ijk_Ret"}To reproduce, read fixture bytes |
02e39d4 to
1f47b55
Compare
Walk each possible IT candidate forward using exact Thumb instruction widths before clearing ITSTATE. Continue past expired candidates so halfwords within 32-bit encodings cannot hide an older active IT.
1f47b55 to
866bb8c
Compare
THIS MESSAGE WAS GENERATED BY AN AUTOMATED PROCESS
Problem
Lifting
mixed_width_afterat0x110c6in the compiler-built Thumb fixture retains ITSTATE after its mixed-width IT group has ended. At optimization level 1, the baseline emits a false conditional exit to Thumb address0x110c9.Root cause
The ARM decoder allowed two halfwords per guarded instruction during its backward IT search. It could not prove that a mixed-width group had expired, and an expired
0xbf08halfword insideLDREXcould hide an older active IT candidate.Fix
Walk forward from each candidate using the actual 16- or 32-bit Thumb instruction widths. Mark the current instruction conditional only when the candidate reaches it, and continue searching after an expired false candidate.
Testing
The dependent PyVEX regression uses a compiler-built Thumb fixture to cover mixed-width expiry, conservative insufficient or disabled lookback, an expired false candidate inside
LDREX, and the nine-halfword window edge. Validation: #92 (comment)session: sharpen