Make AMD64 field operations safe for in-place use - #2401
Conversation
|
Local review found no further patch changes necessary. I audited all 43 snapshot prologues for exact input coverage, stack-pointer balance, and separation between existing scratch space and the new snapshots. GCC and Clang runtime tests both pass all 620 assembly implementations. I also ran an alias-aware symbolic equivalence checker over all seven affected operation groups; every group passed the ordinary disjoint-buffer equivalence check and the GitHub currently shows no completed failures. The full
|
Summary
out1 == arg1andout1 == arg2The regression assembles each implementation, compares its distinct-buffer result with the corresponding generated C function, and then verifies both supported output/input aliasing forms. This addresses Scrutineer finding #2521.
Testing
fiat-amd64/test_aliasing.pyCC=clang fiat-amd64/test_aliasing.pypython3 -m py_compile fiat-amd64/test_aliasing.pygit diff --checkBoth GCC and Clang runs report:
The extracted Coq checker was not available locally because the isolated worktree lacked
etc/coq-scripts/Makefile.vo_closure; clean CI should formally revalidate the modified hints. Existing performance ratio/footer metadata also predates the snapshot prologues and should be rebenchmarked before marking this ready.