Commit Graph

  • 0ca6087018 Reorganize the iterative BB discovery process Alessandro Di Federico 2016-06-16 13:12:17 +02:00
  • 041ea8726d Introduce predecessors and successors Alessandro Di Federico 2016-06-13 13:52:51 +02:00
  • 89697ff34e Reorganize SET Alessandro Di Federico 2016-06-13 13:19:10 +02:00
  • b3fb106d41 Handle change of an OSR's associated value Alessandro Di Federico 2016-06-07 11:50:29 +02:00
  • e39ae91a37 Improve OSRA's handling of overtaken values Alessandro Di Federico 2016-06-07 11:27:50 +02:00
  • e986148e41 Prevent leak of cloned Instructions Alessandro Di Federico 2016-06-06 18:23:27 +02:00
  • ffa4639b08 Workaround for BBs including other BBs Alessandro Di Federico 2016-05-17 08:15:30 +02:00
  • a997a0525a Use opcode names in basic block statistics Alessandro Di Federico 2016-05-17 08:13:53 +02:00
  • 1a5fc0f519 Introduce collection of basic block statistics Alessandro Di Federico 2016-05-16 13:13:10 +02:00
  • 8d34cecb90 Catch undefined behavior due to excessive shift Alessandro Di Federico 2016-05-10 15:44:23 +02:00
  • eb8e589a4d Don't access boundedValue if it's not available Alessandro Di Federico 2016-05-10 12:48:51 +02:00
  • 4dd3638a46 Fix overflow when we check membership to a segment Alessandro Di Federico 2016-05-10 12:46:43 +02:00
  • dbb462a9a5 Fix issues in release builds Alessandro Di Federico 2016-05-09 16:17:40 +02:00
  • 994f518e14 Use ld.bfd linker as linker by default Alessandro Di Federico 2016-05-03 00:05:36 +02:00
  • 4e04f0eed5 Copy run-time files to build directory Alessandro Di Federico 2016-05-02 18:36:31 +02:00
  • db030d6757 Downgrade to CMake 2.8 Alessandro Di Federico 2016-05-02 17:03:15 +02:00
  • d57b222ca2 Fix return type while translating bswap Alessandro Di Federico 2016-04-27 17:55:26 +02:00
  • 710954ee51 Use a single, shared, cast for local temporaries Alessandro Di Federico 2016-04-27 17:54:50 +02:00
  • da2b42901b Reset temporaries for each new input instruction Alessandro Di Federico 2016-04-27 17:53:36 +02:00
  • 0ae9999be6 Improve LLVM IR annotations Alessandro Di Federico 2016-04-27 17:49:51 +02:00
  • ff52a06c74 Unify return values for opcode translations Alessandro Di Federico 2016-04-27 17:46:07 +02:00
  • 329fcb3707 Introduce tracing support Alessandro Di Federico 2016-04-27 10:24:30 +02:00
  • 0d035a93e1 Introduce clang support: fixes and cleanup Alessandro Di Federico 2016-04-21 08:12:46 +02:00
  • 6acc701b54 Documentation and some refactoring Alessandro Di Federico 2016-04-14 14:04:01 +02:00
  • 57721ff851 Isolate SET Alessandro Di Federico 2016-04-14 11:48:53 +02:00
  • fbca5bba2e Import OSRA and update SET Alessandro Di Federico 2016-04-14 08:58:13 +02:00
  • 670ca9d990 Remove the specila handling of null-jumps Alessandro Di Federico 2016-04-14 08:45:33 +02:00
  • 1ca682e3d1 Implement "unvisit" logic for SET Alessandro Di Federico 2016-04-14 08:43:53 +02:00
  • b74f09cad4 support.c: introduce unknownPC plus fixes Alessandro Di Federico 2016-04-14 08:39:58 +02:00
  • 7fa391381b Perform aggressive specialization on helpers Alessandro Di Federico 2016-04-14 08:32:48 +02:00
  • cda7bbd94e Extend support for partial CPU state reads/writes Alessandro Di Federico 2016-04-14 08:31:52 +02:00
  • 74ed2abd53 Implement a set of helpers for Constant unboxing Alessandro Di Federico 2016-04-13 09:09:33 +02:00
  • 2a2306c0ae Improve new basic block positioning Alessandro Di Federico 2016-04-13 09:09:04 +02:00
  • 3daa285640 Fix bug in translation of rotate Alessandro Di Federico 2016-04-13 09:08:35 +02:00
  • 938057c4d8 Handle basic blocks with no terminator Alessandro Di Federico 2016-04-13 09:06:19 +02:00
  • 0f255102cd Handle helpers that might change the PC Alessandro Di Federico 2016-04-14 09:01:33 +02:00
  • 3eb8caed40 Introduce instruction alignment information Alessandro Di Federico 2016-04-13 09:00:29 +02:00
  • bbab7763ce At the end, remove all dead blocks Alessandro Di Federico 2016-04-13 08:59:32 +02:00
  • 6814f0c595 Compute explicitly the next PC while translating Alessandro Di Federico 2016-04-13 08:58:03 +02:00
  • 4d9e5684e9 Update --entry parameter Alessandro Di Federico 2016-04-13 08:48:03 +02:00
  • 298915ac6d Remove noreturn attribute from helpers Alessandro Di Federico 2016-04-13 08:36:58 +02:00
  • 6837959a16 Fix emission of program header address Alessandro Di Federico 2016-04-13 08:35:35 +02:00
  • c94fad95e4 Produce coverage CSV Alessandro Di Federico 2016-04-13 08:32:52 +02:00
  • 7a1ed8826b Coverage: explore PC after syscall Alessandro Di Federico 2016-01-30 11:03:36 +01:00
  • 8a34adb1ed Soft fail when calling a pointer using CPU state Alessandro Di Federico 2016-02-02 16:52:28 +01:00
  • 3f2ce746ec Bug: do not sign extend composed values in add2 Alessandro Di Federico 2016-02-02 16:51:07 +01:00
  • 8df95158fb Bug: missing breaks in bswap PTC operation Alessandro Di Federico 2016-02-02 16:50:39 +01:00
  • 318b478a92 Attach local temporaries to newpc calls Alessandro Di Federico 2016-02-02 16:48:32 +01:00
  • 04a2374ef5 Make support variable external and named Alessandro Di Federico 2016-02-02 16:03:34 +01:00
  • c8274af360 Let tests run from _start Alessandro Di Federico 2016-01-30 11:15:50 +01:00
  • 32b756510f Prepare stack for the translated program Alessandro Di Federico 2016-01-30 11:07:47 +01:00
  • e59edd4109 Improve code pointer harvesting using GVN Alessandro Di Federico 2016-01-30 11:06:17 +01:00
  • 224fd3d93c Handle the PC += arg case Alessandro Di Federico 2016-01-30 11:05:19 +01:00
  • e2e7593fa6 Coverage: explore PC after syscall Alessandro Di Federico 2016-01-30 11:03:36 +01:00
  • cb7096b076 Start execution from the specified virtual address Alessandro Di Federico 2016-01-30 11:03:09 +01:00
  • de2621165f Abort if helper module's loading fails Alessandro Di Federico 2016-01-30 11:02:24 +01:00
  • 475adf963c Update VariableManager's DataLayout after linking Alessandro Di Federico 2016-01-30 11:02:07 +01:00
  • c3138d5db6 Force the linker to import non-static functions Alessandro Di Federico 2016-01-30 11:00:52 +01:00
  • 25f540a8c6 Minor improvements to DebugHelper Alessandro Di Federico 2016-01-30 10:59:29 +01:00
  • f20c8e8839 Take initial values for CPU state from libtinycode Alessandro Di Federico 2016-01-30 10:59:00 +01:00
  • a0f89a4269 Delay Env + non-const failures to run-time Alessandro Di Federico 2016-01-30 10:57:57 +01:00
  • 71f919675e Speedup compilation by using llc -O0 Alessandro Di Federico 2016-01-30 10:57:15 +01:00
  • 3746bcbd78 Move harvesting of code pointers in JTM Alessandro Di Federico 2016-01-12 23:28:23 +01:00
  • 8c381090a7 Move TranslateDirectBranchesPass to JTM Alessandro Di Federico 2016-01-12 23:05:29 +01:00
  • 0d58bc3cf7 Introduce logging framework Alessandro Di Federico 2016-01-12 22:43:04 +01:00
  • e5c037e6f6 Introduce global data harvesting for code pointers Alessandro Di Federico 2016-01-12 19:44:01 +01:00
  • ef98afc1e3 Insert an unreachable after exit_tb Alessandro Di Federico 2016-01-12 19:41:37 +01:00
  • f8dcd566ae Collect information about ELF segments Alessandro Di Federico 2016-01-12 18:42:57 +01:00
  • 3420b0f85f Filter instructions while inspecting immediates Alessandro Di Federico 2016-01-12 18:36:21 +01:00
  • 0280d0fc98 Divert translation to a new block after exit_tb Alessandro Di Federico 2016-01-12 18:34:49 +01:00
  • e2e6a9cdb8 Introduce early detection of jump targets Alessandro Di Federico 2016-01-12 18:30:44 +01:00
  • 21d7cce3bf Graceful handling of translation failure Alessandro Di Federico 2016-01-12 18:28:54 +01:00
  • ef2d8241f6 Rework the root function header Alessandro Di Federico 2016-01-12 18:20:07 +01:00
  • e9e14881cb Fix: delay removal of calls in CpuLoopExitPass Alessandro Di Federico 2016-01-12 18:18:23 +01:00
  • 78bb20907c Relax -Werror for unused/uninitialized variables Alessandro Di Federico 2016-01-12 18:17:19 +01:00
  • 7fec929195 Fix typo in handling of op_{div,mul}u2_i{32,64} Alessandro Di Federico 2016-01-12 18:17:05 +01:00
  • e6b0ce7ad5 Don't assert for write-to-PC-less exit_tb Alessandro Di Federico 2016-01-12 18:15:28 +01:00
  • fa475803dd Handle double translations due to VLE Alessandro Di Federico 2016-01-12 18:14:52 +01:00
  • 14c86619ca Let getBlockAt callers handle non-executable PCs Alessandro Di Federico 2016-01-12 18:13:45 +01:00
  • 7dab9b0bf0 Simplify getBlockAt splitting logic Alessandro Di Federico 2016-01-12 18:09:18 +01:00
  • cc7851d040 Abort upon an unhandled usage of the CPU state Alessandro Di Federico 2016-01-12 18:08:14 +01:00
  • 77fdb38903 Abort on jump to an unknown addresses Alessandro Di Federico 2016-01-12 18:02:12 +01:00
  • df0997ab04 Ensure existence of abort since the beginning Alessandro Di Federico 2016-01-12 18:06:40 +01:00
  • 0cffa717ed Use puts and itoa instead of printf in tests Alessandro Di Federico 2016-01-12 18:01:14 +01:00
  • ea61c896fb Introduce dependencies among tests Alessandro Di Federico 2016-01-12 18:00:51 +01:00
  • d510fea8c7 Simplify command line usage exploiting ELF info Alessandro Di Federico 2016-01-09 13:33:43 +01:00
  • 432e89895b Harvest possible code pointers from code constants Alessandro Di Federico 2016-01-09 11:21:49 +01:00
  • 81a4f6f048 Disallow translation of non-executable data Alessandro Di Federico 2016-01-09 11:18:38 +01:00
  • 186435d456 Switch to incremental creation of the dispatcher Alessandro Di Federico 2016-01-09 11:15:29 +01:00
  • 5882aaff95 Give useful names to created basic blocks Alessandro Di Federico 2016-01-09 11:10:58 +01:00
  • 8b5c59ad13 Search new jump targets only if we're out of them Alessandro Di Federico 2016-01-09 11:09:00 +01:00
  • 5c2111db5b Rename JumpTargetManager.peek{JumpTarget,} Alessandro Di Federico 2016-01-09 11:07:38 +01:00
  • 39b9e69773 Bug: use a reverse iterator in getNextPC Alessandro Di Federico 2016-01-09 11:05:44 +01:00
  • 641915f465 Bug: first read value, then erase from vector Alessandro Di Federico 2016-01-09 10:29:12 +01:00
  • 51ca34634b global.c: a new test for access to global data Alessandro Di Federico 2016-01-07 14:17:39 +01:00
  • 93eb350073 Add support for source-target endianess mismatch Alessandro Di Federico 2016-01-07 14:17:15 +01:00
  • ac316cd758 Add support for ELF and import its global data Alessandro Di Federico 2016-01-07 14:16:05 +01:00
  • 0f2ddd80a0 Remove -o parameter: use the second argument Alessandro Di Federico 2016-01-05 15:35:44 +01:00
  • 13beb4490d Whitespace changes and doc additions Alessandro Di Federico 2016-01-04 21:47:55 +01:00
  • 8ca9156be3 Add a simple test for the getuid syscall Alessandro Di Federico 2016-01-04 21:39:01 +01:00