* Update to latest remill APIs and way of using CMake.
* Minor fixes
* Bug fixes for AArch64
* Tweaks
* Adds some nifty functionality useful for debugging some aarch64 bugs
* Fixes a subtle bug
* Bug fixes
* Make the test suite use explicit args
* Bug fix in xrefs
* Disable tests for now
* API improvements. Must be used with the api_improvements branch of both Remill and McSema
fixes for x86 and running the lifted code with klee
* Update dockerfile to clone anvill
* update remill commit id
* Add python3 to dockerfile
* update python3
* disable abi script
* Updated cmake to find anvill
* Update main.cpp
* update find_package for anvill
* WIP:updated prebuild cfg
* update prebuild cfg files
* enable abi build for testsuite
* Fix memory leak
* install missing package for testcases
* frontend: Reflect cfg file changes in dyninst frontend.
* frontend: Update local files copyrights to reflect overall change to agplv3.
* fix failing testcases
* update test cfgs
* Fix test failure with local state pointer
* set the flag to use local state_ptr in default mode
Co-authored-by: kumarak <iit.akshay@gmail.com>
Co-authored-by: Lukas Korencik <xkorenc1@fi.muni.cz>
* bc: Inline calls to semantic functions and wrappers manually.
* bc: Inline calls to semantics and wrappers only if some flags are set.
* Refactor code that is responsible for abi libs loading.
* Wrap global pointers in RAII.
* Update .remill_commit_id
Co-authored-by: Peter Goodman <peter.goodman@gmail.com>
* -abi-libraries can work with function returning complex types
* -abi-libraries can now work with most functions taking complex numbers
* Code style improvements
* LLVM 3.5 compatibility
* long double complex numbers are now correctly passed to external function
* Code style changes, fix of float complex return for 64bit
* Older version of llvm allow pointer to be casted to type it is pointing to
* Add option to return integers in two registers if calling convention supports it.
* Byval attribute fix, small code style changes
* Floats are now correctly unpacked from xmm
* Add test for basic calls into complex.h
* Complex number test is now C-program
* Adding new prebuilt CFGs for unit tests
* WIP: Rework. Vector type is now one of the "simple" types. Easier code structure to support vector types in external libs
* Skeleton for vector passing
* WIP: Unpolished version of remake of constrant tables. Add constraint table also for return variables
* Code style changes, some small reworks.
* Incompatible return type now ends with error message instead of crash
* Code style
* Tables with information about registers used by different calling conventions are created only once.
* Changed severity of log, default for reg vectors are now xmm
* Win64 now uses only 4 registers to transfer arguments
* Code style improvements
* CallingConventionInfo now initialize ConstraintTable/s for specific gArch
* Remove kNoArgs since ConstraintTable can now use std::vector::size()
* Fixed iteration of ext_func arguments
* 32bit can now return i64 via two registers
* Code style
* Initial move of some of the files
* Rename the semantics files.
* Moves more stuff, adds some files, removes others, fixes include paths.
* Addresses comments
* - Upgrade to official llvm 3.8
- remove boost
- unify all cmake files into a single cmake file
- use official protobuf
- start factoring out x86-specific stuff to eventually make an arm port easier
- simplify the CLI; now use mcsema-lift, with -arch, -os, -cfg, -entrypoint, and -o. No more having to specify the target triple.
- moves source code slightly closer to our style guide
Note:
- lifted bitcode is not quite right in some cases, so this isn't a stable branch!
- TODO: re-add test cases to discover source of stability problems.
* Some minor fixes, one to make sure xmm regs in the state struct are properly aligned
* Added missing std defs for option parsing. This makes /bin/ls work properly :-)
* Remove old cmake files
* Minor changes to get_cfg.py and raiseX86.cpp in relation to those changes. Those changes don't fix anything, the purpose was to make symbol names for things match between python and cpp. E.g. get_cfg would name things like dta_0xf00, sub_0xf00, ext_... And it seems that it was dta_ instead of data_ for a reallly flaky and dumb reason but oh well. I also fixed a subtle bug related to saving and restoring of callee saved registers on elf 64. I have not made related changes to elf 32 or pe 32/64, though those may be necessary.
* Minor fix
* Adding mcsema-disass, which is a nice wrapper around get_cfg.py.
* Working on readme and cleaning out (currently) unused stuff from the repo
* Renaming mc-sema dir to mcsema
* new travis file
* Updates to bootstrap and build process
* Minor bootstrap fixes
* Well, don't have windows working yet but this is kind of progress I think
* Travis should work now
* Updating protobuf-cmake files so we can generate a VS2015 solution
* Removing and adding some choco packages from README
* Bootstrap now builds protobuf and generates protobuf files
LLVM should now be built on Windows
* Adding Win32 specific compiler options
* Renamed ConstantInt to CreateConstantInt to satisfy MSVC
* Build Release LLVM to not have linking conflicts of MD vs MDd
* Added some missing instructions
* Adding changes to generate runtimes
* Windows bootstrap works.