Not doing this could cause us to lose an entry if the tree is deep enough
that we need to rehash the keys as we're moving downward.
Reported by: Stefan Sellmer <stefansel@hotmail.de>
svn path=/trunk/yasm/; revision=1905
- HAMT_search() wasn't doing a full string comparison on the key before
returning success.
- HAMT_insert()'s check for the above was always doing a case-sensitive
check; fixed to use case-insensitive when the HAMT is supposed to be
case-insensitive (and likewise for HAMT_search).
svn path=/trunk/yasm/; revision=1903
intnum to not allocate bitvectors for "most" negative numbers.
We pay a bit more in conversion, but save big in terms of memory and
malloc/free calls
(e.g. ~10,000 allocations and ~250K bytes for elf-x86id.asm test).
svn path=/trunk/yasm/; revision=1900
parser.
Add testcase for both local labels and .org fill.
Noticed by: Jung Lee <moorang@gmail.com>
Testcase from: Xiaoming Mo <xiaoming.mo@skelix.org>
svn path=/trunk/yasm/; revision=1899
Fix a nit in yasm_linemap_poke() for the case when set() has not been
called before calling this function; the prior behavior could result
in incorrect line numbers due to not properly adjusting the new line
number.
svn path=/trunk/yasm/; revision=1896
customize on the arch side of things. Instead of passing around an
arch_data[4] for instructions, now the arch can extend the structure itself
to add additional information in any format it likes.
svn path=/trunk/yasm/; revision=1889
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
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
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
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
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
build platform files.
While here, fix a few warnings by pushing uintptr_t to a few more register
usages.
Noticed by: rugxulo@gmail.com
svn path=/trunk/yasm/; revision=1786
a lower level.
To reduce code duplication, refactor several of the large if/else structures
into multiple functions with a lookup table.
Add support for registers to be used in directive expressions.
Allow directives to have underscores and numbers (still cannot start with
numbers).
svn path=/trunk/yasm/; revision=1757
bytecode multiple.
strucsize.asm tests both creation and instantiation of a nested structure.
[1751] and [1752] fix bugs found during the testing of the instantiation
portion of this testcase.
A side effect of this change is that some errors are found in different
phases, and the error messages are slightly different. Split
reserve-error.asm testcase into two parts to still get full coverage.
svn path=/trunk/yasm/; revision=1753