⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes.src

📁 汇编编译器的最新版本的源码.买了自己动手写操作系统这本书的人一定要下
💻 SRC
📖 第 1 页 / 共 4 页
字号:
\#
\# NASM revision history in nasmdoc format
\#

\H{cl-2.xx} NASM 2 Series

The NASM 2 series support x86-64, and is the production version of NASM
since 2007.


\S{cl-2.05} Version 2.05

\b Fix redundant REX.W prefix on \c{JMP reg64}.

\b Make the behaviour of \c{-O0} match NASM 0.98 legacy behavior.
  See \k{opt-O}.

\b \c{-w-user} can be used to suppress the output of \c{%warning} directives.
  See \k{opt-w}.

\b Fix bug where \c{ALIGN} would issue a full alignment datum instead of
  zero bytes.

\b Fix offsets in list files.

\b Fix \c{%include} inside multi-line macros or loops.

\b Fix error where NASM would generate a spurious warning on valid
  optimizations of immediate values.

\b Fix arguments to a number of the \c{CVT} SSE instructions.

\b Fix RIP-relative offsets when the instruction carries an immediate.

\b Massive overhaul of the ELF64 backend for spec compliance.


\S{cl-2.04} Version 2.04

\b Sanitize macro handing in the \c{%error} directive.

\b New \c{%warning} directive to issue user-controlled warnings.

\b \c{%error} directives are now deferred to the final assembly phase.

\b New \c{%fatal} directive to immediately terminate assembly.

\b New \c{%strcat} directive to join quoted strings together.

\b New \c{%use} macro directive to support standard macro directives.  See
  \k{use}.

\b Excess default parameters to \c{%macro} now issues a warning by default.
  See \k{mlmacro}.

\b Fix \c{%ifn} and \c{%elifn}.

\b Fix nested \c{%else} clauses.

\b Correct the handling of nested \c{%rep}s.

\b New \c{%unmacro} directive to undeclare a multi-line macro.
  See \k{unmacro}.

\b Builtin macro \c{__PASS__} which expands to the current assembly pass.
  See \k{pass_macro}.

\b \c{__utf16__} and \c{__utf32__} operators to generate UTF-16 and UTF-32
  strings.  See \k{unicode}.

\b Fix bug in case-insensitive matching when compiled on platforms that
  don't use the \c{configure} script.  Of the official release binaries,
  that only affected the OS/2 binary.

\b Support for x87 packed BCD constants.  See \k{bcdconst}.

\b Correct the \c{LTR} and \c{SLDT} instructions in 64-bit mode.

\b Fix unnecessary REX.W prefix on indirect jumps in 64-bit mode.

\b Add AVX versions of the AES instructions (\c{VAES}...).

\b Fix the 256-bit FMA instructions.

\b Add 256-bit AVX stores per the latest AVX spec.

\b VIA XCRYPT instructions can now be written either with or without
  \c{REP}, apparently different versions of the VIA spec wrote them
  differently.

\b Add missing 64-bit \c{MOVNTI} instruction.

\b Fix the operand size of \c{VMREAD} and \c{VMWRITE}.

\b Numerous bug fixes, especially to the AES, AVX and VTX instructions.

\b 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.


\S{cl-2.03.01} Version 2.03.01

\b Fix buffer overflow in the listing module.

\b Fix the handling of hexadecimal escape codes in `...` strings.

\b The Postscript/PDF documentation has been reformatted.

\b The \c{-F} option now implies \c{-g}.


\S{cl-2.03} Version 2.03

\b Add support for Intel AVX, CLMUL and FMA instructions,
including YMM registers.

\b \c{dy}, \c{resy} and \c{yword} for 32-byte operands.

\b Fix some SSE5 instructions.

\b Intel \c{INVEPT}, \c{INVVPID} and \c{MOVBE} instructions.

\b Fix checking for critical expressions when the optimizer is enabled.

\b Support the DWARF debugging format for ELF targets.

\b Fix optimizations of signed bytes.

\b Fix operation on bigendian machines.

\b Fix buffer overflow in the preprocessor.

\b \c{SAFESEH} support for Win32, \c{IMAGEREL} for Win64 (SEH).

\b \c{%?} and \c{%??} to refer to the name of a macro itself.  In particular,
\c{%idefine keyword $%?} can be used to make a keyword "disappear".

