diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2016-12-18 15:32:27 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2016-12-18 15:32:27 (GMT) |
commit | b0bcf250999b2242019f137e38f52390a86e71cd (patch) | |
tree | f3436a3ddbbd4773005ecb891630a815ed001341 /src/arch/dalvik/operands/register.h | |
parent | 6bde4016160057a22234d4ed698903dca52ce162 (diff) |
Shared all Dalvik operands between all their users.
Diffstat (limited to 'src/arch/dalvik/operands/register.h')
-rw-r--r-- | src/arch/dalvik/operands/register.h | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/arch/dalvik/operands/register.h b/src/arch/dalvik/operands/register.h index e8f28d1..9c6c61b 100644 --- a/src/arch/dalvik/operands/register.h +++ b/src/arch/dalvik/operands/register.h @@ -26,6 +26,7 @@ #include <glib-object.h> +#include <stdbool.h> #include "../register.h" @@ -34,12 +35,15 @@ -#define G_TYPE_DALVIK_REGISTER_OPERAND g_dalvik_register_operand_get_type() -#define G_DALVIK_REGISTER_OPERAND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_dalvik_register_operand_get_type(), GDalvikRegisterOperand)) -#define G_IS_DALVIK_REGISTER_OPERAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_dalvik_register_operand_get_type())) -#define G_DALVIK_REGISTER_OPERAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_DALVIK_REGISTER_OPERAND, GDalvikRegisterOperandClass)) -#define G_IS_DALVIK_REGISTER_OPERAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_DALVIK_REGISTER_OPERAND)) -#define G_DALVIK_REGISTER_OPERAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_DALVIK_REGISTER_OPERAND, GDalvikRegisterOperandClass)) +/* --------------------- MANIPULATION D'OPERANDES INDIVIDUELLES --------------------- */ + + +#define G_TYPE_DALVIK_REGISTER_OPERAND g_dalvik_register_operand_get_type() +#define G_DALVIK_REGISTER_OPERAND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), G_TYPE_DALVIK_REGISTER_OPERAND, GDalvikRegisterOperand)) +#define G_IS_DALVIK_REGISTER_OPERAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), G_TYPE_DALVIK_REGISTER_OPERAND)) +#define G_DALVIK_REGISTER_OPERAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), G_TYPE_DALVIK_REGISTER_OPERAND, GDalvikRegisterOperandClass)) +#define G_IS_DALVIK_REGISTER_OPERAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), G_TYPE_DALVIK_REGISTER_OPERAND)) +#define G_DALVIK_REGISTER_OPERAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), G_TYPE_DALVIK_REGISTER_OPERAND, GDalvikRegisterOperandClass)) /* Définition d'un opérande visant un registre Dalvik (instance) */ @@ -59,7 +63,7 @@ GArchOperand *g_dalvik_register_operand_new(const GBinContent *, vmpa2t *, bool GArchOperand *g_dalvik_register_operand_new_from_existing(GDalvikRegister *); /* Fournit le registre Dalvik associé à l'opérande. */ -GDalvikRegister *g_dalvik_register_operand_get(const GDalvikRegisterOperand *); +const GDalvikRegister *g_dalvik_register_operand_get(const GDalvikRegisterOperand *); /* Marque l'opérande comme étant écrit plutôt que consulté. */ void g_dalvik_register_operand_mark_as_written(GDalvikRegisterOperand *); @@ -69,4 +73,20 @@ bool g_dalvik_register_operand_is_written(const GDalvikRegisterOperand *); +/* -------------------------- PARTAGES DE CONTENUS UNIQUES -------------------------- */ + + +/* Met en place les mécanismes de partage des opérandes Dalvik. */ +bool init_dalvik_register_operand_sharing(void); + +/* Imprime des statistiques quant aux partages dans l'archi. */ +#ifdef DEBUG_DUMP_STATS +void dump_dalvik_register_operand_share_stats(void); +#endif + +/* Supprime les mécanismes de partage des opérandes Dalvik. */ +void exit_dalvik_register_operand_sharing(void); + + + #endif /* _ARCH_DALVIK_OPERANDS_REGISTER_H */ |