mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-11-22 23:32:15 +03:00
3e918f8b51
The old formulation (with system calls as block terminators) proved to be impossible to implement properly. Handlers for syntax overrides have very limited types (`IO`, rather than `OverrideSim`), which made symbolic branching and reusing overrides impossible. This change replaces the system call block terminator with an arch-specific function that is translated into a function handle lookup (which is then dispatched to with a call). Unfortunately, this refactoring required combining the AArch32 simplification module with the architecture extension definitions, due to the new translation relying on the simplifier instance.
367 B
367 B
Revision history for macaw-arm
Next
Features
- Added support for symbolically executing system calls
Breaking Changes
-
The architecture-specific terminator and functions have changed to support system calls
The terminators are gone, replaced by additional function forms. Note that these are compiled away during the translation into crucible.