Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
28ccac1
capstone2llvmir/x86: Add support of x87 FISTPP instruction and unit t…
JurajHolub Aug 23, 2019
d507fba
capstone2llvmir/x86: Add support of x87 FCMOVEcc instructions and uni…
JurajHolub Aug 31, 2019
701c661
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
0efe91a
capstone2llvmir/x86: Add tests for x87 FPREM instructions.
JurajHolub Aug 31, 2019
fef24e5
capstone2llvmir/x86: Add support of x87 F2XM1, FYL2X, FYL2xP1 instruc…
JurajHolub Sep 3, 2019
1d522ac
capstone2llvmir/x86: Add support of x87 FFREE instructions and unit t…
JurajHolub Sep 4, 2019
3dd9ca6
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub Sep 4, 2019
4859af8
bin2llvmir/optimizations/x87_fpu: Add test for x87 fpu analysis and f…
JurajHolub Sep 9, 2019
15af108
bin2llvmir/optimizations/x87_fpu: Fix test for x87 fpu analysis.
JurajHolub Sep 9, 2019
e683ee7
capstone2llvmir/x86.cpp: remove extra new lines
PeterMatula Sep 11, 2019
adee5c6
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
21997de
capstone2llvmir/x86: Fix indention of new tests + comments.
JurajHolub Sep 12, 2019
b9d7e44
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub Sep 12, 2019
cc2aa2d
capstone2llvmir/x86: Unit tests and translation of all FPU capstone i…
JurajHolub Sep 17, 2019
4f4f626
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub Sep 17, 2019
55899e1
Merge branch 'master' into x87_fpu_analysis
JurajHolub Sep 18, 2019
8963b7d
config: Include "watcom" calling convention.
JurajHolub Sep 24, 2019
c9beb9d
bin2llvmir/optimizations/x87_fpu: Tests for x87 FPU analyze.
JurajHolub Sep 24, 2019
aa32882
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for functions …
JurajHolub Sep 24, 2019
291c55f
bin2llvmir/optimizations/x87_fpu: Tests for FPU register stack usage …
JurajHolub Sep 28, 2019
13adddf
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for nested blo…
JurajHolub Sep 30, 2019
d4efe2e
bin2llvmir/optimizations/x87_fpu: Fix nested blocks analyze tests.
JurajHolub Sep 30, 2019
cb86706
bin2llvmir/optimizations/x87_fpu: Implement linear equation solver of…
JurajHolub Oct 22, 2019
c375846
bin2llvmir/optimizations/x87_fpu: FPU TOP optimization implemented fo…
JurajHolub Oct 22, 2019
537691f
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
ec68227
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub Sep 4, 2019
4fc1c05
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
60b8252
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub Sep 17, 2019
b3d7cf0
Merge branch 'master' into x87_fpu_analysis
JurajHolub Jan 29, 2020
0201f2b
deps/eigen: Include third party library Eigen to cmake of project. Li…
JurajHolub Feb 3, 2020
1fd9073
bin2llvmir/optimization/x87_fpu: Rewrite optimization with new Eigen …
JurajHolub Feb 3, 2020
be2bccf
tests/bin2llvmir: Refactor CMakeLists.txt
JurajHolub Feb 3, 2020
a9879e7
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub Feb 8, 2020
6d42194
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub Feb 19, 2020
73c6728
bin2llvmir/optimizations/x87_fpu: Fix major bug of overdetermined lin…
JurajHolub Feb 19, 2020
39c24d3
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
3f54011
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub Sep 4, 2019
5620549
bin2llvmir/optimizations/x87_fpu: Add test for x87 fpu analysis and f…
JurajHolub Sep 9, 2019
111c952
bin2llvmir/optimizations/x87_fpu: Fix test for x87 fpu analysis.
JurajHolub Sep 9, 2019
3a953ab
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
ac1c053
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub Sep 12, 2019
c6d17e0
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub Sep 17, 2019
8de8460
bin2llvmir/optimizations/x87_fpu: Tests for x87 FPU analyze.
JurajHolub Sep 24, 2019
11c14d4
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for functions …
JurajHolub Sep 24, 2019
117d0b9
bin2llvmir/optimizations/x87_fpu: Tests for FPU register stack usage …
JurajHolub Sep 28, 2019
d351ef8
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for nested blo…
JurajHolub Sep 30, 2019
4082a3c
bin2llvmir/optimizations/x87_fpu: Fix nested blocks analyze tests.
JurajHolub Sep 30, 2019
798b2c6
bin2llvmir/optimizations/x87_fpu: Implement linear equation solver of…
JurajHolub Oct 22, 2019
c1ee4b5
bin2llvmir/optimizations/x87_fpu: FPU TOP optimization implemented fo…
JurajHolub Oct 22, 2019
29c0a18
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
32bb195
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
e503a8a
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub Sep 17, 2019
1a99125
deps/eigen: Include third party library Eigen to cmake of project. Li…
JurajHolub Feb 3, 2020
5b8c593
bin2llvmir/optimization/x87_fpu: Rewrite optimization with new Eigen …
JurajHolub Feb 3, 2020
6319379
tests/bin2llvmir: Refactor CMakeLists.txt
JurajHolub Feb 3, 2020
5b59804
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub Feb 8, 2020
453e893
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub Feb 19, 2020
9b9f69b
bin2llvmir/optimizations/x87_fpu: Fix major bug of overdetermined lin…
JurajHolub Feb 19, 2020
600b87a
Merge remote-tracking branch 'origin/x87_fpu_analysis' into x87_fpu_a…
JurajHolub Feb 19, 2020
e288168
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
6960703
capstone2llvmir/x86: Add support of x87 FNSTCW instructions and unit …
JurajHolub Sep 4, 2019
0600fb3
bin2llvmir/optimizations/x87_fpu: Add test for x87 fpu analysis and f…
JurajHolub Sep 9, 2019
73d71fb
bin2llvmir/optimizations/x87_fpu: Fix test for x87 fpu analysis.
JurajHolub Sep 9, 2019
d7500ef
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
2379b9e
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub Sep 12, 2019
70ea0e4
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub Sep 17, 2019
00cbc4c
bin2llvmir/optimizations/x87_fpu: Tests for x87 FPU analyze.
JurajHolub Sep 24, 2019
b623069
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for functions …
JurajHolub Sep 24, 2019
a9238f6
bin2llvmir/optimizations/x87_fpu: Tests for FPU register stack usage …
JurajHolub Sep 28, 2019
7e2c210
bin2llvmir/optimizations/x87_fpu: Analyze of FPU stack for nested blo…
JurajHolub Sep 30, 2019
3dd7cfe
bin2llvmir/optimizations/x87_fpu: Fix nested blocks analyze tests.
JurajHolub Sep 30, 2019
448fa14
bin2llvmir/optimizations/x87_fpu: Implement linear equation solver of…
JurajHolub Oct 22, 2019
f86d61f
bin2llvmir/optimizations/x87_fpu: FPU TOP optimization implemented fo…
JurajHolub Oct 22, 2019
bfb09d1
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
8309b66
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
a34c8fa
capstone2llvmir/x86: Fix bug in FXRSTOR unit etst.
JurajHolub Sep 17, 2019
3f31ebe
deps/eigen: Include third party library Eigen to cmake of project. Li…
JurajHolub Feb 3, 2020
a6f1869
bin2llvmir/optimization/x87_fpu: Rewrite optimization with new Eigen …
JurajHolub Feb 3, 2020
37e5fa1
tests/bin2llvmir: Refactor CMakeLists.txt
JurajHolub Feb 3, 2020
01f5c9e
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub Feb 8, 2020
1046cd5
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub Feb 19, 2020
69e27b7
bin2llvmir/optimizations/x87_fpu: Fix major bug of overdetermined lin…
JurajHolub Feb 19, 2020
b3f2cc2
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
e277138
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
cb42ca1
bin2llvmir/optimizations/x87_fpu: Create tests for different calling …
JurajHolub Sep 12, 2019
89fad4f
capstone2llvmir/x86: Add support of x87 FPREM instructions and unit t…
JurajHolub Aug 31, 2019
614da9d
capstone2llvmir/x86_impl.h: remove extra newline & indent
PeterMatula Sep 11, 2019
f1bfe04
bin2llvmir/optimization/x87_fpu: Fix bux for X86-16bit calling conven…
JurajHolub Feb 8, 2020
0d8eb65
bin2llvmir/optimizations/x87_fpu: Fix and improve FPU stack optimizat…
JurajHolub Feb 19, 2020
ecc7fd2
src/capstone2llvmir/x86: Fix and remove duplicities caused by my inco…
JurajHolub Feb 24, 2020
8dc8d65
src/bin2llvmir/x87_fpu: Fix bug - remove forgotten declaration.
JurajHolub Feb 24, 2020
08c4d19
src/bin2llvmir/x87_fpu: Fix bug - make analyze more accurate: fix som…
JurajHolub Feb 26, 2020
9286671
tests/bin2llvmir/optimizations/x87_fpu: Rewrite actual and include ne…
JurajHolub Mar 4, 2020
a79edaa
src/bin2llvmir/optimizations/x87_fpu: Fix bugs revealed by integratio…
JurajHolub Mar 4, 2020
65f63a5
Merge remote-tracking branch 'origin/x87_fpu_analysis' into x87_fpu_a…
JurajHolub Mar 4, 2020
fa3468a
src/capstoce2llvmir/x86: Fix merge conflict.
JurajHolub Mar 4, 2020
0391552
deps/eigen: Remove Eigen library from deps and moves it into external…
JurajHolub Mar 31, 2020
e70d143
tests/bin2llvmir/optimizations/x87_fpu: Remove tests to 16bit archite…
JurajHolub Apr 1, 2020
bc097dc
src/bin2llvmir/optimizations/x87_fpu: Improve and optimize performanc…
JurajHolub Apr 1, 2020
ea2c64e
Merge branch 'master' into x87_fpu_analysis
JurajHolub Apr 1, 2020
c79dceb
bin2llvmir/optimization/x87_fpu: Set max performance ceil.
JurajHolub Apr 23, 2020
60c0ce0
Merge branch 'master' of https://github.com/avast/retdec into x87_exp…
JurajHolub Apr 25, 2020
208bcbf
Add External Eigen to cmake/deps.
JurajHolub Apr 25, 2020
4a68a7f
deps/eigen: Update CMake build.
JurajHolub Apr 25, 2020
0f83fd0
deps/eigen: Update CMake build.
JurajHolub Apr 25, 2020
4788944
bin2llvmir/x87_fpu: Update analyze and tests -> remove FPU TAGS becau…
JurajHolub Apr 25, 2020
db3137b
Merge branch 'master' of https://github.com/avast/retdec into x87-exp…
JurajHolub May 2, 2020
6e7831d
deps/eigen: Fix eigen INTERFACE_INCLUDE_DIRECTORIES which was prefixe…
JurajHolub May 2, 2020
5e65cfc
Merge remote-tracking branch 'origin/x87_fpu_analysis' into x87_fpu_a…
JurajHolub May 5, 2020
69bf9da
Merge branch 'master' into x87_fpu_analysis
PeterMatula May 28, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 2 additions & 33 deletions LICENSE-THIRD-PARTY
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ RetDec uses the following third-party libraries or other resources:
9) whereami: https://github.com/gpakosz/whereami
10) yara: https://virustotal.github.io/yara/
11) yaramod: https://github.com/avast/yaramod
12) cmake-modules: https://github.com/rpavlik/cmake-modules
12) Eigen: http://eigen.tuxfamily.org/index.php?title=Main_Page
13) cmake-modules: https://github.com/rpavlik/cmake-modules

