BC_RESOLVE_UNKNOWN_LEN but also BC_RESOLVE_ERROR so that a spurious circular
reference detected is not output from the basic optimizer.
svn path=/trunk/yasm/; revision=732
/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
as shift ,1 operands and imm operands that have sign-extended imm8 forms that
can't be decided at parse-time. The x86 bc format already had support for
these. Also fixed a bug in the lfs family (incorrect inst len).
svn path=/trunk/yasm/; revision=677
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
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
into the optimizer stage, where it belongs. Naming has changed, but most
implementations have not been brought up to date to do what they say they
do.
svn path=/trunk/yasm/; revision=388
wrong (the ModRM byte definitely must be kept), but it had a memory leak too
(it just freed the ea without calling expr_delete())!
svn path=/trunk/yasm/; revision=367
FILE *'s to print to somewhere other than stdout, and the formatting is
improved through the use of a global indent_level.
Changes to main() include the ability to specify an output file.
svn path=/trunk/yasm/; revision=357
This is actually worthwhile; I found and fixed a few bugs/edge cases while
doing this.
For more information on LCLint, see <http://lclint.cs.virginia.edu/>.
svn path=/trunk/yasm/; revision=335