Commit Graph

1625 Commits

Author SHA1 Message Date
Kevin Quick
f342c9d000
Haddock cannot document constructor fields with strictness annotations.
It also cannot handle the UNPACK pragma, which could probably be
removed since -funbox-small-strict-fields is on by default, but
haddock would still fail for the strictness annotation.

By moving the haddocks to the constructor instead of the individual
fields the strictness restriction can be avoided.
2019-08-28 09:56:01 -07:00
Joe Hendrix
7a6244f12c
Merge pull request #69 from GaloisInc/jhx/bounds
Jump table bounds check improvements.
2019-08-28 00:29:33 -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
0767302c21
Add .gitignore for assembly files. 2019-08-27 16:42:08 -07:00
Joe Hendrix
433df7399e
Additional Hashable instances for Macaw/hashtable compatibility. 2019-08-27 16:40:16 -07:00
Joe Hendrix
821d434370
Add support for equalities in jump table bounds. 2019-08-27 16:39:41 -07:00
Joe Hendrix
8376ecbed6
Fix warnings. 2019-08-23 09:57:54 -07:00
Joe Hendrix
c2545b1bb1
Work-in-progres: Cleanups to discovery for jumpbounds improvements. 2019-08-23 01:11:52 -07:00
Joe Hendrix
b1c6fb8b77
Fix parameterized-utils dependency 2019-08-21 23:59:22 -07:00
Joe Hendrix
494aff6ff0
This makes a number of changes to abstract domains.
The goal is to support a jumptable testcase that is not supported by
the current jump bounds check.  The jump bounds check needs to be
augmented so that it understands equality relationships between stack
values and registers, and bounds on both.

This patch tracks when a register points to a concrete stack offset.

As part of this, we droped the AbsDomain instance for AbsBlockState.
Clients should now likely use `fnStartAbsBlockState` in lieu of `top`.

