summaryrefslogtreecommitdiff
path: root/tools/d2c/spec.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/d2c/spec.c')
-rw-r--r--tools/d2c/spec.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/tools/d2c/spec.c b/tools/d2c/spec.c
index b56c6aa..9d4447d 100644
--- a/tools/d2c/spec.c
+++ b/tools/d2c/spec.c
@@ -304,7 +304,13 @@ bool write_encoding_spec_disass(const encoding_spec *spec, int fd, const char *a
/* Inclusion des éventuelles règles */
- result &= write_decoding_rules(spec->rules, fd, arch, subarch, spec->bits, &exit);
+ exit = false;
+
+ result &= write_decoding_rules(spec->rules, CAT_SEE,
+ fd, arch, subarch, spec->bits, spec->conversions, pp, &exit);
+
+ result &= write_decoding_rules(spec->rules, CAT_UNPREDICTABLE,
+ fd, arch, subarch, spec->bits, spec->conversions, pp, &exit);
/* Création de l'instruction en elle-même */
@@ -314,10 +320,13 @@ bool write_encoding_spec_disass(const encoding_spec *spec, int fd, const char *a
dprintf(fd, "\n");
- /* Inscriptions des éventuelles fonctions à lier */
+ /* Inscriptions des éventuelles fonctions ou propriété à lier */
result &= write_hook_functions(spec->hooks, fd);
+ result &= write_decoding_rules(spec->rules, CAT_CALL,
+ fd, arch, subarch, spec->bits, spec->conversions, pp, &exit);
+
/* Création des opérandes */
result &= define_syntax_items(spec->syntax, fd, arch, spec->bits, spec->conversions, pp);