diff --git a/doc/changes.src b/doc/changes.src index 9d402cf72..37513bfd0 100644 --- a/doc/changes.src +++ b/doc/changes.src @@ -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}.