Commit Graph

581 Commits

Author SHA1 Message Date
Brian Huffman
7e6582fa07 Bump submodules, adapt to changes in crucible-llvm api. 2018-12-18 13:47:51 -08:00
Brian Huffman
3fc657782d Add Semigroup instance to make GHC 8.4 happy. 2018-12-07 13:48:38 -08:00
Joe Hendrix
146ec121c3
Merge pull request #17 from GaloisInc/jhx/plt-support
Add PLT support
2018-12-04 09:30:08 -08:00
Joe Hendrix
25e922ef83
Fix previous commit 2018-12-04 09:02:27 -08:00
Joe Hendrix
ebc5d9575e
Merge remote-tracking branch 'public/master' into jhx/plt-support 2018-12-04 08:04:32 -08:00
Joe Hendrix
f03941d607
Add test-plt test case, and fix discovery to use trust symbols. 2018-12-04 00:04:23 -08:00
Joe Hendrix
a0a89083e8
Support X86 Relative; other minor changes. 2018-12-03 20:52:44 -08:00
Andrei Stefanescu
3f39c614e9 Add support for RepMovs and RepStos. 2018-11-27 02:23:36 -08:00
Kevin Quick
3c7e222676
Add missing import for previous change. 2018-11-26 11:26:01 -08:00
Kevin Quick
b92f008676
Merge branch 'master' of github.com:GaloisInc/macaw 2018-11-25 23:53:28 -08:00
Kevin Quick
3f8769a424
[x86_symbolic] add semantics for X86Div, X86Rem, X86IDiv, and X86IRem. 2018-11-25 22:02:18 -08:00
Kevin Quick
01b8175e7f
[x86_symbolic] Update cabal specification for compliance. 2018-11-25 22:01:40 -08:00
Kevin Quick
0ee3f7df2d
[x86_symbolic] more info for unimplemented statement and termstmt semantics. 2018-11-25 22:00:19 -08:00
Kevin Quick
3f77e763e9
Implement NoStarIsType for GHC 8.6. 2018-11-21 18:27:42 +00:00
Kevin Quick
1d7cdc87eb
Implement NoStarIsType and MonadFail for GHC 8.6. 2018-11-21 00:08:33 +00:00
Kevin Quick
7a64cb614f
Explicit NoStarIsType with Data.Kind.Type and increasing do indentation (for GHC 8.6) 2018-11-20 09:43:48 +00:00
Joe Hendrix
1547712176
Bump parameterized-util version. 2018-11-17 16:03:34 -08:00
Joe Hendrix
87e69bdfc8
Merge remote-tracking branch 'public/master' into jhx/plt-support 2018-11-17 15:59:28 -08:00
Joe Hendrix
127e7fbe34
Bump submodules. 2018-11-17 15:52:14 -08:00
Joe Hendrix
c4b7252c77
Add specialized terminal statement for PLT stubs. 2018-11-16 13:40:40 -05:00
Rob Dockins
5f75652a37 Update crucible and parameterized-utils submodules 2018-11-14 10:33:10 -08:00
Joe Hendrix
23fe50bd45
Fix stack offset. 2018-11-12 15:28:32 -05:00
Joe Hendrix
bb63f9f859
This fixes tail call detection, and allows architecture-specific checks. 2018-11-12 11:56:44 -05:00
Joe Hendrix
6a1a4162f1
Merge pull request #15 from GaloisInc/jhx/fix-graphmod
Fix graphmod script
2018-11-12 11:13:03 -05:00
Joe Hendrix
cbbb6c8b0a
Merge branch 'master' into jhx/fix-graphmod 2018-11-12 10:33:21 -05:00
Joe Hendrix
b9ffb894cf
Merge pull request #16 from GaloisInc/jhx/fix-travis
Fix travis builds.
2018-11-12 10:32:36 -05:00
Joe Hendrix
6ce5a95b83
Fix travis builds. 2018-11-12 09:58:10 -05:00
Joe Hendrix
3c594dc6f8
Fix graphmod script 2018-11-12 09:42:06 -05:00
Luke Maurer
1d88f1fe98 Emit ErrorStmt rather than failing when an instruction has no successor
We were getting "Unterminated crucible block" errors for any code
containing the X86 HLT instruction.  An ErrorStmt is perhaps not
precisely what HLT means, but we're going with that for the moment.
2018-11-08 16:07:21 -08:00
Kevin Quick
8e55f1644f
[base] Remove obsolete/unused GaloisDwarf.hs file. 2018-11-02 15:56:20 -07:00
Kevin Quick
ceba0bfa67
[x86] Update memory references to remove deprecated uses. 2018-10-31 13:48:06 -07:00
Kevin Quick
db17327121
[x86] Add andnps semantics with consolidation of binary bitwise support. 2018-10-31 11:50:15 -07:00
Kevin Quick
6d996f7739
[x86] Add shld and shrd instruction semantics. 2018-10-31 11:49:14 -07:00
Kevin Quick
1ca2c5582c
[x86] Fix cvtsd2ss instruction mnemonic. 2018-10-31 11:48:18 -07:00
Kevin Quick
3c76f404af
[x86] Comment fixes. 2018-10-31 11:47:52 -07:00
Kevin Quick
6212a69233
[x86] Add semantics for sqrtss and sqrtsd. 2018-10-31 11:46:01 -07:00
Nathan Collins
aa87eb9a45 Delete top-level stack.yaml symlink
To avoid conflicting stack.yaml files when crucible is used a
submodule in another repo with a top level stack.yaml.

