Tristan Ravitch
a84fa82d90
Export the DwarfExpr constructor ( #182 )
...
This enables client code to decode the rest of the DWARF structure (which may
produce errors that we don't want to expose in the macaw-provided API).
2020-12-10 12:55:03 -08:00
Kevin Quick
e6901d7693
Merge pull request #180 from GaloisInc/elfedit_fixes
...
Updates to PPC tests for new elf-edit API.
2020-12-06 22:44:25 -08:00
Kevin Quick
acd6e180fc
Merge branch 'master' into elfedit_fixes
2020-12-06 14:10:49 -08:00
Kevin Quick
10867f8130
Merge pull request #179 from GaloisInc/refinement_scheduler_bump
...
Bump upper bound for scheduler in refinement.
2020-12-06 14:07:02 -08:00
Kevin Quick
2ba115324d
Bump upper bound for scheduler in refinement.
2020-12-06 10:54:47 -08:00
Kevin Quick
6cfc78d114
Updates to PPC tests for new elf-edit API.
2020-12-06 10:53:36 -08:00
brianhuffman
7761a6f6e1
Merge pull request #178 from GaloisInc/prettyprinter
...
Switch from `ansi-wl-pprint` to the `prettyprinter` package.
2020-12-03 13:06:04 -08:00
Brian Huffman
b3af7d63e9
Use OverloadedStrings for the prettyprinter Doc type.
2020-12-02 17:23:47 -08:00
Brian Huffman
1550533d02
Update 8.8.4 freeze file to let it use up-to-date hackage snapshots.
2020-12-02 14:52:25 -08:00
Brian Huffman
2a620d41de
Switch from ansi-wl-pprint
to the prettyprinter
package.
...
This patch relies on the following submodule updates:
- GaloisInc/what4#77
- GaloisInc/elf-edit#20
- GaloisInc/crucible#586
- GaloisInc/asl-translator#28
This patch updates the following packages:
- macaw-base
- macaw-symbolic
- macaw-x86
- macaw-x86-symbolic
- macaw-aarch32
- macaw-ppc
- macaw-semmc
- macaw-refinement
2020-12-02 11:38:19 -08:00
Sam Breese
2a56e404bd
x86: Special case for sbb with duplicated operand ( #176 )
...
This better handles cases like sbb rax, rax, where we know that the result will be -cf regardless of the value in rax.
2020-11-18 04:19:27 -05:00
Joe Hendrix
fdfb91fa2c
Merge pull request #173 from GaloisInc/jhx/new-relinker
...
Maturation to use debug information; jump tables fixes; primitive elf-edit interface.
2020-11-13 14:47:18 -08:00
Joe Hendrix
668a3ac238
Disable running compare-dwarfdump for now.
2020-11-13 09:23:25 -08:00
Joe Hendrix
34cdb9b855
Make sure llvm is installed for compare-dwarfdump
2020-11-12 23:45:45 -08:00
Joe Hendrix
321e8fa91d
Update license dates
2020-11-12 23:43:38 -08:00
Joe Hendrix
b23057fde9
Fix shadow symbol warning.
2020-11-12 21:46:07 -08:00
Joe Hendrix
6d879215e5
Fix macaw-aarch32 tests.
2020-11-12 19:22:20 -08:00
Joe Hendrix
d977d72006
Minr format change.
2020-11-12 13:59:06 -08:00
Joe Hendrix
3991d3a1f1
Fix macaw-x86-symbolic tests.
2020-11-12 13:58:40 -08:00
Joe Hendrix
0ec2dae8e6
Minor refactorings to clarify and simplify macaw base.
2020-11-12 12:37:30 -08:00
Joe Hendrix
d2b81d3c2f
Fixes for jump table tests.
...
* Update macaw-x86-tests to build properly.
* Fix off by two error in memMapOverwrite
* Introduce some special handling for unsigned-extension in stack
analysis so it knows one value is the unsigned extension of another.
* Error report formating improvements
* Slightly more precise treatment of archfn is bound updates.
2020-11-12 11:25:30 -08:00
Joe Hendrix
5aad8ca32e
Upgrade to elf-edit 0.39 and other libraries.
2020-11-10 17:15:47 -08:00
Joe Hendrix
95f7fd7db7
Add limited global address checking for jump table bounds check.
...
This also fixes a bug in extendDyn and gets better jump table coverage.
2020-11-06 14:37:13 -08:00
Joe Hendrix
5f5de06e70
Remove unused constraint on MemAddr instance.
2020-11-06 14:37:13 -08:00
Joe Hendrix
22a9104faa
Various cleanups.
...
Consolidate three different checks that control when to explore
a function into a single one defined in exploreFunPred.
Modify noreturn function calls to not treat the return address
as a potential function entry point.
Add basic checking of LSDA address to compare-dwarfdump.
Minor code refactoring and submodule updates.
2020-11-06 14:37:13 -08:00
Joe Hendrix
9ff7e351f0
Fix typo
2020-11-06 14:35:06 -08:00
Joe Hendrix
98b69d992c
Add compare-dwarfdump
2020-11-06 14:35:06 -08:00
Joe Hendrix
9203a37b94
Minor cleanups; dwarf updates
2020-11-06 14:35:06 -08:00
Joe Hendrix
b180145002
Generalize symbol resolver to support low-level elf-edit functions.
2020-11-06 14:29:04 -08:00
Joe Hendrix
79857a59ff
Fix warnings and ensure travis uses werror on some packages.
2020-11-06 14:27:36 -08:00
Joe Hendrix
42f7a43b32
Update dwarf parsing to increase laziness and robustness.
2020-11-06 14:27:36 -08:00
Joe Hendrix
a276dbaea4
Update to work with latest elf-edit.
2020-11-06 14:01:04 -08:00
Joe Hendrix
f2c0f00075
Allow functions to be explicitly marked as no-return.
2020-11-06 14:01:04 -08:00
Joe Hendrix
ab2bf08946
Merge subprograms with abstract origin.
2020-11-06 14:01:04 -08:00
Joe Hendrix
402f99071f
Fix warnings and ensure travis uses werror on some packages.
2020-11-06 13:58:39 -08:00
Joe Hendrix
cbd16ed481
Update dwarf parsing to increase laziness and robustness.
2020-11-06 13:56:37 -08:00
Joe Hendrix
c9218a9284
Fix undefined MkTuple typeRepr
2020-11-06 13:48:26 -08:00
Joe Hendrix
da3d43d805
Update elf-edit; export additional capabilities for Reopt.
...
This adds a mechanism for filtering out function addressses. Used by
Reopt for the PLT table.
2020-11-06 13:48:26 -08:00
Joe Hendrix
c356694627
Update to work with latest elf-edit.
2020-11-06 13:48:26 -08:00
Joe Hendrix
1510c247e3
Add MkTuple primitive.
2020-11-06 13:02:09 -08:00
Jared Weakly
b8eb2e0e8a
Merge pull request #171 from GaloisInc/lisanna/ci-init-8.10.2
...
Init CI for 8.10.2
2020-11-05 14:30:00 -08:00
Lisanna Dettwyler
e4b4ba26cf
Merge remote-tracking branch 'origin/master' into lisanna/ci-init-8.10.2
2020-11-04 11:20:56 -08:00
Tristan Ravitch
37861df8c7
Support for mixed ARM/Thumb binaries ( #174 )
...
aarch32: Support mixed ARM/Thumb1 binaries
This updates the aarch32 backend to decode Thumb instructions and generate the Thumb semantics. The major implementation change is to use the `ArchBlockPrecond` feature of macaw to track the Thumb state (`PSTATE_T`) across block boundaries.
The ARM code discovery decides whether or not a function entry point should be decoded as Thumb by examining the low bit of the function address. If the low bit is set, it is a Thumb entry point. This has the slightly odd effect of causing macaw to say that the function is at the address with the low bit set, which is not technically true. This is documented in the README, but not obvious on inspection. Most use cases should not care, and can in any case account for it. In the future, it should be possible to fix this (though it will require some changes to the core of macaw).
2020-11-02 12:48:01 -08:00
Daniel Matichuk
a1c3e4e099
Merge pull request #158 from GaloisInc/memgen
...
macaw-symbolic: Support alternative memory models in ArchInfo
2020-10-28 14:12:33 -07:00
Daniel Matichuk
adeeac988a
Merge branch 'master' into memgen
2020-10-28 10:47:21 -07:00
Daniel Matichuk
7154518da5
Merge pull request #170 from GaloisInc/thfix
...
compatibility fix for template-haskell-2.16
2020-10-22 12:02:06 -07:00
Daniel Matichuk
e02ecdb89e
Merge branch 'master' into thfix
2020-10-21 10:59:03 -07:00
Lisanna Dettwyler
906cef407d
Merge remote-tracking branch 'origin/master' into lisanna/ci-init-8.10.2
2020-10-21 10:20:04 -07:00
Kevin Quick
e7c9d2ea00
Merge pull request #172 from GaloisInc/redundant_unpack_cases
...
Extract single Assignment element without redundant pattern case
2020-10-21 10:00:16 -07:00
Kevin Quick
7d497c1f46
Merge branch 'master' into redundant_unpack_cases
2020-10-21 09:59:34 -07:00