nasm/macros
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
..
altreg.mac
fp.mac
ifunc.mac ifunc.mac: the ilog2 warning may want to be both ceil and floor 2016-05-24 23:03:17 -07:00
macros.pl perl: change to the new, safer 3-operand form of open() 2017-04-02 19:36:41 -07:00
smartalign.mac BR 3392411: smartalign: make sure we always define the end symbol 2017-09-27 15:29:01 -07:00
standard.mac preproc: add %i... variants, evaluated macro parameters, cleanups 2019-02-26 14:00:54 -08:00