mirror of
https://github.com/netwide-assembler/nasm
synced 2026-08-26 16:23:04 -04:00
No description
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> |
||
|---|---|---|
| .github/workflows | ||
| asm | ||
| autoconf | ||
| common | ||
| config | ||
| contrib | ||
| disasm | ||
| doc | ||
| editors | ||
| include | ||
| macros | ||
| misc | ||
| Mkfiles | ||
| nasmlib | ||
| nsis | ||
| output | ||
| perllib | ||
| stdlib | ||
| templates | ||
| test | ||
| tools | ||
| travis | ||
| win | ||
| x86 | ||
| zlib | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .travis.yml | ||
| AUTHORS | ||
| autogen.sh | ||
| ChangeLog | ||
| CHANGES | ||
| configure.ac | ||
| INSTALL | ||
| LICENSE | ||
| Makefile.in | ||
| nasm.spec.in | ||
| nasm.spec.sed | ||
| nasm.txt | ||
| ndisasm.txt | ||
| README.md | ||
| SubmittingPatches | ||
| travis.mk.in | ||
| version | ||
| version.pl | ||
NASM, the Netwide Assembler
Many many developers all over the net respect NASM for what it is: a widespread (thus netwide), portable (thus netwide!), very flexible and mature assembler tool with support for many output formats (thus netwide!!).
Now we have good news for you: NASM is licensed under the "simplified" (2-clause) BSD license. This means its development is open to even wider society of programmers wishing to improve their lovely assembler.
Visit our nasm.us website for more details.
With best regards, the NASM crew.