1157 Commits

Author SHA1 Message Date
2over12 3cf6d41d6f removes ambigous utility function (#593) 2022-05-11 12:54:06 -04:00
Henrich Lauko f56c2dd36a Fix LLVM 14 related warnings. (#591)
* LLVM 14 compatibility (#589)

* LLVM 13/14 compatibility
* Fix CUDA support

Co-authored-by: Artem Dinaburg <artem@trailofbits.com>

* bc:util: Remove unused variable.

* arch:x86: Fix bitwise to boolean operations.

* arch: Add missing thumb2 serialization.

* bc:util: Fix llvm-14 deprecated getElementType from PointerType.

* treewide: Fix pointer element naming.

* bc:compat: Return nullptr on access of element type of an opaque pointer.

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
Co-authored-by: Artem Dinaburg <artem@trailofbits.com>
2022-05-05 13:33:13 -04:00
Eric Kilmer 5563adad01 LLVM 14 compatibility (#589)
* LLVM 13/14 compatibility
* Fix CUDA support

Co-authored-by: Artem Dinaburg <artem@trailofbits.com>
2022-04-19 17:38:35 -04:00
lkorenc 8cbb0abd66 Merge pull request #588 from lifting-bits/remove_gflags
Remove gflags
2022-04-14 20:30:56 +02:00
Eric Kilmer e91f18e059 Remove Ubuntu 18.04
The move to c++17 is so much easier to test and support if we just
remove official support for Ubuntu 18.04.

Ubuntu 22.04 is almost here also
2022-04-14 14:07:51 -04:00
Lukas Korencik 1501f02c04 CI: Install g++-8 on ubuntu to get access to std::filesystem. 2022-04-14 19:49:38 +02:00
Lukas Korencik df7e433600 bin:lift: Reflect change in IntrinsicTable ctors. 2022-04-14 19:49:38 +02:00
Lukas Korencik 5c8cf43a7c bc:util: Add VerifyModuleMsg function. 2022-04-14 19:49:38 +02:00
Lukas Korencik 2dd2746470 bc:util: Deprecate api of LoadModuleFromFile, add one with filesystem::path. 2022-04-14 19:49:38 +02:00
Lukas Korencik e24f934bef bc:util: Use std::filesystem::path in place of std::string in some apis. 2022-04-14 19:49:38 +02:00
Lukas Korencik c8e058c8f4 test: Reflect changes in remill api. 2022-04-14 19:49:38 +02:00
Lukas Korencik 3c06d00d69 bin:lift: Reflect changes in remill API. 2022-04-11 18:42:42 +02:00
Lukas Korencik 5e46858e84 treewide: Remove arch, os command line flags. 2022-04-11 18:42:42 +02:00
Lukas Korencik 0923f6e120 bc:util: Add missing implementation of LoadArchSemantics overload. 2022-04-11 18:42:42 +02:00
Lukas Korencik 6cf9cfa79e bc:util: No longer use arch cmd flag in Util.cpp. 2022-04-11 18:42:42 +02:00
Lukas Korencik 0af8362dcc bc:util: Remove semantics_search_path command line flag. 2022-04-11 18:42:42 +02:00
Lukas Korencik 21c11ab459 bc:util: Change message that semantics are being loaded from LOG to DLOG. 2022-04-11 18:42:42 +02:00
Lukas Korencik b8ce780688 bc:util: Add missing documentation. 2022-04-11 18:42:42 +02:00
Lukas Korencik 2994ecc5c3 bc:util: Add search path argument to LoadArchSemantics. 2022-04-11 18:42:42 +02:00
Lukas Korencik 93376349e0 bc:util: Add fallback option to use compile time paths when loading semantics. 2022-04-11 18:42:42 +02:00
Lukas Korencik 65c8305673 bc:util: Remove extra overload of LoadArchSemantics. 2022-04-11 18:42:42 +02:00
Lukas Korencik 6af72c66fe bc:util: Wrap return type of FindSemanticsBitcodeFile in optional. 2022-04-11 18:42:42 +02:00
Lukas Korencik bed40bc6fe bc: Change FindSemanticsBitcodeFile to no longer use global state. 2022-04-11 18:42:42 +02:00
Lukas Korencik 71d3f31a7b bc: Use std::filesystem when searching for bitcode semantics file. 2022-04-11 18:42:41 +02:00
Lukas Korencik 3162b9b1e4 bc: Add function that checks if there is a semantics bc file in given dir. 2022-04-11 18:42:41 +02:00
Lukas Korencik 140aba1775 bc: Refactor list of default search paths of bitcode files. 2022-04-11 18:42:41 +02:00
Lukas Korencik 65b6451384 bc: Remove deprecated Find[Host, Target]SemanticsBitcodeFile functions. 2022-04-11 18:42:41 +02:00
Artem Dinaburg ed2c100cb3 Prepare for eventual thumb2 arch (#586)
* Prepare for eventual thumb2 arch
2022-03-31 18:02:01 -04:00
2over12 d3acb05aac filter for only loads that modify pc (#584) 2022-03-25 14:11:21 -04:00
Artem Dinaburg 96a1dd28ef Artem/fix aarch64 build (#582)
* Native float80_t ops for arm64 test
2022-03-22 18:40:21 -04:00
Artem Dinaburg 65d68f7a83 Fix aarch64 errors (#581) 2022-03-22 17:33:15 -04:00
Peter Goodman a13535d11f Issue 578 (#579)
* Expose DR registers, and make the instruction lifter invent global variables when registers are missing

* Bug fix

* Bug fix

* Address review comments

* Address review comments
2022-02-28 11:25:50 -05:00
Peter Goodman 1aa13386d6 Disable cpuid test on macos v5.0.1 v5.0.2 2022-02-16 19:56:16 -05:00
Peter Goodman d5928a0faa llvm 13 support (#577)
* llvm 13 support

* Add llvm 13

* Update build script

* Update build script

* Modify remill-lift docker entrypoint
v5.0.0
2022-02-16 19:13:17 -05:00
lkorenc 161e0358f1 arch:x86: Correctly initialize CSBASE. (#576) 2022-02-09 11:38:10 -05:00
Artem Dinaburg 3214e5f714 Another presets fix 2022-01-21 14:40:58 -05:00
Artem Dinaburg 3eaf010ef7 Fix preset build script w/ new options 2022-01-20 17:00:31 -05:00
Peter Goodman 1ab4c34ba6 Fix float cloning (#575) 2022-01-10 00:33:46 -05:00
Peter Goodman 8a3b602df5 Better metadata cloning for instructions (#574) 2022-01-08 23:38:32 -05:00
Artem Dinaburg edbc6523f4 Build via CMakePresets.json (#570)
* Add a script that builds via CMake Presets and some default CMake presets
* Bump cxx-common past the one slightly broken release.

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2022-01-03 14:54:22 -05:00
Peter Goodman 28e48fec22 Removes some deprecated functions, and removes the basic block functi… (#569)
* Removes some deprecated functions, and removes the basic block function cloning apis, in favor of apis on Arch

* More tweaks for removing unnecessary APIs

* Goodbye dse

* Fix issue

* Tweaks

* Remove some annoying logs
v4.2.0
2021-12-17 14:20:13 -05:00
2over12 93aba7cc56 Added binop forms of sign and zero flags (#567)
* added binop forms of sign and zero flags

* added passing real rhs for aarch64
2021-12-09 12:27:17 -05:00
Peter Goodman 327ecc1df0 Fix some issues in moving constants and types (#568) 2021-12-09 12:17:43 -05:00
Sonya f975994a3d Fix TryDecodeLoadStoreDualHalfSignedBIL (#564)
* correct comment with correct register UNPREDICTABLE behavior

* possibly fixed

* Update block comment on TryDecodeLoadStoreDualHalfSignedBReg

* allow unpredictable inst behavior for strdp only

* more relevant comments

* added check for kRegAction

* corrected if statement I think

* remove LOG(ERROR) << inst.Serialize()
2021-12-01 11:37:54 -05:00
2over12 7d33dec70d Adds Flag Intrinsics for Aarch64, SPARC32, and SPARC64 (#565)
* added flag intrinsics aarch64

* hints for sparc32

* added cmov hints
2021-11-30 20:49:18 -05:00
Peter Goodman e24243c7e9 Add a type map into the code that moves constants and types. Also, add additional support for unary/binary operators. (#563) 2021-11-30 14:27:46 -05:00
XIN 905f75d6fb add some semantic function of instructions (#562)
* add some semantic function of instructions

* Modify

Co-authored-by: yangjiaxin <yangjiaxin8@huawei.com>
Co-authored-by: Peter Goodman <peter@trailofbits.com>
2021-11-24 10:14:58 -05:00
XIN bd75b4f286 add KMOW (#561)
* add KMOW

* add KMOVW

* bug fix

* bug fix

Co-authored-by: yangjiaxin <yangjiaxin8@huawei.com>
2021-11-24 09:36:00 -05:00
2over12 dd14a17cdc Ian/recover flags (#559)
* added cross compile semantics

* sorta fix for m1 macs, shouldnt hardcode macosx version

* added flag intrinsics

* changed ordering for easy compare

* made comparison hints easier to reference

* added neq and eq instrinsics

* added more intrinsics

* added intrinsics to tests
2021-11-19 17:26:26 -05:00
Peter Goodman 769c280720 Populate the register table even in the absence of semantics (#558)
* Populate the register table even in the absence of semantics

* Modify the test suite
2021-11-02 14:11:54 -04:00