\b New options for dependency generation: \c{-MD}, \c{-MF},
\c{-MP}, \c{-MT}, \c{-MQ}.

\b New preprocessor directives \c{%pathsearch} and \c{%depend}; INCBIN
reimplemented as a macro.

\b \c{%include} now resolves macros in a sane manner.

\b \c{%substr} can now be used to get other than one-character substrings.

\b New type of character/string constants, using backquotes (\c{`...`}),
which support C-style escape sequences.

\b \c{%defstr} and \c{%idefstr} to stringize macro definitions before
creation.

\b Fix forward references used in \c{EQU} statements.

\S{cl-2.02} Version 2.02


\b Additional fixes for MMX operands with explicit \c{qword}, as well as
  (hopefully) SSE operands with \c{oword}.

\b Fix handling of truncated strings with \c{DO}.

\b Fix segfaults due to memory overwrites when floating-point constants
  were used.

\b Fix segfaults due to missing include files.

\b Fix OpenWatcom Makefiles for DOS and OS/2.

\b Add autogenerated instruction list back into the documentation.

\b ELF: Fix segfault when generating stabs, and no symbols have been
  defined.

\b ELF: Experimental support for DWARF debugging information.

\b New compile date and time standard macros.

\b \c{%ifnum} now returns true for negative numbers.

\b New \c{%iftoken} test for a single token.

\b New \c{%ifempty} test for empty expansion.

\b Add support for the \c{XSAVE} instruction group.

\b Makefile for Netware/gcc.

\b Fix issue with some warnings getting emitted way too many times.

\b Autogenerated instruction list added to the documentation.

\S{cl-2.01} Version 2.01


\b Fix the handling of MMX registers with explicit \c{qword} tags on
  memory (broken in 2.00 due to 64-bit changes.)

\b Fix the PREFETCH instructions.

\b Fix the documentation.

\b Fix debugging info when using \c{-f elf}
(backwards compatibility alias for \c{-f elf32}).

\b Man pages for rdoff tools (from the Debian project.)

\b ELF: handle large numbers of sections.

\b Fix corrupt output when the optimizer runs out of passes.


\S{cl-2.00} Version 2.00

\b Added c99 data-type compliance.

\b Added general x86-64 support.

\b Added win64 (x86-64 COFF) output format.

\b Added \c{__BITS__} standard macro.

\b Renamed the \c{elf} output format to \c{elf32} for clarity.

\b Added \c{elf64} and \c{macho} (MacOS X) output formats.

\b Added Numeric constants in \c{dq} directive.

\b Added \c{oword}, \c{do} and \c{reso} pseudo operands.

\b Allow underscores in numbers.

\b Added 8-, 16- and 128-bit floating-point formats.

\b Added binary, octal and hexadecimal floating-point.

\b Correct the generation of floating-point constants.

\b Added floating-point option control.

\b Added Infinity and NaN floating point support.

\b Added ELF Symbol Visibility support.

\b Added setting OSABI value in ELF header directive.

\b Added Generate Makefile Dependencies option.

\b Added Unlimited Optimization Passes option.

\b Added \c{%IFN} and \c{%ELIFN} support.

\b Added Logical Negation Operator.

\b Enhanced Stack Relative Preprocessor Directives.

\b Enhanced ELF Debug Formats.

\b Enhanced Send Errors to a File option.

\b Added SSSE3, SSE4.1, SSE4.2, SSE5 support.

\b Added a large number of additional instructions.

\b Significant performance improvements.


\H{cl-0.98.xx} NASM 0.98 Series

The 0.98 series was the production versions of NASM from 1999 to 2007.


\S{cl-0.98.39} Version 0.98.39

\b fix buffer overflow

\b fix outas86's \c{.bss} handling

\b "make spotless" no longer deletes config.h.in.

