Commit Graph

130 Commits

Author SHA1 Message Date
Joe Hendrix
16693d4a63
Generalize disassembler so that it can be used with ST RealWorld. 2017-10-23 13:55:58 -07:00
Joe Hendrix
3f9e470b84
Fix macaw-symbolic compile error. 2017-10-17 14:09:48 -07:00
Joe Hendrix
5eaf2605ed
Add support for adc/sbb. 2017-10-17 11:50:23 -07:00
Joe Hendrix
135add62ae
Minor refactorings so ARM disassembler doesn't need MemSegmentOff. 2017-10-12 23:34:39 -07:00
Joe Hendrix
c95d3e7d0f
Cleanups to Macaw. 2017-10-10 11:38:28 -07:00
Joe Hendrix
b17122e4c5
Fix macaw-symbolic compile error; add additional operands. 2017-10-06 14:35:22 -07:00
Joe Hendrix
dd7c817702
Modify BVTestBit to require arguments have same width. 2017-10-06 11:22:55 -07:00
Joe Hendrix
1ebc6f247b
Make X86Stmt more generic to reuse code in reopt. 2017-10-02 17:02:00 -07:00
Joe Hendrix
c77d1ac421
Remove generic quot/rem ops, and BoolMux; Refactor macaw-symbolic. 2017-10-02 14:40:14 -07:00
Joe Hendrix
1cfe6cf08c
Update READMEs. 2017-09-27 16:12:44 -07:00
Joe Hendrix
7c33bf82e4
Update license information. 2017-09-27 15:59:06 -07:00
Joe Hendrix
4dcb26ebee
Add x86 specific code. 2017-09-27 15:54:43 -07:00
Joe Hendrix
0242a88fa6
Rename macaw to macaw-base and move directory. 2017-09-27 15:41:37 -07:00
Joe Hendrix
7a31a65e1d
Fix macaw-symbolic to support generalized ArchFn. 2017-09-27 14:38:36 -07:00
Joe Hendrix
950f0285ae
Eliminate custom traverals of App in favor of parameterized-utils traversals. 2017-09-27 14:32:48 -07:00
Joe Hendrix
8a70d9aee4
Generalize ArchFn result type. 2017-09-27 13:49:58 -07:00
Joe Hendrix
5617cd1429
Start implementing macaw-symbolic. 2017-09-26 13:26:57 -07:00
Joe Hendrix
bc885fd292
Migrate architecture-specific translation functions. 2017-09-25 15:50:16 -07:00
Joe Hendrix
2c229bcaac
Migrate Syscall to Architecture-specific statement. 2017-09-12 23:56:47 -07:00
Joe Hendrix
00a087b294
Introduce ArchTermStmt. 2017-09-12 15:58:38 -07:00
Ben Selfridge
f869aba9bb Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-09-12 13:08:51 -07:00
Ben Selfridge
cec4bdb3d4 Added MCGenerator monad to build up basic blocks. 2017-09-12 13:07:35 -07:00
Joe Hendrix
a4ed0e4ac7
Update Dwarf; add addrListBit. 2017-09-07 13:39:56 -07:00
Ben Davis
b9eea0e891
Add option to trust function entry data when parsing blocks
If trustKnownFns is set in DiscoveryState, parseFetchAndExecute will not mark
jumps to known function entries (discovered or undiscovered marked InitAddr) as
intra-procedural jumps. If they are not identified by identifyCall, they will be
marked as tail calls.
2017-09-07 09:59:19 -04:00
Ben Perez
d41a58aba2 fixed merge conflicts 2017-08-14 11:01:16 -07:00
Ben Perez
78b140be47 Added functionality for ARM jumps 2017-08-14 10:54:34 -07:00
Joe Hendrix
cfa6f4b9e6
Add architecture-specific call detection. 2017-08-13 14:13:35 -07:00
Joe Hendrix
bd34bcfc2d
Additional exports from ElfLoader/Discovery. 2017-08-10 14:20:38 -07:00
Joe Hendrix
5272f2152e
Remove MMXExtend from list of predefined operations. 2017-08-09 09:21:38 -07:00
Joe Hendrix
e443ff292a
Continue progress on symbolic simulator first pass. 2017-08-04 16:11:35 -07:00
Joe Hendrix
b452cf51da
Add blockAddr/symbolic updates. 2017-08-03 11:48:47 -07:00
Jason Dagit
e71eff0a88 Add viewSegmentOff 2017-07-25 16:10:50 -07:00
Joe Hendrix
e10534e38a
Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-07-20 11:02:46 -07:00
Joe Hendrix
5008f6f752
Add typeclass constraints to ppErrors. 2017-07-20 11:02:40 -07:00
Ben Perez
6c14f4538f Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-07-20 10:58:41 -07:00
Ben Perez
41d0cf1573 Modified Core.hs 2017-07-20 10:58:26 -07:00
Joe Hendrix
6dc1907669
Fixes to get macaw-symbolic building again. 2017-07-17 19:39:19 -07:00
Joe Hendrix
ffc5e93448
Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-07-17 15:44:32 -07:00
Joe Hendrix
2eaa823372
Change memory addresses.
This changes the way memory addresses are represented to fix bugs
that could arrise if one can jump between two segments.  It replaces
the SegmentAddr type with two types:

* `MemAddr w` represents an address that is not necessarily valid.  It
  could either be an absolute address or an address relative to some
  non-fixed segment.
* `MemSegmentOff w` represents a legal offset into a memory segment.
  It must point to at least one valid byte of memory.
2017-07-17 15:37:05 -07:00
Jason Dagit
c8a5f7abf5 add BoolConst case to joinAbsValue' 2017-07-13 17:17:28 -07:00
Jason Dagit
66b41f1d56 AbsState: Add missing casses to concretize and absValueSize 2017-07-12 16:34:11 -07:00
Joe Hendrix
0e66a3dfea
Convert macaw-symbolic to use CPS for CrucGen monad. 2017-07-10 14:42:26 -07:00
Joe Hendrix
876382fc0e
Additional support for symbolic translator. 2017-07-10 12:30:40 -07:00
Joe Hendrix
95a3721524
Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-07-07 14:19:17 -07:00
Joe Hendrix
3fe64acd07
Refactor to support Boolean type; start mapping to Crucible. 2017-07-07 14:18:35 -07:00
Jason Dagit
501a24c47a Discovery: Rebuild segmented addr meta data in concretizeAbsCodePointers 2017-07-07 13:23:40 -07:00
Joe Hendrix
0c3c935b7b
Refactor modules. 2017-07-05 13:31:21 -07:00
Joe Hendrix
522c43e101
Fix typo in AbsEval. 2017-06-30 15:08:16 -07:00
Joe Hendrix
734534621a
Rename ParsedBlock/ParsedBlockRegion to StatementList/ParsedBlock.
This also adds stmtsAbsTate to StatementList.
2017-06-30 12:15:41 -07:00
Joe Hendrix
e6bcd134f5
Add better optimization and dead code elimination for conditions. 2017-06-30 10:56:46 -07:00