Peter Johnson
2ad58d8f33
Fix bug in align_section(): if a section has no bytecodes, last will be NULL!
...
svn path=/trunk/yasm/; revision=542
23 years ago
Peter Johnson
fc47434c16
Include errno.h to define errno.
...
svn path=/trunk/yasm/; revision=538
23 years ago
Michael Urman
e7278945e9
Get the type right for yyin. *sigh* How'd i decide it was a
...
YY_BUFFER_STATE?
svn path=/trunk/yasm/; revision=537
23 years ago
Michael Urman
13ab2a73b8
fix crash on nonexistent (or otherwise unopenable) include files.
...
svn path=/trunk/yasm/; revision=536
23 years ago
Peter Johnson
4468f7e7bb
Fix make distcheck by eliminating directory components.
...
svn path=/trunk/yasm/; revision=534
23 years ago
Peter Johnson
3ccc6a033c
Make a separate Makefile.inc for the yapp/tests directory.
...
svn path=/trunk/yasm/; revision=533
23 years ago
Peter Johnson
c738bd3f9d
Recursively expand EQU's.
...
svn path=/trunk/yasm/; revision=531
23 years ago
Peter Johnson
a2053f3086
Correctly output float expressions.
...
svn path=/trunk/yasm/; revision=530
23 years ago
Peter Johnson
fe8c2a009f
Restructure bc_calc_len() family into bc_resolve() family. Many many many
...
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
23 years ago
Peter Johnson
53002496e4
Fix a number of bugs in x86_checkea_calc_displen().
...
svn path=/trunk/yasm/; revision=527
23 years ago
Michael Urman
160ba169cc
Fix slight whitespace issue - don't append whitespace after closing
...
paren to beginning of expansion of %define with parameters.
svn path=/trunk/yasm/; revision=525
23 years ago
Michael Urman
575cc451ec
defines with parameters seem to work. wow. i need some more test
...
cases, cause i'm pretty sure i have to have missed something.
svn path=/trunk/yasm/; revision=524
23 years ago
Michael Urman
95e784bf75
Tests for define with parameters.
...
svn path=/trunk/yasm/; revision=523
23 years ago
Michael Urman
053d1c1d1c
Lots of preparations for expanding %defines with argument lists:
...
- several global struct source_head's have become localized to allow
recursion
- a few more helper functions, etc.
No change in the output yet, except in the previously unsupported cases.
svn path=/trunk/yasm/; revision=522
23 years ago
Peter Johnson
d85e7014a8
Binary object format output! Lots of structural changes needed, particularly
...
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
23 years ago
Peter Johnson
e56de0d158
Make call instruction work correctly. The old code generated a legal short
...
form for it (opcode length 1, opcode 0, rather than opcode length 0).
svn path=/trunk/yasm/; revision=520
23 years ago
Peter Johnson
44dbd8a872
Remove debugging print statement added in previous commit.
...
svn path=/trunk/yasm/; revision=519
23 years ago
Peter Johnson
62ece541a0
Make call instruction work correctly. The old code generated a legal short
...
form for it (opcode length 1, opcode 0, rather than opcode length 0).
svn path=/trunk/yasm/; revision=518
23 years ago
Peter Johnson
4dd0912998
Fix bug in 32-bit displacement with no registers.
...
svn path=/trunk/yasm/; revision=517
23 years ago
Michael Urman
dca731f6a7
Removed spurious src/tests/yapp_test from CLEANFILES (*bewildered look*)
...
svn path=/trunk/yasm/; revision=516
23 years ago
Peter Johnson
18ff2cc4f5
Don't block global src variable. While I'm here, change to use SLIST_FOREACH.
...
svn path=/trunk/yasm/; revision=515
23 years ago
Michael Urman
9259c6ea65
Now that whitespace is mostly preserved, no need for the next token for
...
guessing whitespace insertion.
svn path=/trunk/yasm/; revision=514
23 years ago
Michael Urman
b1496537f6
Handle recursive %defines properly.
...
svn path=/trunk/yasm/; revision=513
23 years ago
Michael Urman
b0b10ffe6b
Tests for recursive %defines.
...
svn path=/trunk/yasm/; revision=512
23 years ago
Michael Urman
18624703e3
Handle %define to %define - caught use of a global in a recursive func.
...
Fix how %defines get built - append_through_return -> append_to_return.
svn path=/trunk/yasm/; revision=511
23 years ago
Michael Urman
970e89dbee
test case for %define to a %define. non-recursive.
...
svn path=/trunk/yasm/; revision=510
23 years ago
Michael Urman
a74a807bba
Catch a few missing inhibited directives (not implemented yet anyway).
...
Preserve non-trailing whitespace (cleaner look, supports %define foo()).
Condense %line, \n or %line, %line into single %line.
svn path=/trunk/yasm/; revision=509
23 years ago
Michael Urman
90283e877e
Handle output inhibition more properly; %includes inside %ifs don't
...
actually %include, etc.
Also fix starting line to be 1, not 0.
svn path=/trunk/yasm/; revision=508
23 years ago
Michael Urman
655f98255f
Several new tests.
...
svn path=/trunk/yasm/; revision=507
23 years ago
Michael Urman
86e1c8338c
Catch "errors" and update report format
...
svn path=/trunk/yasm/; revision=506
23 years ago
Michael Urman
716884b0bb
Add ifdef tests.
...
svn path=/trunk/yasm/; revision=505
23 years ago
Michael Urman
314085475c
add beginnings of test suite for yapp
...
svn path=/trunk/yasm/; revision=504
23 years ago
Michael Urman
2c051baa0b
return [ and ] characters
...
svn path=/trunk/yasm/; revision=503
23 years ago
Michael Urman
944853f03a
Removed spurious include of objfmt
...
Added some debugging printf to isolate and fix failing define case
svn path=/trunk/yasm/; revision=502
23 years ago
Michael Urman
22d4d7b74d
Remove some spurious includes.
...
svn path=/trunk/yasm/; revision=501
23 years ago
Peter Johnson
b667c33ea5
Don't call bc_resolve (it's going away soon).
...
FIXME: Do we really need to check completion of all sections?
svn path=/trunk/yasm/; revision=500
23 years ago
Peter Johnson
c855e4061e
Move static structures from .h to .c, include .h in .l.
...
svn path=/trunk/yasm/; revision=492
23 years ago
Peter Johnson
4933f17355
Fix warning.
...
svn path=/trunk/yasm/; revision=491
23 years ago
Peter Johnson
07c3299820
Add bin object format.
...
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
23 years ago
Michael Urman
4818dbe555
Fixed some warnings.
...
The wussy way, cause i didn't comment any of the new prototypes.
svn path=/trunk/yasm/; revision=486
23 years ago
Michael Urman
7c073b5c23
Add const char *in_filename arguments to
...
- 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
23 years ago
Michael Urman
2d0615384d
YAPP has arrived.
...
Or at least it has begun. At this point it can only handle:
%define
%if*def
%el*def
%else
%endif
%include (to some degree; needs a lot of thought, but recurses fine)
and replacing simple %defines (like %define foo bar)
And like all code, it's probably horribly inconsistent about variable
names, etc. We'll wash it later.
svn path=/trunk/yasm/; revision=483
23 years ago
Michael Urman
6b65e7a522
Update main files to include support for yapp.
...
This includes defaulting to yapp for ./yasm -e passes.
svn path=/trunk/yasm/; revision=482
23 years ago
Peter Johnson
5d2e9ea0f0
Allow preprocess-only and setting of preproc. Update main() and related
...
functions to be a bit more clean.
svn path=/trunk/yasm/; revision=479
23 years ago
Peter Johnson
0177d689a1
Revamp object format functional interface a bit. Now, only the output()
...
function gets a FILE *, and it's the only function that can write to a file.
The object file is thus not opened until AFTER parsing and most error checking
is complete. Necessitated adding a special case for the dbg object format
because it needs to output to the "object" (debug) file from essentially every
function. Added a global (debug_file) to support this.
svn path=/trunk/yasm/; revision=476
23 years ago
Peter Johnson
a0d61f00c1
Enable second pass (resolve/calculate known values).
...
svn path=/trunk/yasm/; revision=475
23 years ago
Peter Johnson
f5bf04dd41
Include errwarn.h to declare ErrorAt().
...
svn path=/trunk/yasm/; revision=474
23 years ago
Peter Johnson
964c755067
Indicate actual line number of circular reference error.
...
svn path=/trunk/yasm/; revision=472
23 years ago
Peter Johnson
7217fd10db
Bring up-to-date with traverse function changes. Start trying to check for
...
circular references.
svn path=/trunk/yasm/; revision=471
23 years ago
Peter Johnson
4f7daa4d39
Fix issue with how symrec's are handled when an expression is copied: old code
...
just assigned the pointer: but the symrec is deleted (if it's not in the symbol
table) when the expr is deleted. Thus, we need to create a copy of the symrec
instead of just reusing the same value if it's going to be deleted later. This
trickles down to objfmt to copy the objfmt-local data.
svn path=/trunk/yasm/; revision=467
23 years ago