diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2012-07-29 21:41:52 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2012-07-29 21:41:52 (GMT) |
commit | 8e1f2335773a9025cd46d45a33261725707af3ba (patch) | |
tree | 6001a1095985514bbde3c8ec49b4dd5d32182fc8 /src/decomp/expr | |
parent | 8b35a66464636d0c46237af7490a6ca6866ecc4d (diff) |
Updated all decompiled instructions using right pseudo registers.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@253 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
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); |