home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / asm_programming / CHANGES.DOC < prev    next >
Text File  |  1995-12-06  |  5KB  |  115 lines

  1. -------------------------------------------------------------------------------
  2.  
  3.                               Evolution of GEMA
  4.  
  5. -------------------------------------------------------------------------------
  6.  
  7. Version 1.0 : First official release.
  8.  
  9. Version 1.1 : Optimization, debugging.
  10.  
  11. Version 1.2 : Relocation, segmentation managing.
  12.  
  13. Version 1.3 : Linux portability, ehanced arithmetic processing.
  14.  
  15. Version 1.4 : DJGPP 32-bit adaptation, cleaner source, optimizations.
  16. Version 1.4r: Macros and INCLUDE.
  17.  
  18. Version 1.5 : Relocation functions debugged.
  19. Version 1.5r: ONCE directive, funny options.
  20.  
  21. Version 1.6 : INCLUDE in shareware release, documentation reviewed and
  22.         translated into english. Some new funny options were included.
  23. Version 1.6r: Now manages default 32-bits pages in protected mode.
  24.  
  25. Version 1.7 : LOCK is now a prefix. New info message for PC-relative code.
  26.         EXE signature fixed. DS.x are now faster. Fixed mistake between label
  27.         and register names with underscores ( thanks to M.Furic ) .
  28.         "--optimize" feature.
  29. Version 1.7r: Improved "--optimize". New "opt" directive.
  30.  
  31. Version 1.8 : Recompiled with GCC 2.6.3 + New GO32 -> Faster and safer
  32.         SHLD and SHRD are finally implemented.
  33. Version 1.8r: Idem.
  34.  
  35. Version 1.9 : New directives to check the size of code in a segment : REAL,
  36.         REALMODE, UNREAL, UNLIMIT, FLAT and SEGSIZE.
  37.         Extended warnings.
  38.         ';' support for non-independent comments.
  39.         ALL opcodes from 8086 to P6 are now supported, including undocumented
  40.         ones : AAM #, AAD #, SALC, ICEBP, INT01, UMOV, LOADALL, CMOV,
  41.         RDPMC, UD and UD2.
  42. Version 1.9r: Idem + INT01/TRAP01 aliases fixed.
  43.  
  44. Version 2.0 : Optimizations ( the parser is actually faster )
  45.     Absolute ASSUME.
  46.     frm.s fixed.
  47.     Little, but nasty bug with offsets fixed.
  48. Version 2.0r: Idem.
  49.  
  50. Version 2.1 : Fixed backward BRA.S and warnings in quiet mode.
  51. Version 2.1r: Idem + Recompiled with DJGPP 2.
  52.  
  53. Version 2.2 : First pass about 30% faster. Global optimizations.
  54. Version 2.2r: Idem.
  55.  
  56. Version 2.3a: Lotsa internal improvements.
  57. Version    2.3b: New 3-passes optimizer / cross-references solver.
  58.     Now performs backward and forward optimizations.
  59.     "title" directive. Changes in command line options.
  60. Version    2.3c: Automatic third pass in case of floating opcode sizes.
  61.     Improved verbose output. 486 optimizations. Optimal relocation
  62.     table for better compression.
  63. Version 2.3 : No public release.
  64. Version 2.3r: Not released.
  65.  
  66. Version 2.4 : Cleaner warnings/errors/misc. messages. push # fixed.
  67.     Improved automatic optimizations like GenST/GenAM : null offsets
  68.     removal, null branches replaced with nops, global short branches
  69.     reduction, ...
  70.     New directives for BSS segments. This release of GEMA is actually
  71.     smart, clean and reliable compared to the previous ones.
  72. Version 2.4r: Idem.
  73.  
  74. Version 2.5a: USE16/USE32/OPT directives. Peephole optimizations fixed.
  75.     Long conditional jumps fixed.
  76. Version 2.5b: move.? a,addr & move.? addr,a optimized. Minor fixes.
  77.     New release of ASM2GEMA, NO MORE IN THE PACKAGE. Available
  78.     separately.
  79.     Some changes in the documentations.
  80. Version 2.5c: Instructions like : "and.l #$ff,a" were equivalent to
  81.     "and.l #-1,a" or "and.l #$ffffffff,a" . This is due to a bug in
  82.     Hacker's View ( the disassembler I use to understand how Intel
  83.     opcodes are working ) . Fixed.
  84.     "mulu" was documented as a "mul" synonym, but not implemented. Fixed.
  85.     No basic check was done in addressing modes for speed purposes. For
  86.     instance, "(si+4)" gave no error nor warning. Fixed.
  87.     Many thanks to Alexey Voinov for reporting these bugs.
  88.     ':' operator changed ( see the documentation ) .
  89. Version 2.5r: Not released yet.
  90.  
  91.  
  92.  
  93. This release is an beta-version. Although I did lotsa tests, the generated
  94. code *MIGHT* be wrong when USE32 is enabled. If you find such bugs, please
  95. report them to me as fast as possible. When USE16 is enabled ( by default ),
  96. all should be reliable.
  97. The automatic optimizations may fail when crossed references implies variable-
  98. length blocks ( ie. ds.l label2-label1 ) . After some unsuccessful tries,
  99. GEMA disable the optimizations and restart from scratch in two passes. If
  100. "opt +o" is encountered in that case, it restarts until all is resolved.
  101. These features of automatic optimizations are still under development, as
  102. well as the ".OBJ" object files support.
  103.  
  104. As some people had troubles in getting in touch with me, here are four
  105. e-mail addresses I should answer from :
  106.  
  107. denis_r@epita.fr ( not denis_f )
  108. j@nether.net
  109. frank.denis@one.net
  110. root@the_one.epita.fr
  111.  
  112.  
  113. Last revision in date : December 6th, 1995.
  114.  
  115.