summaryrefslogtreecommitdiff
path: root/src/analysis/blocks
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-06-12 23:46:47 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-06-12 23:46:47 (GMT)
commit04d108111fe7ddd01713b4ca22f8d96961ec2486 (patch)
tree72ca086e0db2568bc93acb865b84e29c7d206897 /src/analysis/blocks
parent64aee7b4301e720a7420ab8942ef88f72d7a2c99 (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.c24
-rw-r--r--src/analysis/blocks/flow.h8
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 **);