diff options
Diffstat (limited to 'src/decomp/expr')
-rw-r--r-- | src/decomp/expr/pseudo.c | 23 | ||||
-rw-r--r-- | src/decomp/expr/pseudo.h | 3 |
2 files changed, 25 insertions, 1 deletions
diff --git a/src/decomp/expr/pseudo.c b/src/decomp/expr/pseudo.c index bb5861d..e73cb3d 100644 --- a/src/decomp/expr/pseudo.c +++ b/src/decomp/expr/pseudo.c @@ -38,6 +38,7 @@ struct _GPseudoRegister { GDecExpression parent; /* A laisser en premier */ + char *name; /* Désignation générale */ size_t index; /* Position dans l'ensemble */ GBinVariable *var; /* Variable plus précise */ @@ -160,7 +161,7 @@ static void g_pseudo_register_print(const GPseudoRegister *reg, GCodeBuffer *buf } else { - snprintf(label, 32, "var%zu", reg->index); + snprintf(label, 32, "%s%zu", reg->name, reg->index); g_buffer_line_insert_text(line, BLC_ASSEMBLY_HEAD, label, strlen(label), RTT_RAW); } @@ -169,6 +170,26 @@ static void g_pseudo_register_print(const GPseudoRegister *reg, GCodeBuffer *buf /****************************************************************************** * * +* Paramètres : reg = expression représentant un pseudo-registre à traiter. * +* name = désignation générale à associer au pseudo-registre. * +* * +* Description : Définit un nom général pour un pseudo-registre donné. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void g_pseudo_register_set_basename(GPseudoRegister *reg, const char *name) +{ + reg->name = strdup(name); + +} + + +/****************************************************************************** +* * * Paramètres : reg = expression représentant un pseudo-registre à traiter.* * index = indice à associer au pseudo-registre. * * * diff --git a/src/decomp/expr/pseudo.h b/src/decomp/expr/pseudo.h index dce6337..a465b41 100644 --- a/src/decomp/expr/pseudo.h +++ b/src/decomp/expr/pseudo.h @@ -55,6 +55,9 @@ GType g_pseudo_register_get_type(void); /* Assigne le contenu d'une expression dans une autre. */ GDecInstruction *g_pseudo_register_new(void); +/* Définit un nom général pour un pseudo-registre donné. */ +void g_pseudo_register_set_basename(GPseudoRegister *, const char *); + /* Définit un indice unique pour un pseudo-registre donné. */ void g_pseudo_register_set_index(GPseudoRegister *, size_t); |