licensing issues with this. All the compiler warnings have been fixed, and
most namespace issues resolved. However, the integration isn't perfect, and
there are probably memory leaks. Note that right now the real NASM preproc
and "compatible" NASM parser share a module. The parser should probably be
renamed to avoid extra loading and code source confusion.
svn path=/trunk/yasm/; revision=800
libintl dependency in modules.
Also standardize initialize() and cleanup() functions.
Move replace_extension() from file.c to main.c.
Clean up some extern variable declarations in various places (particularly
nasm-compatible parser).
svn path=/trunk/yasm/; revision=792
the line index. Fixes some minor line number/error message nits due to
incorrect usage of line_index in old global variable method.
svn path=/trunk/yasm/; revision=787
fewer options for sed, and using a perl script for hexdump. As a side effect,
hexdumps are more accurate (the hexdump util put * for as many multiples as
were output, whereas the perl script outputs a line for every byte, no matter
what).
svn path=/trunk/yasm/; revision=736
/distances/ between bytecodes in a section using bc_calc_dist() functions (a
"typical" one is provided for most occasions). expr_expand_labelequ() is gone,
as its functionality is integrated into expr_simplify(). Currently these
changes break most bin objfmt output, as it doesn't know how to resolve
absolute labels yet. Also, very preliminary expr support for :, SEG, and WRT
operators has been added (part of Bug#2). Several other minor bug fixes.
svn path=/trunk/yasm/; revision=718
Bugzilla Bug#3. Not all instructions are parsed yet, so this is actually a
minor feature regression from the user side, but this commit lays the framework
for much easier additions of new assembler syntaxes and architectures. The
re2c tool is now used to generate the lexers, as it's much more flexibly
function-oriented than lex.
- nasm-bison.y is a repocopy+modify of nasm/bison.y.in.
- x86arch.h now includes all of x86-int.h
svn path=/trunk/yasm/; revision=670
Changes to:
objfmt interface: added parameter to directive() for sections access.
section interface: moved start to be present for all section types.
basic optimizer: add section start to offset determination.
(much of the section start changes are due to the need to make sure offsets
don't end up being optimized into byte-sized offsets that can't be relocated).
svn path=/trunk/yasm/; revision=490
- preproc initialize function
- parser parse function (to pass to preproc initialize)
so that the preprocessor has a clue what file it's in.
svn path=/trunk/yasm/; revision=484
"index". This fixes some problems with assumptions made by various parts of
the code that are invalidated when the line number doesn't always increase (eg.
when the NASM %line directive is used).
Speed fixes are needed to the implementation of the line_* functions in
globals.c before this is finished.
svn path=/trunk/yasm/; revision=424
Note: still is automake-generated, but uses .inc files in the various
subdirectories instead of .am files.
TODO: Move arch-specific components of bytecode_test and memexpr_test to
arch/x86.
svn path=/trunk/yasm/; revision=395
is done in the grammer causes 1 shift/reduce and 1 reduce/reduce conflict, but
yacc's default resolution gives correct results, and as the generated grammer
is smaller this way than specifically handling each prefix, we do it this way.
svn path=/trunk/yasm/; revision=377
data pointers to symrec for extern/common/etc. Also fixed parsing of direxpr;
it didn't allow exprs with ID's before.
svn path=/trunk/yasm/; revision=356
"ADD AX, byte 8" to generate the same code as NASM does (OT: this doesn't save
any space because the reg8x form needs a ModRM, but if it's what the user
wants, do it).
svn path=/trunk/yasm/; revision=353