mirror of
https://github.com/netwide-assembler/nasm
synced 2026-08-26 16:23:04 -04:00
Extract the condition-code suffix table (%conds, @conds, and the c_ccmask/c_nd/c_cc/c_scc bitmasks) out of x86/insns.pl's conditional_forms() into a new shared x86/insns-cc.ph module, adding cc_suffix_list($is_scc) to return the suffix list applicable to a '...cc'-family (Jcc, SETcc, CMOVcc, CFCMOVcc) or '...scc'-family (CCMPscc, CTESTscc, CMPccXADD, SETccZU) placeholder mnemonic. insns.pl is refactored to use it (behavior-preserving: verified byte-identical x86/insnsa.c, insnsb.c, insnsd.c, insnsi.h, insnsn.c, iflag.c, iflaggen.h, asm/tokhash.c, asm/tokens.h before/after). tools/testgen/gen-insn-tests.pl now requires the same module instead of hand-rolling a 16-suffix 'cc'-only expansion table, closing the gap where the APX 'scc'-suffix families (CCMPscc/CTESTscc/CMPccXADD/ SETccZU) were dropped as unsupported. The generator now detects and expands any '...cc'/'...scc' placeholder mnemonic the same way insns.pl's conditional_forms() does (case-sensitive /s?cc/ match and substitution), so future new cc/scc families need no generator changes. Mnemonics with generated tests: 2432 -> 2606 (+174, one per newly-expanded scc-family condition); dropped: 20 -> 16. Regenerated travis/insns/ (174 new mnemonic dirs for the APX scc families; existing 2432 regenerated byte-identically, confirming determinism). Full suite validated both via tools/travis/nasm-t.py --directory=./travis run (4427 total, 4426 PASS, 1 pre-existing SKIP, 0 FAIL) and via make -j32 travis (all tests PASS, ~28s). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
68 B
68 B