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

4984 Commits

Author SHA1 Message Date
H. Peter Anvin
2f661cc51f insns.dat: add a few patterns for NASM 3.x regression testing
Add patterns to reduce spurious divergences in NASM 3.x regression
testing.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-10-07 15:16:48 -07:00
H. Peter Anvin
e2ccd5de26 travis: remove obsolete error message about %unmacro
%unmacro now *is* permitted on a macro being expanded; the entire
expansion is strictly performed when the macro is invoked, and the
lifetime issue related to %unmacro and %exitrep has been hacked
around.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-08-13 13:57:59 -07:00
H. Peter Anvin
9e6a4dd028 preproc: inc_fopen(): use the correct path for hashing the fullpath
This code incorrectly would try to use "path" as the hash key instead
of full->path, causing the key in struct hash_insert to diverge from
the one used in hash_add(). Fix that.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-08-11 14:42:47 -07:00
H. Peter Anvin
f49e9f1bea preproc: hack around mmacro lifetime problems by deferring free
Under some circumstances, such as:

- Certain uses of %exitrep in syntactically invalid code;
- %unmacro of a *alias* to a macro currently being expanded;

... it is possible for an mmacro to get freed while it is still in
use. Although inefficient, the easiest way to avoid this is to not
free mmacros until the end of pass cleanup, when named mmacros are
also freed.

