Log message:
nasm: updated to 2.15.05
Version 2.15.05
Correct %ifid $ and %ifid $$ being treated as true. See section 4.4.6.
Add --reproducible option to suppress NASM version numbers and timestamps in \
output files. See section 2.1.34.
Version 2.15.04
More sensible handling of the case where one single-line macro definition will \
shadow another. A warning will be issued, but the additional definition will be \
allowed. For the existing error case where both a parameterless and parametered \
macro are created, that warning is promoted to an error by default.
Add special preprocessor tokens %*? and %*?? that expand like %? and %?? in \
single-line macros only. See section 4.1.6.
Correct the encoding of the ENQCMDS and TILELOADT1 instructions.
Fix case where the COFF backend (the coff, win32 and win64 output formats) would \
add padding bytes in the middle of a section if a SECTION/SEGMENT directive was \
provided which repeated an ALIGN= attribute. This neither matched legacy \
behavior, other backends, or user expectations.
Fix SSE instructions not being recognized with an explicit memory operation size \
(e.g. movsd qword [eax],xmm0).
The -L+ option no longer enables -Lw, which is mainly useful to debug NASM \
crashes. See section 2.1.4.
Document long-standing hazards in the use of $ in Dx statements, see section 3.2.1.
The NASM-only RDOFF output format backend, which has been broken since at least \
NASM 2.14, has been disabled. The RDOFF tools are scheduled to be removed from \
the NASM distribution in NASM 2.16. If you have a concrete use case for RDOFF, \
please file a NASM bug report at https://bugs.nasm.us/ as soon as possible. See \
section 8.13.
|
Log message:
nasm: Update to 2.15.03
C.1.1 Version 2.15.03
* Add instructions from the Intel Instruction Set Extensions and
Future Features Programming Reference, June 2020. This includes
AVX5512 bfloat16, AVX512 mask intersect, and Intel Advanced Matrix
Extensions (AMX).
* Support for bfloat16 floating-point constants. See [5]section 3.4.6
and [6]section 6.3.
* Properly display warnings in preprocess-only mode.
* Fix copy-and-paste of examples from the PDF documentation.
* Debug information now properly reflect the line numbers of macro
invocations (unless declared .nolist).
* Fix excessive alignment of sections in the coff/win32/win64 output
formats when the user-specified alignment is less than the default
alignment for the section or section type.
* Fix explicit token pasting (%+, [7]section 4.1.4) for the cases
where one or more parts result from empty token expansion,
resulting in %+ tokens at the beginning or end, or multiple ones in
a row.
* Fix macro label capture (%00, [8]section 4.3.7).
* Much better documentation for the MASM compatiblity package, %use
masm (see [9]section 6.5).
* Fix LEA without square brackets, for MASM compatibility.
* Portability fixes.
C.1.2 Version 2.15.02
* Fix miscompilation when building with clang.
* Add db-empty warning class, see [10]section 2.1.26.
* Fix the dependencies in the MSVC NMAKE makefile (Mkfiles/msvc.mak).
* Some documentation improvements and cleanups.
* Fix the handling of macro parameter ranges (%{:}), including with
brace-enclosed original arguments.
C.1.3 Version 2.15.01
* Fix building the documentation from the release archive. For 2.15,
the user has to do make warnings manually in the main directory in
order to be able to build the documentation, which means Perl needs
to be installed on the system.
* Add instructions for Intel Control Flow Enforcement Technology
(CET).
C.1.4 Version 2.15
* The comparison and booleanizing operators can now be used in any
expression context, not just %if. See [11]section 3.5.
* New operator ? ... :. See [12]section 3.5.1.
* Signed shift operators <<< and >>>. See [13]section 3.5.9.
* The MASM DUP syntax for data definitions is now supported, in a
somewhat enhanced form. See [14]section 3.2.1.
* Warn for strange legacy behavior regarding empty arguments in
multi-line macro expansion, but try to match legacy behavior in
most cases. Legacy behavior can be disabled with the directive
%pragma preproc sane_empty_expansion, see [15]section 4.3 and
[16]section 4.10.1.
* A much more sensible limit to expression evaluation depth. The
previously defined limit would rarely trigger before NASM died with
a stack overrun error on most systems. See [17]section 2.1.31.
* The state of warnings can now be saved and restored via the
[WARNING PUSH] and [WARNING POP] directives. See [18]section 7.13.
* The sectalign on|off switch does not affect an explicit directive.
See [19]section 5.10.2.
* Added configure option to enable building with profiling
(--enable-profiling).
* Attempt to support of long path names, up to 32767 of UTF-16
characters, on Windows.
* Fixed 'mismatch in operand sizes' error in the MOVDDUP, CMPXCHG8B
and CMPXCHG16B instructions.
* Improved error messages in the string transformation routine.
* Removed obsolete gnu-elf-extensions warning about 8- and 16-bit
relocation generation. See [20]section 8.9.8
* Added group aliases for all prefixed warnings. See [21]section
2.1.26.
* Allowed building with MSVC versions older than 1700.
* Added implicitly sized versions of the K... instructions, which
allows the K... instructions to be specified without a size suffix
as long as the operands are sized.
* Added -L option for additional listing information. See [22]section
2.1.4.
* Added some warnings for obsolete instructions for a specified CPU.
* Deprecated -hf and -y options. Use -h instead.
* Made DWARF as the default debug format for ELF.
* Added %pragma list options... to set or clear listing options (see
opt-L).
* Allowed immediate syntax for LEA instruction (ignore operand size
completely).
* Added limited functionality MASM compatibility package. See
[23]section 6.5.
* Add single-line macros aliases using %defalias or %idefalias. These
behave like a kind of "symbolic links" for single-line macros. See
[24]section 4.1.10 and clear.
* Added support for stringify, nostrip, evaluating, and greedy
single-line macro arguments. See [25]section 4.1.1.
* Unused single-line macro arguments no longer need to have a
specified name. See [26]section 4.1.1.
* Added conditional comma operator %,. See [27]section 4.1.11.
* Changed private namespace from __foo__ to __?foo?__, so a user
namespace starting from underscore is now clean from symbols. For
backwards compatibility, the previous names are defined as aliases;
see [28]section 4.1.10, [29]section 4.11.3 and [30]chapter 5.
* Added support of ELF weak symbols and external references. See
[31]section 8.9.5.
* Changed the behavior of the EXTERN keyword and introduced REQUIRED
keyword. See [32]section 7.6.
* Added %ifusable and %ifusing directives. See [33]chapter 6.
* Made various performance improvements and stability fixes in macro
preprocessor engine.
* Improved NASM error handling and cleaned up error messages.
* Many, many bug fixes.
|