Peter Johnson
ff1fba3feb
Fix bug with ONE generation (overwrote both [0] and [1] indexes with opcode
...
for ONE version).
svn path=/trunk/yasm/; revision=366
23 years ago
Peter Johnson
4af9db689c
Change dbg optimizer to basic.
...
svn path=/trunk/yasm/; revision=365
23 years ago
Peter Johnson
a7ce9bf2d1
Delete dbg optimizer (won't be useful) and add "basic" (equiv. to NASM 2-pass)
...
optimizer.
svn path=/trunk/yasm/; revision=364
23 years ago
Peter Johnson
ce4a5fe02a
Switch from using ternary tree to Hash Array Mapped Trie (HAMT), which has
...
*much* less overhead.
XXX: current implementation of HAMT is *not* portable due to pointer alignment
restrictions (it uses the LSB of a pointer to store a flag). Need to write a
portable (if not so space-efficient) equivalent.
svn path=/trunk/yasm/; revision=363
23 years ago
Peter Johnson
41d256accc
General tests of directives.
...
svn path=/trunk/yasm/; revision=362
23 years ago
Peter Johnson
77bf842ffc
Test the imm and imm8x forms of add.
...
svn path=/trunk/yasm/; revision=361
23 years ago
Peter Johnson
f371273c90
Add two larger NASM-preprocessed files from UIUC ECE 291's PModeLib as more
...
typical assembly files.
svn path=/trunk/yasm/; revision=360
23 years ago
Peter Johnson
afcdf3ecd9
Test global/common sharing in addition to extern.
...
svn path=/trunk/yasm/; revision=359
23 years ago
Peter Johnson
9dc4e6eccc
How does NASM's bin format handle sections?
...
svn path=/trunk/yasm/; revision=358
23 years ago
Peter Johnson
825eaa5823
Massive cleanup of debugging output (via _print() functions). All now take
...
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
23 years ago
Peter Johnson
b930d117d3
Polish up most directive support. This necessitated adding objfmt-specific
...
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
23 years ago
Peter Johnson
ac655d6bc6
Add vps_next().
...
svn path=/trunk/yasm/; revision=355
23 years ago
Peter Johnson
b2876e5f3a
Allow multiple EXTERN's of same variable without error (NASM's behavior).
...
svn path=/trunk/yasm/; revision=354
23 years ago
Peter Johnson
bd921434cb
Don't do REG_E?AX combining with reg8/reg8x instructions, to allow things like
...
"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
23 years ago
Peter Johnson
7a3761ac0c
Plug memory leak in dvs_delete().
...
svn path=/trunk/yasm/; revision=352
23 years ago
Peter Johnson
379d2b353c
Print "undefined symbol" message for all undefined symbols. Also make a little
...
nicer output by only outputting the "reported only once" informational message
once, for the first (line-wise) error.
Note: this isn't foolproof, as different files have different line countings...
need a monotonically increasing "line" counter to fix this. This is a problem
in more areas than just here, though.
svn path=/trunk/yasm/; revision=351
23 years ago
Peter Johnson
b1257a7992
Bugfix in expr_copy_except(): could allocate less than 2 terms of space (eg,
...
actually smaller than the structure).
svn path=/trunk/yasm/; revision=350
23 years ago
Peter Johnson
7bdebece8b
Don't print out *all* bytecodes in the label's section for every label!
...
svn path=/trunk/yasm/; revision=349
23 years ago
Peter Johnson
9f63877c07
In bytecode_print(), fix checks for short/near opcode printouts.
...
svn path=/trunk/yasm/; revision=348
23 years ago
Peter Johnson
d894c27cca
Fix hexidecimal number handling. It was only allowing numbers starting with 0.
...
svn path=/trunk/yasm/; revision=347
23 years ago
Peter Johnson
94a5e7fe03
Revert previous changes (which turned on -v), it was accidentally committed.
...
svn path=/trunk/yasm/; revision=346
23 years ago
Peter Johnson
9a84b66d1c
Don't try to redefine a label for an already existing segment. Thus, add a
...
return flag from sections_switch_general() to indicate if the segment is new,
which is checked in objfmt_sections_switch().
svn path=/trunk/yasm/; revision=345
23 years ago
Peter Johnson
9c7469116d
Fix a memory re-free issue in nasm_parser_directive(). vp->param was passed
...
to a function that keeps the pointer, and then the pointer is freed. Whoops!
svn path=/trunk/yasm/; revision=344
23 years ago
Peter Johnson
8cbf2c2312
- Greatly enhance capabilities of directives (they're actually parsed now).
...
objfmt interface changed a lot due to this.
- New variables cur_objfmt and cur_parser that define what objfmt/parser are
active. They're set in main() by searching through the list of objfmts and
parsers. This necessitated libyasm.a to be listed twice in LDADD.
svn path=/trunk/yasm/; revision=343
23 years ago
Peter Johnson
b963c38833
Change val to be a string instead of an expr.
...
svn path=/trunk/yasm/; revision=342
23 years ago
Peter Johnson
ac65ee8770
Better LCLint settings for x86_bc_insn_get_ea().
...
svn path=/trunk/yasm/; revision=341
23 years ago
Peter Johnson
5cd0858637
Add valparam data structure.
...
svn path=/trunk/yasm/; revision=340
23 years ago
Peter Johnson
c7e3ad29e9
Don't set nasm_parser_debug (as we'll soon not define YYDEBUG in bison.y.in).
...
svn path=/trunk/yasm/; revision=339
23 years ago
Peter Johnson
29f7d9a917
New function: expr_get_symrec().
...
svn path=/trunk/yasm/; revision=338
23 years ago
Peter Johnson
d6d0cb8785
Add symrec_delete() for deleting non-table symbols. Use it from expr_delete().
...
Also allow the sect for labels to be NULL (special case for new directive
handling code).
svn path=/trunk/yasm/; revision=337
23 years ago
Peter Johnson
dd9ad840fe
Decided to go ahead and commit these little NASM-syntax test files I've been
...
using for testing various things during development. Many don't even actually
assemble, as they're testing error conditions. These all need to be integrated
into a test suite at some point to be truly useful.
svn path=/trunk/yasm/; revision=336
23 years ago
Peter Johnson
8178f883a5
Modify so that almost everything passes LCLint with the options in lclint.sh.
...
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
23 years ago
Peter Johnson
fc603c2900
Add RCSID().
...
svn path=/trunk/yasm/; revision=334
23 years ago
Peter Johnson
15c08c6969
Clean up to pass lclint.
...
svn path=/trunk/yasm/; revision=333
23 years ago
Peter Johnson
424c30fdaa
Allow symrec_foreach return value to be ignored (in lclint).
...
svn path=/trunk/yasm/; revision=332
23 years ago
Peter Johnson
4df0191de8
lclint-ize gettext().
...
svn path=/trunk/yasm/; revision=331
23 years ago
Peter Johnson
9f97bcd9d0
Fix some nits found by lclint. Still something weird going on with list2 in
...
mergesort(), according to lclint, but I haven't figured out if it's real or
not.
svn path=/trunk/yasm/; revision=330
23 years ago
Peter Johnson
21eb7c7fe2
Add some lclint annotations.
...
svn path=/trunk/yasm/; revision=329
23 years ago
Peter Johnson
d7fe402fb9
Split away x86-specific parts of expression handling (eg, effective address ->
...
ModRM+SIB).
svn path=/trunk/yasm/; revision=328
23 years ago
Peter Johnson
a2bc46cb54
Fix file comment.
...
svn path=/trunk/yasm/; revision=327
23 years ago
Peter Johnson
7463b74d8f
Update to match tree changes.
...
svn path=/trunk/yasm/; revision=326
23 years ago
Peter Johnson
8aae1337e7
Update to match tree changes.
...
svn path=/trunk/yasm/; revision=325
23 years ago
Peter Johnson
6c53c9525c
Maintain 'latest' symlink.
...
svn path=/trunk/yasm/; revision=324
23 years ago
Peter Johnson
d00bfd8443
Add nightly build script.
...
svn path=/trunk/yasm/; revision=323
23 years ago
Peter Johnson
418bece971
Bring in depcomp from Automake 1.5.
...
svn path=/trunk/yasm/; revision=322
23 years ago
Peter Johnson
50a79210b0
Run with -a so that any missing files get added instead of just failing.
...
svn path=/trunk/yasm/; revision=321
23 years ago
Peter Johnson
c438c62948
Fix AC_REPLACE_FUNCS handling for tests as well as src/ by putting LIBOBJS
...
into libyasm.a instead of just for the yasm target.
svn path=/trunk/yasm/; revision=320
23 years ago
Peter Johnson
25e52594c4
Hopefully fix problem with including replacement functions.
...
svn path=/trunk/yasm/; revision=319
23 years ago
Peter Johnson
c88fae3f49
Add mergesort.c and strsep.c to EXTRA_DIST.
...
svn path=/trunk/yasm/; revision=318
23 years ago
Peter Johnson
cb34adf93e
Add autogen script to make building straight from CVS easier.
...
svn path=/trunk/yasm/; revision=317
23 years ago