the wrong level. As we weren't changing numterms before either, this
really could have no effect other than not freeing the memory immediately
(it would be freed later).
svn path=/trunk/yasm/; revision=1885
All are 64-bit capable and thus should set CPU_Hammer; Prescott
was mistakingly also setting AMD features such as 3DNow.
svn path=/trunk/yasm/; revision=1870
Two forms are legal ({} are replaceables):
SECTION {segname} {sectname}
SECTION {sectname} segname={segname}
Also,
SECTION {sectname}
where sectname is unrecognized is also legal, defaults segname to __TEXT,
and generates a warning.
Contributed by: bird-yasm@anduin.net
svn path=/trunk/yasm/; revision=1852
makes value/parameters more well-defined and flexible enough to handle
string parameters. Value/parameters would now be better called name/values,
but avoid changing the name for now.
svn path=/trunk/yasm/; revision=1851
from libyasm core. Now absolute sections are tracked locally to the parser
and the parser generates EQUs directly for labels in absolute sections.
Fixes#106 and #103.
svn path=/trunk/yasm/; revision=1842
rax/eax/ax operand. This operand actually selects the address size, so
make it a memory operand instead of a register operand (GAS follows this
approach as well). Enable SVM instructions in non-64-bit mode as well.
Now the following opcodes work as intended:
invlpga [rax/eax/ax], ecx
skinit [eax]
vmload/vmrun/vmsave [rax/eax/ax]
Noticed by: arkon@ragestorm.net
MFC after: 2 days
svn path=/trunk/yasm/; revision=1840
the rounding increment at the end of float conversion to wrap the mantissa
from all 1's to 0, resulting in an incorrect result.
svn path=/trunk/yasm/; revision=1836
Noticed by: arkon@ragestorm.net
Fix bug relating to recognizing crc32 rax, bh as an error: the opersize=64
changing into REX prefix was happening too late to be caught as an error.
Move this logic from tobytes()/len() functions into finalize(), with proper
prefix handling.
MFC after: 2 days
svn path=/trunk/yasm/; revision=1835
been using a mix of tabs and 4 spaces to indent; this looks horrible if
tab size is ever not 8. While I debated converting to tab-only indentation
that would have been a far higher impact to the source.
svn path=/trunk/yasm/; revision=1825
and common declare. The latter no longer passes through objfmt at parse time;
instead the objfmt must handle them at output time (objfmt-specific
extensions are parsed & stored by the parser). Directives are now handled
using a list (with function pointers) rather than a single function entry
point.
svn path=/trunk/yasm/; revision=1819
yasm_dbgfmt, and yasm_arch. This eliminates a lot of redundant keeping
track of this information in the individual object and debug formats and
also simplifies a fair amount of code.
I'm still not happy with how arch gets passed around in output code, but
there may not be much of an alternative there.
While I'm here, clean up some unused variables and functions and re-enable
the warning for unused variables in configure.ac.
svn path=/trunk/yasm/; revision=1812
in load commands. This caused test miscompares on other platforms and
could conceivably cause yasm to crash by reading beyond proper boundaries
(but this is unlikely). Functionally the output is the same.
Reported by: christophe.malvasio1@aliceadsl.fr
Backport in: 1 week
svn path=/trunk/yasm/; revision=1811
LOCKREP. According to mailing list traffic, Intel prefers this order
(apparently for SIMD?) and AMD doesn't care.
GAS commit by: H.J. Lu <hongjiu.lu@intel.com>
svn path=/trunk/yasm/; revision=1807
overrides such as: dword dword [5] or dword word [5]. The warnings for
these are disabled by default, as these combinations are intentially
legal for use with macros.
Suggested by: pingved@gmail.com
svn path=/trunk/yasm/; revision=1806
options: -E redirects errors to a file, and -s redirects errors to stdout.
The default for errors is still stderr.
Suggested by: pingved@gmail.com
svn path=/trunk/yasm/; revision=1804