Commit Graph

438 Commits

Author SHA1 Message Date
Luke Maurer
26519002ab Update semmc 2018-06-29 11:00:42 -07:00
Luke Maurer
fedf457e02 Support defined functions in PPC32; use all defined functions in PPC 2018-06-29 10:53:48 -07:00
Luke Maurer
33a4805b01 Support for defined functions in PPC64 2018-06-28 15:44:06 -07:00
Luke Maurer
c8f4146e1f Remove now-unnecessary optimization flags
The spliced TH code has gotten small enough that running multiple
iterations of the simplifier isn't horrible.
2018-06-28 13:38:04 -07:00
Luke Maurer
bc9fb08f6f Update semmc 2018-06-28 10:12:23 -07:00
Luke Maurer
457c8cec2e Enable caching in What4 expression builder 2018-06-28 10:12:04 -07:00
Luke Maurer
0b37eff77e Whitespace error 2018-06-26 11:35:50 -07:00
Luke Maurer
d3c40eb308 Use defined functions to generate TH for ARM 2018-06-26 11:04:29 -07:00
Luke Maurer
fbdae275cb Support defined functions in TH 2018-06-26 11:04:07 -07:00
Tristan Ravitch
cad178cd62 ppc: Fix identifyReturn
Some recent semantics fixes broke a fragile pattern in identifyReturn; there is
now an extra shiftR.
2018-06-14 14:57:32 -07:00
Daniel Wagner
04e867bf4b future-proof alignment detection 2018-06-12 14:18:19 -04:00
Daniel Wagner
082e024b55 bump deps 2018-06-11 13:13:11 -04:00
Daniel Wagner
9874e6db20 IP alignment rulesfor PPC 2018-06-11 10:36:18 -04:00
Daniel Wagner
9e8279e70c fix alignment detection to match updated extract definition 2018-06-08 11:50:36 -04:00
Daniel Wagner
b7ec429874 add alignment information for PPC64 2018-06-01 15:35:41 -04:00
Daniel Wagner
989eb30a85 bump macaw dep 2018-06-01 15:35:41 -04:00
Ben Selfridge
6a5524e464 Fixed macaw-arm bound variable for UF bug 2018-06-01 10:23:34 -07:00
Ben Selfridge
2427ddf048 fixed stack and used Data.Functor.Product instead of hand-rolled type 2018-05-24 14:09:49 -07:00
Kevin Quick
138db42d15 [arm] Remove unneeded import. 2018-05-22 13:18:31 -07:00
Kevin Quick
30296f081c [arm] Update for semmc renaming from ARM to AArch32. 2018-05-22 13:18:05 -07:00
Tristan Ravitch
4ca53dfb5c Submodule updates
The code was already updated, but there were some missing submodule updates
2018-05-21 17:53:10 -07:00
Tristan Ravitch
b15f360d25 Documentation updates 2018-05-21 17:53:01 -07:00
Tristan Ravitch
9664914923 Update the PowerPC tests to deal with the latest macaw-semmc changes
The new binary loading interface does manage to simplify things
2018-05-21 14:32:29 -07:00
Tristan Ravitch
7cbd23dbf8 Add a generic interface for finding the entry points of a binary
Includes implementations for x86 and PowerPC 64/32
2018-05-20 21:41:21 -07:00
Tristan Ravitch
796e8bc29e ppc: Generalize some error handling around the TOC 2018-05-18 19:31:18 -07:00
Tristan Ravitch
d6c2446a00 Whitespace 2018-05-18 17:52:18 -07:00
Tristan Ravitch
84473060e3 Generalize the lookup/update register assignment utilities
Instead of having them return 'Maybe', use 'MonadThrow'
2018-05-18 17:50:22 -07:00
Tristan Ravitch
c4118b9fff Clean up the TOC function implementation 2018-05-18 17:50:02 -07:00
Tristan Ravitch
c228cca75c Merge branch 'master' of github.com:GaloisInc/macaw-semmc into HEAD 2018-05-18 15:28:59 -07:00
Tristan Ravitch
1ed8d66dc7 Improve the BinaryLoader interface
It is now (optionally) pure via the MonadThrow class.  It also exposes a new
binary format repr, which currently only has constructors for ELF containers.
2018-05-18 15:26:19 -07:00
Kevin Quick
f81f2437ee
Update for crucible reorganization and new what4 module. 2018-05-18 08:33:58 -07:00
Tristan Ravitch
556cfa5a47 Merge branch 'master' of github.com:GaloisInc/macaw-semmc into HEAD 2018-05-17 16:06:56 -07:00
Tristan Ravitch
27810cdbf3 Add a draft of a generic binary loading interface, simplify TOC handling on PPC
The generic binary loading interface is instantiated once for each
architecture/binary container pair.  This isn't great, but there is enough
custom work in each setting to justify it.

