A long overdue release has finally emerged. The changes are mostly incremental improvements of both the decompiler outputs and of the decompiler code base itself. Some highlights are:
-
Rearchitecting of the
ILoader
/Loader
interface and class. -
Introduced the
IBinaryImage
interface that abstracts a binary image. The intent is to add adump
subcommand to the Reko command line client to make browsing of binaries convenient. -
added support for WASM 3.0 instructions.
-
added support for MN103, M16C, Telink TC32, and Angstrem KR1878 CPU architectures
-
added support for most of C-Sky floating point instructions.
-
added support for CP/M LBR archives
-
Reimplemented the handling of the CP/M BDOS dispatcher correctly.
-
All Z80 instructions have rewriters now.
-
Support for VAX Unix system calls
-
Fixed many bugs in the 6502 emulator
-
added support for calling MS-DOS and DPMI INT services from Win16Platform
-
added support for long constant fusion to all the major RISC architectures. The disassembly of (
load-high
/load-low
) instruction pairs is now easier to read. -
improved handling handling of procedures returning flag bits
-
added support for the
[[reko::segment]]
attribute in C/C++ header files -
added support for VAX
a.out
object files -
implemented missing logic in
WildPatternMatcher
+ re-enable unit tests -
refactored data flow analysis classes as implementations of the
IAnalysis<>
interface * Refactor core Analysis classes toReko.Core
so that architecture-specific analyses can be implemented without adding dependencies toReko.Decompiler
assembly. -
decompiled procedure arguments are ordered according to the ABI. Reko also tries to detect which ABI was used to compile procedures, if many ABIs are available on a particular platform.
-
better sequencing of VLIW instructions (see Hexagon implementation for details)