Commit Graph

2004 Commits

Author SHA1 Message Date
Sam Breese
135fb062bb
x86: Fix semantics for BSF and BSR instructions (#216)
* x86: Fix semantics for BSF and BSR instructions

* Add a test for BSR and BSF
2021-07-13 14:14:59 -04:00
Joe Hendrix
e01155e32f
Merge pull request #218 from GaloisInc/jhx/fix
Specify function name in register use error message
2021-07-12 16:22:39 -07:00
Joe Hendrix
4afe6fd82e Specify function name in register use error message 2021-07-12 11:59:43 -07:00
Tristan Ravitch
a0aaa6e083
Attempt to use self-hosted CI runners (#215)
Switch the github actions configuration to use internally-hosted runners, which have enough memory to complete all of the CI jobs
2021-07-12 11:58:21 -07:00
Tristan Ravitch
f2e3d9652c
Merge pull request #214 from GaloisInc/tr/arm-pc-fix
Tr/arm pc fix
2021-07-10 20:28:22 -07:00
Tristan Ravitch
cb02157ca6
Merge branch 'master' into tr/arm-pc-fix 2021-07-09 11:03:18 -07:00
Tristan Ravitch
f13eb7c01f Add an additional case handling reading/writing the PC directly
We originally left this case out to catch cases where the PC was written to
directly (skipping the special `LoadWritePC` logic in the semantics). At this
point we are confident that the ARM semantics handle that correctly. The
translation of the semantics into macaw (via TH) are not entirely lazy, and the
interpretation will call this function indirectly (via `get_gpr_uf`); returning
Nothing in the `r15` case caused that part of the translation to fail. The
resulting value is never actually used (because the ARM semantics have special
behavior when reading from `r15`), but the error was too eager and caused a
crash.

This change just lets that code continue.
2021-07-09 10:54:58 -07:00
Joe Hendrix
e4b198ab2d
Merge pull request #211 from GaloisInc/jhx/event
Improve event handling
2021-06-14 22:19:16 -07:00
Joe Hendrix
a646d5fab2 Update submodules 2021-06-14 15:41:32 -07:00
Joe Hendrix
cdc90bd846 Update to more recent flexdis 2021-06-14 13:22:46 -07:00
Joe Hendrix
a50faaebd1 Move isExecutableSegOff check in discovery 2021-06-13 11:55:08 -07:00
Joe Hendrix
cda1d50b28 Expand register use error reasons.
This allows architecture-specific functions to add additional detail.
2021-06-12 12:33:42 -07:00
Joe Hendrix
ad6573556b Cleanups, formatting changes, and remove unused functionality. 2021-06-10 14:09:04 -07:00
Joe Hendrix
7729de2d2c Fix typos in error message; export ArchAddrWidth 2021-06-05 16:07:03 -07:00
Joe Hendrix
e55ebc95cd WIP. Improved error messages 2021-05-27 14:13:13 -07:00
Joe Hendrix
d9fa8af6c8
Merge pull request #210 from GaloisInc/jhx/invariant
Invariant inference changes.
2021-05-26 12:16:38 -07:00
Joe Hendrix
5e89e6f63d Cleanup compare-dwarfdump; bump submodules. 2021-05-26 07:25:51 -07:00
Joe Hendrix
ac5770f300 Switch compare-dwarfdump to use llvm 12. 2021-05-25 10:06:33 -07:00
Joe Hendrix
8216088158 Invariant inference changes.
This refactors demand analysis so we export assignment inferred values
and also no longer compute demands for assigments when inference
infers a value for them.

This exposes more information but requires changes to consumers of
information.
2021-05-24 14:03:24 -07:00
Joe Hendrix
7e8b02a905
Merge pull request #209 from GaloisInc/jhx/dynamic
Add script to simplify updating cabal freeze files.
2021-05-19 23:25:39 -07:00
Joe Hendrix
25e09b8688 Add script to simplify updating cabal freeze files. 2021-05-19 21:02:56 -07:00
Joe Hendrix
3150edf59e
Merge pull request #207 from GaloisInc/jhx/dynamic
Support elf-edit dynamic changes
2021-05-07 20:24:53 -07:00
Joe Hendrix
3d38843ea5 Github CI use ghcup 2021-05-07 17:20:42 -07:00
Joe Hendrix
7db9baf439 Support elf-edit changes 2021-05-07 14:18:56 -07:00
Joe Hendrix
d487101a76
Merge pull request #206 from GaloisInc/jhx/inc
Various cleanups and generalizations for Reopt.
2021-04-28 11:55:57 -07:00
Joe Hendrix
12c3829a1e Reorganize event reporting for Reopt compatibility. 2021-04-27 23:54:11 -07:00
Joe Hendrix
e2ae54cd04 Add error messages and generalize function argument analysis. 2021-04-27 23:54:11 -07:00
Joe Hendrix
3fb39610bb Export lower level function for getting memory from elf segments. 2021-04-27 23:54:11 -07:00
Joe Hendrix
b26a4e64d8 Declare BlockInvariantMap 2021-04-27 23:54:11 -07:00
Joe Hendrix
483cc25553 Relax requirement on pointer type byte size attribute. 2021-04-27 23:54:11 -07:00
Joe Hendrix
ceb64be843 Sort x86 functions for easier browsing. 2021-04-27 23:54:11 -07:00
Joe Hendrix
b813ecda9a
Merge pull request #204 from GaloisInc/jhx/inc
WIP: Introduce incremental computation monad; refactoring of app output.
2021-04-22 09:51:26 -07:00
Joe Hendrix
1cb86f771c Cleanup discovery; fix macaw-symbolic 2021-04-21 11:27:27 -07:00
Joe Hendrix
1dd776b636 Introduce incremental computation monad; use in discovery. 2021-04-21 11:27:27 -07:00
Daniel Matichuk
1d9d5efe1d
correctly set block endings for all slice exits (#205) 2021-04-14 08:38:16 -07:00
Daniel Matichuk
5ee1b35fc2 correctly set block endings for all slice exits 2021-04-13 15:46:06 -07:00
Kevin Quick
ff894f9286
Merge pull request #202: rename to MacawEvalStmtFunc
[symbolic] Rename EvalStmtFunc to MacawEvalStmtFunc
2021-04-05 14:48:29 -07:00
Kevin Quick
b79e313cfc
Revert unintentional type parameter change in MacawEvalStmtFunc. 2021-04-05 12:07:49 -07:00
Kevin Quick
ff4af631fd
[symbolic] Rename EvalStmtFunc to MacawEvalStmtFunc for clarity relative to Crucible EvalStmtFunc. 2021-04-05 11:07:19 -07:00
Kevin Quick
87d055cfff
Merge pull request #201 from GaloisInc/dgb_1617637498-0
Comment and haddock fixes; make errors generic
2021-04-05 10:43:24 -07:00
Kevin Quick
05f10ed6c9
Update ElfLoader error messages to be more generic. 2021-04-05 08:45:00 -07:00
Kevin Quick
72ddaaf1d8
[symbolic] Fix comment reference in Testing module. 2021-04-05 08:45:00 -07:00
Kevin Quick
b5c5ebcf42
Comment/haddock updates in ElfLoader. 2021-04-05 08:44:59 -07:00
Kevin Quick
3a63547a0f
Haddock spelling fix 2021-04-05 08:44:59 -07:00
Kevin Quick
e09c40cb1c
Merge pull request #199 from GaloisInc/crucible-mkmemvar
Match recent Crucible
2021-04-04 21:28:07 -07:00
Kevin Quick
0c14c7151b
[symbolic] update doctests for FnBindings newtype wrapper. 2021-04-03 23:16:39 -07:00
Kevin Quick
c9b06090d2
[refinement] add memory variable name for mkMemVar call. 2021-04-03 23:15:28 -07:00
Kevin Quick
1fc277415d
Fix .gitignore update. 2021-04-03 18:16:25 -07:00
Kevin Quick
2df7ce1126
[symbolic] add memory variable name to Crucible mkMemVar call. 2021-04-03 16:12:55 -07:00
Kevin Quick
8fb68d439e
[symbolic] Update for What4 removal of BaseNatType 2021-04-03 16:12:04 -07:00