Commit Graph

1622 Commits

Author SHA1 Message Date
Tristan Ravitch
b8c3e65389 Add a test with a call 2020-04-06 15:56:43 -07:00
Tristan Ravitch
b9672eb7f9 Add a missing symbolic instance 2020-04-05 22:08:58 -07:00
Tristan Ravitch
c5fe84f97c Add a missing instance for ARMReg 2020-04-05 21:17:47 -07:00
Tristan Ravitch
f3b6b6ba4a Add a (dummy) symbolic backend for AArch32 2020-04-05 21:16:03 -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
Tristan Ravitch
58150e91b5 Update macaw-ppc to the macaw-semmc endianness parameterization 2020-04-05 14:44:53 -07:00
Daniel Matichuk
a739223371 disable logging output 2020-04-04 22:27:08 -07:00
Daniel Matichuk
77e721ac0e add support for redundant nested muxes 2020-04-04 22:24:47 -07:00
Ben Selfridge
b79561914e Merge branch 'feature/asl' of https://github.com/GaloisInc/macaw into feature/asl 2020-04-04 19:17:07 -07:00
Ben Selfridge
d8a601a1b8 feature/asl: checking in latest, test-conditional almost passing 2020-04-04 19:11:23 -07:00
Daniel Matichuk
4614658073 bump semmc 2020-04-04 19:01:16 -07:00
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
Ben Selfridge
094f4be22e Merge branch 'feature/asl' of https://github.com/GaloisInc/macaw into feature/asl 2020-04-04 11:26:43 -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
5bd55bb7ad feature/asl: fixed build by using expected return type for init_gpr 2020-04-03 22:09:20 -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