summaryrefslogtreecommitdiff
path: root/src/decomp/expr/pseudo.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2013-01-27 22:03:31 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2013-01-27 22:03:31 (GMT)
commit5c7ea8e2137e4e5bb2887de0d1ffd8a0b277636e (patch)
tree86d788e395f009c773cccd4310d56477c55552b5 /src/decomp/expr/pseudo.h
parent7f35f8d2f211fdf087252ede7665e9c81f35cdc7 (diff)
Reduced the quantity of used variables in decompiled code.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@332 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/decomp/expr/pseudo.h')
-rw-r--r--src/decomp/expr/pseudo.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/decomp/expr/pseudo.h b/src/decomp/expr/pseudo.h
index a465b41..e7f3b00 100644
--- a/src/decomp/expr/pseudo.h
+++ b/src/decomp/expr/pseudo.h
@@ -42,6 +42,17 @@
+/* Types de pseudo-registre */
+typedef enum _PseudoRegUsage
+{
+ PRU_THIS, /* "this" pour les objets */
+ PRU_ARG, /* Argument de fonction */
+ PRU_LOCAL, /* Variable locale */
+ PRU_FIXED /* Variable type champ */
+
+} PseudoRegUsage;
+
+
/* Définition d'un pseudo-registre (instance) */
typedef struct _GPseudoRegister GPseudoRegister;
@@ -53,7 +64,10 @@ typedef struct _GPseudoRegisterClass GPseudoRegisterClass;
GType g_pseudo_register_get_type(void);
/* Assigne le contenu d'une expression dans une autre. */
-GDecInstruction *g_pseudo_register_new(void);
+GDecInstruction *g_pseudo_register_new(PseudoRegUsage);
+
+/* Indique l'usage attendu du pseudo-registre consulté. */
+PseudoRegUsage g_pseudo_register_get_usage(const GPseudoRegister *);
/* Définit un nom général pour un pseudo-registre donné. */
void g_pseudo_register_set_basename(GPseudoRegister *, const char *);