From 365246bd2d9dd9f7eea008b25b8550bba0aac1cc Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Fri, 21 Dec 2018 17:35:08 +0100 Subject: Fixed a bug in the dominators computation. --- src/analysis/disass/dragon.c | 10 ---------- src/analysis/disass/loop.c | 13 +------------ 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/src/analysis/disass/dragon.c b/src/analysis/disass/dragon.c index 7040b3b..eb91ad1 100644 --- a/src/analysis/disass/dragon.c +++ b/src/analysis/disass/dragon.c @@ -576,14 +576,6 @@ void compute_all_dominators(dragon_node *nodes, size_t count) predecessor = find_node_for_instruction(nodes, count, true, source->linked); - /* - printf(" -- finding pred @ 0x%08x -> 0x%08x :: %p\n", - (unsigned int)g_arch_instruction_get_range(node->first)->addr.virtual, - (unsigned int)g_arch_instruction_get_range(srcs[i])->addr.virtual, - predecessor); - */ - - if (predecessor != NULL) and_bit_field(inter, predecessor->bits); @@ -602,8 +594,6 @@ void compute_all_dominators(dragon_node *nodes, size_t count) set_in_bit_field(inter, k, 1); - or_bit_field(inter, node->bits); - if (compare_bit_fields(node->bits, inter) != 0) { copy_bit_field(node->bits, inter); diff --git a/src/analysis/disass/loop.c b/src/analysis/disass/loop.c index 40ce441..b41e6b2 100644 --- a/src/analysis/disass/loop.c +++ b/src/analysis/disass/loop.c @@ -84,18 +84,7 @@ static void detect_back_edges(dragon_node *nodes, size_t count) id = get_dragon_node_index(nodes, target); if (test_in_bit_field(dominators, id)) - { - - /* - printf("BACKEDGE :: 0x%08lx -> 0x%08lx\n", - (unsigned int)g_arch_instruction_get_range(last)->addr.virtual, - (unsigned int)g_arch_instruction_get_range(dests[i])->addr.virtual); - */ - - /* status = */g_arch_instruction_change_link(last, dest->linked, dest->type, ILT_LOOP); - - - } + g_arch_instruction_change_link(last, dest->linked, dest->type, ILT_LOOP); break; -- cgit v0.11.2-87-g4458