diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2013-01-27 22:03:31 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2013-01-27 22:03:31 (GMT) |
commit | 5c7ea8e2137e4e5bb2887de0d1ffd8a0b277636e (patch) | |
tree | 86d788e395f009c773cccd4310d56477c55552b5 /src/decomp/expr/pseudo.c | |
parent | 7f35f8d2f211fdf087252ede7665e9c81f35cdc7 (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.c')
-rw-r--r-- | src/decomp/expr/pseudo.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/decomp/expr/pseudo.c b/src/decomp/expr/pseudo.c index 9da76e7..7c7ba71 100644 --- a/src/decomp/expr/pseudo.c +++ b/src/decomp/expr/pseudo.c @@ -38,6 +38,8 @@ struct _GPseudoRegister { GDecExpression parent; /* A laisser en premier */ + PseudoRegUsage usage; /* Type d'utilisation attendue */ + char *name; /* Désignation générale */ size_t index; /* Position dans l'ensemble */ GBinVariable *var; /* Variable plus précise */ @@ -112,7 +114,7 @@ static void g_pseudo_register_init(GPseudoRegister *reg) /****************************************************************************** * * -* Paramètres : - * +* Paramètres : usage = précision quant à l'usage du pseudo-registre à créer.* * * * Description : Assigne le contenu d'une expression dans une autre. * * * @@ -122,12 +124,14 @@ static void g_pseudo_register_init(GPseudoRegister *reg) * * ******************************************************************************/ -GDecInstruction *g_pseudo_register_new(void) +GDecInstruction *g_pseudo_register_new(PseudoRegUsage usage) { GPseudoRegister *result; /* Pseudo-registre à renvoyer */ result = g_object_new(G_TYPE_PSEUDO_REGISTER, NULL); + result->usage = usage; + return G_DEC_INSTRUCTION(result); } @@ -135,6 +139,25 @@ GDecInstruction *g_pseudo_register_new(void) /****************************************************************************** * * +* Paramètres : reg = pseudo-registre à venir consulter. * +* * +* Description : Indique l'usage attendu du pseudo-registre consulté. * +* * +* Retour : Utilité du pseudo-registre en place. * +* * +* Remarques : - * +* * +******************************************************************************/ + +PseudoRegUsage g_pseudo_register_get_usage(const GPseudoRegister *reg) +{ + return reg->usage; + +} + + +/****************************************************************************** +* * * Paramètres : reg = expression à transcrire en version humaine. * * buffer = tampon où doit se réaliser l'insertion. * * line = ligne d'impression prête à emploi ou NULL. * |