diff options
Diffstat (limited to 'src/decomp/expr/pseudo.c')
-rw-r--r-- | src/decomp/expr/pseudo.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/decomp/expr/pseudo.c b/src/decomp/expr/pseudo.c index 393f32c..abfcd4d 100644 --- a/src/decomp/expr/pseudo.c +++ b/src/decomp/expr/pseudo.c @@ -24,6 +24,10 @@ #include "pseudo.h" +#include <stdio.h> +#include <string.h> + + #include "../expression-int.h" @@ -33,6 +37,8 @@ struct _GPseudoRegister { GDecExpression parent; /* A laisser en premier */ + size_t index; /* Position dans l'ensemble */ + }; @@ -141,8 +147,30 @@ GDecInstruction *g_pseudo_register_new(void) static void g_pseudo_register_print(const GPseudoRegister *reg, GCodeBuffer *buffer, GBufferLine *line, GLangOutput *output) { + char label[32]; + + snprintf(label, 32, "var%d", reg->index); + + g_buffer_line_insert_text(line, BLC_ASSEMBLY, label, strlen(label), RTT_RAW); - g_buffer_line_insert_text(line, BLC_ASSEMBLY, "varX", 4, RTT_RAW); +} + + +/****************************************************************************** +* * +* Paramètres : reg = expression représentant un pseudo-registre à traiter.* +* index = indice à associer au pseudo-registre. * +* * +* Description : Définit un indice unique pour un pseudo-registre donné. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ +void g_pseudo_register_set_index(GPseudoRegister *reg, size_t index) +{ + reg->index = index; } |