diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-06-12 23:46:47 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-06-12 23:46:47 (GMT) |
commit | 04d108111fe7ddd01713b4ca22f8d96961ec2486 (patch) | |
tree | 72ca086e0db2568bc93acb865b84e29c7d206897 /src/analysis/blocks | |
parent | 64aee7b4301e720a7420ab8942ef88f72d7a2c99 (diff) |
Improved loading speed with binary search of sorted arrays.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@538 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/blocks')
-rw-r--r-- | src/analysis/blocks/flow.c | 24 | ||||
-rw-r--r-- | src/analysis/blocks/flow.h | 8 |
2 files changed, 16 insertions, 16 deletions
diff --git a/src/analysis/blocks/flow.c b/src/analysis/blocks/flow.c index 99d4553..85edad6 100644 --- a/src/analysis/blocks/flow.c +++ b/src/analysis/blocks/flow.c @@ -40,7 +40,7 @@ struct _GFlowBlock unsigned int rank; /* Rang dans l'exécution */ unsigned int next_rank; /* Rang suivant de l'exécution */ - GArchInstruction *instrs; /* Liste complète d'instruct° */ + GArchProcessor *proc; /* Liste complète d'instruct° */ GArchInstruction *first; /* Première instruction */ GArchInstruction *last; /* Dernière instruction */ @@ -164,7 +164,7 @@ static void g_flow_block_init(GFlowBlock *block) static void g_flow_block_dispose(GFlowBlock *block) { - g_object_unref(G_OBJECT(block->instrs)); + g_object_unref(G_OBJECT(block->proc)); g_object_unref(G_OBJECT(block->first)); g_object_unref(G_OBJECT(block->last)); @@ -197,9 +197,9 @@ static void g_flow_block_finalize(GFlowBlock *block) /****************************************************************************** * * -* Paramètres : instrs = liste de toutes les instructions. * -* first = première instruction du bloc. * -* last = dernière instruction du bloc. * +* Paramètres : proc = liste de toutes les instructions. * +* first = première instruction du bloc. * +* last = dernière instruction du bloc. * * * * Description : Crée un bloc d'exécution d'instructions. * * * @@ -209,17 +209,17 @@ static void g_flow_block_finalize(GFlowBlock *block) * * ******************************************************************************/ -GInstrBlock *g_flow_block_new(GArchInstruction *instrs, GArchInstruction *first, GArchInstruction *last) +GInstrBlock *g_flow_block_new(GArchProcessor *proc, GArchInstruction *first, GArchInstruction *last) { GFlowBlock *result; /* Structure à retourner */ result = g_object_new(G_TYPE_FLOW_BLOCK, NULL); - result->instrs = instrs; + result->proc = proc; result->first = first; result->last = last; - g_object_ref(G_OBJECT(result->instrs)); + g_object_ref(G_OBJECT(result->proc)); g_object_ref(G_OBJECT(result->first)); g_object_ref(G_OBJECT(result->last)); @@ -443,7 +443,7 @@ static void g_flow_block_compute_regs_access(GFlowBlock *block) for (iter = block->first; iter != NULL; - iter = g_arch_instruction_get_next_iter(block->instrs, iter, max)) + iter = NULL/* FIXME g_arch_instruction_get_next_iter(block->instrs, iter, max)*/) { g_arch_instruction_get_location(iter, NULL, NULL, &addr); @@ -473,7 +473,7 @@ static void g_flow_block_compute_regs_access(GFlowBlock *block) * * * Paramètres : block = bloc d'instructions à consulter. * * * -* Description : Fournit la liste d'appartenance des instructions du bloc. * +* Description : Donne le processeur d'appartenance des instructions du bloc. * * * * Retour : Liste de l'ensemble des instructions. * * * @@ -481,9 +481,9 @@ static void g_flow_block_compute_regs_access(GFlowBlock *block) * * ******************************************************************************/ -GArchInstruction *g_flow_block_get_all_instructions_list(const GFlowBlock *block) +GArchProcessor *g_flow_block_get_processor(const GFlowBlock *block) { - return block->instrs; + return block->proc; } diff --git a/src/analysis/blocks/flow.h b/src/analysis/blocks/flow.h index cf8797b..be9c38f 100644 --- a/src/analysis/blocks/flow.h +++ b/src/analysis/blocks/flow.h @@ -31,7 +31,7 @@ #include "raccess.h" #include "../block.h" -#include "../../arch/instruction.h" +#include "../../arch/processor.h" @@ -68,7 +68,7 @@ typedef bool (* flow_block_follow_cb) (GFlowBlock *, BlockFollowPosition, void * GType g_flow_block_get_type(void); /* Crée un bloc d'exécution d'instructions. */ -GInstrBlock *g_flow_block_new(GArchInstruction *, GArchInstruction *, GArchInstruction *); +GInstrBlock *g_flow_block_new(GArchProcessor *, GArchInstruction *, GArchInstruction *); /* Fournit le rang du bloc dans le flot d'exécution. */ unsigned int g_flow_block_get_rank(const GFlowBlock *); @@ -76,8 +76,8 @@ unsigned int g_flow_block_get_rank(const GFlowBlock *); /* Définit le rang du bloc dans le flot d'exécution. */ void g_flow_block_set_rank(GFlowBlock *, unsigned int); -/* Fournit la liste d'appartenance des instructions du bloc. */ -GArchInstruction *g_flow_block_get_all_instructions_list(const GFlowBlock *); +/* Donne le processeur d'appartenance des instructions du bloc. */ +GArchProcessor *g_flow_block_get_processor(const GFlowBlock *); /* Fournit les instructions limites d'un bloc d'exécution. */ void g_flow_block_get_boundary(const GFlowBlock *, GArchInstruction **, GArchInstruction **); |