From: H. P. A. <hp...@zy...> - 2017-04-29 20:33:27
|
Hi all, I have -- finally -- released NASM 2.13. This is now the recommended production version of NASM. Accordingly, there is now a nasm-2.13.xx maintenance branch, and the master branch is now once again a development branch. The development branch has been tagged 2.14rc0 to indicate that it is logically newer than the 2.13 maintenance branch. > C.1.1 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.: > > 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. > > (*) Add the `RDPID' instruction. > |