0
0
mirror of https://github.com/netwide-assembler/nasm.git synced 2025-10-10 00:25:06 -04:00
Commit Graph

5349 Commits

Author SHA1 Message Date
H. Peter Anvin
cf538e23dd doc: tweak the HTML look of fixed text
Go for 90% rather than 80% size;
For inline (code) tags make font bold.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-29 17:22:56 -07:00
H. Peter Anvin
7582ebb22a doc: more HTML formatting hacks
Make the titles look nicer...

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-29 17:15:43 -07:00
H. Peter Anvin
6a8b135389 NASM 3.00rc16 nasm-3.00rc16 2025-09-29 16:34:41 -07:00
H. Peter Anvin
55b179ef37 doc: add a few more items to the clean target
Add a few more things that should be cleaned up when making the
documentation...

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-29 16:30:57 -07:00
H. Peter Anvin
12f6270124 asm: better error messages for missing instructions
The assembler can't know if something is a colonless label or a
misspelled instruction, so print both when complaining about a missing
instruction.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-29 16:09:04 -07:00
H. Peter Anvin
fec865e75e macros: add a %use vtern macro package for ternary logic
A very simple %use package to support the ternary logic
instructions.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-29 15:51:23 -07:00
H. Peter Anvin
33f309c886 Merge remote-tracking branch 'maciej/apx.wip.for-hpa' 2025-09-29 15:30:13 -07:00
H. Peter Anvin
c67b688f37 doc: more HTML compliance and prettification work 2025-09-29 14:31:24 -07:00
H. Peter Anvin
0e253844da doc: prettify the HTML documentation
- Improve the look of the TOC
- Add some highlight to code blocks

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-29 11:28:12 -07:00
Maciej Wieczor-Retman
c5f7fb183a insns: Move NOP and HINT_NOP at the end of the file
For disassembler to work correctly NOPs should be at the very end of the
database file.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-29 17:17:39 +02:00
Maciej Wieczor-Retman
7db0df3a2d doc: Call/Jump subchapter and far call syntax
Start the subchapter on jmp and call syntax summary. Move the far call
syntax paragraph from language chapter to the syntax chapter.

Add a couple of paragraphs about possible syntaxes of the jump/call
instructions.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-29 15:08:04 +02:00
Maciej Wieczor-Retman
6cf6693fda doc: Add subchapter on NDS/NDD compact syntax
Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-29 15:07:35 +02:00
Maciej Wieczor-Retman
9abbc4aa41 doc: 64 bit moffs in the syntax chapter
Mention 64 bit moffs and link to the section in the 64-bit chapter.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-29 15:05:42 +02:00
Maciej Wieczor-Retman
1653419dde doc: Move the split EA note to the syntax chapter
Add a split EA subchapter to the syntax chapter end remove it from the
language chapter, leaving a hyperlink to the new location.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-29 15:03:46 +02:00
Maciej Wieczor-Retman
b48741a833 doc: Add note on lack of syntax for the ternary logic instruction
Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-29 14:59:57 +02:00
Maciej Wieczor-Retman
9eb39f7ff6 doc: Move APX doc to the syntax doc
The syntax chapter is supposed to be about concepts or instructions that
either have a lot of different syntaxes or new/odd ones.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-26 22:12:40 +02:00
Maciej Wieczor-Retman
0e55f84762 doc: Fix missing index tag
\I without anything in the curly brackets made the "procedure linkage
table" text disappear.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-26 22:12:40 +02:00
Maciej Wieczor-Retman
a9b35e56b2 doc: Fix missing closing curly brackets
Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-26 22:06:14 +02:00
H. Peter Anvin
945d4327b5 build: even more fixes for building in a separate directory
Move the directories dependency to a variable to break secondary make
versions.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 13:28:08 -07:00
H. Peter Anvin
fb9afe4226 build: more fixes for building in a separate build directory
- Fix additional broken rules
- Add some more files to WARNOBJ
- $^ is not supported by POSIX, apparently
- Update warnings.pl to *actually* use the srcdir and list of
  passed-in files.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 13:20:29 -07:00
H. Peter Anvin
1f095bea4a Makefile.in: fix rules for separate-directory build
1. POSIX does not allow $< in a non-pattern rule.
2. insns.xda is a build-time generated file.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 12:18:02 -07:00
H. Peter Anvin
35bd26e17a NASM 3.00rc15 nasm-3.00rc15 2025-09-25 12:11:06 -07:00
H. Peter Anvin
1fd289c340 doc: cccl for compiling with MSVC, source build section edits
Make a note about the availability of the cccl wrapper for building
with MSVC using GNU make.

Minor tidying up of the building from source section in general.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 12:08:58 -07:00
H. Peter Anvin
729abf395d Makefile.in: remove additional path guards
They don't work, and can cause problems.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 09:46:11 -07:00
H. Peter Anvin
5f67f04f00 Makefile: make nsis building work in a separate build directory
Use $< rather than the hard-coded path

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 09:30:12 -07:00
H. Peter Anvin
ac1a64c4d2 Makefile: move syncfiles into a separate target
It isn't actually required to have $(PERLREQ) to run syncfiles,
so factor it out into a separate target.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 09:26:01 -07:00
H. Peter Anvin
512f587ed6 Makefile.in: remove '' filename protect; they don't work anyway
Using '' filename protects break the generated alternative makefiles,
but it is also largely useless -- building in relative paths which
require escaping breaks anyway as make and the shell would require
different escaping.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 09:13:16 -07:00
H. Peter Anvin
df6b966ca9 nasmlib.h: use int for the enum macros, for strict ISO C
ISO C before C23 restricted enum ranges to type "int" (not even
"unsigned int"). This limits the usability of enums for bit fields,
but it still covers our main use cases.

On gcc/clang this just produces a warning, but who knows what other
compilers will do.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-25 08:33:17 -07:00
Yongjie Sheng
8ce0504457 update instruction VP2INTERSECT 2025-09-24 22:12:45 +08:00
Yongjie Sheng
d12a5b5156 add instruction VBCSTNEBF162PS 2025-09-24 21:09:36 +08:00
Yongjie Sheng
e548c76ab3 add AMX instruction TDPFP16PS 2025-09-24 19:52:27 +08:00
H. Peter Anvin
a2a421ec1d NASM 3.00rc14 nasm-3.00rc14 2025-09-23 21:09:28 -07:00
Yongjie Sheng
b15f0373d6 insns.dat: add the keylocker AESKLEWIDE_KL instructions
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 21:07:56 -07:00
Yongjie Sheng
8a30c94a09 add aes key locker instructions 2025-09-24 11:25:51 +08:00
H. Peter Anvin
5a32fcb8a7 doc: fix instruction spelling: PPUSH -> PUSHP et al
The "paired" attribute is a suffix, not a prefix.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 16:00:24 -07:00
H. Peter Anvin
73e666a87e test: check in the actual source file for the pshuf test
Use the source, Luke...

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 15:57:56 -07:00
H. Peter Anvin
af40cc63d2 isnsn.dat: remove unnecessary SM from PSHUF* instructions
The MMX and early SSE PSHUF* instructions were annotated SM0-1, which
is unnecessary (no ambiguity) but broke the tighter SM matching the
assembler now uses.

This is almost certainly underspecified now, but the MMX and early SSE
instruction patterns need to be tidied up anyway, and this is the
least impactful change that seems to fix the problem.

This unbreaks compiling ffmpeg.

Reported-by: Yongjie Sheng (Intel) <sheng.yongjie@outlook.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 15:45:42 -07:00
H. Peter Anvin
ad6752e3e1 NASM 3.00rc13 nasm-3.00rc13 2025-09-23 12:14:21 -07:00
H. Peter Anvin
c0be53fc85 insns.dat: fix flags for the MSR instructions
- The MSR immediate instructions are under a separate flag
- All MSR instructions are privileged

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 12:12:12 -07:00
H. Peter Anvin
d782d1339f Merge remote-tracking branch 'maciej/apx.wip.for-hpa' 2025-09-23 12:01:24 -07:00
H. Peter Anvin
7e0dc756f5 doc: tidy up the APX documentation and a few other minor changes
Major tidying up of the APX chapter; do a couple of other minor fixes
in the process.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 12:00:31 -07:00
H. Peter Anvin
4b0a1a4539 test: simple tests for Scc syntax
Test more Scc syntax cases.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 11:57:58 -07:00
H. Peter Anvin
e8a0c32ba7 DFV: allow {dfv=pf} as an alias for {dfv=cf}; EQU {dfv}
PF and CF are always set to the same value; allow the programmer to
specify either or both.

Allow EQU to take a {dfv} expression without needing parens.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 11:56:31 -07:00
Maciej Wieczor-Retman
3edef01637 insns: avx: amx: Add missing instructions from ISE june 2025
Add all the missing instructions / instruction variants that are
specified in the 2025 June Intel ISE.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-23 18:56:26 +02:00
Maciej Wieczor-Retman
b92e1c638b insns: avx: Correct VSM4KEY4 memory operand size
Memory operand size for all VSM4KEY4 versions is specified as 128 bit
long, while the ymm register version should use 256 bit size.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-23 18:56:25 +02:00
H. Peter Anvin
010b23ae84 altreg.mac: add R16L..R31L
Add macros for the R16L-R31L aliases for the corresponding -B
registers.

The order in the file changed to put all the -L registers at the end,
to make it easier to maintain this file.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 09:38:28 -07:00
H. Peter Anvin
0393cf6502 doc: document that appendices C, D and E should be unchanged
Currently, the website links directly to appendix C, D, and E by name.

At some point, change the HTML generation to use the chapter names
rather than numbers.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-09-23 08:13:48 -07:00
Maciej Wieczor-Retman
a3191aee77 doc: apx: Document the APX syntax
Add documentation on how the new syntax elements related to APX work.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
2025-09-23 16:01:30 +02:00
H. Peter Anvin
2de413db32 autoconf: more autoconf library macro updates
More macro updates from the pa_autoconf library.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
nasm-3.00rc12
2025-09-22 17:02:58 -07:00
H. Peter Anvin
8940289266 NASM 3.00rc12 2025-09-22 17:01:06 -07:00