\b \c{%(el)if(n)idn} insensitivity to string quotes difference (#809300).

\b (nasm.c)\c{__OUTPUT_FORMAT__} changed to string value instead of symbol.

\S{cl-0.98.38} Version 0.98.38


\b Add Makefile for 16-bit DOS binaries under OpenWatcom, and modify
  \c{mkdep.pl} to be able to generate completely pathless dependencies, as
  required by OpenWatcom wmake (it supports path searches, but not
  explicit paths.)

\b Fix the \c{STR} instruction.

\b Fix the ELF output format, which was broken under certain
  circumstances due to the addition of stabs support.

\b Quick-fix Borland format debug-info for \c{-f obj}

\b Fix for \c{%rep} with no arguments (#560568)

\b Fix concatenation of preprocessor function call (#794686)

\b Fix long label causes coredump (#677841)

\b Use autoheader as well as autoconf to keep configure from generating
  ridiculously long command lines.

\b Make sure that all of the formats which support debugging output
  actually will suppress debugging output when \c{-g} not specified.

\S{cl-0.98.37} Version 0.98.37


\b Paths given in \c{-I} switch searched for \c{incbin}-ed as
  well as \c{%include}-ed files.

\b Added stabs debugging for the ELF output format, patch from
  Martin Wawro.

\b Fix \c{output/outbin.c} to allow origin > 80000000h.

\b Make \c{-U} switch work.

\b Fix the use of relative offsets with explicit prefixes, e.g.
\c{a32 loop foo}.

\b Remove \c{backslash()}.

\b Fix the \c{SMSW} and \c{SLDT} instructions.

\b \c{-O2} and \c{-O3} are no longer aliases for \c{-O10} and \c{-O15}.
If you mean the latter, please say so! :)

\S{cl-0.98.36} Version 0.98.36


\b Update rdoff - librarian/archiver - common rec - docs!

\b Fix signed/unsigned problems.

\b Fix \c{JMP FAR label} and \c{CALL FAR label}.

\b Add new multisection support - map files - fix align bug

\b Fix sysexit, movhps/movlps reg,reg bugs in insns.dat

\b \c{Q} or \c{O} suffixes indicate octal

\b Support Prescott new instructions (PNI).

\b Cyrix \c{XSTORE} instruction.


\S{cl-0.98.35} Version 0.98.35

\b Fix build failure on 16-bit DOS (Makefile.bc3 workaround for compiler bug.)

\b Fix dependencies and compiler warnings.

\b Add "const" in a number of places.

\b Add -X option to specify error reporting format (use -Xvc to
  integrate with Microsoft Visual Studio.)

\b Minor changes for code legibility.

\b Drop use of tmpnam() in rdoff (security fix.)


\S{cl-0.98.34} Version 0.98.34

\b Correct additional address-size vs. operand-size confusions.

\b Generate dependencies for all Makefiles automatically.

\b Add support for unimplemented (but theoretically available)
  registers such as tr0 and cr5.  Segment registers 6 and 7 are called
  segr6 and segr7 for the operations which they can be represented.

\b Correct some disassembler bugs related to redundant address-size prefixes.
  Some work still remains in this area.

\b Correctly generate an error for things like "SEG eax".

\b Add the JMPE instruction, enabled by "CPU IA64".

\b Correct compilation on newer gcc/glibc platforms.

\b Issue an error on things like "jmp far eax".


\S{cl-0.98.33} Version 0.98.33

\b New __NASM_PATCHLEVEL__ and __NASM_VERSION_ID__ standard macros to
  round out the version-query macros.  version.pl now understands
  X.YYplWW or X.YY.ZZplWW as a version number, equivalent to
  X.YY.ZZ.WW (or X.YY.0.WW, as appropriate).

\b New keyword "strict" to disable the optimization of specific
  operands.

\b Fix the handing of size overrides with JMP instructions
  (instructions such as "jmp dword foo".)

\b Fix the handling of "ABSOLUTE label", where "label" points into a
  relocatable segment.

\b Fix OBJ output format with lots of externs.

\b More documentation updates.

\b Add -Ov option to get verbose information about optimizations.

\b Undo a braindead change which broke \c{%elif} directives.

\b Makefile updates.


\S{cl-0.98.32} Version 0.98.32

\b Fix NASM crashing when \c{%macro} directives were left unterminated.

\b Lots of documentation updates.

\b Complete rewrite of the PostScript/PDF documentation generator.

\b The MS Visual C++ Makefile was updated and corrected.

\b Recognize .rodata as a standard section name in ELF.

\b Fix some obsolete Perl4-isms in Perl scripts.

\b Fix configure.in to work with autoconf 2.5x.

\b Fix a couple of "make cleaner" misses.

\b Make the normal "./configure && make" work with Cygwin.


\S{cl-0.98.31} Version 0.98.31

\b Correctly build in a separate object directory again.

\b Derive all references to the version number from the version file.

\b New standard macros __NASM_SUBMINOR__ and __NASM_VER__ macros.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -