diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2013-01-20 13:10:06 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2013-01-20 13:10:06 (GMT) |
commit | 37fd2f1329c56078bc8a8b2fc955aa001c109c01 (patch) | |
tree | 71bcce9a3eaf6b7569d1f1d3e057752ae517ebde /src/decomp/context.h | |
parent | a9bbd894bd25f7c2bb72fb7d4064b19377d90c6d (diff) |
Took care of shared allocations between blocks when converting registers.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@326 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/decomp/context.h')
-rw-r--r-- | src/decomp/context.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/decomp/context.h b/src/decomp/context.h index 94b3270..d1b1ac9 100644 --- a/src/decomp/context.h +++ b/src/decomp/context.h @@ -31,6 +31,7 @@ #include "instruction.h" #include "../arch/archbase.h" #include "../format/executable.h" +#include "../analysis/blocks/raccess.h" /** @@ -74,6 +75,21 @@ void g_dec_context_set_info(GDecContext *, GBinRoutine *, GExeFormat *); /* Fournit le format binaire associé au contexte. */ GExeFormat *g_dec_context_get_format(const GDecContext *); +/* Définit la liste des registrés utilisés dans plusieurs blocs. */ +void g_dec_context_set_awaited(GDecContext *, GRAccessList *); + +/* Fournit la liste des registrés utilisés dans plusieurs blocs. */ +const GRAccessList *g_dec_context_get_awaited(const GDecContext *); + +/* Définit la liste des registrés déjà alloués et attendus. */ +void g_dec_context_set_shared_allocs(GDecContext *, GHashTable *); + +/* Fournit la liste des registrés déjà alloués et attendus. */ +GHashTable *g_dec_context_get_shared_allocs(const GDecContext *); + +/* Propage les registres alloués et attendus par la suite. */ +void g_dec_context_spread_allocated_shared_regs(GDecContext *, GDecContext *); + /* Fournit le premier élément de la liste des instructions. */ GDecInstruction *g_dec_context_get_decomp_instrs(const GDecContext *tx); @@ -81,7 +97,7 @@ GDecInstruction *g_dec_context_get_decomp_instrs(const GDecContext *tx); void g_dec_context_set_decomp_instrs(GDecContext *, GDecInstruction *); /* Convertit un registre machine en un pseudo-registre. */ -GDecInstruction *g_dec_context_convert_register(GDecContext *, gpointer, bool); +GDecInstruction *g_dec_context_convert_register(GDecContext *, gpointer, bool, vmpa_t); |