The other client visible change is that the ClassifyFailure
constructor now has an extra argument with details about why
classification failure occured.
2019-08-21 23:29:16 -07:00
Joe Hendrix
e8c4d39840
Introduce MemInt 2019-08-21 23:17:18 -07:00
Kevin Quick
49fdf8842e
Merge pull request #68 from GaloisInc/haddock_core_fix
Fix parse error for haddock.
2019-08-12 22:45:33 -07:00
Kevin Quick
84a14372cd
Fix parse error for haddock. 2019-08-12 22:11:25 -07:00
Joe Hendrix
a727ab68cf
Merge pull request #63 from GaloisInc/jhx/cvalue
Introduce CValue; clarify function arguments fields.
2019-08-12 16:39:25 -07:00
Joe Hendrix
f03fdce04b
Remove other unpack 2019-08-12 12:51:09 -07:00
Joe Hendrix
bc0dce4778
Update submodules 2019-08-12 11:46:15 -07:00
Joe Hendrix
fa437349fb
Merge remote-tracking branch 'origin/master' into jhx/cvalue 2019-08-12 11:45:53 -07:00
Joe Hendrix
68d881c96f
Fix warnings 2019-08-12 11:44:39 -07:00
Tristan Ravitch
06f64078df
Wip/ppc no block labels (#66)
Update to API changes in macaw-base in macaw-ppc and macaw-arm

The "block label" abstraction (used during arch-specific disassembly) was removed some time ago in the base macaw library.  This change updates macaw-ppc and macaw-arm to remove uses of block labels.  The major change is that the disassembly function only returns a single block at a time instead of a sequence of blocks.

To facilitate this, the handling of the PowerPC conditional trap instruction (trap doubleword) is now an architecture-specific terminator instruction instead of encoding the logic of conditional trapping.  We will now have to encode the conditional trapping logic in macaw-ppc-symbolic.  Note that we have not done so yet.

This commit also updates the expected results of the PowerPC tests; the number of discovered blocks is different, but not significantly so.  It is hard to tell if this is a regression or an improvement.
2019-08-09 16:11:59 -07:00
Tristan Ravitch
7db36ab63a
Merge pull request #65 from GaloisInc/tr/remove-unused-macaw-symbolic-param
Remove an unused parameter from macaw-symbolic
2019-08-09 11:24:12 -07:00
Tristan Ravitch
0c3ea57a62 Update the macaw-x86-symbolic tests 2019-08-09 10:56:50 -07:00
Tristan Ravitch
eaee8e0dc0 Remove an unused parameter from macaw-symbolic
Most of the interface functions took a map from addresses to segments, however this map
was never actually used in macaw-symbolic.

The migration for this change is simply to remove the unused parameter from all
call sites in client code.
2019-08-08 16:02:19 -07:00
Kevin Quick
cd38e6a2b1
Merge pull request #64 from GaloisInc/crucible_recursion_bound
Crucible recursion bound
2019-08-07 17:12:04 -07:00
Kevin Quick
55459fdf2d
Update crucible submodule version. 2019-08-07 10:45:45 -07:00
Kevin Quick
419b977d6b
Add the new function handle return type, used for recursion bounding. 2019-08-07 09:51:57 -07:00
Joe Hendrix
073e774a43
Introduce CValue; clarify function arguments fields.
This introduces a new datatype CValue for representing constants
in Macaw programs, modifies the existing Value datatype to use then,
and introduces patterns for compatibility with existing datatypes.

The patch also updates the function argument analysis to use more
explicit argument passing rather than monadic updates.  The intent is
to help clarify when data is initialized rather than updated.

Finally this updates a README and does some minor updates.
2019-08-06 09:37:41 -07:00
Joe Hendrix
702ea7ea07
Merge pull request #62 from GaloisInc/jhx/armreloc
Add support for additional ARM relocations.
2019-08-01 12:50:57 -07:00
Joe Hendrix
dfd92b047a
Add support for additional ARM relocations. 2019-08-01 09:43:36 -07:00
Joe Hendrix
7342970d3d
Merge pull request #61 from GaloisInc/jhx/android
Update for elf-edit android changes
2019-07-29 12:56:29 -07:00
Joe Hendrix
bf09cc93e7
Merge branch 'master' into jhx/android 2019-07-29 11:59:13 -07:00
Joe Hendrix
ad05aeb0d3
Merge pull request #54 from GaloisInc/jhx/absstate
Additional comments/refactoring on abstract state handling.
2019-07-29 11:58:50 -07:00
Joe Hendrix
738daaa809
Update submodules 2019-07-29 11:51:38 -07:00
Joe Hendrix
5ae76c35ed
Merge remote-tracking branch 'origin/jhx/absstate' into jhx/android 2019-07-29 11:42:08 -07:00
Joe Hendrix
a99d999fd0
Update for android compatibility 2019-07-29 11:41:50 -07:00
Joe Hendrix
b27b1454ec
Merge branch 'master' into jhx/absstate 2019-07-29 11:41:11 -07:00
Kevin Quick
1c25aa59b6
Merge pull request #60 from GaloisInc/nonce_handle_deparameterize
Nonce handle deparameterize
2019-07-21 22:53:58 -07:00
Kevin Quick
2353ad9f6d
Merge branch 'master' into nonce_handle_deparameterize 2019-07-19 17:06:50 -07:00
Kevin Quick
2d86fa7a5a
Merge pull request #56 from GaloisInc/semiring_upd
Semiring upd
2019-07-19 13:33:37 -07:00
Kevin Quick
673cda91aa Merge branch 'nonce_handle_deparameterize' of github.com:GaloisInc/macaw into nonce_handle_deparameterize 2019-07-19 13:19:45 -07:00
Kevin Quick
eb93bb4e3a
[ppc-symbolic] updates for crucible nonce change from (ST h) to IO
Changes for compatibility with Crucible pull request
285 (https://github.com/GaloisInc/crucible/pull/285) and the
corresponding changes in macaw symbolic.
2019-07-19 13:19:14 -07:00
Kevin Quick
fb31de230f
Merge branch 'master' into semiring_upd 2019-07-19 13:17:09 -07:00
Kevin Quick
40eff5802c
[x86_symbolic] updates for crucible nonce change from (ST h) to IO
Changes for compatibility with Crucible pull request
285 (https://github.com/GaloisInc/crucible/pull/285) and the
corresponding changes in macaw symbolic.
2019-07-19 13:15:44 -07:00
Kevin Quick
1b4c11550f Update crucible dependency. 2019-07-19 10:23:19 -07:00
Kevin Quick
48c3ba1fed
[symbolic] additional nonce-related adjustments from 'ST h' to 'IO'. 2019-07-19 09:40:24 -07:00
Kevin Quick
88343ea716
Merge pull request #59 from GaloisInc/ppc_fndblks
[macaw-ppc] Add test to check the number of blocks found for gzip.
2019-07-19 07:53:06 -07:00
Kevin Quick
96e44eaa06
Merge branch 'master' into ppc_fndblks 2019-07-19 00:20:51 -07:00
Kevin Quick
80de5d94e5
[symbolic] update for use of safe Nonce in crucible.
Update for compatibility with Crucible changes in
https://github.com/GaloisInc/crucible/pull/285.
2019-07-19 00:13:00 -07:00