The binary loading interface isn't finished yet, and needs to learn some
additional operations to support relocation.  It already supports additional
information that is architecture specific and binary container format
specific (that operations will have to use on a per-format basis).

On the PowerPC side, the Table of Contents (TOC) is now architecture-specific
information constructed by the loader (currently from ELF binaries).  The new
TOC data type is in place to support this more easily (the old format was just a
function).
2018-05-17 16:03:04 -07:00
Kevin Quick
4a3688cad1 Anoter semmc submodule reference update. 2018-05-17 15:08:06 -07:00
Kevin Quick
b76f5164b7 Merge branch 'master' of github.com:GaloisInc/macaw-semmc 2018-05-17 14:58:34 -07:00
Tristan Ravitch
c943d45d21 ppc-symbolic: Export some more helpers 2018-05-15 18:41:04 -07:00
Kevin Quick
eaadb16047 Merge branch 'master' of github.com:GaloisInc/macaw-semmc 2018-05-15 09:23:52 -07:00
Kevin Quick
0c6578ffba Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw-semmc 2018-05-15 09:22:44 -07:00
Ben Selfridge
157e6825a5 update latest crucible and semmc 2018-05-10 13:05:55 -07:00
Tristan Ravitch
fd3ab9145a ppc-symbolic: Generate term statements in the translation 2018-05-10 07:58:00 -04:00
Kevin Quick
dc79e6b636
[ppc-symbolic] Update Crucible IsSymInterface and simulator state. 2018-05-07 15:59:05 -07:00
Tristan Ravitch
7bab701643 ppc-symbolic: Implement semantics for the ppc-specific statements
Except for Attn, these are all no-ops since we don't have a concurrency model.
That could change later - we might want to model them as both failing and
succeeding in some cases (esp the transactional memory instructions).
2018-05-07 08:15:05 -07:00
Kevin Quick
1b401bbe94
[ppc-symbolic] Remove extraneous file. 2018-05-04 17:43:10 -07:00
Tristan Ravitch
78af7939b6 ppc-symbolic: Sketch out terminator handling and interpretation 2018-05-04 17:16:06 -07:00
Tristan Ravitch
df607d4044 ppc-symbolic: Translate macaw statements
Still need to translate terminal statements (esp. system call and trap)
2018-05-04 16:48:31 -07:00
Tristan Ravitch
6d7bb6f6e4 ppc-symbolic: Fill out the semantics for the arch-specific functions 2018-05-04 15:46:54 -07:00
Tristan Ravitch
6b3bf072cf ppc-symbolic: Add more descriptive failures 2018-05-04 10:16:46 -07:00
Tristan Ravitch
1c97ca1314 ppc-symbolic: Implement the function evaluators 2018-05-04 10:15:25 -07:00
Tristan Ravitch
05c01beec0 Re-export newSymFuns from the top-level module 2018-05-04 09:32:13 -07:00
Tristan Ravitch
c3ba017fcc Start macaw-ppc-symbolic 2018-05-03 16:41:33 -07:00