macaw/x86
Joe Hendrix 46be7aa52b Implement new registerUse analysis.
The new registerUse analysis uses a three phase process:

Phase 1 computes invariants about the start state of each block.  It
will indicate when registers/stack locations store stack offsets, and
where callee saved registers are stashed.  It also memoizes
information about stack reads and writes to simplify later passes.

Phase 2 is a demand analysis that computes which registers and stack
locations must be available to execute the program.  It then
propagates those constraints across blocks in the function.

Phase 3 combines the information into a form relevant for function
recovery.
2020-02-06 19:26:46 -08:00
..
src/Data/Macaw Implement new registerUse analysis. 2020-02-06 19:26:46 -08:00
support Add x86-support to travis 2019-03-26 08:21:01 -07:00
tests Add testcase for non-zero index jumptable. 2019-12-04 14:31:45 -08:00
x86_tests Segment register updates; stack offset calculation. 2019-09-20 13:58:05 -07:00
.gitignore Add x86 specific code. 2017-09-27 15:54:43 -07:00
LICENSE Update license information. 2017-09-27 15:59:06 -07:00
macaw-x86.cabal Semantics for MULX from BMI2 and all of ADX 2019-12-19 10:43:54 -05:00