Support the official forms of the UD0 and UD1 instructions.
Allow self-segment-relative expressions in immediates and displacements, even when combined with an external or otherwise out-of-segment special symbol, e.g.:
extern foo
mov eax,[foo - $ + ebx] ; Now legal
Handle a 64-bit origin in NDISASM.
NASM can now generate sparse output files for relevant output formats, if the underlying operating system supports them.
The macho object format now supports the subsections_via_symbols and no_dead_strip directives, see section 7.8.4.
The macho object format now supports the no_dead_strip, live_support and strip_static_syms section flags, see section 7.8.1.
The macho object format now supports the dwarf debugging format, as required by newer toolchains.
All warnings can now be suppressed if desired; warnings not otherwise part of any warning class are now considered its own warning class called other (e.g. -w-other). Furthermore, warning-as-error can now be controlled on a per warning class basis, using the syntax -w+error=warning-class and its equivalent for all other warning control options. See section 2.1.24 for the command-line options and warning classes and section 6.10 for the [WARNING] directive.
Fix a number of bugs related to AVX-512 decorators.
Significant improvements to building NASM with Microsoft Visual Studio via Mkfiles/msvc.mak. It is now possible to build the full Windows installer binary as long as the necessary prerequisites are installed; see Mkfiles/README
To build NASM with custom modifications (table changes) or from the git tree now requires Perl 5.8 at the very minimum, quite possibly a higher version (Perl 5.24.1 tested.) There is no requirement to have Perl on your system at all if all you want to do is build unmodified NASM from source archives.
Fix the {z} decorator on AVX-512 VMOVDQ* instructions.
Add new warnings for certain dangerous constructs which never ought to have been allowed. In particular, the RESB family of instructions should have been taking a critical expression all along.
Fix the EVEX (AVX-512) versions of the VPBROADCAST, VPEXTR, and VPINSR instructions.
Support contracted forms of additional instructions. As a general rule, if an instruction has a non-destructive source immediately after a destination register that isn't used as an input, NASM supports omitting that source register, using the destination register as that value. This among other things makes it easier to convert SSE code to the equivalent AVX code:
addps xmm1,xmm0 ; SSE instruction
vaddps ymm1,ymm1,ymm0 ; AVX official long form
vaddps ymm1,ymm0 ; AVX contracted form
Fix Codeview malformed compiler version record.
Add the CLWB and PCOMMIT instructions. Note that the PCOMMIT instruction has been deprecated and will never be included in a shipping product; it is included for completeness only.
Add the %pragma preprocessor directive for forward compatibility with future versions of NASM. At this time no pragmas are implemented and this is merely a dummy directive.
Version 2.13
Support the official forms of the UD0 and UD1 instructions.
Allow self-segment-relative expressions in immediates and displacements, even when combined with an external or otherwise out-of-segment special symbol, e.g.:
Handle a 64-bit origin in NDISASM.
NASM can now generate sparse output files for relevant output formats, if the underlying operating system supports them.
The macho object format now supports the subsections_via_symbols and no_dead_strip directives, see section 7.8.4.
The macho object format now supports the no_dead_strip, live_support and strip_static_syms section flags, see section 7.8.1.
The macho object format now supports the dwarf debugging format, as required by newer toolchains.
All warnings can now be suppressed if desired; warnings not otherwise part of any warning class are now considered its own warning class called other (e.g. -w-other). Furthermore, warning-as-error can now be controlled on a per warning class basis, using the syntax -w+error=warning-class and its equivalent for all other warning control options. See section 2.1.24 for the command-line options and warning classes and section 6.10 for the [WARNING] directive.
Fix a number of bugs related to AVX-512 decorators.
Significant improvements to building NASM with Microsoft Visual Studio via Mkfiles/msvc.mak. It is now possible to build the full Windows installer binary as long as the necessary prerequisites are installed; see Mkfiles/README
To build NASM with custom modifications (table changes) or from the git tree now requires Perl 5.8 at the very minimum, quite possibly a higher version (Perl 5.24.1 tested.) There is no requirement to have Perl on your system at all if all you want to do is build unmodified NASM from source archives.
Fix the {z} decorator on AVX-512 VMOVDQ* instructions.
Add new warnings for certain dangerous constructs which never ought to have been allowed. In particular, the RESB family of instructions should have been taking a critical expression all along.
Fix the EVEX (AVX-512) versions of the VPBROADCAST, VPEXTR, and VPINSR instructions.
Support contracted forms of additional instructions. As a general rule, if an instruction has a non-destructive source immediately after a destination register that isn't used as an input, NASM supports omitting that source register, using the destination register as that value. This among other things makes it easier to convert SSE code to the equivalent AVX code:
Fix Codeview malformed compiler version record.
Add the CLWB and PCOMMIT instructions. Note that the PCOMMIT instruction has been deprecated and will never be included in a shipping product; it is included for completeness only.
Add the %pragma preprocessor directive for forward compatibility with future versions of NASM. At this time no pragmas are implemented and this is merely a dummy directive.
Add the RDPID instruction.