changes.src: minor formatting fixes

- Minor format cleanups
- Correct the statement on PUSH.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
This commit is contained in:
H. Peter Anvin (Intel) 2026-03-03 13:17:05 -08:00
parent e7aa83c68e
commit 5de64ecd20

View file

@ -34,18 +34,19 @@ It is the production version of NASM since 2025.
\W{https://bugs.nasm.us/}\c{https://bugs.nasm.us} with details about the
virtual environment, and we will figure out a suitable solution.
\b Various build fixes. Fix the documentation not building on MacOS because
of the \c{cp} utility lacking \c{-u} there. Also fix not building generally due to
wrong link formatting. Another fix was a typo in \c{compiler.h} related to a C++
check.
\b Various build fixes. Fix the documentation not building on MacOS
because of the \c{cp} utility lacking \c{-u} there. Also fix not
building generally due to wrong link formatting. Another fix was a
typo in \c{compiler.h} related to a C++ check.
\b Corrections to assembling encodings:
\> Fix \c{CMP} allowing \c{LOCK} which is illegal.
\> Correct multiple \c{AVX512} instructions such as \c{VCVTSD2SI}, \c{VCVTSD2USI},
\c{VCVTSS2SI}, \c{VCVTSS2USI}, \c{VCVTTSD2SI}, \c{VCVTTSD2USI}, \c{VCVTTSS2SI},
\c{VCVTTSS2USI}, \c{VGETEXPSH}, \c{VGETMANTSH}, \c{MOVDDUP}, \c{VMOVDDUP}.
\> Correct multiple \c{AVX512} instructions such as \c{VCVTSD2SI},
\c{VCVTSD2USI}, \c{VCVTSS2SI}, \c{VCVTSS2USI}, \c{VCVTTSD2SI},
\c{VCVTTSD2USI}, \c{VCVTTSS2SI}, \c{VCVTTSS2USI}, \c{VGETEXPSH},
\c{VGETMANTSH}, \c{MOVDDUP}, \c{VMOVDDUP}.
\> Fixed other encodings or instruction formats for instructions \c{UWRMSR},
\c{CMPSD}, \c{VCMPSS}, \c{V4FMADDSS}, \c{V4FNMADDSS}, \c{VCVTDQ2PH},
@ -55,10 +56,12 @@ It is the production version of NASM since 2025.
\> Fixed typos in \c{VP4DPWSSD} mnemonic.
\> Fixed byte and word operands getting the same encoding on arithmetic instructions
such as \c{CMP}.
\> Fixed \c{BYTE} and \c{WORD} operands getting the same encoding on
arithmetic instructions such as \c{CMP}.
\> Fixed \c{PUSH} not assembling when used with a \c{DWORD}.
\> Fixed \c{PUSH} not assembling when used with a \c{DWORD} in 64-bit
mode. This is not a recommended syntax as the operand size is still
64 bits, but was permitted by earlier versions of NASM.
\b Corrections to disassembling:
@ -70,14 +73,15 @@ It is the production version of NASM since 2025.
\b Whole bunch of minor fixes to operand sizes, operand size prefixes. Changes
mostly return the behavior known from 2.16.03.
\> '\c{mov} [mem], label' would be accepted without size specifiers which could cause
unintended consequences. Raise an error if no size was specified and one of
the operands is a memory reference and another operands is a label.
\> \c{mov [mem], label} would be accepted without size specifiers
which could cause unintended consequences. Raise an error if no
size was specified and one of the operands is a memory reference
and another operands is a label.
\> \c{jmp} \c{NEAR} is now the same as \c{jmp} \c{strict} \c{NEAR} as the strict
is redundant here. \c{jmp} \c{WORD} on the other hand is up for optimization as \c{NEAR}
and \c{WORD} relate to different things - jump lengths and operation sizes
respectively.
\> \c{JMP NEAR} is now the same as \c{JMP STRICT NEAR} as the
\c{STRICT} is redundant here. \c{JMP WORD} on the other hand is
up for optimization as \c{NEAR} and \c{WORD} relate to different
things - jump lengths and operation sizes respectively.
\> Using redundant (or not) but valid operands size prefixes was fixed on
instructions such as \c{IRET}, \c{PUSHF}, \c{POPF}, \c{PUSH} and \c{POP}.