To support this, use the existing ->next field in the MMacro structure
to keep a list of anonymous or removed MMacros. Don't free ->name at
this point, though, since that is currently used to distinguish
between %rep's and %macro's.  (This needs to be cleaned up to support
constructs such as %while or %for, but that is for later.)

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-08-11 14:02:12 -07:00
H. Peter Anvin
3ed10eccf1 insns.dat: avoid obsolete-removed warning on UD0
UD0 without a modr/m is obsolete in terms of syntax, but not as an
instruction per se. Match UD1 and assemble it without warnings, but
disassemble it with operands.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-08-11 11:10:38 -07:00
H. Peter Anvin
df1c055b5e insns.dat: add "UDB" opcode (permanent official #UD in 64-bit mode)
The opcode D6 has been officially reserved as a single-byte permanent
undefined (#UD) opcode in 64-bit mode with the mnemonic UDB.  This is
already the behavior of all known 64-bit implementations; this is thus
merely an official statement of forward compatibility and the
assignment of a mnemonic.

This will be documented in the next version of the Intel Software
Developer's Manual; in the meantime I DO speak officially for Intel on
this issue.

The x86 Advisory Council has ratified this decision, and so it is
expected to be honored across vendors, but I obviously cannot make any
official statement on any other vendor's behalf.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-08-11 11:01:34 -07:00
H. Peter Anvin
af0430fab3 path: tidy up syntax selection, add Haiku to Unix syntax list
Tidy up the way path syntax selection is handled, and make it possible
to specify it outside this file (e.g. in a Makefile) if need be.

Haiku, like BeOS, uses Unix syntax.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2025-05-02 22:40:22 -07:00
H. Peter Anvin
8ef2fa22a2 mkdep: handle breakage from srcdir changes
The handling of "path" and "fullpath" was inconsistent, resulting in a
lot of missing dependencies regardless if a separate build directory
was in use.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-07-27 17:43:34 -07:00
H. Peter Anvin
68d59933f7 doc/changes.src: begin release notes for 2.16.04.
Better to keep up with it now...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-25 15:36:25 -07:00
H. Peter Anvin
cd1fd8ac8e nasm.c: tidy up the help text and break it into topics
The help output has gotten way too long to be shown on a single
command line. It can of course be piped to a pager, but to be a little
nicer to the user, break it up into subtopics that can be individually
displayed. --help all (-h all) can still show all the help information
as a single data dump.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-25 15:14:20 -07:00
H. Peter Anvin
2553833cc1 nasm.spec.in: fix mistakes in previous checkin
Fix small mistakes in previous nasm.spec.in patch.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-18 15:31:51 -07:00
H. Peter Anvin
0537b16fdc doc: fix tag label for cl-2.16.03
cl-2.16.03 was incorrectly marked as a dup of cl-2.16.02.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-18 15:30:31 -07:00
H. Peter Anvin
0346e58b6e nasm.spec.in: add Obsoletes tags where applicable; fix License tag
Add Obsoletes tags: nasm-rdoff; old nasm-doc.

Add a few BuildRequires: tags.

Update License: tag to match SPDX.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2024-04-18 14:01:40 -07:00
H. Peter Anvin
cd37b81b32 NASM 2.16.03 nasm-2.16.03 2024-04-17 09:48:27 -07:00
H. Peter Anvin
e699956758 Mkfiles/README: recommend MSYS2 on Windows
Even Microsoft seems to recommend MSYS2 for autoconf compatibility
now.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-17 09:41:47 -07:00
H. Peter Anvin
c56472f6ad autoconf: updated pa_cross_compile
Probably unnecessary, but be more aggressive in defanging WINE.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-16 17:18:07 -07:00
H. Peter Anvin
2d710ad334 NASM 2.16.03rc3 nasm-2.16.03rc3 2024-04-16 16:43:16 -07:00
H. Peter Anvin
c4b954931e doc/changes.src: update release notes
Update release notes to match the current status.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-16 16:35:34 -07:00
H. Peter Anvin
f932b338e3 spec: update embedded RPM spec file
The embedded RPM spec file seems to be a bit out of date. Update to
match the current RPM conventions.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-16 16:35:22 -07:00
H. Peter Anvin
2d2ae91d7a autoconf: unbreak --enable-lto, fix some language macros
PA_ADD_LANGFLAGS() was broken, resulting in among other things
--enable-lto not working.

Make autogen.sh fail if aclocal return error.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-16 16:31:28 -07:00
H. Peter Anvin
b11802c425 NASM 2.16.03rc2 nasm-2.16.03rc2 2024-04-15 05:46:27 -07:00
H. Peter Anvin
3db22ed63e tools/release: use "make dist"
This target exists; use it, instead of effectively open-coding it into
the release script, causing bit rot and testing problems.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-15 05:18:53 -07:00
H. Peter Anvin
e72d4bf519 mkdep.pl: do not generate a selfrule for embedded dependencies
If we are using embedded dependencies, do not generate a selfrule. It
is meaningless.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
nasm-2.16.03rc1
2024-04-12 14:47:54 -07:00
H. Peter Anvin
99fec7e7d0 Makefile: more cleanup/dist fixes
Even more fixes to the various clean and dist targets, sigh.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 14:35:56 -07:00
H. Peter Anvin
0553c6f306 Makefile: fix "make dist" and "make tar"
These aren't used to actually make a distribution, but they are useful
for testing.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 14:21:51 -07:00
H. Peter Anvin
ff78ddc6af autogen.sh: remove configure~
Remove configure~ backup file; we have no use for it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 14:20:59 -07:00
H. Peter Anvin
25f701e689 spec generation: try to distinguish use pragmas from modules
Assume module names (for "use") always start with a capital letter,
and that anything that doesn't is a pragma.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 14:05:32 -07:00
H. Peter Anvin
03469f5bd0 NASM 2.16.03rc1 2024-04-12 13:24:41 -07:00
H. Peter Anvin
a518f3bc72 changes.src: begin release notes for 2.16.03
Probably will have to release a 2.16.03 soon. Start the release notes.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 13:24:04 -07:00
H. Peter Anvin
caaf81c22e deps: don't break if run in a build directory; don't delete unconfig.h
Don't break Makefile.dep generation if run from a separate build
directory.

config/unconfig.h is a bit special; it is kept in the repository for
the benefit of non-configure users. Therefore, don't have "make
spotless" delete it.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 13:17:40 -07:00
H. Peter Anvin
392f47d06e Makefile: fix "make spotless"
Fix "make spotless" and some of the related targets so they actually
behave sensibly.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 12:05:52 -07:00
H. Peter Anvin
99d3342033 doc: make it clearer than -O0 and -O1 are almost never useful
-Ox is the default, and the preferred mode for almost all users.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 11:08:37 -07:00
H. Peter Anvin
6f44296adc doc: get rid of some unnecessarily wordy option descriptions
Some options had unnecessarily wordy titles. Also change Make ->
\c{make}.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-12 11:06:03 -07:00
H. Peter Anvin
1ad669bf06 nasmdoc.css: simplify some media queries
Some media queries were needlessly complicated and misinterpreted by
some browsers.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-04 15:15:05 -07:00
H. Peter Anvin
b11cd3a426 warnings: more improvements to warnings generation
Try to better sort out the necessary dependencies for warning
generation.

Fix regex for cleaning up nasmdoc markup: nasmdoc markup does not
nest, although it may include \} sequences.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-04 14:18:34 -07:00
H. Peter Anvin
5a03edfdd9 tools/release: run autoconf/clean.sh if it exists
If autoconf/clean.sh exists, run it after "make distclean" as a
redundancy measure.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-04 13:50:50 -07:00
H. Peter Anvin
99175565d8 Makefile.in: remove configure remnants from "make distclean"
"make distclean" (which is used to generate release tarballs) should
remove configure-generated files.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-04 13:45:29 -07:00
H. Peter Anvin
1f055d9e8f NASM 2.16.02 nasm-2.16.02 2024-04-04 13:25:49 -07:00
H. Peter Anvin
d55d22996a warnings: strip nasmdoc makeup from help strings
When displaying command line help strings, strip nasmdoc markup.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-04 13:25:05 -07:00
H. Peter Anvin
33ef63669c doc: improve some formatting, mostly of the warning list
Fix some formatting markups, especially with regards to warnings.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-04 12:58:32 -07:00
H. Peter Anvin
5f0fb5647e autoconf: remove unnecessary hacks in PA_CROSS_COMPILE
The WINE-disabling hacks were a bit excessive.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-04-04 12:57:28 -07:00
H. Peter Anvin
e55c571af4 doc: release notes for 2.16.02
Release notes for 2.16.02 to prepare for imminent release.
2024-04-04 12:56:43 -07:00
H. Peter Anvin
f69119bb56 NASM 2.16.02rc10 nasm-2.16.02rc10 2024-01-29 19:09:17 -08:00
H. Peter Anvin
66276870f2 Makefiles: defined $(WARNSRCS), but need to actually use it...
The $(WARNSRCS) definition doesn't help much unless it is actually
used somewhere...

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-01-29 19:07:54 -08:00
H. Peter Anvin
4bf01032e5 Makefiles: try to fix compiling with MSVC/nmake
Try to address Makefile portability bugs affecting MSVC/nmake.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
nasm-2.16.02rc9
2024-01-29 19:00:15 -08:00
H. Peter Anvin
309990f2f9 Version 2.16.02rc9 2024-01-29 17:50:14 -08:00
H. Peter Anvin
fc82905b3c test: add some additional test cases
Some test cases, mostly from bug reports.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-01-29 17:25:23 -08:00
H. Peter Anvin
1e965e30ff windows host: add embedded manifest file
Without a manifest, Windows applications force a fixed PATH_MAX limit
to any pathname; this is unnecessary.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-01-29 17:19:32 -08:00
H. Peter Anvin
adf4f5cd5e x86/insns.dat: add missing semicolon in comment
Comment was missing a semicolon; fix to avoid unnecessary warning and
to make sure the documentation is generated correctly.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2024-01-29 16:37:09 -08:00
H. Peter Anvin
78a448df72 NASM 2.16.02rc8 nasm-2.16.02rc8 2024-01-29 16:25:28 -08:00