diff options
Diffstat (limited to 'tools/d2c/spec.c')
-rw-r--r-- | tools/d2c/spec.c | 13 |
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); |