Commit Graph

148 Commits

Author SHA1 Message Date
Kevin Quick
3e9ecbaa8e
Update submodules for parameterized-utils release 2.1.0 compatibility. 2020-05-17 22:49:37 -07:00
Tristan Ravitch
938734d1e9 Submodule updates 2020-04-12 19:39:52 -07:00
Tristan Ravitch
6faf54ec42 Merge branch 'feature/asl' of github.com:GaloisInc/macaw into feature/asl 2020-04-06 21:46:37 -07:00
Daniel Matichuk
c5f374682e bump semmc 2020-04-06 21:01:41 -07:00
Daniel Wagner
277e1cd379 provide a way to mark certain jumps as terminal 2020-04-06 20:33:20 -07:00
Tristan Ravitch
1fa9b86b26 Rename macaw-asl to macaw-aarch32
This is more descriptive, especially since we will eventually have
macaw-aarch32 (also derived from the ASL specs)
2020-04-05 15:16:39 -07:00
Ben Selfridge
d8a601a1b8 feature/asl: checking in latest, test-conditional almost passing 2020-04-04 19:11:23 -07:00
Daniel Matichuk
42e22cfba5 bump submodules 2020-04-04 03:51:08 -07:00
Daniel Matichuk
5dab9c5209 Merge remote-tracking branch 'origin/master' into feature/asl 2020-04-03 23:38:19 -07:00
Ben Selfridge
8afc18dc62 feature/asl: BROKEN BUILD -- updated asl-translator, need to fix 2020-04-03 18:33:31 -07:00
Andrei Stefanescu
0be59e5815
Update Macaw to use HasLLVMAnn. (#122) 2020-04-02 17:58:47 -07:00
Ben Selfridge
c8736a83a3 feature/asl: bump semmc 2020-04-01 20:56:14 -07:00
Ben Selfridge
1b7fb5be73 feature/asl: bump asl-translator 2020-03-29 10:19:09 -07:00
Daniel Matichuk
1aa10fc35b bump submodules 2020-03-25 17:59:28 -07:00
Ben Selfridge
fd6343a254 submodule bump 2020-03-24 16:37:36 -07:00
Andrew Kent
3e5f52f11b bump semmc submodule, add what4-serialize dep 2020-03-18 12:01:17 -07:00
Ben Selfridge
acc79e1e24 bump asl-translator 2020-03-17 09:28:39 -07:00
Ben Selfridge
eee580fce4 bump semmc 2020-03-17 09:28:08 -07:00
Tristan Ravitch
4e487d5a5a Submodule update
This fixes an error introduced in the ghc-8.8 updates.  The error caused
macaw-x86 to throw an uncaught error when decoding certain instructions, when it
should have instead caught the error and reported a decode failure as a block
terminator.
2020-03-13 10:53:24 -07:00
Tristan Ravitch
e024646860
macaw-refinement (#114)
This commit updates macaw-refinement to work with the latest macaw/crucible and makes a few improvements along the way.

The major changes involved in this are:
* Block labels were removed from macaw, so we had to come up with an alternative approach to making synthetic blocks to represent dispatch resolved by macaw-refinement that is not really a jump table. We considered adding a new terminator that encoded "computed IP-based dispatch", but there was concern about the impact on client code. Instead, we added a field to the `DiscoveryFunInfo` that records "external" resolutions to indirect control flow (e.g., as by an SMT solver in macaw-refinement). The hook by which we feed SMT-based resolutions back into macaw was modified accordingly (`addDiscoveredFunctionBlockTargets`).
* Solver invocation changed to allow solver selection and parallel solver application.
* Logging is now done via the `lumberjack` library.
* macaw-symbolic now uses the "external" resolutions in `DiscoveryFunInfo` while building crucible CFGs.
* The path creation code in macaw-refinement was simplified significantly and the approach to path creation has been documented.
* The run-refinement tool is now more featureful.
* The test suite is a bit more structured and no longer depends on the printed output of the discovery process.
2020-03-12 17:15:08 -07:00
Ben Selfridge
9a51fcb14b feature/asl: bump asl-translator 2020-03-11 12:28:49 -07:00
Ben Selfridge
c176c05f61 feature/asl: bump semmc 2020-03-11 11:26:30 -07:00
Ben Selfridge
16c08f72f8 updated crucible/what4 2020-03-10 14:26:55 -07:00
Ben Selfridge
14ee2a7f70 feature/asl: update parameterized-utils 2020-03-09 15:23:32 -07:00
Tristan Ravitch
c825332f39
Update/ghc 8.8 (#112)
Updates for GHC 8.8

The two main classes of update are related to MonadFail and type alias expansion.

The MonadFail updates introduce explicit MonadFail instances and backward-compatible `fail` implementations under `Monad` for older GHC versions.

The type alias expansion rules changed in GHC 8.8 in a way that breaks the `Simple Lens` idiom; instead, we have to use `Lens'`.  Lens started supporting this alias in version 3.8, which was released in 2013.

This change includes necessary submodule updates, as well as the update for the split of what4 into its own repository.
2020-03-03 13:28:26 -08:00
Daniel Matichuk
8a4dc3f10a bump submodules 2020-02-27 13:34:27 -08:00
Daniel Matichuk
a98dec23c0 bump submodules 2020-02-26 23:05:08 -08:00
Daniel Matichuk
ad10d389fb copy macaw-arm into macaw-asl 2020-02-24 15:39:41 -08:00
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
Tristan Ravitch
e3aaf47a50
Tr/update submodules (#105)
The main change here is in macaw-semmc to account for a change to the BVOrBits
operation in Crucible.
2020-01-25 12:25:38 -08:00
Tristan Ravitch
d119a9ed5a
Update submodules (#104)
The main change here is in macaw-semmc to account for a change to the BVOrBits
operation in Crucible.
2020-01-17 16:17:30 -08:00
Tristan Ravitch
6b490a8193 Update the crucible submodule
The only real code change required is that simulation failure messages have an
extra argument.  The goal with this update is to pull in some fixes to the
solver feature detection for yices in the latest crucible.
2019-12-19 15:03:09 -08:00
Tristan Ravitch
62eb2deb1f Update macaw-semmc to work with crucible changes
The improved string support in Crucible adds a parameter to string reprs; this
change accommodates that.  Earlier changes added the necessary support in the
rest of macaw.
2019-12-02 18:42:46 -08:00
Rob Dockins
d068667ed8 Merge branch 'master' into rwd/strings2 2019-11-23 18:53:37 -08:00
Tristan Ravitch
b44e8c480f Update the semmc submodule
This brings it up to master.  The submodule has some improvements to synthesis,
but they changed some APIs.
2019-11-21 20:42:05 -08:00
Joe Hendrix
999d67168a
Update crucible 2019-11-19 14:54:29 -08:00
Rob Dockins
13aefd82f2 Update macaw-symbolic with changes to string literals in what4 2019-11-15 14:39:38 -08:00
Tristan Ravitch
989cc65f7a Move active submodules from submodules to deps
This was an artifact of merging macaw-semmc into macaw.  This commit unifies the
two directories.  There are some remaining submodules in the old directory:
these are obsolete and will be removed in a separate commit.
2019-11-12 18:13:00 -08:00
Andrew Kent
587aa7ea6b
Update crux/crucible code to use float mode reprs; bump submodules 2019-11-05 15:23:51 -08:00
Joe Hendrix
28e3624ca6
Bump parameterized-utils version 2019-08-30 00:02:23 -07:00
Joe Hendrix
5c27c8d824
Bump flexdis 2019-08-27 18:38:05 -07:00
Joe Hendrix
fcec02bf31
Bump parameterized-utils 2019-08-27 17:22:33 -07:00
Joe Hendrix
9d399941bb
Update flexdis 2019-08-27 17:19:36 -07:00
Joe Hendrix
18f2f3b1fa
Bump dependencies. 2019-08-27 16:53:18 -07:00
Joe Hendrix
b1c6fb8b77
Fix parameterized-utils dependency 2019-08-21 23:59:22 -07:00
Joe Hendrix
bc0dce4778
Update submodules 2019-08-12 11:46:15 -07:00
Kevin Quick
55459fdf2d
Update crucible submodule version. 2019-08-07 10:45:45 -07:00
Joe Hendrix
738daaa809
Update submodules 2019-07-29 11:51:38 -07:00
Kevin Quick
1b4c11550f Update crucible dependency. 2019-07-19 10:23:19 -07:00
Joe Hendrix
17c09c974f
Bump submodules; clarify stack offset abstract values 2019-07-01 16:35:47 -07:00
Joe Hendrix
dba7a2e88d
Bump submodules; version dependencies 2019-06-12 15:49:05 -07:00
Joe Hendrix
4368ed6239
Fix parameterized-utils and bump version. 2019-06-05 09:50:12 -04:00
Joe Hendrix
c3f747aa86
Update dependencies/minor corrections. 2019-06-05 09:02:25 -04:00
Joe Hendrix
41a75597a0
Submodule/stack updates. 2019-05-28 14:25:50 -07:00
Joe Hendrix
b13c3b3c63
Bump submodules 2019-05-28 13:07:35 -07:00
Joe Hendrix
1607e83eef
Minor refactoring; improved branch abstract state propagation.
This primarily refines the abstract state propagated to branch
pairs.  It was needed on the ARM platform to support the IT blocks
with the changes to the Core representation in macaw-base 0.3.6.

This also includes a few simplifications added and comment
improvements.
2019-05-14 17:45:30 -07:00
Joe Hendrix
b05d7cc1b5
Update versions. 2019-04-26 10:37:04 -07:00
Joe Hendrix
62d27d629d
Update to latest elf-edit; bump other submodules. 2019-04-08 16:21:08 -07:00
Joe Hendrix
b3913695e1
Update llvm-pretty-bc-parser version. 2019-03-25 14:43:56 -07:00
Joe Hendrix
95c59eaf52
Update travis script and dependencies. 2019-03-25 13:20:51 -07:00
Joe Hendrix
fd397a80d8
Update dependencies 2019-03-22 09:41:29 -07:00
Aaron Tomb
cd87c12f28 Update crucible submodule 2019-03-06 11:52:22 -08:00
Joe Hendrix
e204724358
Merge pull request #27 from GaloisInc/jhx/vec
Add vector type and operations.
2019-02-27 08:57:50 -08:00
Joe Hendrix
89ffdf088a
Fix macaw-x86-symbolic and update crucible. 2019-02-27 01:43:53 -08:00
Kevin Quick
11a2481135
Add llvm-pretty-bc-parser dependency. 2019-02-21 22:21:51 -08:00
Joe Hendrix
35af2a5c3a
Rename VectorTypeRepr to VecTypeRepr 2019-02-19 10:18:12 -08:00
Kevin Quick
b80ab8fb67
[symbolic] update to latest crucible. 2019-02-19 08:24:45 -08:00
Tristan Ravitch
c527a91521 Merge branch 'master' of github.com:GaloisInc/macaw 2019-02-15 08:31:41 -08:00
Joe Hendrix
3b7e12de16
Update to fix build process. 2019-02-15 00:28:35 -08:00
Tristan Ravitch
934784aed2 Update submodules
The code has been updated, but the crucible submodule was out of date (w.r.t. some what4 changes in
the natrepr)
2019-02-14 21:20:59 -08:00
Langston Barrett
274808a8ae update parameterized-utils submodule 2019-02-11 11:47:19 -08:00
Joe Hendrix
8bf0d00e66
Fix warnings; crucible changes. 2019-01-22 10:25:45 -05:00
Joe Hendrix
0eac4d6b49
Remove blockAddr; update dependencies 2019-01-22 05:07:52 -05:00
Tristan Ravitch
379f89ee78 Update to the latest crucible version
The llvm memory model was extended with better diagnostics and configurable
handling of undefined behavior.  macaw-symbolic uses no undefined behavior
checking, as those operations are only undefined in C.
2019-01-11 23:01:07 -08:00
Luke Maurer
46cdd8be82 Adapt to Nonce-based registerized CFGs 2019-01-03 12:10:24 -08:00
Brian Huffman
a8ad3121ef Bump crucible submodule. 2018-12-20 14:02:52 -08:00
Brian Huffman
00c08376e5 Bump crucible version; adapt to crucible-llvm changes. 2018-12-18 17:47:50 -08:00
Brian Huffman
7e6582fa07 Bump submodules, adapt to changes in crucible-llvm api. 2018-12-18 13:47:51 -08:00
Joe Hendrix
a0a89083e8
Support X86 Relative; other minor changes. 2018-12-03 20:52:44 -08:00
Joe Hendrix
1547712176
Bump parameterized-util version. 2018-11-17 16:03:34 -08:00
Joe Hendrix
127e7fbe34
Bump submodules. 2018-11-17 15:52:14 -08:00
Joe Hendrix
a2b2a0b0cc
Bump submodules 2018-09-17 15:41:34 -07:00
Joe Hendrix
0193c28325
Update submodules. 2018-09-10 15:56:45 -07:00
Joe Hendrix
64d71737af
Bump submodules 2018-08-15 00:17:03 -07:00
Joe Hendrix
230b318dcf
Updates to discovery 2018-08-14 23:29:02 -07:00
Kevin Quick
9876c2aff8
Submodule update for crucible. 2018-08-10 15:08:34 -07:00
Joe Hendrix
59bd994191
Bump parameterized-utils submodule 2018-07-23 14:57:41 -07:00
Joe Hendrix
dc4a4f0f5f
Merge remote-tracking branch 'public/stable' into jhx-x86-improvements 2018-07-20 20:32:09 -07:00
Rob Dockins
75e4728464 Update to refactor crucible simulator 2018-07-20 18:53:53 -07:00
Joe Hendrix
f096cb81c4
Update flexdis 2018-07-20 11:06:49 -07:00
Joe Hendrix
4ea55924b8
Update submodules 2018-07-20 10:46:09 -07:00
Joe Hendrix
0fc925f989
Update for elf-edit compat 2018-06-15 08:24:52 -07:00
Joe Hendrix
494f6c176d
Updates to Macaw. 2018-06-06 11:48:45 -07:00
Rob Dockins
f74d999896 Bump crucible submodule again 2018-05-17 14:06:24 -07:00
Rob Dockins
c382b59bed Bump crucible submodule to pull in crucible/what4 split refactor,
and update macaw-symbolic and macax-x86-symbolic.
2018-05-15 15:58:14 -07:00
Rob Dockins
c3fb0069e9 Bump crucible submodule 2018-05-04 15:43:20 -07:00
Joe Hendrix
72b667a49c
Add crucible so we can build macaw-symbolic on travis. 2018-04-25 00:16:53 -07:00
Joe Hendrix
000c2f900e
Move macaw stack.yaml to root for similiarity with other Galois packages. 2018-04-24 09:05:36 -07:00