summaryrefslogtreecommitdiff
path: root/src/analysis/disass/routines.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2016-05-28 14:39:56 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2016-05-28 14:42:41 (GMT)
commit3154db88ce14aa681cc553a8910edba1e69d8c2b (patch)
treec54fa0190da66831c19c83ae57dba117e56387e7 /src/analysis/disass/routines.c
parented70a0bacfdca738ba29d50e9f1b02290f28b9b8 (diff)
Built the basic blocks list simply at loading.
Diffstat (limited to 'src/analysis/disass/routines.c')
-rw-r--r--src/analysis/disass/routines.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/analysis/disass/routines.c b/src/analysis/disass/routines.c
index de515d0..9f9c3b6 100644
--- a/src/analysis/disass/routines.c
+++ b/src/analysis/disass/routines.c
@@ -292,6 +292,7 @@ void g_routines_study_handle_blocks(GRoutinesStudy *study, size_t index)
const vmpa2t *start; /* Adresse de départ */
const instr_coverage *coverage; /* Instructions couvertes */
dragon_knight *knight; /* Complexité de code posée */
+ GBlockList *blocks; /* Liste de blocs basiques */
routine = study->routines[index];
@@ -320,7 +321,9 @@ void g_routines_study_handle_blocks(GRoutinesStudy *study, size_t index)
detect_loops_in_code(knight);
- group_routine_instructions(routine, knight);
+ blocks = translate_dragon_knight(knight);
+
+ g_binary_routine_set_basic_blocks(routine, blocks);
rank_routine_blocks(routine);