summaryrefslogtreecommitdiff
path: root/src/arch/target.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-04-22 21:53:07 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-04-22 21:53:07 (GMT)
commit9c1367eb2e75dfac59f33e851dee8d39542072ac (patch)
treedd999e736e12c47d9d0b90808451d14c6279a85d /src/arch/target.h
parenta2979604ebaa3d564908f13e4f9ab345fca0ff28 (diff)
Shared target operands in memory when possible.
Diffstat (limited to 'src/arch/target.h')
-rw-r--r--src/arch/target.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/arch/target.h b/src/arch/target.h
index 529dba8..affe59e 100644
--- a/src/arch/target.h
+++ b/src/arch/target.h
@@ -32,10 +32,14 @@
#include "archbase.h"
#include "operand.h"
#include "vmpa.h"
+#include "sharing/container.h"
#include "../format/format.h"
+/* ------------------------ GESTION DES OPERANDES DE CIBLAGE ------------------------ */
+
+
#define G_TYPE_TARGET_OPERAND g_target_operand_get_type()
#define G_TARGET_OPERAND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), g_target_operand_get_type(), GTargetOperand))
#define G_IS_TARGET_OPERAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), g_target_operand_get_type()))
@@ -64,11 +68,27 @@ MemoryDataSize g_target_operand_get_size(const GTargetOperand *);
void g_target_operand_get_addr(const GTargetOperand *, vmpa2t *);
/* Tente une résolution de symbole. */
-bool g_target_operand_resolve(GTargetOperand *, GBinFormat *, bool);
+bool g_target_operand_resolve(GTargetOperand **, GBinFormat *, bool, GShareContainer *);
/* Fournit les indications concernant le symbole associé. */
GBinSymbol *g_target_operand_get_symbol(const GTargetOperand *, phys_t *);
+/* -------------------------- PARTAGES DE CONTENUS UNIQUES -------------------------- */
+
+
+/* Initialise les mécanismes de partage des opérandes de ciblage. */
+bool init_target_operand_sharing(void);
+
+/* Imprime des statistiques quant aux partages dans l'archi. */
+#ifdef DEBUG_DUMP_STATS
+void dump_target_operand_share_stats(void);
+#endif
+
+/* Supprime les mécanismes de partage des opérandes de ciblage. */
+void exit_target_operand_sharing(void);
+
+
+
#endif /* _ARCH_TARGET_H */