Also, update the README to include creating a stack.yaml symlink
before building with stack the first time.
2018-10-30 16:12:16 -07:00
Joe Hendrix
8ce9d06d27
Fix handling for non-position independent, but dynamically linked executables. 2018-10-25 13:49:21 -07:00
Joe Hendrix
4594938dfd
Make decoding position independent; Support translating fixed blocks. 2018-10-25 13:36:21 -07:00
Tristan Ravitch
0513ae7a39 x86: Add some more missing signed immediate handling cases in getAddrRegSegmentOrImm
This is not currently an error, as this function is only used in the definition
of the semantics for push, which doesn't accept a signed immediate value.  This
fix is defensive in case someone decides to re-use this helper in another
context where the missing cases could cause a problem.
2018-10-24 10:25:18 -07:00
Tristan Ravitch
d6060e51be x86: Fix a bug affecting imul (and add a test case)
We were hitting a translation error for imul in another application - this test
case is a reduced example demonstrating the problem.

The root cause was that there were a few missing cases for the new signed
immediate values from flexdis; this caused a fallthrough that mis-identified
signed immediates as non-immediates, triggering an error.
2018-10-24 10:23:51 -07:00
Tristan Ravitch
cc165d7316 x86: Make the test suite more verbose on translation errors
This makes debugging easier
2018-10-24 10:22:21 -07:00
Tristan Ravitch
563547fee5 Add semantics for minss, maxss, minsp, and maxsp (x86) 2018-10-23 15:18:40 -07:00
Joe Hendrix
2e93d42893
Merge remote-tracking branch 'public/master' 2018-10-22 13:04:30 -07:00
Joe Hendrix
aa6da4193b
Merge branch 'jhx/memory-cleanup' 2018-10-22 13:03:58 -07:00
Daniel Wagner
290b66588e Merge branch 'dmwit/renovate-loop-perf-2' 2018-10-22 15:04:30 -04:00
Kevin Quick
46a2c1c72a
Minor spelling fix in Types haddock docs. 2018-10-18 22:31:13 -07:00
Joe Hendrix
3948314813
Export AddrSymMap 2018-10-18 12:59:53 -07:00
Joe Hendrix
c886c19b03
Rename Memory exports.
This update renames many of the declarations exported by
Data.Macaw.Memory so that we have more consistent names.

The majority of the existing names are now exported with DEPRECATION
warnings.  Some of the symbol declarations that were not used by the
Memory datatype have been moved to other modules.

The minor version of macaw-base has been incremented.
2018-10-18 10:07:20 -07:00
Luke Maurer
8b0c58c661 Make architecture type families injective
This should cut down on the number of proxies/explicit type arguments
needed when dealing with these types.

Awkwardly, ArchTermStmt isn't injective, because PPC32 and PPC64 happen
to use exactly the same type. We could add an argument to that type and
then all the families could be injective.
2018-10-12 15:23:13 -07:00