Daniel Matichuk
af7758032c
Merge branch 'master' into memgen
2020-10-05 12:23:36 -07:00
Daniel Matichuk
b04e0a2fa6
fix ArchInfo instance for macaw-aarch32-symbolic
2020-10-05 12:22:07 -07:00
Joe Hendrix
6a83d23989
Merge pull request #161 from GaloisInc/jhx/github-actions
...
Switch to GitHub actions
2020-09-29 14:55:54 -07:00
Joe Hendrix
0baa499c2a
Migrate from Travis to Github Actions
2020-09-29 13:47:34 -07:00
robdockins
3c2d237a59
Merge pull request #159 from GaloisInc/crucible-mem-fix
...
Update to use new `HasLLVMAnn` API
2020-09-16 10:31:36 -07:00
Rob Dockins
e9b960c6d5
Bump semmc submodule
2020-09-15 16:24:24 -07:00
Rob Dockins
99f8cb0bdf
Update to use new HasLLVMAnn
API, which requires an action for
...
recording (or discarding) annotations rather than a map.
2020-09-11 14:40:02 -07:00
Daniel Matichuk
70d35d44e4
parameterize ArchInfo and ArchVals over mem type
2020-09-02 10:21:39 -07:00
Daniel Matichuk
84f2fac999
cleanup unused language extensions
2020-09-01 17:55:11 -07:00
Daniel Matichuk
6109731324
create valid solver symbol for PPC registers
2020-09-01 17:09:49 -07:00
Daniel Matichuk
2da172b3ea
generalize ArchInfo over memory model
2020-09-01 17:07:04 -07:00
Sam Breese
b248cf7f45
x86: Add semantics for vpunpckhqdq, vxorps, vpaddb, and movbe ( #155 )
...
* Add semantics for vpunpckhqdq
* Add semantics for movbe
* Add semantics for vxorps and vpaddb
2020-08-20 14:50:20 -04:00
Kevin Quick
4713bc91c7
Merge pull request #157 from GaloisInc/llvm_annotations_upd
...
Update for addition of badBehaviorMap implicit for LLVM annotations.
2020-08-11 11:08:57 -07:00
Kevin Quick
de31610929
Update submodules.
2020-08-10 17:47:35 -07:00
Kevin Quick
1db2d1669c
[symbolic] Defer badBehaviorMap creation to caller instead.
2020-08-10 14:50:45 -07:00
Kevin Quick
fc419e4c18
[refinement] update for badBehaviorMap implicit parameter.
2020-08-10 13:47:44 -07:00
Kevin Quick
22f2a3122c
[x86_symbolic] Create badBehaviorMap earlier in test.
2020-08-10 09:48:50 -07:00
Kevin Quick
ad46e191c6
Update for addition of badBehaviorMap implicit for LLVM annotations.
...
See https://github.com/GaloisInc/crucible/pull/453
2020-08-08 22:16:48 -07:00
Daniel Matichuk
cd4dd31343
Merge pull request #156 from GaloisInc/feature/smartmux
...
aarch32: support non-concrete conditional writes
2020-08-06 14:19:03 -07:00
Daniel Matichuk
75d998f719
aarch32: avoid symbolic addresses
...
this changes the write action model to instead index
writes based on the macaw term representing the address
to be written
2020-08-05 16:53:27 -07:00
Daniel Matichuk
b42cce3f1c
aarch32: support non-concrete conditional writes
2020-08-04 23:57:50 -07:00
Daniel Matichuk
f74cd557d5
Merge pull request #154 from GaloisInc/feature/normflat2
...
Update macaw-aarch32 for changes to the ASL translator
2020-08-03 15:04:03 -07:00
Daniel Matichuk
68193b9ef9
bump submodules
2020-07-31 00:33:10 -07:00
Daniel Matichuk
53db924e77
add macaw-asl-tests to travis CI
2020-07-31 00:31:29 -07:00
Daniel Matichuk
f1d3bb61da
delete dead code
2020-07-31 00:31:29 -07:00
Daniel Matichuk
f2defdcdc4
aarch32: use empty tuple for unit type
2020-07-31 00:31:29 -07:00
Daniel Matichuk
204efeed42
Merge remote-tracking branch 'origin/master' into feature/normflat2
2020-07-28 12:43:24 -07:00
Daniel Matichuk
626071e459
bump submodules
2020-07-28 12:40:52 -07:00
Daniel Matichuk
44c2536f30
add default arch type override for ppc
2020-07-28 11:57:07 -07:00
Daniel Matichuk
dd8b78bb7b
aarch32: fix floating point uf calls
2020-07-28 11:57:07 -07:00
Daniel Matichuk
278d365a31
aarch32: simplify write action representation
2020-07-28 11:57:07 -07:00
Daniel Matichuk
f53ea84cd9
module import cleanup
2020-07-28 11:57:07 -07:00
Daniel Matichuk
6e54d1488b
avoid redundant let-bindings
2020-07-28 11:57:07 -07:00
Daniel Matichuk
468c329fa1
use compilation-friendly boolean and bitvector ops
2020-07-28 11:57:07 -07:00
Daniel Matichuk
838ef3924d
aarch32: wrap up stateful operations as values
2020-07-28 11:57:07 -07:00
Daniel Matichuk
3e03ec11ab
allow for arch-specific type translation
2020-07-28 11:57:07 -07:00
Daniel Matichuk
dcd5339b5a
allow for manual bind pattern
2020-07-28 11:57:07 -07:00
Daniel Matichuk
98a429b7e0
avoid using applicative binds for eager values
2020-07-28 11:57:07 -07:00
Daniel Matichuk
62dd08f5a1
add more cases for simplifying boolean Muxes
2020-07-28 11:57:07 -07:00
Sam Breese
547796118d
x86: Add semantics for some AVX2 instructions ( #149 )
...
* x86: Add semantics for the vpsrld and vpsrlq instructions
* x86: Add semantics for vpaddq
* Fix Haddock for PointwiseLogicalShiftR
* x86: Change vpsubd to PtSub rather than PtAdd
2020-07-28 11:57:07 -07:00
Kevin Quick
0cb0a89748
Update submodules.
2020-07-20 14:18:35 -07:00
Kevin Quick
f695c4d4c1
[macaw-refinement] updates for app-refactor what4 changes.
2020-07-17 17:30:44 -07:00
Kevin Quick
5b93b1fa00
[macaw-semmc] updates for app-refactor what4 changes
...
See https://github.com/GaloisInc/what4/pull/55
2020-07-16 23:08:58 -07:00
Sam Breese
48737990f3
x86: Add semantics for some AVX2 instructions ( #149 )
...
* x86: Add semantics for the vpsrld and vpsrlq instructions
* x86: Add semantics for vpaddq
* Fix Haddock for PointwiseLogicalShiftR
* x86: Change vpsubd to PtSub rather than PtAdd
2020-07-14 14:41:16 -04:00
Kevin Quick
f9959ecc33
Merge pull request #150 from GaloisInc/submods_20200713
...
Update submodules per successful master HEADs build.
2020-07-13 13:03:19 -07:00
Kevin Quick
d675f5c97b
Update submodules per successful master HEADs build.
2020-07-13 09:29:17 -07:00
Tristan Ravitch
b160e480a7
x86: Add semantics for the endbr instructions ( #147 )
...
This change treats them as no-ops (which is what they do on all released
hardware). We could represent them with arch extensions. This has a supporting
change in flexdis86 (included as a submodule).
2020-06-25 13:43:15 -07:00
Ben Selfridge
039b8497fc
updates what4, crucible, etc. ( #146 )
...
* update to bv-sized branch of what4 and other things
* removed parameterized-utils submodule completely
* Updates submodules
* Fixes macaw-symbolic w.r.t. crucible-llvm changes
Co-authored-by: Ben Selfridge <ben@000548-benselfridge.local>
2020-06-16 16:49:55 -07:00
Tristan Ravitch
5ba28484f9
symbolic: Add some documentation on pointer operations ( #145 )
...
symbolic: Add some documentation on pointer operations
Their behavior is not entirely obvious, so hopefully this should be useful to
someone in the future.
2020-06-13 10:27:43 -07:00
Tristan Ravitch
7ec8df5e92
aarch32: Two bug fixes
...
* Fix block size accounting in the disassembler
The value in the early failure combinator is used as the *block size* in the
resulting macaw block. The code was actually using the offset from the
beginning of the segment, which is wrong. This produced very large blocks that
didn't reflect the results of code discovery and led to decode errors later in
the pipeline.
* Do not throw an error if concreteIte has a symbolic argument
The `concreteIte` combinator turns formula conditionals with concrete operands
into Haskell-level conditional execution. It would fail because we believed
that there were no cases that could fail to satisfy that condition. That
assumption was not true - we need to fall back to generating a mux when we have
a symbolic condition.
2020-06-11 15:28:23 -07:00