home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
programming
/
asm_programming
/
CHANGES.DOC
< prev
next >
Wrap
Text File
|
1995-12-06
|
5KB
|
115 lines
-------------------------------------------------------------------------------
Evolution of GEMA
-------------------------------------------------------------------------------
Version 1.0 : First official release.
Version 1.1 : Optimization, debugging.
Version 1.2 : Relocation, segmentation managing.
Version 1.3 : Linux portability, ehanced arithmetic processing.
Version 1.4 : DJGPP 32-bit adaptation, cleaner source, optimizations.
Version 1.4r: Macros and INCLUDE.
Version 1.5 : Relocation functions debugged.
Version 1.5r: ONCE directive, funny options.
Version 1.6 : INCLUDE in shareware release, documentation reviewed and
translated into english. Some new funny options were included.
Version 1.6r: Now manages default 32-bits pages in protected mode.
Version 1.7 : LOCK is now a prefix. New info message for PC-relative code.
EXE signature fixed. DS.x are now faster. Fixed mistake between label
and register names with underscores ( thanks to M.Furic ) .
"--optimize" feature.
Version 1.7r: Improved "--optimize". New "opt" directive.
Version 1.8 : Recompiled with GCC 2.6.3 + New GO32 -> Faster and safer
SHLD and SHRD are finally implemented.
Version 1.8r: Idem.
Version 1.9 : New directives to check the size of code in a segment : REAL,
REALMODE, UNREAL, UNLIMIT, FLAT and SEGSIZE.
Extended warnings.
';' support for non-independent comments.
ALL opcodes from 8086 to P6 are now supported, including undocumented
ones : AAM #, AAD #, SALC, ICEBP, INT01, UMOV, LOADALL, CMOV,
RDPMC, UD and UD2.
Version 1.9r: Idem + INT01/TRAP01 aliases fixed.
Version 2.0 : Optimizations ( the parser is actually faster )
Absolute ASSUME.
frm.s fixed.
Little, but nasty bug with offsets fixed.
Version 2.0r: Idem.
Version 2.1 : Fixed backward BRA.S and warnings in quiet mode.
Version 2.1r: Idem + Recompiled with DJGPP 2.
Version 2.2 : First pass about 30% faster. Global optimizations.
Version 2.2r: Idem.
Version 2.3a: Lotsa internal improvements.
Version 2.3b: New 3-passes optimizer / cross-references solver.
Now performs backward and forward optimizations.
"title" directive. Changes in command line options.
Version 2.3c: Automatic third pass in case of floating opcode sizes.
Improved verbose output. 486 optimizations. Optimal relocation
table for better compression.
Version 2.3 : No public release.
Version 2.3r: Not released.
Version 2.4 : Cleaner warnings/errors/misc. messages. push # fixed.
Improved automatic optimizations like GenST/GenAM : null offsets
removal, null branches replaced with nops, global short branches
reduction, ...
New directives for BSS segments. This release of GEMA is actually
smart, clean and reliable compared to the previous ones.
Version 2.4r: Idem.
Version 2.5a: USE16/USE32/OPT directives. Peephole optimizations fixed.
Long conditional jumps fixed.
Version 2.5b: move.? a,addr & move.? addr,a optimized. Minor fixes.
New release of ASM2GEMA, NO MORE IN THE PACKAGE. Available
separately.
Some changes in the documentations.
Version 2.5c: Instructions like : "and.l #$ff,a" were equivalent to
"and.l #-1,a" or "and.l #$ffffffff,a" . This is due to a bug in
Hacker's View ( the disassembler I use to understand how Intel
opcodes are working ) . Fixed.
"mulu" was documented as a "mul" synonym, but not implemented. Fixed.
No basic check was done in addressing modes for speed purposes. For
instance, "(si+4)" gave no error nor warning. Fixed.
Many thanks to Alexey Voinov for reporting these bugs.
':' operator changed ( see the documentation ) .
Version 2.5r: Not released yet.
This release is an beta-version. Although I did lotsa tests, the generated
code *MIGHT* be wrong when USE32 is enabled. If you find such bugs, please
report them to me as fast as possible. When USE16 is enabled ( by default ),
all should be reliable.
The automatic optimizations may fail when crossed references implies variable-
length blocks ( ie. ds.l label2-label1 ) . After some unsuccessful tries,
GEMA disable the optimizations and restart from scratch in two passes. If
"opt +o" is encountered in that case, it restarts until all is resolved.
These features of automatic optimizations are still under development, as
well as the ".OBJ" object files support.
As some people had troubles in getting in touch with me, here are four
e-mail addresses I should answer from :
denis_r@epita.fr ( not denis_f )
j@nether.net
frank.denis@one.net
root@the_one.epita.fr
Last revision in date : December 6th, 1995.