Commit Graph

1609 Commits

Author SHA1 Message Date
Daniel Matichuk
31901ff4d7 translate memory writes via function calls 2020-04-04 18:58:54 -07:00
Daniel Matichuk
d1f72478eb add use __BranchTaken flag 2020-04-04 16:37:00 -07:00
Daniel Matichuk
8b252eab0d concretize some more CPU state 2020-04-04 13:53:25 -07:00
Daniel Matichuk
42e22cfba5 bump submodules 2020-04-04 03:51:08 -07:00
Daniel Matichuk
6716c663a2 initial attempt at handling stateful branches 2020-04-04 03:13:03 -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
db848db3ef feature/asl: added test-conditional-a32 test 2020-04-01 22:36:18 -07:00
Ben Selfridge
c21cf9e77b feature/asl: rid not concrete errors more descriptive 2020-04-01 22:35:52 -07:00
Ben Selfridge
050625300e feature/asl: passing test-just-exit-a32 2020-04-01 20:57:22 -07:00
Ben Selfridge
c8736a83a3 feature/asl: bump semmc 2020-04-01 20:56:14 -07:00
Ben Selfridge
7e78fbcf25 feature/asl: fixed syntax error and removed integers 2020-03-29 10:21:09 -07:00
Ben Selfridge
5f9267e97f feature/asl: added failing tests 2020-03-29 10:20:52 -07:00
Ben Selfridge
c5f41cab52 feature/asl: added all registers besides memory to register list 2020-03-29 10:19:41 -07:00
Ben Selfridge
1b7fb5be73 feature/asl: bump asl-translator 2020-03-29 10:19:09 -07:00
Ben Selfridge
9bceb3a06c feature/asl: updating to new semmc 2020-03-26 10:01:10 -07:00
Joe Hendrix
564a0a7b33
Merge pull request #120 from GaloisInc/jhx/function-arg-warnings
Remove spurious warnings from function args.

These were often incorrect.
2020-03-26 08:46:13 -07:00
Joe Hendrix
14da5837a6 Remove spurious warnings from function args. 2020-03-25 23:20:53 -07:00
Daniel Matichuk
1aa10fc35b bump submodules 2020-03-25 17:59:28 -07:00
Daniel Matichuk
40a553b10b update test script to use asl-lite 2020-03-25 15:40:42 -07:00
Ben Selfridge
e2de076b9c feature/asl: thumb semantics 2020-03-25 15:06:10 -07:00
Ben Selfridge
f80dde767d feature/asl: memory and register writes 2020-03-25 14:27:22 -07:00
Joe Hendrix
f2a9619122
Merge pull request #119 from GaloisInc/jhx/registeruse-fix
Fix register-use; add null terminated string reader to Memory.
2020-03-25 12:06:32 -07:00
Ben Selfridge
a478fd77b6 feature/asl: arm semantics compiling 2020-03-24 16:38:20 -07:00
Ben Selfridge
fd6343a254 submodule bump 2020-03-24 16:37:36 -07:00
Joe Hendrix
2f93b70946 Fix register-use; add null terminated string reader to Memory. 2020-03-20 18:22:48 -07:00
Ben Selfridge
99cb01bf0e feature/asl: translate gpr_get UF 2020-03-19 16:49:10 -07:00
Ben Selfridge
fde33aac81 feature/asl added support for undefined and init functions 2020-03-19 14:45:43 -07:00
Ben Selfridge
5d40475232 feature/asl: translateFunction allows functions to call other functions 2020-03-18 15:46:57 -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
Ben Selfridge
20fe9e19f5 feature/asl: added fall-through case in armNonceAppEval 2020-03-17 09:26:40 -07:00
Tristan Ravitch
d468ef68e9
Merge pull request #116 from GaloisInc/tr/submodule-update
Submodule update
2020-03-13 15:01:06 -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
947cbbed85 feature/asl: comment out semantics TH for now so the project builds 2020-03-11 11:27:04 -07:00
Ben Selfridge
c176c05f61 feature/asl: bump semmc 2020-03-11 11:26:30 -07:00
Ben Selfridge
c1b9e48e98 feature/asl: bug fix, had forgotten to add R0 to armRegs 2020-03-11 11:19:37 -07:00
Ben Selfridge
16c08f72f8 updated crucible/what4 2020-03-10 14:26:55 -07:00
Ben Selfridge
deb6d2b161 feature/asl: lifted endianness out of macaw-semmc TH 2020-03-09 16:07:07 -07:00
Ben Selfridge
06482d29e9 feature/asl: Now compiles, no semantics yet 2020-03-09 15:26:28 -07:00
Ben Selfridge
14ee2a7f70 feature/asl: update parameterized-utils 2020-03-09 15:23:32 -07:00
Ben Selfridge
6cbf12623a feature/asl: Eval compiles, probably incomplete 2020-03-04 11:07:45 -08: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
Ben Selfridge
77486004a3 feature/asl: Arch.hs compiles, but we probably need to add stuff to it 2020-02-28 12:17:43 -08:00
Ben Selfridge
c8c918128b feature/asl: finished locToRegTH in ARMReg 2020-02-28 12:17:22 -08:00
Ben Selfridge
4d4d067245 feature/asl: updated ARMReg to new ASL types. Still need to write
locToRegTH function.
2020-02-27 17:59:33 -08:00