summaryrefslogtreecommitdiff
path: root/src/decomp/expr
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2012-07-29 21:41:52 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2012-07-29 21:41:52 (GMT)
commit8e1f2335773a9025cd46d45a33261725707af3ba (patch)
tree6001a1095985514bbde3c8ec49b4dd5d32182fc8 /src/decomp/expr
parent8b35a66464636d0c46237af7490a6ca6866ecc4d (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.c23
-rw-r--r--src/decomp/expr/pseudo.h3
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);