.file (sans file number) and .line need to be given before error messages
start having the file/line numbers specified.
This temporarily breaks .rept error reporting somewhat (as the current code
outputs just .line for .rept expansion), but this will be fixed soon.
svn path=/trunk/yasm/; revision=1700
"--force-strict", which switches Yasm back to the old behavior of treating
any sized operand as "strict" (forcing the actual size).
Requested by: Michael Urman <mu@tortall.net>
svn path=/trunk/yasm/; revision=1681
other testcase changes).
While I'm here, fix handling of arith [], dword X in 64-bit mode by making
this an error; it's impossible to tell if add dword [], X or add qword [], X
is meant as the immediate part is always a dword. This is only important for
arith rather than other memory instructions due to dword also being needed
for optimization.
Next step: support strict for jump sizing and optimize non-strict sized
jumps.
svn path=/trunk/yasm/; revision=1680
Actually, GAS parser doesn't use this yet, as it still contains the rept
functionality that will move to GAS preproc at some point. When GAS
preproc implements rept, we can switch to the common implementation.
svn path=/trunk/yasm/; revision=1668
While the F2/F3/66 prefix used by these instructions should precede the
REX prefix in 64-bit mode, they should probably not precede the segment
override. The processor specifications seem to be unclear on this point,
so play it safe.
This change has a minor side-effect of reversing the segreg/size override
ordering on things like "fs cmpsd" in 16-bit mode; this is okay as those
prefixes can be in any order. This is due to the way Yasm implements
segreg overrides for instructions with no EA.
Reported by: Danny Reeves <danny_reeves@hotmail.com>
svn path=/trunk/yasm/; revision=1666
bug (probably http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778) by not
accepting NULL for eh, and giving it the static eh at the sole caller of
this function (yasm_expr__level_tree). While I'm here, clean up the logic
a bit to avoid relying on ee.e NULL value. This fix prevents crashes in
GCC 4.1.1 with -fstrict-aliasing (enabled by -O2).
Noticed by: Danny Reeves <danny_reeves@hotmail.com>
svn path=/trunk/yasm/; revision=1665
an error if no files are specified (instead of defaulting to stdin).
While the old behavior mimiced GNU AS, the new behavior is far more common
amongst typical compilers (e.g. GCC), including NASM.
While I'm here, add support for '--' (e.g. "yasm -- -f").
svn path=/trunk/yasm/; revision=1659
in the preproc (e.g mm%$x -> mm0) when I implemented a minor optimization
(outputing values in hex to avoid the 2x decimal conversion overhead) in
[1488]. Revert that optimization.
I believe the right way to do this is to add the GAS (and MASM) syntax
sugar of mm(0) etc. to NASM syntax, then any number (not just decimal)
can be used as the new idiom for doing this. But that wouldn't unbreak
programs that already exist, so we're left with this state of affairs.
Sigh.
svn path=/trunk/yasm/; revision=1657
setting in the file and use it against the entire file (oops).
(first half of #83)
Also make the error message a lot nicer, at least for ones we detect early
(shl ax, 2 in 8086 mode still gives the old message).
While I'm here, upgrade movsd to CPU_386.
svn path=/trunk/yasm/; revision=1654