These third-party libraries or other resources are licensed under the
following licenses:
Expand Down Expand Up @@ -795,35 +796,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

===============================================================================
12) cmake-modules
===============================================================================

Copyright Iowa State University 2009-2014, or Copyright Sensics, Inc. 2014-2015, or Copyright Ryan A. Pavlik 2009-2015

Distributed under the Boost Software License, Version 1.0.

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
8 changes: 8 additions & 0 deletions cmake/deps.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,14 @@ set(YARAMOD_ARCHIVE_SHA256
CACHE INTERNAL ""
)

set(EIGEN_URL
"https://gitlab.com/api/v4/projects/libeigen%2Feigen/repository/archive.zip?sha=0dd9643ad547d3dd2e23ded1d3376d0f7bdc8ada"
CACHE INTERNAL "URL of Eigen archive to use."
)
set(EIGEN_ARCHIVE_SHA256
"f56e0551aed4bdcb39cf6c5e51b1267b1221666e6090bddc1a0eaf89e7c3e2a3"
CACHE INTERNAL "")

set(SUPPORT_PKG_URL
"https://github.com/avast/retdec-support/releases/download/2019-03-08/retdec-support_2019-03-08.tar.xz"
CACHE INTERNAL "URL of RetDec support package to use."
Expand Down
3 changes: 3 additions & 0 deletions cmake/options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,9 @@ set_if_at_least_one_set(RETDEC_ENABLE_RAPIDJSON
RETDEC_ENABLE_MACHO_EXTRACTORTOOL
RETDEC_ENABLE_SERDES)

set_if_at_least_one_set(RETDEC_ENABLE_EIGEN
RETDEC_ENABLE_BIN2LLVMIR)

set_if_at_least_one_set(RETDEC_ENABLE_TINYXML2
RETDEC_ENABLE_TINYXML2
RETDEC_ENABLE_FILEINFO
Expand Down
1 change: 1 addition & 0 deletions deps/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ cond_add_subdirectory(tinyxml2 RETDEC_ENABLE_TINYXML2)
cond_add_subdirectory(whereami RETDEC_ENABLE_WHEREAMI)
cond_add_subdirectory(yara RETDEC_ENABLE_YARA)
cond_add_subdirectory(yaramod RETDEC_ENABLE_YARAMOD)
cond_add_subdirectory(eigen RETDEC_ENABLE_EIGEN)
41 changes: 41 additions & 0 deletions deps/eigen/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@

include(ExternalProject)

if(CMAKE_C_COMPILER)
set(CMAKE_C_COMPILER_OPTION "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}")
endif()
if(CMAKE_CXX_COMPILER)
set(CMAKE_CXX_COMPILER_OPTION "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}")
endif()

ExternalProject_Add(eigen_project
URL ${EIGEN_URL}
URL_HASH SHA256=${EIGEN_ARCHIVE_SHA256}
DOWNLOAD_NAME "eigen.zip"
CMAKE_ARGS
"${CMAKE_C_COMPILER_OPTION}"
"${CMAKE_CXX_COMPILER_OPTION}"
# Disable the install step.
INSTALL_COMMAND ""
)

add_library(eigen INTERFACE)
add_library(retdec::deps::eigen ALIAS eigen)
add_dependencies(eigen eigen_project)

ExternalProject_Get_Property(eigen_project source_dir)

set(EIGEN_INCLUDE_DIR "${source_dir}/Eigen")

target_include_directories(eigen INTERFACE $<BUILD_INTERFACE:${EIGEN_INCLUDE_DIR}>)

install(TARGETS eigen
EXPORT eigen-targets
)

# Export targets.
install(EXPORT eigen-targets
FILE "retdec-eigen-targets.cmake"
NAMESPACE retdec::deps::
DESTINATION ${RETDEC_INSTALL_CMAKE_DIR}
)
8 changes: 8 additions & 0 deletions deps/eigen/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Eigen

A clone of only the needed sources (headers) of [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just so we don't forget: We should discuss with @PeterMatula whether it would be possible to use an external project and download the sources of Eigen when building RetDec so we don't need to have all the 3rd-party sources in our repo. We do this for many of our dependencies.

Upstream commit: `6601abce868e3284b4829a4fbf91eefaa0d704af`

## License

Eigen is [Free Software](http://www.gnu.org/philosophy/free-sw.html). Starting from the 3.1.1 version, it is licensed under the [MPL2](http://www.mozilla.org/MPL/2.0), which is a simple weak copyleft license. Common questions about the MPL2 are answered in the official [MPL2 FAQ](http://www.mozilla.org/MPL/2.0/FAQ.html).
Loading