Tristan Ravitch
19b65973fc
Apply the state transformer
...
Committing now to experiment with adding failure modes to PPCGenerator
2017-10-03 13:23:20 -07:00
Tristan Ravitch
620b6f5980
Plumb through a parameter for the semantics lookup function
...
This is the function that will be generated via TH for PPC32 and PPC64.
2017-10-03 11:55:40 -07:00
Tristan Ravitch
6ed9d0d45d
Simplify more type variables and implement the error throwing function for the disassembler
...
We had two different state thread parameters: s and ids. We only need one (for
now), so unify them.
2017-10-03 11:09:23 -07:00
Tristan Ravitch
7aadfdf373
Remove a literal width of 64
...
That should have been a function of the architecture
2017-10-03 10:31:06 -07:00
Tristan Ravitch
083f9b4fa1
Remove a type parameter
...
We don't need the separate w - it is just a function (ArchAddrWidth) of the architecture.
2017-10-03 09:36:41 -07:00
Tristan Ravitch
d5c5d40ddb
Add more disassembly infrastructure
2017-10-02 17:32:59 -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
Ben Selfridge
2b810be25a
Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw-semmc
2017-10-02 14:38:20 -07:00
Tristan Ravitch
7869f0e6c7
More work on disassemble
2017-10-02 14:29:15 -07:00
Tristan Ravitch
385bff0c4d
Move the generator monad into its own module
2017-10-02 14:17:36 -07:00
Tristan Ravitch
4b6b82cd13
Flesh out disassembleFn a bit more
2017-10-02 13:35:51 -07:00
Tristan Ravitch
20e5b5f00d
Add some type instance declarations for ppc32 and ppc64
2017-10-02 13:35:04 -07:00
Ben Selfridge
0526c6ae21
merging
2017-10-02 12:55:52 -07:00
Ben Selfridge
6f0d49f76e
Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw-semmc
2017-10-02 12:54:43 -07:00
Tristan Ravitch
90a9c5ff65
Generalize the architecture info def
...
Now we can use the same infrastructure for PPC32 and PPC64. There might be some
rough edges, but we can work around those with type functions.
This change also adds an implementation for the preserved registers across
system calls for macaw.
2017-10-02 11:44:46 -07:00
Ben Selfridge
136d772abf
merging some things
2017-10-02 11:23:08 -07:00
Tristan Ravitch
4d9c7cd028
Split up the functions that will comprise ppc_linux_info
2017-10-02 11:19:34 -07:00
Ben Selfridge
677ba803b3
Added a couple things
2017-10-02 11:10:00 -07:00
Tristan Ravitch
1f1a6d8561
Abstract the stubs to work for ppc32 and ppc64
2017-10-02 10:59:40 -07:00
Tristan Ravitch
61218ca31d
Add stubs for most of the architecture info functions
2017-10-02 10:54:10 -07:00
Tristan Ravitch
45f08a2036
Fill in the endianness of the arch info
2017-10-02 10:37:44 -07:00
Tristan Ravitch
7f1e2b1ede
Add a cabal.project file for cabal new-build
2017-10-02 10:33:05 -07:00
Tristan Ravitch
c997e2dada
Use explicit exports for PPCReg
2017-10-02 10:32:58 -07:00
Tristan Ravitch
6b967e1e8a
Fill out the fields of ppc_linux_info
2017-10-02 10:32:05 -07:00
Tristan Ravitch
cdd9647db9
Simplify some helpers in macaw-ppc
...
Use the MonadState combinators and a lift instead of explicitly wrapping
monadic actions.
2017-10-02 10:27:12 -07:00
Tristan Ravitch
202a95b959
Re-use the PPC arch tag (specifically, PPC64) from semmc-ppc
2017-10-02 10:26:51 -07:00
Tristan Ravitch
8820b01805
Depend on semmc/semmc-ppc and enable warnings
2017-10-02 10:26:39 -07:00
Tristan Ravitch
07ff647dcf
Add some missing instances for PPCReg
2017-10-02 09:40:17 -07:00
Tristan Ravitch
8bea5edb17
Update semmc again
2017-10-02 09:22:47 -07:00
Tristan Ravitch
8e981b94bd
Update the macaw and semmc submodules
...
The semmc submodule seemed to point to a non-existent commit.
2017-10-02 09:19:15 -07:00
Tristan Ravitch
b298b26355
Remove the macaw submodule (it moved)
2017-10-02 09:16:22 -07:00
Ben Selfridge
7a443bfe99
added a few more functions for PPCGenerator
2017-09-29 17:35:29 -07:00
Ben Selfridge
b234b673f9
Added addStmt to PPCGenerator monad
2017-09-29 15:37:41 -07:00
Ben Selfridge
65a7e8c17c
second commit
2017-09-29 09:37:45 -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