Commit Graph

14 Commits

Author SHA1 Message Date
Peter Goodman 7c60cd3860 Build changes 2016-09-07 11:35:11 -04:00
Peter Goodman f283e05616 Added semantics and tests for CVTDQ2PD and CVTTPD2DQ 2016-09-01 20:57:39 -04:00
Peter Goodman 773919bd40 Added NOPs. 2016-08-31 20:46:02 -04:00
Peter Goodman ba427a3b4b Starting to add some more FPU stuff, though untested. Decided on a simpler way of handling conversions between float80_ts and float64_ts. The idea is to just punt on float80_ts, with the idea that all sources of them will come via memory locations, or at attach/detach time. 2016-08-08 17:05:44 -04:00
Peter Goodman 81df2663d9 Changes to how conditional branches are handled. Made the x86 translator code even less OO. Removed the conditional_branch and create_program_counter intrinsics. 2016-08-08 17:05:44 -04:00
Peter Goodman 8f8ed65af1 DATAXFER and BINARY tests are now passing. 2016-08-08 17:05:43 -04:00
yan 3f815efcbd Rename all references from mcsema2 to remill 2016-06-23 11:39:36 -04:00
Peter Goodman 10b5af884d Fix to build system for dry runs. 2016-04-22 15:48:47 -04:00
Peter Goodman fb5ac1bd6c Very early FPU support. Changes to libOptimize. Added a libFinalize and a scripts/finalize_bitcode.sh to get around the issue of LLVM and dead arg elimination. This is annoying because I had to use the Naked attribute on all functions, but then this affects codegen, so the finalize step is needed to make sure that code is correctly compiled. 2016-04-08 16:35:48 -04:00
Peter Goodman 280c23b4b4 Changes to how vectors in memory are read. Cleaned up a bunch of the vector related operator code. Added some extra test cases for memory accesses. I plan to add more. 2016-04-01 18:24:37 -04:00
Peter Goodman d74cbedfef Added implementation and tests for MOVLPS. This turned out to require a new DownCast construct because the default implemented behaviour for assigning a small value/vector to a big vector is to zero out the high part of the vector. 2016-03-15 17:40:54 -04:00
Peter Goodman ee87b84d5e Made is to that the memory intrinsics always read/write byval as opposed to byref for vectors. 2016-02-03 13:32:57 -05:00
Peter Goodman 24cc36e9e0 Tried to clean up a bit of code. Maybe didn't success so much. Added the beginnings of a data-flow analysis pass. It very aggressively marks condition codes as dead. Next step is to augment it to handle registers. 2016-02-02 22:46:23 -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