From eb8896aed68fbacf87a2c530fcd584b71da2c222 Mon Sep 17 00:00:00 2001 From: Cyrille Bagard Date: Wed, 9 Sep 2020 23:36:18 +0200 Subject: Removed the "see" action from available rule actions. --- tools/d2c/rules/grammar.y | 3 +-- tools/d2c/rules/manager.c | 22 ++-------------------- tools/d2c/rules/manager.h | 4 ---- 3 files changed, 3 insertions(+), 26 deletions(-) diff --git a/tools/d2c/rules/grammar.y b/tools/d2c/rules/grammar.y index bf5b3c2..468b793 100644 --- a/tools/d2c/rules/grammar.y +++ b/tools/d2c/rules/grammar.y @@ -82,8 +82,7 @@ rule_cond : NAME { $$ = build_named_cond_expression($1); } | EXPR_START rule_cond EXPR_END AND EXPR_START rule_cond EXPR_END { $$ = build_composed_cond_expression($2, COT_AND, $6); } -action : SEE RAW_LINE { $$.type = CAT_SEE; $$.details = make_callable($2, false); } - | UNPREDICTABLE { $$.type = CAT_UNPREDICTABLE; } +action : UNPREDICTABLE { $$.type = CAT_UNPREDICTABLE; } | CALL RAW_LINE { right_op_t rop; bool status; diff --git a/tools/d2c/rules/manager.c b/tools/d2c/rules/manager.c index 1face3e..cd890d0 100644 --- a/tools/d2c/rules/manager.c +++ b/tools/d2c/rules/manager.c @@ -497,10 +497,6 @@ void delete_decoding_rules(decoding_rules *rules) switch (rule->action.type) { - case CAT_SEE: - free(rule->action.details); - break; - case CAT_UNPREDICTABLE: break; @@ -663,20 +659,6 @@ bool write_decoding_rules(decoding_rules *rules, CondActionType filter, int fd, switch (rule->action.type) { - case CAT_SEE: - -#if 0 - dprintf(fd, "\t\t\tinstr = %s_read_%sinstr_%s", arch, subarch, rule->action.details); - - /* TODO : adapter les paramètres d'appel selon le 'coder' */ - dprintf(fd, "(_raw);\n"); - - dprintf(fd, "\t\t\tgoto quick_exit;\n"); - - *exit = true; -#endif - break; - case CAT_UNPREDICTABLE: break; @@ -690,8 +672,8 @@ bool write_decoding_rules(decoding_rules *rules, CondActionType filter, int fd, callable = rule->action.callee; if (rule->expr != NULL) - dprintf(fd, "\t") -; + dprintf(fd, "\t"); + dprintf(fd, "%s", tab); result = call_instr_func(callable, rule->action.args, fd, bits, list); diff --git a/tools/d2c/rules/manager.h b/tools/d2c/rules/manager.h index f6d2ade..8161fdb 100644 --- a/tools/d2c/rules/manager.h +++ b/tools/d2c/rules/manager.h @@ -72,7 +72,6 @@ cond_expr *build_composed_cond_expression(cond_expr *, CondOpType, cond_expr *); /* Conséquence en cas de condition remplie */ typedef enum _CondActionType { - CAT_SEE, /* Renvoi vers une instruction */ CAT_UNPREDICTABLE, /* Cas de figure improbable */ CAT_CALL, /* Appel à une fonction C */ CAT_CHECKED_CALL /* Appel à une fonction C */ @@ -86,9 +85,6 @@ typedef struct _rule_action union { - /* CAT_SEE */ - char *details; /* Eventuel complément d'info. */ - /* CAT_CALL / CAT_CHECKED_CALL */ struct { -- cgit v0.11.2-87-g4458