diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-04-02 07:47:13 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-04-02 07:47:13 (GMT) |
commit | 36a5b2577d67ab7c9f2c5817f6dba7a9601d1f20 (patch) | |
tree | 8b326546f84c5ca82bbff2b41ef967ba3b0c0745 /src/analysis/disass/dragon.h | |
parent | 33906ce366efc053dee0b76d5bd668797b99071e (diff) |
Handled all routines disassembling processing in one place.
Diffstat (limited to 'src/analysis/disass/dragon.h')
-rw-r--r-- | src/analysis/disass/dragon.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/analysis/disass/dragon.h b/src/analysis/disass/dragon.h index c6f6fd5..3449e6f 100644 --- a/src/analysis/disass/dragon.h +++ b/src/analysis/disass/dragon.h @@ -49,6 +49,12 @@ size_t get_dragon_node_index(dragon_node *, dragon_node *); /* Recherche un noeud selon son intruction de départ. */ dragon_node *find_node_for_instruction(dragon_node *, size_t, bool, const GArchInstruction *); +/* Marque tous les noeuds accessibles pour chaque noeud de code. */ +void compute_all_paths(dragon_node *, size_t); + +/* Fournit la liste des noeuds accessibles depuis un autre. */ +const bitfield_t *get_paths_bits(const dragon_node *); + /* Détermine toute la chaîne hiérarchique de domination. */ void compute_all_dominators(dragon_node *, size_t); @@ -57,9 +63,6 @@ const bitfield_t *get_domination_bits(const dragon_node *); - - - /* ---------------------------- ENCAPSULATION DES NOEUDS ---------------------------- */ @@ -74,7 +77,16 @@ dragon_knight *begin_dragon_knight(const GArchProcessor *, const instr_coverage void end_dragon_knight(dragon_knight *); /* Fournit les éléments utiles à un traitement de blocs de code. */ -void get_dragon_knight_content(dragon_knight *, dragon_node **, size_t *); +void get_dragon_knight_content(const dragon_knight *, dragon_node **, size_t *); + +/* Fournit un noeud particulier à partir d'une liste. */ +dragon_node *get_dragon_knight_node(const dragon_knight *, size_t); + +/* Fournit l'indice d'un noeud particulier à partir d'une liste. */ +size_t get_dragon_knight_node_index(const dragon_knight *, dragon_node *); + +/* Recherche un noeud selon son intruction de départ. */ +dragon_node *find_knight_node_for_instruction(const dragon_knight *, bool, const GArchInstruction *); |