mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-10-10 00:25:06 -04:00
Revert "Improve process_ea and introduce -OL"
This reverts commit ac732cb6a5.
Resolved Conflicts:
doc/nasmdoc.src
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
@@ -28,7 +28,7 @@ since 2007.
|
||||
|
||||
\b Macros parameters range expansion introduced. See \k{mlmacrange}.
|
||||
|
||||
\b Backward compatibility on expanding of local single line macros restored.
|
||||
\b Backward compatibility on expanging of local sigle macros restored.
|
||||
|
||||
\b 8 bit relocations for \c{elf} and \c{bin} output formats are introduced.
|
||||
|
||||
@@ -59,10 +59,7 @@ since 2007.
|
||||
\b Tighten EA checks. We warn a user if there overflow in EA addressing.
|
||||
|
||||
\b Make \c{-Ox} the default optimization level. For the legacy
|
||||
behavior, specify \c{-OL} explicitly. See \k{opt-O}.
|
||||
|
||||
\b Don't optimize displacements in \c{-O0}. For the legacy
|
||||
behavior, specify \c{-OL}. See \k{opt-O}.
|
||||
behavior, specify \c{-O0} explicitly. See \k{opt-O}.
|
||||
|
||||
\b Environment variables read with \c{%!} or tested with \c{%ifenv}
|
||||
can now contain non-identifier characters if surrounded by quotes.
|
||||
@@ -861,7 +858,7 @@ it 0.98.28 to not confuse poor little apt-get.
|
||||
Changes from 0.98.07 release to 98.09b as of 28-Oct-2001
|
||||
|
||||
\b More closely compatible with 0.98 when -O0 is implied
|
||||
or specified. Not strictly identical, since backward
|
||||
or specified. Not strictly identical, since backward
|
||||
branches in range of short offsets are recognized, and signed
|
||||
byte values with no explicit size specification will be
|
||||
assembled as a single byte.
|
||||
@@ -915,7 +912,7 @@ from the current BITS setting (16 or 32).
|
||||
|
||||
|
||||
\b Removed the "outforms.h" file - it appears to be
|
||||
someone's old backup of "outform.h". version "0.98.06e"
|
||||
someone's old backup of "outform.h". version "0.98.06e"
|
||||
|
||||
01/09/01
|
||||
|
||||
@@ -951,9 +948,9 @@ from the current BITS setting (16 or 32).
|
||||
\S{cl-0.98bf (bug-fixed)} Version 0.98bf (bug-fixed)
|
||||
|
||||
\b Fixed - elf and aoutb bug - shared libraries
|
||||
- multiple "%include" bug in "-f obj"
|
||||
- multiple "%include" bug in "-f obj"
|
||||
- jcxz, jecxz bug
|
||||
- unrecognized option bug in ndisasm
|
||||
- unrecognized option bug in ndisasm
|
||||
|
||||
\S{cl-0.98.03 with John Coffman's changes released 27-Jul-2000} Version 0.98.03 with John Coffman's changes released 27-Jul-2000
|
||||
|
||||
@@ -976,7 +973,7 @@ This feature is controlled by a new command-line switch: "O",
|
||||
extra optimization passes, "-O1" allows up to 5 extra passes,
|
||||
and "-O2"(default), allows up to 10 extra optimization passes.
|
||||
|
||||
\b Added a new directive: 'cpu XXX', where XXX is any of:
|
||||
\b Added a new directive: 'cpu XXX', where XXX is any of:
|
||||
8086, 186, 286, 386, 486, 586, pentium, 686, PPro, P2, P3 or
|
||||
Katmai. All are case insensitive. All instructions will
|
||||
be selected only if they apply to the selected cpu or lower.
|
||||
@@ -986,7 +983,7 @@ Corrected a couple of bugs in cpu-dependence in 'insns.dat'.
|
||||
the "bits 16/32" directive. This is nothing new, just conforms
|
||||
to a lot of other assemblers. (minor)
|
||||
|
||||
\b Changed label allocation from 320/32 (10000 labels @ 200K+)
|
||||
\b Changed label allocation from 320/32 (10000 labels @ 200K+)
|
||||
to 32/37 (1000 labels); makes running under DOS much easier.
|
||||
Since additional label space is allocated dynamically, this
|
||||
should have no effect on large programs with lots of labels.
|
||||
@@ -1578,7 +1575,7 @@ on lines such as `dd 0.0,0.0,0.0,0.0,...'
|
||||
\b Fixed a subtle preprocessor bug whereby invoking one multi-line
|
||||
macro on the first line of the expansion of another, when the second
|
||||
had been invoked with a label defined before it, didn't expand the
|
||||
inner macro.
|
||||
inner macro.
|
||||
|
||||
\b Added internal.doc back in to the distribution archives - it was
|
||||
missing in 0.96 *blush*
|
||||
|
||||
@@ -345,7 +345,7 @@ notice, this list of conditions and the following disclaimer.
|
||||
\b Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
@@ -539,7 +539,7 @@ an intervening space. For example:
|
||||
\c nasm -f bin driver.asm -odriver.sys
|
||||
|
||||
Note that this is a small o, and is different from a capital O , which
|
||||
is used to specify the optimization level. See \k{opt-O}.
|
||||
is used to specify the number of optimisation passes required. See \k{opt-O}.
|
||||
|
||||
|
||||
\S{opt-f} The \i\c{-f} Option: Specifying the \i{Output File Format}
|
||||
@@ -840,29 +840,28 @@ argument, instructs NASM to replace its powerful \i{preprocessor}
|
||||
with a \i{stub preprocessor} which does nothing.
|
||||
|
||||
|
||||
\S{opt-O} The \i\c{-O} Option: Specifying \i{Code Size Optimization}
|
||||
\S{opt-O} The \i\c{-O} Option: Specifying \i{Multipass Optimization}
|
||||
|
||||
NASM defaults to not optimizing operands which can fit into a signed byte.
|
||||
This means that if you want the shortest possible object code,
|
||||
you have to enable optimization.
|
||||
|
||||
Using the \c{-O} option, you can tell NASM to carry out different
|
||||
levels of optimization. The syntax is:
|
||||
levels of optimization. The syntax is:
|
||||
|
||||
\b \c{-O0}: No optimization. All operands take their long forms,
|
||||
if a short form is not specified, except conditional jumps.
|
||||
|
||||
\b \c{-OL}: Legacy optimization. Like \c{-O0}, but displacements
|
||||
which will fit in a signed byte and do not contain references
|
||||
to labels later in the file are optimized, unless the long form
|
||||
is specified.
|
||||
This is intended to match NASM 0.98 behavior.
|
||||
|
||||
\b \c{-O1}: Minimal optimization. Like \c{-O0}, but immediate operands
|
||||
\b \c{-O1}: Minimal optimization. As above, but immediate operands
|
||||
which will fit in a signed byte are optimized,
|
||||
unless the long form is specified. Conditional jumps default
|
||||
to the long form unless otherwise specified.
|
||||
|
||||
\b \c{-Ox} (where \c{x} is the actual letter \c{x}): Full optimization.
|
||||
Minimize branch offsets, displacements and immediates,
|
||||
\b \c{-Ox} (where \c{x} is the actual letter \c{x}): Multipass optimization.
|
||||
Minimize branch offsets and signed immediate bytes,
|
||||
overriding size specification unless the \c{strict} keyword
|
||||
has been used (see \k{strict}). For compatibility with earlier
|
||||
has been used (see \k{strict}). For compatability with earlier
|
||||
releases, the letter \c{x} may also be any number greater than
|
||||
one. This number has no effect on the actual number of passes.
|
||||
|
||||
@@ -1844,8 +1843,8 @@ invent one using the macro processor.
|
||||
|
||||
\H{strict} \i\c{STRICT}: Inhibiting Optimization
|
||||
|
||||
When assembling with the optimizer set to full (see \k{opt-O}),
|
||||
NASM will use size specifiers (\c{BYTE}, \c{WORD},
|
||||
When assembling with the optimizer set to level 2 or higher (see
|
||||
\k{opt-O}), NASM will use size specifiers (\c{BYTE}, \c{WORD},
|
||||
\c{DWORD}, \c{QWORD}, \c{TWORD}, \c{OWORD} or \c{YWORD}), but will
|
||||
give them the smallest possible size. The keyword \c{STRICT} can be
|
||||
used to inhibit optimization and force a particular operand to be
|
||||
@@ -4953,7 +4952,7 @@ be specified, even if it is the same as the internal name. The
|
||||
available attributes are:
|
||||
|
||||
\b \c{resident} indicates that the exported name is to be kept
|
||||
resident by the system loader. This is an optimization for
|
||||
resident by the system loader. This is an optimisation for
|
||||
frequently used symbols imported by name.
|
||||
|
||||
\b \c{nodata} indicates that the exported symbol is a function which
|
||||
|
||||
Reference in New Issue
Block a user