Merge branch 'ppc-audit-fix/p4-abi-truncation' — Phase 4 ABI truncation
Phase 4 of the PPC instruction audit fix application: 32-bit ABI writeback truncation across the integer ALU. Six commits + one review-fix land ~43 PPCBUG IDs. -e18a0a4: 4a active poisoning, NOT/SUB family (006/008/018/019/028/029/030/031/033) -145a7a4: 4a/4d coupled extsbx+extshx + CR0 (034+035+036+037) -bf8208e: 4b immediate ALU (001/002/003/004/005/007) -82a9bff: 4b mul/div + srawx coupled (009/010+011/041+042+043) -20a730d: 4b halfword + lwa loads (095/096/097/098/105) -16993bb: 4c latent + 4d CR0 catch-all (012-017/020/023-026/032/044) -49103bb: review-fix — subfx/subfcx OE predicate + mulli test rigor Independent reviewer caught a blocking issue: subfx/subfcx OE handlers in batch 6 hadn't been migrated to the inline 32-bit overflow predicate (`true_diff != (result32 as i32) as i128`), still using the legacy `sum_overflow_64` which gave spurious OV=1 for any legitimate i32::MIN result. Fixed in49103bbwith two new discriminating regression tests. Verification at merge: cargo test --workspace --release reports 494 passed, 0 failed. Acid test deferred to end of all phases per user direction. The 32-bit ABI invariant — every GPR write zero-extends from a u32 result, every CR0 update views the result as i32 — is now systematically restored across the integer ALU. Downstream 64-bit unsigned compares (the addis-incident shape) can no longer be fed polluted upper bits.
This commit is contained in: