Releases: santiontanon/mdlz80optimizer
Releases · santiontanon/mdlz80optimizer
mdl beta v1.3
Changes with respect to v1.2:
- binary generation (mdl can be used as a stand-alone assembler now, using the syntax of all the supported dialects)
- improved support for sdcc integration
- many internal improvements and bug-fixes
mdl alpha v1.2
This is a maintenance release, with minor improvements on the optimizer, better asMSX support and some bug fixes.
mdl alpha v1.1
This just just a maintenance release, with some bug fixes, and only minor improvements in the optimizer.
mdl alpha v1.0
Changes since previous version:
- Robustness: main focus of this release (updated the CPU op definition tables with many fixes, fixes in many of the dialects to improve compatibility, better support for character escaping having in mind the different ways in which different assemblers handle them, etc.)
- Changed the warning system: off by default, and you can turn coding style warnings on with the -warn flag
- New experimental execution mode for the pattern-based optimizer activated with "-poapply": this will automatically apply the optimizations to the original source files, saving copies of every input file with ".mdl.asm" extension. All updates to the source code are marked with "; -mdl" (deletion) and "; +mdl" (addition).
mdl alpha v9
New in this release:
- improved parser support for tniasm, sjasm, asmsx
- initial support for sdcc assembler output! (minimal)
- better optimizer:
- expanded template language to allow for more complex patterns (introduced the concept of an "?op" variable)
- improved dependency tracking to allow some more optimizations to trigger
- more optimization patterns
- better assembler output: added a collection of command line flags to configure the output to be compilable with different assemblers (currently tested with glass and asmsx)
mdl alpha v8
New in this release:
-
parser support:
- sjasm: more robust colon-less label recognition, better [] repeat support, module/endmodule, more fake instructions supported, S/NS flag synonym support
- glass: better support for the "section" keyword, and scoping adjusted to mimic closer Glass's process. Automatically generated code for Glass with sections now results in working binaries.
- pasmo: initial support for pasmo (limited, just enough to make the FlappyBird project in pasmo parse)
- winAPE: initial support (limited, just enough to make the Subcommander project (in winAPE syntax), parse)
- tniasm/sjasm/asmsx: fixed local label resolution when they were inside of a macro (e.g. IFDEF)
-
The pattern-based optimizer is a significantly faster for larger projects now
-
more flexible optimization patterns including repetitions
-
many bug fixes
mdl alpha v7
parser support:
- sjasm: support for extended instructions (e.g. "ld a,(hl++)"), ":" operator, macros with arguments specified in a numeric way, page keyword, allow macros with the same name and different number of arguments, code blocks are now properly relocated into pages using the same assignment algorithm like the original sjasm
optimizer:
- significantly increased the number of patterns
- optimizer is robust enough so that automatically generated code by MDL (-asm flag) now compiles and produces working ROMs for most projects (except Glass projects with "section" usage, which is not yet supported)
bugs fixed:
- jp -> jr pattern range fixed
- labels not allowed in between code matched by a pattern to prevent unsafe optimizations
- preserve labels when instructions are removed by an optimization
mdl alpha v6
- Improved parser support for:
- sjasm
- asMSX
- Improved optimizer:
- more and more flexible patterns
- added a new pattern file for size-based optimizations (the default optimizations are only those that would improve both speed and size). Size-based optimizations might decrease speed, but can be more aggressive in terms of size
- lots of bug fixes
- Improved line number tracking for messages
mdl alpha v5
- improved parser support for:
- Glass: all keywords supported ("section" only minimally supported, enough for getting the label addresses right, and for using the optimizer; but if mdl is asked to generate assembler output, it might not be correct)
- asMSX
- tniasm (thanks to theNestruo!)
- improved optimizer:
- more optimization patterns
- more flexible pattern matcher (with better expression unification)
- tracking of time savings in optimizations
mdl alpha v4
- Improved support for Glass, asMSX and sjasm dialects
- lots of bug fixes
- initial support for integration into VSCode and Sublime Text (thanks to theNestruo!)