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
expr_level_tree(). This fixes negative equ's and probably other issues.
This also makes expr_simplify() a macro pointing to expr_level_tree().
svn path=/trunk/yasm/; revision=778
To ensure all section start addresses are known, added a first pre-pass of
sections to calculate each one's address.
svn path=/trunk/yasm/; revision=775
pathname changing issues when builddir != srcdir (previous workaround worked
for text files, but for more complex objfmts such as coff that embed the source
filename in the binary output file, we need to find a different way).
svn path=/trunk/yasm/; revision=771
Add delete function for symrec objfmt-specific data to objfmt interface.
Delete declare_data_copy function from objfmt interface (it wasn't being called
from anywhere).
Implement functions missing from dbg objfmt.
svn path=/trunk/yasm/; revision=763
arch. This will also simplify other objfmt expr output functions. Change
file functions to use bits instead of byte/short/long, and create both little
and big endian versions. This name change caused changes in several other
files.
svn path=/trunk/yasm/; revision=747
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
intnum_new_int. Currently only just calls intnum_new_uint with a cast, but
eventually there may be a better way of handling signed numbers.
svn path=/trunk/yasm/; revision=708
- Add two new bytecode types:
BC_ALIGN (not yet implemented) for performing nice alignment magic.
BC_OBJFMT_DATA for storing objfmt-generated data in more advanced objfmts.
- objfmt structure changes:
Add handling functions for BC_OBJFMT_DATA data.
Allow a number of functions to be NULL.
svn path=/trunk/yasm/; revision=631
be allocated and filled with 0's to write it out).
Other fixes:
Specifically look for floating point values in res* and multiple exprs.
One-byte PC-relative displacement *is* legal (short jumps).
svn path=/trunk/yasm/; revision=620
- expr can now negate floatnums
- bin objfmt output_expr now correctly outputs all sizes of integers and
does a check for floating point containing exprs before complaining about
external references. Also checks for properly sized floatnum output with
an ErrorAt instead of an InternalError.
svn path=/trunk/yasm/; revision=618
- fix memory leak in bin_objfmt_resolve_label2()
- delete common data in bin_objfmt_common_data_new() rather than continuing
to handle it in declare_data_*()
svn path=/trunk/yasm/; revision=604
bugfixes to the bc_tobytes() family and other functions. Binary object output
is now close to complete: just a few more bugs to kill!
svn path=/trunk/yasm/; revision=528
with regards to resolve_label().
MAJOR FIXME: The tobytes() pass acts like a final optimization pass. This
causes internal errors because of length mismatches (optimized to shorter len).
svn path=/trunk/yasm/; revision=521