summaryrefslogtreecommitdiff
path: root/src/arch/instruction-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-12-04 22:59:30 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-12-04 22:59:30 (GMT)
commit12154652c576144405011b5bd267c15c9667f223 (patch)
treebe552b2b7bc563a58892e8950afd920a45132a6e /src/arch/instruction-int.h
parent6803c5d5b86416d1748d4d37a5cc5cb44fe007b1 (diff)
Provided a new way to build the full name of each instruction and cached it.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@435 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/arch/instruction-int.h')
-rw-r--r--src/arch/instruction-int.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/arch/instruction-int.h b/src/arch/instruction-int.h
index 958a5bd..f96753a 100644
--- a/src/arch/instruction-int.h
+++ b/src/arch/instruction-int.h
@@ -38,8 +38,8 @@ typedef void (* get_instruction_rw_regs_fc) (const GArchInstruction *, GArchRegi
/* Ajoute à un tampon GLib le contenu de l'instance spécifiée. */
typedef GBufferLine * (* print_instruction_fc) (const GArchInstruction *, GCodeBuffer *, MemoryDataSize, const bin_t *, AsmSyntax);
-/* Traduit une instruction en version humainement lisible. */
-typedef const char * (* get_instruction_keyword_fc) (const GArchInstruction *, AsmSyntax);
+/* Reconstruit le cache complet d'une désignation d'instruction. */
+typedef void (* build_instruction_keyword_fc) (const GArchInstruction *, AsmSyntax);
/* Informe sur une éventuelle référence à une autre instruction. */
typedef InstructionLinkType (* get_instruction_link_fc) (const GArchInstruction *, vmpa_t *);
@@ -55,6 +55,9 @@ struct _GArchInstruction
DL_LIST_ITEM(flow); /* Maillon de liste chaînée */
+ const char *suffix; /* Complément au nom affiché */
+ char *cached_keyword; /* Désignation complète */
+
mrange_t range; /* Emplacement en mémoire */
/* ------- %< ----------- */
@@ -95,7 +98,7 @@ struct _GArchInstructionClass
GObjectClass parent; /* A laisser en premier */
print_instruction_fc print; /* Imprime l'ensemble */
- get_instruction_keyword_fc get_key; /* Texte humain équivalent */
+ build_instruction_keyword_fc build_key; /* Texte humain équivalent */
};