Reported by: Loren Merritt
Fix by: mu@
We already had a testcase for this, but it had an incorrect "golden" result.
svn path=/trunk/yasm/; revision=1952
Users who build out of SVN will need to install Python, but this is painless even for
Windows users
(go to http://www.python.org/download/ and download and install the appropriate MSI)
Delete generated files from SVN; these are massive and annoying to keep updated
(massive diffs).
svn path=/trunk/yasm/; revision=1944
systems, by combining operand lists into a single array (and trying to find
overlaps where possible). This saves about 4K even on a 32-bit system.
Also shrink the generated gperf code by outputting the number of info
structures directly rather than using NELEMS().
svn path=/trunk/yasm/; revision=1943
standard output. This makes for better error handling behavior with make
(redirecting the standard output could leave empty files behind on error).
svn path=/trunk/yasm/; revision=1939
While I prefer not to have generated files in the source repository,
do this for now in the interest of sanity on the Windows side (to allow
building directly from a SVN checkout).
An alternative might be to require Python on Windows when building from
SVN. If at some point we decide to go that route, it will be easy enough
to remove these files and add the necessary bits to Mkfiles/vc and
Mkfiles/vc8.
svn path=/trunk/yasm/; revision=1938
This combines the C and perfect hash tables into a single source file,
and allows for easier future changes to the source-level structures.
The Python-built files are included in the distribution so that Python
is not added as a dependency.
The generated code has been verified equal against the old tables,
excepting a number of bugfixes.
Most of the bugs fixed are in the CPU field, plus a few GAS suffix fixes.
svn path=/trunk/yasm/; revision=1937
* modules.vcproj: Add x86cpu.c, x86regtmod.c, and lc3b arch files to fix build.
* x85geninsn.c: Clean up a couple of unused variables.
* genperf.c: Use sprintf instead of snprintf; convert filename backslashes to slashes.
svn path=/trunk/yasm/; revision=1932
instruction handling.
Use the GNU gperf file format, but continue to use our custom minimal
perfect hash generator.
svn path=/trunk/yasm/; revision=1929
documentation update:
- LZCNT
- POPCNT
- EXTRQ
- INSERTQ
- MOVNTSD
- MOVNTSS
This required some new tricks in the x86 code, as EXTRQ and INSERTQ have
two imm8 parameters (the first one of which goes into the EA field), and
INSERTQ has a *4* parameter version (xmm1, xmm2, imm8, imm8). Instead of
globally making the structures 4 wide, we just special-case INSERTQ.
svn path=/trunk/yasm/; revision=1909
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