Peter Johnson [Wed, 3 Oct 2001 20:42:17 +0000 (20:42 -0000)]
Make most data structures opaque, keeping internals truly internal and making the
overall structure much more modular.
The test files, which need access to the internals of the structures being
tested, now include the source file instead of the header file to gain access
to all internal formats and functions.
Peter Johnson [Wed, 3 Oct 2001 07:14:48 +0000 (07:14 -0000)]
Completely revamp format and extensiveness of testing.
Currently two tests fail (the approx 1.e-38 in single and double precision).
Need still to add tests for ASCII->internal conversion.
Peter Johnson [Wed, 3 Oct 2001 02:27:41 +0000 (02:27 -0000)]
malloc->xmalloc, strdup->xstrdup, and calloc->xcalloc. The x* family performs
error checking. Remove check for strdup() from configure, as we don't need it.
Peter Johnson [Wed, 3 Oct 2001 01:44:47 +0000 (01:44 -0000)]
Add some (optional through configure) additional warning flags. Add options
to configure to enable profiling and enable -Werror. Make changes to ensure
everything builds with all additional warnings and -Werror enabled. Most of
these changes consist of adding "const" modifiers for functions that get
constant literal strings.
Peter Johnson [Tue, 2 Oct 2001 23:24:15 +0000 (23:24 -0000)]
Finish ASCII->internal FP conversion and clean up single/double/extended
conversion functions. For accuracy, change from 64-bit to 80-bit internal
mantissa. Modify tests to match new internal format.
TODO: Denormalized numbers, and write more tests!
Peter Johnson [Thu, 27 Sep 2001 07:55:36 +0000 (07:55 -0000)]
Implement floating point size conversions (with help from BitVector).
Interface changed slightly (only affects symrec.c right now). Tests committed
to check a single case (pi) with all three size conversion functions.
Still need to write to/from ASCII string functions (the hard part).
Peter Johnson [Wed, 26 Sep 2001 00:57:55 +0000 (00:57 -0000)]
Fix large parts of expression and symbol handling. Actually link in labels
properly (bug #8). Framework added for portable floating point support (bug
#7). Lots of functions still not finished in this commit.
Peter Johnson [Mon, 24 Sep 2001 21:39:45 +0000 (21:39 -0000)]
Change error/warning framework to store a list of errors and warnings instead
of just one at a time. This is the groundwork for printing undefined symbol
messages, which can't be determined until after parsing has been completed
(and should be in the same line order with the other errors).
Peter Johnson [Mon, 24 Sep 2001 06:40:27 +0000 (06:40 -0000)]
Used ternary search tree instead of linked list to store symbol table.
Cleaned up function naming too.
Removed locallabel_base from global.h, moving it into the parser-specific code.
Made sym_table private to symrec.c.
Peter Johnson [Sun, 23 Sep 2001 19:22:04 +0000 (19:22 -0000)]
Get initial bits setting from object format. Change the initial section name
from a function to a constant string. Make mode_bits uniformily an unsigned
char instead of an int.
Peter Johnson [Thu, 20 Sep 2001 06:25:05 +0000 (06:25 -0000)]
Try to fix configure and automake files so everything builds a bit cleaner.
Also try to fix the warnings on the GNU C Library.
Still a lot of work and testing to be done here, but making progress.
Peter Johnson [Thu, 20 Sep 2001 03:21:26 +0000 (03:21 -0000)]
Cleaned up bytecode data structure, some effaddr functions. Made ea an
effaddr * instead of an effaddr to decrease size of bytecode. Changed parser
to use effaddr * as well. Finally fixed issue with ONE by adding flag to
bytecode.data.insn and utilizing spare bytes of the opcode. Hackish, but
works.
Peter Johnson [Wed, 19 Sep 2001 07:20:02 +0000 (07:20 -0000)]
Build section linked list, and support the section directive, including
asking the objfmt module. Add some utility functions for both bytecode
and section to better modularize their data structure usage and common
code. Rename doparse to do_parse to be consistent in naming.
Peter Johnson [Tue, 18 Sep 2001 22:06:09 +0000 (22:06 -0000)]
Print the test function name along with the test case name. Many of our
functions are so small that it doesn't make sense to have a test case for
every function (rather just a test function for every function).
Peter Johnson [Tue, 18 Sep 2001 17:38:45 +0000 (17:38 -0000)]
Add unit test framework using Check (http://check.sourceforge.net/).
Only test included right now is a tiny one for one bytecode function, but
will grow as time goes on.
TODO: check for non ANSI C things required by Check.
Peter Johnson [Sun, 16 Sep 2001 09:13:00 +0000 (09:13 -0000)]
Check for case-insensitive string comparisons. Use strcasecmp and strncasecmp
in the source: if stricmp or strcmpi is available, they're mapped to
strcasecmp.
Peter Johnson [Sun, 16 Sep 2001 04:49:46 +0000 (04:49 -0000)]
Use queue.h macros in section.h, and reference bytecode using bytecodehead.
Remove old "append" function from bytecode.h
Add generic parser functions, clean up parser struct.
Peter Johnson [Sat, 15 Sep 2001 07:16:59 +0000 (07:16 -0000)]
Rename outfmt to objfmt and related files and directories. "objfmt" is more
descriptive of what the module is actually used for ("output" is rather
generic).