Go to file
H. Peter Anvin 8b26247442 preproc: add %i... variants, evaluated macro parameters, cleanups
All directives which create single-line macros now have %i... variants
to define case-insensitive versions. Case insensitive rather sucks,
but at least this way it is consistent.

Single-line macro parameters can now be evaluated as a number, as done
by %assign. To do so, declare a parameter starting with =, for
example:

%define foo(x,=y) mov [x],macro_array_y

... would evaluate y as a number but leave x as a string.

NOTE: it would arguably be better to have this as a per-instance
basis, but it is easily handled by having a secondary macro called
with the same argument twice.

Finally, add a more consistent method for defining "magic" macros,
which need to be evaluated at runtime. For now, it is only used by the
special macros __FILE__, __LINE__, __BITS__, __PTR__, and __PASS__.

__PTR__ is a new macro which evaluates to word, dword or qword
matching the value of __BITS__.

The magic macro framework, however, provides a natural hook for a
future plug-in infrastructure to hook into a scripting language.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2019-02-26 14:00:54 -08:00
asm preproc: add %i... variants, evaluated macro parameters, cleanups 2019-02-26 14:00:54 -08:00
common BR 3392409: idata_bytes() and resv_bytes() don't match their prototypes 2017-06-01 15:23:05 -07:00
config Windows: clean up the handling of stat on Windows 2017-04-06 15:48:51 -07:00
contrib contrib/MSVC6.txt: Add guide how to use nasm in MSVC6 2010-01-24 23:17:55 +03:00
disasm disasm: Fix buffer overread in ndisasm 2018-08-16 01:20:01 +03:00
doc ELF: the .note section should be 4-byte aligned 2019-02-26 02:36:15 -08:00
headers headers: Update year 2010-04-25 12:02:38 +04:00
include BR 3392539: some errors can "cascade". Allow suppressing if dead. 2018-12-27 11:24:17 -08:00
macros preproc: add %i... variants, evaluated macro parameters, cleanups 2019-02-26 14:00:54 -08:00
misc misc/omfdump.c: expand dDEPFILE COMENT records 2017-08-16 15:23:01 -07:00
Mkfiles malloc: handle potential infinite loop in nasm_alloc_failed() 2018-12-13 13:55:25 -08:00
nasmlib SAA: allow seeking beyond the end of the array 2019-02-25 21:02:18 -08:00
nsis nsis: use /solid compression for smaller size 2017-04-07 11:05:09 -07:00
output ELF: the .note section should be 4-byte aligned 2019-02-26 02:36:15 -08:00
perllib perllib/README: delete obsolete file 2017-02-23 20:24:56 -08:00
rdoff malloc: handle potential infinite loop in nasm_alloc_failed() 2018-12-13 13:55:25 -08:00
stdlib Eliminate filename length restrictions, remote ofmt->filename() 2017-12-20 13:38:20 -08:00
test preproc: add %i... variants, evaluated macro parameters, cleanups 2019-02-26 14:00:54 -08:00
tools MSVC: fix dependency generation and building RDOFF under MSVC 2018-06-18 13:54:43 -07:00
x86 insns.dat: accept explicit ax/eax/rax operand to CLZERO 2018-12-22 17:52:27 -08:00
.gitignore .gitignore: add asm/directbl.h 2018-06-18 11:38:47 -07:00
aclocal.m4 malloc: simplify nasm_malloc code, add nasm_strcatn() 2018-05-30 11:40:42 -07:00
AUTHORS Correct name spelling and email address 2015-01-18 20:21:14 +02:00
autogen.sh More autoconf modernizations; upgrade AC_PREREQ to 2.69 2017-11-08 10:22:10 -08:00
ChangeLog Documention Changes for Release 2.00 2007-11-25 14:25:13 -08:00
CHANGES Move the revision history into the documentation 2008-07-14 02:45:57 -04:00
configure.ac configure.ac: add --enable-profiling option 2019-02-25 21:00:43 -08:00
INSTALL Update the INSTALL file to match current reality 2008-06-28 18:53:55 -07:00
install-sh
LICENSE LICENSE: update year 2010-08-12 20:15:27 -07:00
Makefile.in malloc: handle potential infinite loop in nasm_alloc_failed() 2018-12-13 13:55:25 -08:00
nasm.spec.in build: Merge CPPFLAGS into ALL_CFLAGS 2017-07-06 01:36:06 +03:00
nasm.spec.sed nasm.spec: use a sed file to insert perl dependencies 2017-04-23 18:54:23 -07:00
nasm.txt Defer debug format search until after command line parsing 2016-03-07 23:20:00 -08:00
ndisasm.txt ndisasm: man -- Add missing -p option 2013-04-20 20:18:46 +04:00
README README: add note to see the AUTHORS file 2010-01-06 20:56:11 -08:00
SubmittingPatches Add SubmittingPatches file 2010-10-03 21:02:08 +04:00
TODO
version NASM 2.14.03rc2 2018-12-30 07:56:59 -08:00
version.pl Handle multiple standard macro sets sanely 2016-07-13 14:23:48 -07:00

              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.

The NASM project is now situated at SourceForge.net, the most
popular Open Source development site on the Internet.

Visit our website at http://nasm.sourceforge.net/ and our
SourceForge project at http://sourceforge.net/projects/nasm/

See the file CHANGES for the description of changes between revisions,
and the file AUTHORS for a list of contributors.

                                                   With best regards,
                                                           NASM crew.