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>
12 lines
293 B
JSON
12 lines
293 B
JSON
[
|
|
{
|
|
"description": "Pseudorandom test for CCMPNG",
|
|
"id": "ccmpng64",
|
|
"format": "bin",
|
|
"source": "ccmpng.asm",
|
|
"option": "--bits 64 -w-ea-absolute -w-implicit-abs-deprecated -I./travis/insns/ccmpng/",
|
|
"target": [
|
|
{ "output": "ccmpng.bin64", "match": "ccmpng.bin64.t" }
|
|
]
|
|
}
|
|
]
|