Commit Graph

34 Commits

Author SHA1 Message Date
Peter Goodman da643fa3cb Merge pull request #39 from rgov/mac
Fix build on macOS
2016-09-07 11:57:28 -04:00
Peter Goodman 7c60cd3860 Build changes 2016-09-07 11:35:11 -04:00
Peter Goodman d755a870cf Added potential support for openSUSE builds 2016-09-03 16:06:41 -04:00
Peter Goodman c7d9122e26 Updated binja script for simpler cfg protobuf format. Fixed X86/Arch.cpp to record x87 ST(n) regs as 64 bits. Updated llvm version to 3.8.1. Updated bootstrap to choose the release of the installed ubuntu version (mine is now 16.04, previously 14.04). 2016-08-31 17:47:31 -04:00
Peter Goodman 1b012f75f3 Added tests for MOVQ. Starting implementation of FPU instructions and tests. Change how instruction lifting is done. The arch side of lifting is now separate from all bitcode concerns. remill/BC/Translator.cpp is now heavier weight in what it does. 2016-08-26 15:59:52 -04:00
Ryan Govostes 9b4759a3d2 Set a default SDKROOT on Darwin 2016-07-28 21:55:32 -07:00
Ryan Govostes 85f568f072 Fix test for existince of libxed on Darwin 2016-07-28 21:52:03 -07:00
Ryan Govostes 0e249223cb Don't run install_name_tool on libxed.a 2016-07-28 21:40:39 -07:00
yan 3f815efcbd Rename all references from mcsema2 to remill 2016-06-23 11:39:36 -04:00
Peter Goodman b5247b0fb0 Test cases for LEA, CPUID, and ENTER. 2016-03-22 13:16:23 -04:00
Peter Goodman 414766d692 Change how temp file is created. Bump to clang+llvm 3.8. 2016-03-10 23:07:22 -05:00
Peter Goodman 2fec611914 Bumping XED version. 2016-02-08 14:54:13 -05:00
Peter Goodman ecb1f39266 Added Interrupt structure to State structure for x86. It's not an ideal way of configuring interrupts, but it currently seems like the only way to handle conditional interrupts, e.g. via BOUND or INTO. I might need something similar for SYSCALL vs. SYSENTER. Split the build script out into a build script and a build system. Made it so that the IDA script splits interrupts off into their own blocks. This is so that we can restart interrupts by jumping back to the blocks associated with the address of the instruction. Moving the tools stuff out into its own repo as it complicates things to have it in the source. 2016-01-27 14:25:52 -05:00
Peter Goodman 09bf511d1a Switch back to 3.7.1 for mac because there is no 3.8.0 llvm pre-release for mac. 2016-01-25 21:56:30 -05:00
Peter Goodman 1aa12026a8 Adding the beginning of a CGC replayer tool. 2016-01-25 21:25:05 -05:00
Peter Goodman 80adf5e085 Compiling is working on Linux. 2016-01-17 20:47:23 -05:00
Peter Goodman 1688d1edfe Build script and test cases working on Linux. 2016-01-16 23:45:41 -05:00
Peter Goodman a57cc64822 OMG I really screwed things up temporarily but don't ask. 2016-01-15 12:12:49 -05:00
Peter Goodman ac95d5c649 Added scripts/check.sh to run the clang static analyzer on the code (I think). Added an untested implementation of SHR. 2015-12-28 18:39:58 -05:00
Peter Goodman 5b955b358d Implemented inline deferral optimization. Enabled the optimization on the test case builds. Modified cmake to explicitly include LLVM; hopefully that works on macs. 2015-12-17 19:11:02 -05:00
Peter Goodman c6ba5aed98 Refactored arch naming, bitcode loading/storing. Changed --arch to --source_arch and --target_arch, though the latter isn't yet used. Changes Test.S to subtract the TestInfo structure address from the other code addresses to try to guarantee that the result can fit into a .long (I think). Fixed semantics where one if the DEC isels was incorrectly named as using INC. Changed to symbol/function name resolution works. Instead of always checking for FLAGS_os==mac, I now use the DataLayout::getGlobalPrefix. Hopefully this will be more generic. 2015-12-05 23:50:01 -05:00
Peter Goodman cf7dfa0869 Working on making a testing setup> 2015-12-04 17:32:00 -05:00
Peter Goodman 323d7211c7 Minor fix to protobuf version. Added gtest. 2015-12-02 23:51:10 -05:00
Peter Goodman b3e05a628b Adding error propagation when building semantics files. 2015-11-29 15:37:33 -05:00
Peter Goodman 27427475ff This might make it fail faster 2015-11-29 15:14:52 -05:00
Peter Goodman 4eae13154f New bootstrap script 2015-11-29 13:18:47 -05:00
Ryan Stortz 42e6d1e258 Saving work adding OS X support.
I think the llvm+clang download has rtti off but this project requires
it to be on. We might need to build llvm and clang each time. :(
2015-11-29 13:07:17 -05:00
Ryan Stortz 4c8f433750 Saving work adding OS X support.
I think the llvm+clang download has rtti off but this project requires
it to be on. We might need to build llvm and clang each time. :(
2015-11-28 20:40:43 -05:00
Peter Goodman 8cdbbf97e9 Added a few more semantics, some comments, some optimizations. One important thing is marking all methods as naked so that no stack frame prologues/epilogues are created. This fits nicely with the must-tail-call between everything and the use of the fast calling convention. 2015-11-17 18:08:38 -05:00
Peter Goodman 8d7cb99f8f Bringing things in the direction of using 'memory' intrinsics. I'm still not super pleased with some of the APIs but its a reasonable start and things seem to be working (I think). 2015-11-14 01:30:01 -05:00
Peter Goodman 602c927559 IDA script generally finds all functions now. Now lifted bitcode files can optimize without the optimizer figuring out that unreachable blocks are unoptimizable. Currently optimized bitcode looks a bit strange due to the absence of implementations for some key things. 2015-11-09 00:26:32 -05:00
Peter Goodman 26d338f506 Some fixes suggested by Artem to make things more portable and less bug prone. 2015-10-25 22:07:53 -04:00
Peter Goodman 254d56c11c First implementations of some instruction semantics. 2015-10-24 19:05:22 -04:00
Peter Goodman 2c253d9aba Ugggh 2015-10-22 11:30:49 -04:00