[1.7] Updated: nasm-2.06-1

Dean Scarff dos@scarff.id.au
Thu Jul 2 11:52:00 GMT 2009

The cygwin package of nasm has been updated to version 2.06.  This is  
the latest stable upstream version available from http://nasm.sourceforge.net/

The Netwide Assembler, NASM, is an 80x86 and x86-64 assembler designed  
for portability and modularity.

This update is only available for the Cygwin 1.7 beta.

Excerpts from the upstream changelog, since 2.02:

  - This release is dedicated to the memory of Charles A. Crayne, long  
time NASM developer as well as moderator of comp.lang.asm.x86 and  
author of the book Serious Assembler. We miss you, Chuck.
  - Support for indirect macro expansion (%[...]).
  - %pop can now take an argument.
  - The argument to %use is no longer macro-expanded. Use %[...] if  
macro expansion is desired.
  - Support for thread-local storage in ELF32 and ELF64.
  - Fix crash on %ifmacro without an argument.
  - Correct the arguments to the POPCNT instruction.
  - Fix section alignment in the Mach-O format.
  - Update AVX support to version 5 of the Intel specification.
  - Fix the handling of accesses to context-local macros from higher  
levels in the context stack.
  - Treat WAIT as a prefix rather than as an instruction, thereby  
allowing constructs like O16 FSAVE to work correctly.
  - Support for structures with a non-zero base offset.
  - Correctly handle preprocessor token concatenation involving  
floating-point numbers.
  - The PINSR series of instructions have been corrected and  
  - Removed AMD SSE5, replaced with the new XOP/FMA4/CVT16 (rev 3.03)  
  - The ELF backends no longer automatically generate a .comment  
  - Add additional "well-known" ELF sections with default attributes.

  - Fix the -w/-W option parsing, which was broken in NASM 2.05.

  - Fix redundant REX.W prefix on JMP reg64.
  - Make the behaviour of -O0 match NASM 0.98 legacy behavior.
  - -w-user can be used to suppress the output of %warning directives.
  - Fix bug where ALIGN would issue a full alignment datum instead of  
zero bytes.
  - Fix offsets in list files.
  - Fix %include inside multi-line macros or loops.
  - Fix error where NASM would generate a spurious warning on valid  
optimizations of immediate values.
  - Fix arguments to a number of the CVT SSE instructions.
  - Fix RIP-relative offsets when the instruction carries an immediate.
  - Massive overhaul of the ELF64 backend for spec compliance.
  - Fix the Geode PFRCPV and PFRSQRTV instruction.
  - Fix the SSE 4.2 CRC32 instruction.

  - Sanitize macro handing in the %error directive.
  - New %warning directive to issue user-controlled warnings.
  - %error directives are now deferred to the final assembly phase.
  - New %fatal directive to immediately terminate assembly.
  - New %strcat directive to join quoted strings together.
  - New %use macro directive to support standard macro directives.
  - Excess default parameters to %macro now issues a warning by default.
  - Fix %ifn and %elifn.
  - Fix nested %else clauses.
  - Correct the handling of nested %reps.
  - New %unmacro directive to undeclare a multi-line macro.
  - Builtin macro __PASS__ which expands to the current assembly pass.
  - __utf16__ and __utf32__ operators to generate UTF-16 and UTF-32  
  - Fix bug in case-insensitive matching when compiled on platforms  
that don't use the configure script. Of the official release binaries,  
that only affected the OS/2 binary.
  - Support for x87 packed BCD constants.
- Correct the LTR and SLDT instructions in 64-bit mode.
  - Fix unnecessary REX.W prefix on indirect jumps in 64-bit mode.
  - Add AVX versions of the AES instructions (VAES...).
  - Fix the 256-bit FMA instructions.
  - Add 256-bit AVX stores per the latest AVX spec.
  - VIA XCRYPT instructions can now be written either with or without  
REP, apparently different versions of the VIA spec wrote them  
  - Add missing 64-bit MOVNTI instruction.
  - Fix the operand size of VMREAD and VMWRITE.
  - Numerous bug fixes, especially to the AES, AVX and VTX instructions.
  - The optimizer now always runs until it converges. It also runs  
even when disabled, but doesn't optimize. This allows most forward  
references to be resolved properly.
  - %push no longer needs a context identifier; omitting the context  
identifier results in an anonymous context.

  - Fix buffer overflow in the listing module.
  - Fix the handling of hexadecimal escape codes in `...` strings.
  - The Postscript/PDF documentation has been reformatted.
  - The -F option now implies -g.

  - Add support for Intel AVX, CLMUL and FMA instructions, including  
YMM registers.
  - dy, resy and yword for 32-byte operands.
  - Fix some SSE5 instructions.
  - Intel INVEPT, INVVPID and MOVBE instructions.
  - Fix checking for critical expressions when the optimizer is enabled.
  - Support the DWARF debugging format for ELF targets.
  - Fix optimizations of signed bytes.
  - Fix operation on bigendian machines.
  - Fix buffer overflow in the preprocessor.
  - SAFESEH support for Win32, IMAGEREL for Win64 (SEH).
  - %? and %?? to refer to the name of a macro itself. In particular,  
%idefine keyword $%? can be used to make a keyword "disappear".
  - New options for dependency generation: -MD, -MF, -MP, -MT, -MQ.
  - New preprocessor directives %pathsearch and %depend; INCBIN  
reimplemented as a macro.
  - %include now resolves macros in a sane manner.
  - %substr can now be used to get other than one-character substrings.
  - New type of character/string constants, using backquotes (`...`),  
which support C-style escape sequences.
  - %defstr and %idefstr to stringize macro definitions before creation.
  - Fix forward references used in EQU statements.



If you want to unsubscribe from the cygwin-announce mailing list, please
use the automated form at:


If this does not work, then look at the "List-Unsubscribe: " tag in the
email header of this message.  Send email to the address specified
there.  It will be in the format:


If you need more information on unsubscribing, start reading here:


Please read *all* of the information on unsubscribing that is available
starting at this URL.

More information about the Cygwin-announce mailing list