On 9/9/20 2:16 AM, Richard Henderson wrote: > The temp_fixed, temp_global, temp_local bits are all related. > Combine them into a single enumeration. > > Reviewed-by: Alex Bennée <alex.ben...@linaro.org>
Already reviewed: https://www.mail-archive.com/qemu-devel@nongnu.org/msg701705.html > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > include/tcg/tcg.h | 20 +++++--- > tcg/optimize.c | 8 +-- > tcg/tcg.c | 122 ++++++++++++++++++++++++++++------------------ > 3 files changed, 90 insertions(+), 60 deletions(-) > > diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h > index 8804a8c4a2..f157092b51 100644 > --- a/include/tcg/tcg.h > +++ b/include/tcg/tcg.h > @@ -483,23 +483,27 @@ typedef enum TCGTempVal { > TEMP_VAL_CONST, > } TCGTempVal; > > +typedef enum TCGTempKind { > + /* Temp is dead at the end of all basic blocks. */ > + TEMP_NORMAL, > + /* Temp is saved across basic blocks but dead at the end of TBs. */ > + TEMP_LOCAL, > + /* Temp is saved across both basic blocks and translation blocks. */ > + TEMP_GLOBAL, > + /* Temp is in a fixed register. */ > + TEMP_FIXED, > +} TCGTempKind; > + > typedef struct TCGTemp { > TCGReg reg:8; > TCGTempVal val_type:8; > TCGType base_type:8; > TCGType type:8; > - unsigned int fixed_reg:1; > + TCGTempKind kind:3; 3 bits for TEMP_CONST later. Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > unsigned int indirect_reg:1; > unsigned int indirect_base:1; > unsigned int mem_coherent:1; > unsigned int mem_allocated:1; > - /* If true, the temp is saved across both basic blocks and > - translation blocks. */ > - unsigned int temp_global:1; > - /* If true, the temp is saved across basic blocks but dead > - at the end of translation blocks. If false, the temp is > - dead at the end of basic blocks. */ > - unsigned int temp_local:1; > unsigned int temp_allocated:1; >