diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-01-02 22:09:09 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-01-02 22:09:09 (GMT) |
commit | 2f0c162313fa7272bfec7eb674b71e5e15c4ec7c (patch) | |
tree | ee6b7b25ebd83b709cb7644edb660f94d38e0f1f /src/arch/instruction.c | |
parent | 836e4ca6053594ceba7b78b8407d8a1f03491cd2 (diff) |
Unlinked instructions to save memory.
Diffstat (limited to 'src/arch/instruction.c')
-rw-r--r-- | src/arch/instruction.c | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/src/arch/instruction.c b/src/arch/instruction.c index 70b2819..db37bf7 100644 --- a/src/arch/instruction.c +++ b/src/arch/instruction.c @@ -122,8 +122,6 @@ static void g_arch_instruction_class_init(GArchInstructionClass *klass) static void g_arch_instruction_init(GArchInstruction *instr) { - DL_LIST_ITEM_INIT(&instr->flow); - instr->max_displayed_len = VMPA_NO_PHYSICAL; g_rw_lock_init(&instr->link_access); @@ -942,143 +940,6 @@ void g_arch_instruction_set_displayed_max_length(GArchInstruction *instr, phys_t /* ---------------------------------------------------------------------------------- */ -/* TRAITEMENT DES INSTRUCTIONS PAR ENSEMBLE */ -/* ---------------------------------------------------------------------------------- */ - - -/****************************************************************************** -* * -* Paramètres : list = liste d'instructions à compléter, ou NULL. * -* instr = nouvelle instruction à intégrer à l'ensemble. * -* * -* Description : Ajoute une instruction à un ensemble existant. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -void g_arch_instruction_add_to_list(GArchInstruction **list, GArchInstruction *instr) -{ - ainstr_list_add_tail(instr, list); - -} - - -/****************************************************************************** -* * -* Paramètres : list1 = première liste à traiter. * -* list2 = seconde liste à traiter. * -* * -* Description : Fusionne deux listes d'instructions. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -void g_arch_instruction_merge_lists(GArchInstruction **list1, GArchInstruction **list2) -{ - ainstr_list_merge(list1, list2); - -} - - -/****************************************************************************** -* * -* Paramètres : list = liste d'instructions à consulter. * -* : iter = position actuelle dans la liste. * -* * -* Description : Fournit l'élement suivant un autre pour un parcours. * -* * -* Retour : Elément suivant ou NULL si aucun. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *g_arch_instruction_get_prev_iter(const GArchInstruction *list, const GArchInstruction *iter) -{ - GArchInstruction *result; /* Elément suivant à renvoyer */ - - result = ainstr_list_prev_iter(iter, list); - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : list = liste d'instructions à consulter. * -* : iter = position actuelle dans la liste. * -* max = adresse marquant la limite (exclue) du parcours. * -* * -* Description : Fournit l'élement suivant un autre pour un parcours. * -* * -* Retour : Elément suivant ou NULL si aucun. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *g_arch_instruction_get_next_iter(const GArchInstruction *list, const GArchInstruction *iter, vmpa_t max) -{ - GArchInstruction *result; /* Elément suivant à renvoyer */ - - result = ainstr_list_next_iter(iter, list); - - /* FIXME : utiliser les nouvelles adresses ! - - if (result != NULL && result->address >= max) - result = NULL; - - */ - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : list = liste de lignes à parcourir. * -* addr = position en mémoire ou physique à chercher. * -* strict = définit la considération à porter à l'adresse. * -* * -* Description : Recherche une instruction d'après son adresse. * -* * -* Retour : Instruction trouvée à l'adresse donnée, NULL si aucune. * -* * -* Remarques : - * -* * -******************************************************************************/ - -GArchInstruction *g_arch_instruction_find_by_address(GArchInstruction *list, const vmpa2t *addr, bool strict) -{ - GArchInstruction *result; /* Trouvaille à retourner */ - bool found; /* Bilan de comparaisons */ - - ainstr_list_for_each(result, list) - { - if (strict) - found = (cmp_vmpa(get_mrange_addr(&result->range), addr) == 0); - else - found = mrange_contains_addr(&result->range, addr); - - if (found) break; - - } - - return result; - -} - - - -/* ---------------------------------------------------------------------------------- */ /* OFFRE DE CAPACITES DE GENERATION */ /* ---------------------------------------------------------------------------------- */ |